Skip to content

Commit c311f02

Browse files
committed
[RISCV] Add precommit test that copy is killed
1 parent 042a38f commit c311f02

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,54 @@ body: |
136136
%y:vrnov0 = COPY %x
137137
%z:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, %y, %mask, %avl, 5 /* e32 */
138138
...
139+
---
140+
name: copy_is_killed
141+
body: |
142+
bb.0:
143+
liveins: $x10, $x11, $x12
144+
; CHECK-LABEL: name: copy_is_killed
145+
; CHECK: liveins: $x10, $x11, $x12
146+
; CHECK-NEXT: {{ $}}
147+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x12
148+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
149+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x10
150+
; CHECK-NEXT: [[PseudoVLM_V_B32_:%[0-9]+]]:vr = PseudoVLM_V_B32 $noreg, [[COPY2]], -1, 0 /* e8 */, 3 /* ta, ma */ :: (load unknown-size, align 1)
151+
; CHECK-NEXT: [[PseudoVLM_V_B32_1:%[0-9]+]]:vr = PseudoVLM_V_B32 $noreg, [[COPY1]], -1, 0 /* e8 */, 3 /* ta, ma */ :: (load unknown-size, align 1)
152+
; CHECK-NEXT: [[PseudoVLM_V_B32_2:%[0-9]+]]:vr = PseudoVLM_V_B32 $noreg, [[COPY]], -1, 0 /* e8 */, 3 /* ta, ma */ :: (load unknown-size, align 1)
153+
; CHECK-NEXT: [[PseudoVMV_V_I_M1_:%[0-9]+]]:vrnov0 = PseudoVMV_V_I_M1 $noreg, 0, -1, 5 /* e32 */, 0 /* tu, mu */
154+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vmv0 = COPY [[PseudoVLM_V_B32_]]
155+
; CHECK-NEXT: [[PseudoVMERGE_VIM_M1_:%[0-9]+]]:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, [[PseudoVMV_V_I_M1_]], 1, killed [[COPY3]], -1, 5 /* e32 */
156+
; CHECK-NEXT: [[COPY4:%[0-9]+]]:vr = COPY [[PseudoVMERGE_VIM_M1_]]
157+
; CHECK-NEXT: [[COPY5:%[0-9]+]]:vmv0 = COPY [[PseudoVLM_V_B32_2]]
158+
; CHECK-NEXT: [[PseudoVMERGE_VIM_M1_1:%[0-9]+]]:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, [[PseudoVMV_V_I_M1_]], 1, killed [[COPY5]], -1, 5 /* e32 */
159+
; CHECK-NEXT: [[PseudoVADD_VV_M1_:%[0-9]+]]:vrnov0 = PseudoVADD_VV_M1 $noreg, [[PseudoVMERGE_VIM_M1_]], [[PseudoVMERGE_VIM_M1_1]], -1, 5 /* e32 */, 3 /* ta, ma */
160+
; CHECK-NEXT: [[COPY6:%[0-9]+]]:vrnov0 = COPY killed [[PseudoVADD_VV_M1_]]
161+
; CHECK-NEXT: [[PseudoVSUB_VV_M1_:%[0-9]+]]:vr = PseudoVSUB_VV_M1 $noreg, [[PseudoVMERGE_VIM_M1_]], [[PseudoVMERGE_VIM_M1_1]], -1, 5 /* e32 */, 3 /* ta, ma */
162+
; CHECK-NEXT: [[COPY7:%[0-9]+]]:vmv0 = COPY [[PseudoVLM_V_B32_1]]
163+
; CHECK-NEXT: [[PseudoVOR_VV_M1_MASK:%[0-9]+]]:vrnov0 = PseudoVOR_VV_M1_MASK [[PseudoVADD_VV_M1_]], [[COPY6]], killed [[COPY4]], [[COPY7]], -1, 5 /* e32 */, 1 /* ta, mu */
164+
; CHECK-NEXT: [[PseudoVOR_VV_M1_:%[0-9]+]]:vr = PseudoVOR_VV_M1 $noreg, killed [[PseudoVOR_VV_M1_MASK]], killed [[PseudoVSUB_VV_M1_]], -1, 5 /* e32 */, 3 /* ta, ma */
165+
; CHECK-NEXT: $v8 = COPY [[PseudoVOR_VV_M1_]]
166+
; CHECK-NEXT: PseudoRET implicit $v8
167+
%2:gpr = COPY $x12
168+
%1:gpr = COPY $x11
169+
%0:gpr = COPY $x10
170+
%3:vr = PseudoVLM_V_B32 $noreg, %0:gpr, -1, 0, 3 :: (load unknown-size, align 1)
171+
%4:vr = PseudoVLM_V_B32 $noreg, %1:gpr, -1, 0, 3 :: (load unknown-size, align 1)
172+
%5:vr = PseudoVLM_V_B32 $noreg, %2:gpr, -1, 0, 3 :: (load unknown-size, align 1)
173+
%6:vrnov0 = PseudoVMV_V_I_M1 $noreg, 0, -1, 5, 0
174+
%8:vmv0 = COPY %3:vr
175+
%7:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %6:vrnov0, 1, killed %8:vmv0, -1, 5
176+
%9:vr = COPY %7:vrnov0
177+
%11:vmv0 = COPY %5:vr
178+
%10:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %6:vrnov0, 1, killed %11:vmv0, -1, 5
179+
%12:vr = PseudoVADD_VV_M1 $noreg, %7:vrnov0, %10:vrnov0, -1, 5, 3
180+
%13:vrnov0 = COPY killed %12:vr
181+
%14:vr = PseudoVSUB_VV_M1 $noreg, %7:vrnov0, %10:vrnov0, -1, 5, 3
182+
%15:vrnov0 = PseudoVOR_VV_M1 $noreg, %13:vrnov0, killed %9:vr, -1, 5, 3
183+
%17:vmv0 = COPY %4:vr
184+
%16:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, %13:vrnov0, killed %15:vrnov0, killed %17:vmv0, -1, 5
185+
%18:vr = PseudoVOR_VV_M1 $noreg, killed %16:vrnov0, killed %14:vr, -1, 5, 3
186+
$v8 = COPY %18:vr
187+
PseudoRET implicit $v8
188+
...
189+

0 commit comments

Comments
 (0)