Skip to content

Commit 630f43a

Browse files
committed
[RISCV] Move remat.ll test from riscv32 to riscv64. NFC
This is to allow us to test rematting i64 lds in #166774. Checked and we're still rematting the same lis on rv64 in this test.
1 parent ca0866b commit 630f43a

File tree

1 file changed

+108
-109
lines changed

1 file changed

+108
-109
lines changed

llvm/test/CodeGen/RISCV/remat.ll

Lines changed: 108 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc -O1 -mtriple=riscv32 -verify-machineinstrs < %s \
3-
; RUN: | FileCheck %s -check-prefix=RV32I
2+
; RUN: llc -O1 -mtriple=riscv64 -verify-machineinstrs < %s | FileCheck %s
43

54
@a = common global i32 0, align 4
65
@l = common global i32 0, align 4
@@ -21,113 +20,113 @@
2120
; situation.
2221

2322
define i32 @test() nounwind {
24-
; RV32I-LABEL: test:
25-
; RV32I: # %bb.0: # %entry
26-
; RV32I-NEXT: addi sp, sp, -64
27-
; RV32I-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
28-
; RV32I-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
29-
; RV32I-NEXT: sw s1, 52(sp) # 4-byte Folded Spill
30-
; RV32I-NEXT: sw s2, 48(sp) # 4-byte Folded Spill
31-
; RV32I-NEXT: sw s3, 44(sp) # 4-byte Folded Spill
32-
; RV32I-NEXT: sw s4, 40(sp) # 4-byte Folded Spill
33-
; RV32I-NEXT: sw s5, 36(sp) # 4-byte Folded Spill
34-
; RV32I-NEXT: sw s6, 32(sp) # 4-byte Folded Spill
35-
; RV32I-NEXT: sw s7, 28(sp) # 4-byte Folded Spill
36-
; RV32I-NEXT: sw s8, 24(sp) # 4-byte Folded Spill
37-
; RV32I-NEXT: sw s9, 20(sp) # 4-byte Folded Spill
38-
; RV32I-NEXT: sw s10, 16(sp) # 4-byte Folded Spill
39-
; RV32I-NEXT: sw s11, 12(sp) # 4-byte Folded Spill
40-
; RV32I-NEXT: lui s0, %hi(a)
41-
; RV32I-NEXT: lw a0, %lo(a)(s0)
42-
; RV32I-NEXT: beqz a0, .LBB0_11
43-
; RV32I-NEXT: # %bb.1: # %for.body.preheader
44-
; RV32I-NEXT: lui s1, %hi(l)
45-
; RV32I-NEXT: lui s2, %hi(k)
46-
; RV32I-NEXT: lui s3, %hi(j)
47-
; RV32I-NEXT: lui s4, %hi(i)
48-
; RV32I-NEXT: lui s5, %hi(d)
49-
; RV32I-NEXT: lui s6, %hi(e)
50-
; RV32I-NEXT: lui s7, %hi(f)
51-
; RV32I-NEXT: lui s8, %hi(g)
52-
; RV32I-NEXT: lui s9, %hi(h)
53-
; RV32I-NEXT: lui s10, %hi(c)
54-
; RV32I-NEXT: lui s11, %hi(b)
55-
; RV32I-NEXT: j .LBB0_3
56-
; RV32I-NEXT: .LBB0_2: # %for.inc
57-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
58-
; RV32I-NEXT: lw a0, %lo(a)(s0)
59-
; RV32I-NEXT: addi a0, a0, -1
60-
; RV32I-NEXT: sw a0, %lo(a)(s0)
61-
; RV32I-NEXT: beqz a0, .LBB0_11
62-
; RV32I-NEXT: .LBB0_3: # %for.body
63-
; RV32I-NEXT: # =>This Inner Loop Header: Depth=1
64-
; RV32I-NEXT: lw a1, %lo(l)(s1)
65-
; RV32I-NEXT: beqz a1, .LBB0_5
66-
; RV32I-NEXT: # %bb.4: # %if.then
67-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
68-
; RV32I-NEXT: lw a1, %lo(b)(s11)
69-
; RV32I-NEXT: lw a2, %lo(c)(s10)
70-
; RV32I-NEXT: lw a3, %lo(d)(s5)
71-
; RV32I-NEXT: lw a4, %lo(e)(s6)
72-
; RV32I-NEXT: li a5, 32
73-
; RV32I-NEXT: call foo
74-
; RV32I-NEXT: .LBB0_5: # %if.end
75-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
76-
; RV32I-NEXT: lw a0, %lo(k)(s2)
77-
; RV32I-NEXT: beqz a0, .LBB0_7
78-
; RV32I-NEXT: # %bb.6: # %if.then3
79-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
80-
; RV32I-NEXT: lw a0, %lo(b)(s11)
81-
; RV32I-NEXT: lw a1, %lo(c)(s10)
82-
; RV32I-NEXT: lw a2, %lo(d)(s5)
83-
; RV32I-NEXT: lw a3, %lo(e)(s6)
84-
; RV32I-NEXT: lw a4, %lo(f)(s7)
85-
; RV32I-NEXT: li a5, 64
86-
; RV32I-NEXT: call foo
87-
; RV32I-NEXT: .LBB0_7: # %if.end5
88-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
89-
; RV32I-NEXT: lw a0, %lo(j)(s3)
90-
; RV32I-NEXT: beqz a0, .LBB0_9
91-
; RV32I-NEXT: # %bb.8: # %if.then7
92-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
93-
; RV32I-NEXT: lw a0, %lo(c)(s10)
94-
; RV32I-NEXT: lw a1, %lo(d)(s5)
95-
; RV32I-NEXT: lw a2, %lo(e)(s6)
96-
; RV32I-NEXT: lw a3, %lo(f)(s7)
97-
; RV32I-NEXT: lw a4, %lo(g)(s8)
98-
; RV32I-NEXT: li a5, 32
99-
; RV32I-NEXT: call foo
100-
; RV32I-NEXT: .LBB0_9: # %if.end9
101-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
102-
; RV32I-NEXT: lw a0, %lo(i)(s4)
103-
; RV32I-NEXT: beqz a0, .LBB0_2
104-
; RV32I-NEXT: # %bb.10: # %if.then11
105-
; RV32I-NEXT: # in Loop: Header=BB0_3 Depth=1
106-
; RV32I-NEXT: lw a0, %lo(d)(s5)
107-
; RV32I-NEXT: lw a1, %lo(e)(s6)
108-
; RV32I-NEXT: lw a2, %lo(f)(s7)
109-
; RV32I-NEXT: lw a3, %lo(g)(s8)
110-
; RV32I-NEXT: lw a4, %lo(h)(s9)
111-
; RV32I-NEXT: li a5, 32
112-
; RV32I-NEXT: call foo
113-
; RV32I-NEXT: j .LBB0_2
114-
; RV32I-NEXT: .LBB0_11: # %for.end
115-
; RV32I-NEXT: li a0, 1
116-
; RV32I-NEXT: lw ra, 60(sp) # 4-byte Folded Reload
117-
; RV32I-NEXT: lw s0, 56(sp) # 4-byte Folded Reload
118-
; RV32I-NEXT: lw s1, 52(sp) # 4-byte Folded Reload
119-
; RV32I-NEXT: lw s2, 48(sp) # 4-byte Folded Reload
120-
; RV32I-NEXT: lw s3, 44(sp) # 4-byte Folded Reload
121-
; RV32I-NEXT: lw s4, 40(sp) # 4-byte Folded Reload
122-
; RV32I-NEXT: lw s5, 36(sp) # 4-byte Folded Reload
123-
; RV32I-NEXT: lw s6, 32(sp) # 4-byte Folded Reload
124-
; RV32I-NEXT: lw s7, 28(sp) # 4-byte Folded Reload
125-
; RV32I-NEXT: lw s8, 24(sp) # 4-byte Folded Reload
126-
; RV32I-NEXT: lw s9, 20(sp) # 4-byte Folded Reload
127-
; RV32I-NEXT: lw s10, 16(sp) # 4-byte Folded Reload
128-
; RV32I-NEXT: lw s11, 12(sp) # 4-byte Folded Reload
129-
; RV32I-NEXT: addi sp, sp, 64
130-
; RV32I-NEXT: ret
23+
; CHECK-LABEL: test:
24+
; CHECK: # %bb.0: # %entry
25+
; CHECK-NEXT: addi sp, sp, -112
26+
; CHECK-NEXT: sd ra, 104(sp) # 8-byte Folded Spill
27+
; CHECK-NEXT: sd s0, 96(sp) # 8-byte Folded Spill
28+
; CHECK-NEXT: sd s1, 88(sp) # 8-byte Folded Spill
29+
; CHECK-NEXT: sd s2, 80(sp) # 8-byte Folded Spill
30+
; CHECK-NEXT: sd s3, 72(sp) # 8-byte Folded Spill
31+
; CHECK-NEXT: sd s4, 64(sp) # 8-byte Folded Spill
32+
; CHECK-NEXT: sd s5, 56(sp) # 8-byte Folded Spill
33+
; CHECK-NEXT: sd s6, 48(sp) # 8-byte Folded Spill
34+
; CHECK-NEXT: sd s7, 40(sp) # 8-byte Folded Spill
35+
; CHECK-NEXT: sd s8, 32(sp) # 8-byte Folded Spill
36+
; CHECK-NEXT: sd s9, 24(sp) # 8-byte Folded Spill
37+
; CHECK-NEXT: sd s10, 16(sp) # 8-byte Folded Spill
38+
; CHECK-NEXT: sd s11, 8(sp) # 8-byte Folded Spill
39+
; CHECK-NEXT: lui s0, %hi(a)
40+
; CHECK-NEXT: lw a0, %lo(a)(s0)
41+
; CHECK-NEXT: beqz a0, .LBB0_11
42+
; CHECK-NEXT: # %bb.1: # %for.body.preheader
43+
; CHECK-NEXT: lui s1, %hi(l)
44+
; CHECK-NEXT: lui s2, %hi(k)
45+
; CHECK-NEXT: lui s3, %hi(j)
46+
; CHECK-NEXT: lui s4, %hi(i)
47+
; CHECK-NEXT: lui s5, %hi(d)
48+
; CHECK-NEXT: lui s6, %hi(e)
49+
; CHECK-NEXT: lui s7, %hi(f)
50+
; CHECK-NEXT: lui s8, %hi(g)
51+
; CHECK-NEXT: lui s9, %hi(h)
52+
; CHECK-NEXT: lui s10, %hi(c)
53+
; CHECK-NEXT: lui s11, %hi(b)
54+
; CHECK-NEXT: j .LBB0_3
55+
; CHECK-NEXT: .LBB0_2: # %for.inc
56+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
57+
; CHECK-NEXT: lw a0, %lo(a)(s0)
58+
; CHECK-NEXT: addiw a0, a0, -1
59+
; CHECK-NEXT: sw a0, %lo(a)(s0)
60+
; CHECK-NEXT: beqz a0, .LBB0_11
61+
; CHECK-NEXT: .LBB0_3: # %for.body
62+
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
63+
; CHECK-NEXT: lw a1, %lo(l)(s1)
64+
; CHECK-NEXT: beqz a1, .LBB0_5
65+
; CHECK-NEXT: # %bb.4: # %if.then
66+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
67+
; CHECK-NEXT: lw a4, %lo(e)(s6)
68+
; CHECK-NEXT: lw a3, %lo(d)(s5)
69+
; CHECK-NEXT: lw a2, %lo(c)(s10)
70+
; CHECK-NEXT: lw a1, %lo(b)(s11)
71+
; CHECK-NEXT: li a5, 32
72+
; CHECK-NEXT: call foo
73+
; CHECK-NEXT: .LBB0_5: # %if.end
74+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
75+
; CHECK-NEXT: lw a0, %lo(k)(s2)
76+
; CHECK-NEXT: beqz a0, .LBB0_7
77+
; CHECK-NEXT: # %bb.6: # %if.then3
78+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
79+
; CHECK-NEXT: lw a4, %lo(f)(s7)
80+
; CHECK-NEXT: lw a3, %lo(e)(s6)
81+
; CHECK-NEXT: lw a2, %lo(d)(s5)
82+
; CHECK-NEXT: lw a1, %lo(c)(s10)
83+
; CHECK-NEXT: lw a0, %lo(b)(s11)
84+
; CHECK-NEXT: li a5, 64
85+
; CHECK-NEXT: call foo
86+
; CHECK-NEXT: .LBB0_7: # %if.end5
87+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
88+
; CHECK-NEXT: lw a0, %lo(j)(s3)
89+
; CHECK-NEXT: beqz a0, .LBB0_9
90+
; CHECK-NEXT: # %bb.8: # %if.then7
91+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
92+
; CHECK-NEXT: lw a4, %lo(g)(s8)
93+
; CHECK-NEXT: lw a3, %lo(f)(s7)
94+
; CHECK-NEXT: lw a2, %lo(e)(s6)
95+
; CHECK-NEXT: lw a1, %lo(d)(s5)
96+
; CHECK-NEXT: lw a0, %lo(c)(s10)
97+
; CHECK-NEXT: li a5, 32
98+
; CHECK-NEXT: call foo
99+
; CHECK-NEXT: .LBB0_9: # %if.end9
100+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
101+
; CHECK-NEXT: lw a0, %lo(i)(s4)
102+
; CHECK-NEXT: beqz a0, .LBB0_2
103+
; CHECK-NEXT: # %bb.10: # %if.then11
104+
; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
105+
; CHECK-NEXT: lw a4, %lo(h)(s9)
106+
; CHECK-NEXT: lw a3, %lo(g)(s8)
107+
; CHECK-NEXT: lw a2, %lo(f)(s7)
108+
; CHECK-NEXT: lw a1, %lo(e)(s6)
109+
; CHECK-NEXT: lw a0, %lo(d)(s5)
110+
; CHECK-NEXT: li a5, 32
111+
; CHECK-NEXT: call foo
112+
; CHECK-NEXT: j .LBB0_2
113+
; CHECK-NEXT: .LBB0_11: # %for.end
114+
; CHECK-NEXT: li a0, 1
115+
; CHECK-NEXT: ld ra, 104(sp) # 8-byte Folded Reload
116+
; CHECK-NEXT: ld s0, 96(sp) # 8-byte Folded Reload
117+
; CHECK-NEXT: ld s1, 88(sp) # 8-byte Folded Reload
118+
; CHECK-NEXT: ld s2, 80(sp) # 8-byte Folded Reload
119+
; CHECK-NEXT: ld s3, 72(sp) # 8-byte Folded Reload
120+
; CHECK-NEXT: ld s4, 64(sp) # 8-byte Folded Reload
121+
; CHECK-NEXT: ld s5, 56(sp) # 8-byte Folded Reload
122+
; CHECK-NEXT: ld s6, 48(sp) # 8-byte Folded Reload
123+
; CHECK-NEXT: ld s7, 40(sp) # 8-byte Folded Reload
124+
; CHECK-NEXT: ld s8, 32(sp) # 8-byte Folded Reload
125+
; CHECK-NEXT: ld s9, 24(sp) # 8-byte Folded Reload
126+
; CHECK-NEXT: ld s10, 16(sp) # 8-byte Folded Reload
127+
; CHECK-NEXT: ld s11, 8(sp) # 8-byte Folded Reload
128+
; CHECK-NEXT: addi sp, sp, 112
129+
; CHECK-NEXT: ret
131130
entry:
132131
%.pr = load i32, ptr @a, align 4
133132
%tobool14 = icmp eq i32 %.pr, 0

0 commit comments

Comments
 (0)