Skip to content

Commit c0f8145

Browse files
committed
[RISCV] Simplify and remove unrelated testcases in reassoc-shl-addi-add.ll. NFC.
1 parent 5e0e6a0 commit c0f8145

File tree

1 file changed

+45
-147
lines changed

1 file changed

+45
-147
lines changed
Lines changed: 45 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,14 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
22
; RUN: llc -mtriple=riscv32-unknown-elf -mattr=+zba %s -o - | FileCheck %s
33

4-
declare i32 @callee1(i32 noundef)
5-
declare i32 @callee2(i32 noundef, i32 noundef)
6-
declare i32 @callee(i32 noundef, i32 noundef, i32 noundef, i32 noundef)
4+
declare i32 @callee2(i32, i32)
5+
declare i32 @callee3(i32, i32, i32)
76

8-
define void @t1(i32 noundef %a, i32 noundef %b, i32 noundef %c, i32 noundef %d) #0 {
7+
; Positive test
8+
; The users of addi aren't more than 2
9+
define void @t1(i32 %a, i32 %b, i32 %c) {
910
; CHECK-LABEL: t1:
1011
; CHECK: # %bb.0: # %entry
11-
; CHECK-NEXT: slli a4, a0, 2
12-
; CHECK-NEXT: addi a4, a4, 45
13-
; CHECK-NEXT: add a1, a4, a1
14-
; CHECK-NEXT: add a2, a4, a2
15-
; CHECK-NEXT: sh2add a3, a0, a3
16-
; CHECK-NEXT: mv a0, a1
17-
; CHECK-NEXT: tail callee
18-
entry:
19-
%shl = shl i32 %a, 2
20-
%add = add nsw i32 %shl, 45
21-
%add1 = add nsw i32 %add, %b
22-
%add3 = add nsw i32 %add, %c
23-
%add5 = add nsw i32 %shl, %d
24-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add1, i32 noundef %add3, i32 noundef %add5)
25-
ret void
26-
}
27-
28-
define void @t2(i32 noundef %a, i32 noundef %b, i32 noundef %c) #0 {
29-
; CHECK-LABEL: t2:
30-
; CHECK: # %bb.0: # %entry
31-
; CHECK-NEXT: slli a0, a0, 2
32-
; CHECK-NEXT: addi a5, a0, 42
33-
; CHECK-NEXT: add a4, a5, a1
34-
; CHECK-NEXT: add a3, a5, a2
35-
; CHECK-NEXT: mv a1, a5
36-
; CHECK-NEXT: mv a2, a4
37-
; CHECK-NEXT: tail callee
38-
entry:
39-
%shl = shl i32 %a, 2
40-
%add = add nsw i32 %shl, 42
41-
%add4 = add nsw i32 %add, %b
42-
%add7 = add nsw i32 %add, %c
43-
%call = tail call i32 @callee(i32 noundef %shl, i32 noundef %add, i32 noundef %add4, i32 noundef %add7)
44-
ret void
45-
}
46-
47-
define void @t3(i32 noundef %a, i32 noundef %b, i32 noundef %c, i32 noundef %d, i32 noundef %e) #0 {
48-
; CHECK-LABEL: t3:
49-
; CHECK: # %bb.0: # %entry
50-
; CHECK-NEXT: slli a0, a0, 2
51-
; CHECK-NEXT: addi a5, a0, 42
52-
; CHECK-NEXT: add a0, a5, a1
53-
; CHECK-NEXT: add a1, a5, a2
54-
; CHECK-NEXT: add a2, a5, a3
55-
; CHECK-NEXT: add a3, a5, a4
56-
; CHECK-NEXT: tail callee
57-
entry:
58-
%shl = shl i32 %a, 2
59-
%add = add nsw i32 %shl, 42
60-
%add1 = add nsw i32 %add, %b
61-
%add2 = add nsw i32 %add, %c
62-
%add3 = add nsw i32 %add, %d
63-
%add4 = add nsw i32 %add, %e
64-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add2, i32 noundef %add3, i32 noundef %add4)
65-
ret void
66-
}
67-
68-
define void @t4(i32 noundef %a, i32 noundef %b) #0 {
69-
; CHECK-LABEL: t4:
70-
; CHECK: # %bb.0: # %entry
71-
; CHECK-NEXT: sh2add a0, a0, a1
72-
; CHECK-NEXT: addi a0, a0, 42
73-
; CHECK-NEXT: tail callee1
74-
entry:
75-
%shl = shl i32 %a, 2
76-
%add = add nsw i32 %shl, 42
77-
%add1 = add nsw i32 %add, %b
78-
%call = tail call i32 @callee1(i32 noundef %add1)
79-
ret void
80-
}
81-
82-
define void @t5(i32 noundef %a, i32 noundef %b, i32 noundef %c) #0 {
83-
; CHECK-LABEL: t5:
84-
; CHECK: # %bb.0: # %entry
8512
; CHECK-NEXT: sh2add a2, a0, a2
8613
; CHECK-NEXT: sh2add a0, a0, a1
8714
; CHECK-NEXT: addi a0, a0, 42
@@ -92,97 +19,68 @@ entry:
9219
%add = add nsw i32 %shl, 42
9320
%add1 = add nsw i32 %add, %b
9421
%add2 = add nsw i32 %add, %c
95-
%call = tail call i32 @callee2(i32 noundef %add1, i32 noundef %add2)
96-
ret void
97-
}
98-
99-
define void @t6(i32 noundef %a, i32 noundef %b) #0 {
100-
; CHECK-LABEL: t6:
101-
; CHECK: # %bb.0: # %entry
102-
; CHECK-NEXT: slli a2, a0, 2
103-
; CHECK-NEXT: sh2add a0, a0, a1
104-
; CHECK-NEXT: addi a0, a0, 42
105-
; CHECK-NEXT: mv a1, a2
106-
; CHECK-NEXT: mv a3, a2
107-
; CHECK-NEXT: tail callee
108-
entry:
109-
%shl = shl i32 %a, 2
110-
%add = add nsw i32 %shl, 42
111-
%add1 = add nsw i32 %add, %b
112-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %shl, i32 noundef %shl, i32 noundef %shl)
22+
%call = tail call i32 @callee2(i32 %add1, i32 %add2)
11323
ret void
11424
}
11525

