1# RUN: llc -mtriple riscv64 -mattr=+m,+v -run-pass=stack-coloring \ 2# RUN: -riscv-v-vector-bits-min=512 -o - %s | FileCheck %s 3 4# Test that a scalable slot (%stack.1) is not merged into a non-scalable one 5# (%stack.0) 6 7# CHECK: {{^}}stack: 8# CHECK-NEXT: - { id: 0, 9# CHECK: - { id: 1, 10 11--- | 12 define dso_local void @dont_merge() { 13 entry: 14 %buf1 = alloca <4 x i32> 15 %buf2 = alloca <vscale x 4 x i32> 16 ret void 17 } 18 19... 20--- 21name: dont_merge 22tracksRegLiveness: true 23stack: 24 - { id: 0, name: buf1, size: 16, alignment: 16 } 25 - { id: 1, name: buf2, size: 16, alignment: 16, stack-id: scalable-vector } 26body: | 27 bb.0.entry: 28 liveins: $v8, $v10, $x10, $x11 29 30 LIFETIME_START %stack.0 31 VS1R_V killed renamable $v8, %stack.0 :: (store 16 into %stack.0, align 16) 32 renamable $v8 = VL1RE8_V killed $x10 :: (load 16 from %stack.0, align 16) 33 LIFETIME_END %stack.0 34 LIFETIME_START %stack.1 35 VS2R_V killed renamable $v10m2, %stack.1 :: (store unknown-size into %stack.1, align 16) 36 renamable $v10m2 = VL2RE8_V killed $x11 :: (load unknown-size from %stack.1, align 16) 37 LIFETIME_END %stack.1 38 PseudoRET 39... 40