Skip to content

Commit 7fb71d1

Browse files
committed
[RISCV][test] Add test case showing case where machine copy propagation leaves behind a no-op reg move
Pre-commit for #129889.
1 parent 0d2c55c commit 7fb71d1

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -o - %s -mtriple=riscv64 -run-pass=machine-cp -mcp-use-is-copy-instr | FileCheck %s
3+
4+
## This test was added to capture a case where MachineCopyPropagation risks
5+
## leaving a no-op register move (add, x0, reg).
6+
## FIXME: No-op register move is left behind after machine-cp.
7+
8+
---
9+
name: ham
10+
body: |
11+
; CHECK-LABEL: name: ham
12+
; CHECK: bb.0:
13+
; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000)
14+
; CHECK-NEXT: liveins: $x10
15+
; CHECK-NEXT: {{ $}}
16+
; CHECK-NEXT: renamable $x11 = ANDI killed renamable $x10, 1
17+
; CHECK-NEXT: renamable $x10 = ADDI $x0, 1
18+
; CHECK-NEXT: BEQ killed renamable $x11, $x0, %bb.3
19+
; CHECK-NEXT: {{ $}}
20+
; CHECK-NEXT: bb.1:
21+
; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.2(0x40000000)
22+
; CHECK-NEXT: liveins: $x10
23+
; CHECK-NEXT: {{ $}}
24+
; CHECK-NEXT: $x11 = ADDI $x0, 0
25+
; CHECK-NEXT: renamable $x10 = ADD $x0, killed renamable $x10
26+
; CHECK-NEXT: BEQ renamable $x10, $x0, %bb.4
27+
; CHECK-NEXT: {{ $}}
28+
; CHECK-NEXT: bb.2:
29+
; CHECK-NEXT: $x10 = ADDI $x0, 0
30+
; CHECK-NEXT: PseudoRET implicit $x10
31+
; CHECK-NEXT: {{ $}}
32+
; CHECK-NEXT: bb.3:
33+
; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.2(0x40000000)
34+
; CHECK-NEXT: liveins: $x10
35+
; CHECK-NEXT: {{ $}}
36+
; CHECK-NEXT: renamable $x11 = ADDI $x0, 1
37+
; CHECK-NEXT: renamable $x10 = ADD killed renamable $x11, killed renamable $x10
38+
; CHECK-NEXT: BNE renamable $x10, $x0, %bb.2
39+
; CHECK-NEXT: {{ $}}
40+
; CHECK-NEXT: bb.4:
41+
; CHECK-NEXT: liveins: $x10
42+
; CHECK-NEXT: {{ $}}
43+
; CHECK-NEXT: PseudoRET implicit $x10
44+
bb.0:
45+
successors: %bb.1(0x40000000), %bb.2(0x40000000)
46+
liveins: $x10
47+
48+
renamable $x11 = ANDI killed renamable $x10, 1
49+
renamable $x10 = ADDI $x0, 1
50+
BEQ killed renamable $x11, $x0, %bb.2
51+
52+
bb.1:
53+
successors: %bb.4(0x40000000), %bb.5(0x40000000)
54+
liveins: $x10
55+
56+
$x11 = ADDI $x0, 0
57+
renamable $x10 = ADD killed renamable $x11, killed renamable $x10
58+
BEQ renamable $x10, $x0, %bb.4
59+
60+
bb.5:
61+
$x10 = ADDI $x0, 0
62+
PseudoRET implicit $x10
63+
64+
bb.2:
65+
successors: %bb.4(0x40000000), %bb.5(0x40000000)
66+
liveins: $x10
67+
68+
renamable $x11 = ADDI $x0, 1
69+
renamable $x10 = ADD killed renamable $x11, killed renamable $x10
70+
BNE renamable $x10, $x0, %bb.5
71+
72+
bb.4:
73+
liveins: $x10
74+
75+
PseudoRET implicit $x10
76+
...

0 commit comments

Comments
 (0)