116-
define void @t7(i32 noundef %a, i32 noundef %b) #0 {
117-
; CHECK-LABEL: t7:
26+
; Negative test
27+
; The users of addi are more than 2.
28+
define void @t2(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) {
29+
; CHECK-LABEL: t2:
11830
; CHECK: # %bb.0: # %entry
11931
; CHECK-NEXT: slli a0, a0, 2
120-
; CHECK-NEXT: addi a2, a0, 42
121-
; CHECK-NEXT: add a0, a2, a1
122-
; CHECK-NEXT: mv a1, a2
123-
; CHECK-NEXT: mv a3, a2
124-
; CHECK-NEXT: tail callee
32+
; CHECK-NEXT: addi a4, a0, 42
33+
; CHECK-NEXT: add a0, a4, a1
34+
; CHECK-NEXT: add a1, a4, a2
35+
; CHECK-NEXT: add a2, a4, a3
36+
; CHECK-NEXT: tail callee3
12537
entry:
12638
%shl = shl i32 %a, 2
12739
%add = add nsw i32 %shl, 42
12840
%add1 = add nsw i32 %add, %b
129-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add, i32 noundef %add, i32 noundef %add)
130-
ret void
131-
}
132-
133-
define void @t8(i32 noundef %a, i32 noundef %b, i32 noundef %c, i32 noundef %d) #0 {
134-
; CHECK-LABEL: t8:
135-
; CHECK: # %bb.0: # %entry
136-
; CHECK-NEXT: lui a4, 1
137-
; CHECK-NEXT: addi a4, a4, 1307
138-
; CHECK-NEXT: sh3add a4, a0, a4
139-
; CHECK-NEXT: add a1, a4, a1
140-
; CHECK-NEXT: add a2, a4, a2
141-
; CHECK-NEXT: sh3add a3, a0, a3
142-
; CHECK-NEXT: mv a0, a1
143-
; CHECK-NEXT: tail callee
144-
entry:
145-
%shl = shl i32 %a, 3
146-
%add = add nsw i32 %shl, 5403
147-
%add1 = add nsw i32 %add, %b
148-
%add3 = add nsw i32 %add, %c
149-
%add5 = add nsw i32 %shl, %d
150-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add1, i32 noundef %add3, i32 noundef %add5)
41+
%add2 = add nsw i32 %add, %c
42+
%add3 = add nsw i32 %add, %d
43+
%call = tail call i32 @callee3(i32 %add1, i32 %add2, i32 %add3)
15144
ret void
15245
}
15346

154-
define void @t9(i32 noundef %a, i32 noundef %b, i32 noundef %c, i32 noundef %d) #0 {
155-
; CHECK-LABEL: t9:
47+
; Negative test
48+
; shl doesn't have one use.
49+
define void @t3(i32 %a, i32 %b, i32 %c, i32 %d) {
50+
; CHECK-LABEL: t3:
15651
; CHECK: # %bb.0: # %entry
15752
; CHECK-NEXT: slli a4, a0, 2
158-
; CHECK-NEXT: addi a4, a4, -42
159-
; CHECK-NEXT: add a1, a4, a1
160-
; CHECK-NEXT: add a2, a4, a2
161-
; CHECK-NEXT: sh2add a3, a0, a3
162-
; CHECK-NEXT: mv a0, a1
163-
; CHECK-NEXT: tail callee
53+
; CHECK-NEXT: addi a5, a4, 45
54+
; CHECK-NEXT: add a4, a5, a1
55+
; CHECK-NEXT: add a1, a5, a2
56+
; CHECK-NEXT: sh2add a2, a0, a3
57+
; CHECK-NEXT: mv a0, a4
58+
; CHECK-NEXT: tail callee3
16459
entry:
16560
%shl = shl i32 %a, 2
166-
%add = add nsw i32 %shl, -42
61+
%add = add nsw i32 %shl, 45
16762
%add1 = add nsw i32 %add, %b
168-
%add3 = add nsw i32 %add, %c
169-
%add5 = add nsw i32 %shl, %d
170-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add1, i32 noundef %add3, i32 noundef %add5)
63+
%add2 = add nsw i32 %add, %c
64+
%add3 = add nsw i32 %shl, %d
65+
%call = tail call i32 @callee3(i32 %add1, i32 %add2, i32 %add3)
17166
ret void
17267
}
17368

174-
define void @t10(i32 noundef %a, i32 noundef %b, i32 noundef %c, i32 noundef %d) #0 {
175-
; CHECK-LABEL: t10:
69+
; Negative test
70+
; shift amount isn't 1, 2, or 3.
71+
define void @t4(i32 %a, i32 %b, i32 %c, i32 %d) {
72+
; CHECK-LABEL: t4:
17673
; CHECK: # %bb.0: # %entry
177-
; CHECK-NEXT: tail callee
74+
; CHECK-NEXT: slli a0, a0, 4
75+
; CHECK-NEXT: addi a3, a0, 45
76+
; CHECK-NEXT: add a0, a3, a1
77+
; CHECK-NEXT: add a1, a3, a2
78+
; CHECK-NEXT: tail callee2
17879
entry:
179-
%shl = shl i32 %a, -2
180-
%add = add nsw i32 %shl, 42
80+
%shl = shl i32 %a, 4
81+
%add = add nsw i32 %shl, 45
18182
%add1 = add nsw i32 %add, %b
182-
%add3 = add nsw i32 %add, %c
183-
%add5 = add nsw i32 %shl, %d
184-
%call = tail call i32 @callee(i32 noundef %add1, i32 noundef %add1, i32 noundef %add3, i32 noundef %add5)
83+
%add2 = add nsw i32 %add, %c
84+
%call = tail call i32 @callee2(i32 %add1, i32 %add2)
18585
ret void
18686
}
187-
188-
attributes #0 = { nounwind optsize }

0 commit comments

Comments
 (0)