Skip to content

Commit 78c7201

Browse files
committed
[NewGVN] Regenerate test checks (NFC)
1 parent 1d3e38b commit 78c7201

File tree

1 file changed

+106
-8
lines changed

1 file changed

+106
-8
lines changed

llvm/test/Transforms/NewGVN/pair_jumpthread.ll

Lines changed: 106 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
; RUN: opt < %s -passes=newgvn -S | FileCheck %s
33
; RUN: opt < %s -passes=newgvn,jump-threading -S | FileCheck --check-prefix=CHECK-JT %s
44

5-
define signext i32 @testBI(i32 signext %v) {
65
; Test with std::pair<bool, int>
76
; based on the following C++ code
87
; std::pair<bool, int> callee(int v) {
@@ -15,13 +14,63 @@ define signext i32 @testBI(i32 signext %v) {
1514
; if (rc.first) dummy(0);
1615
; return rc.second;
1716
; }
17+
define signext i32 @testBI(i32 signext %v) {
1818
; CHECK-LABEL: @testBI(
19-
; CHECK: _ZL6calleei.exit:
20-
; CHECK: [[PHIOFOPS:%.*]] = phi i64 [ 1, %if.then.i ], [ {{%.*}}, %if.else.i ]
21-
; CHECK: [[TOBOOL:%.*]] = icmp eq i64 [[PHIOFOPS]], 0
19+
; CHECK-NEXT: entry:
20+
; CHECK-NEXT: [[CALL_I:%.*]] = call signext i32 @dummy(i32 signext [[V:%.*]])
21+
; CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp eq i32 [[CALL_I]], 0
22+
; CHECK-NEXT: br i1 [[TOBOOL_I]], label [[IF_ELSE_I:%.*]], label [[IF_THEN_I:%.*]]
23+
; CHECK: if.then.i:
24+
; CHECK-NEXT: [[CALL2_I:%.*]] = call signext i32 @dummy(i32 signext [[CALL_I]])
25+
; CHECK-NEXT: [[RETVAL_SROA_22_0_INSERT_EXT_I_I:%.*]] = zext i32 [[CALL2_I]] to i64
26+
; CHECK-NEXT: [[RETVAL_SROA_22_0_INSERT_SHIFT_I_I:%.*]] = shl nuw i64 [[RETVAL_SROA_22_0_INSERT_EXT_I_I]], 32
27+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I_I:%.*]] = or i64 [[RETVAL_SROA_22_0_INSERT_SHIFT_I_I]], 1
28+
; CHECK-NEXT: br label [[_ZL6CALLEEI_EXIT:%.*]]
29+
; CHECK: if.else.i:
30+
; CHECK-NEXT: [[DOTLOBIT_I:%.*]] = lshr i32 [[V]], 31
31+
; CHECK-NEXT: [[TMP0:%.*]] = zext i32 [[DOTLOBIT_I]] to i64
32+
; CHECK-NEXT: [[RETVAL_SROA_22_0_INSERT_EXT_I8_I:%.*]] = zext i32 [[V]] to i64
33+
; CHECK-NEXT: [[RETVAL_SROA_22_0_INSERT_SHIFT_I9_I:%.*]] = shl nuw i64 [[RETVAL_SROA_22_0_INSERT_EXT_I8_I]], 32
34+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I11_I:%.*]] = or i64 [[RETVAL_SROA_22_0_INSERT_SHIFT_I9_I]], [[TMP0]]
35+
; CHECK-NEXT: br label [[_ZL6CALLEEI_EXIT]]
36+
; CHECK: _ZL6calleei.exit:
37+
; CHECK-NEXT: [[PHIOFOPS1:%.*]] = phi i64 [ [[RETVAL_SROA_22_0_INSERT_EXT_I_I]], [[IF_THEN_I]] ], [ [[RETVAL_SROA_22_0_INSERT_EXT_I8_I]], [[IF_ELSE_I]] ]
38+
; CHECK-NEXT: [[PHIOFOPS:%.*]] = phi i64 [ 1, [[IF_THEN_I]] ], [ [[TMP0]], [[IF_ELSE_I]] ]
39+
; CHECK-NEXT: [[RETVAL_SROA_0_0_I:%.*]] = phi i64 [ [[RETVAL_SROA_0_0_INSERT_INSERT_I_I]], [[IF_THEN_I]] ], [ [[RETVAL_SROA_0_0_INSERT_INSERT_I11_I]], [[IF_ELSE_I]] ]
40+
; CHECK-NEXT: [[RC_SROA_43_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[PHIOFOPS1]] to i32
41+
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[PHIOFOPS]], 0
42+
; CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN:%.*]]
43+
; CHECK: if.then:
44+
; CHECK-NEXT: [[CALL1:%.*]] = call signext i32 @dummy(i32 signext 0)
45+
; CHECK-NEXT: br label [[IF_END]]
46+
; CHECK: if.end:
47+
; CHECK-NEXT: ret i32 [[RC_SROA_43_0_EXTRACT_TRUNC]]
2248
;
2349
; CHECK-JT-LABEL: @testBI(
50+
; CHECK-JT-NEXT: entry:
51+
; CHECK-JT-NEXT: [[CALL_I:%.*]] = call signext i32 @dummy(i32 signext [[V:%.*]])
52+
; CHECK-JT-NEXT: [[TOBOOL_I:%.*]] = icmp eq i32 [[CALL_I]], 0
53+
; CHECK-JT-NEXT: br i1 [[TOBOOL_I]], label [[_ZL6CALLEEI_EXIT:%.*]], label [[_ZL6CALLEEI_EXIT_THREAD:%.*]]
2454
; CHECK-JT: _ZL6calleei.exit.thread:
55+
; CHECK-JT-NEXT: [[CALL2_I:%.*]] = call signext i32 @dummy(i32 signext [[CALL_I]])
56+
; CHECK-JT-NEXT: [[RETVAL_SROA_22_0_INSERT_EXT_I_I:%.*]] = zext i32 [[CALL2_I]] to i64
57+
; CHECK-JT-NEXT: br label [[IF_THEN:%.*]]
58+
; CHECK-JT: _ZL6calleei.exit:
59+
; CHECK-JT-NEXT: [[DOTLOBIT_I:%.*]] = lshr i32 [[V]], 31
60+
; CHECK-JT-NEXT: [[TMP0:%.*]] = zext i32 [[DOTLOBIT_I]] to i64
61+
; CHECK-JT-NEXT: [[RETVAL_SROA_22_0_INSERT_EXT_I8_I:%.*]] = zext i32 [[V]] to i64
62+
; CHECK-JT-NEXT: [[RETVAL_SROA_22_0_INSERT_SHIFT_I9_I:%.*]] = shl nuw i64 [[RETVAL_SROA_22_0_INSERT_EXT_I8_I]], 32
63+
; CHECK-JT-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I11_I:%.*]] = or i64 [[RETVAL_SROA_22_0_INSERT_SHIFT_I9_I]], [[TMP0]]
64+
; CHECK-JT-NEXT: [[RC_SROA_43_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_22_0_INSERT_EXT_I8_I]] to i32
65+
; CHECK-JT-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[TMP0]], 0
66+
; CHECK-JT-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN]]
67+
; CHECK-JT: if.then:
68+
; CHECK-JT-NEXT: [[RC_SROA_43_0_EXTRACT_TRUNC7:%.*]] = phi i32 [ [[CALL2_I]], [[_ZL6CALLEEI_EXIT_THREAD]] ], [ [[RC_SROA_43_0_EXTRACT_TRUNC]], [[_ZL6CALLEEI_EXIT]] ]
69+
; CHECK-JT-NEXT: [[CALL1:%.*]] = call signext i32 @dummy(i32 signext 0)
70+
; CHECK-JT-NEXT: br label [[IF_END]]
71+
; CHECK-JT: if.end:
72+
; CHECK-JT-NEXT: [[RC_SROA_43_0_EXTRACT_TRUNC8:%.*]] = phi i32 [ [[RC_SROA_43_0_EXTRACT_TRUNC7]], [[IF_THEN]] ], [ [[RC_SROA_43_0_EXTRACT_TRUNC]], [[_ZL6CALLEEI_EXIT]] ]
73+
; CHECK-JT-NEXT: ret i32 [[RC_SROA_43_0_EXTRACT_TRUNC8]]
2574
;
2675

2776
entry:
@@ -61,7 +110,6 @@ if.end: ; preds = %_ZL6calleei.exit, %
61110
}
62111

63112

64-
define signext i32 @testIB(i32 signext %v) {
65113
; Test with std::pair<int, bool>
66114
; based on the following C++ code
67115
; std::pair<int, bool> callee(int v) {
@@ -74,13 +122,63 @@ define signext i32 @testIB(i32 signext %v) {
74122
; if (rc.second) dummy(0);
75123
; return rc.first;
76124
; }
125+
define signext i32 @testIB(i32 signext %v) {
77126
; CHECK-LABEL: @testIB(
78-
; CHECK: _ZL6calleei.exit:
79-
; CHECK: [[PHIOFOPS:%.*]] = phi i64 [ 4294967296, %if.then.i ], [ {{%.*}}, %if.else.i ]
80-
; CHECK: [[TOBOOL:%.*]] = icmp eq i64 [[PHIOFOPS]], 0
127+
; CHECK-NEXT: entry:
128+
; CHECK-NEXT: [[CALL_I:%.*]] = call signext i32 @dummy(i32 signext [[V:%.*]])
129+
; CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp eq i32 [[CALL_I]], 0
130+
; CHECK-NEXT: br i1 [[TOBOOL_I]], label [[IF_ELSE_I:%.*]], label [[IF_THEN_I:%.*]]
131+
; CHECK: if.then.i:
132+
; CHECK-NEXT: [[CALL1_I:%.*]] = call signext i32 @dummy(i32 signext [[V]])
133+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT_I_I:%.*]] = zext i32 [[CALL1_I]] to i64
134+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I_I:%.*]] = or i64 [[RETVAL_SROA_0_0_INSERT_EXT_I_I]], 4294967296
135+
; CHECK-NEXT: br label [[_ZL6CALLEEI_EXIT:%.*]]
136+
; CHECK: if.else.i:
137+
; CHECK-NEXT: [[DOTLOBIT_I:%.*]] = lshr i32 [[V]], 31
138+
; CHECK-NEXT: [[TMP0:%.*]] = zext i32 [[DOTLOBIT_I]] to i64
139+
; CHECK-NEXT: [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I:%.*]] = shl nuw nsw i64 [[TMP0]], 32
140+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT_I9_I:%.*]] = zext i32 [[V]] to i64
141+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I10_I:%.*]] = or i64 [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I]], [[RETVAL_SROA_0_0_INSERT_EXT_I9_I]]
142+
; CHECK-NEXT: br label [[_ZL6CALLEEI_EXIT]]
143+
; CHECK: _ZL6calleei.exit:
144+
; CHECK-NEXT: [[PHIOFOPS:%.*]] = phi i64 [ 4294967296, [[IF_THEN_I]] ], [ [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I]], [[IF_ELSE_I]] ]
145+
; CHECK-NEXT: [[RETVAL_SROA_0_0_I:%.*]] = phi i64 [ [[RETVAL_SROA_0_0_INSERT_INSERT_I_I]], [[IF_THEN_I]] ], [ [[RETVAL_SROA_0_0_INSERT_INSERT_I10_I]], [[IF_ELSE_I]] ]
146+
; CHECK-NEXT: [[RC_SROA_0_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_0_0_I]] to i32
147+
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[PHIOFOPS]], 0
148+
; CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN:%.*]]
149+
; CHECK: if.then:
150+
; CHECK-NEXT: [[CALL1:%.*]] = call signext i32 @dummy(i32 signext 0)
151+
; CHECK-NEXT: br label [[IF_END]]
152+
; CHECK: if.end:
153+
; CHECK-NEXT: ret i32 [[RC_SROA_0_0_EXTRACT_TRUNC]]
81154
;
82155
; CHECK-JT-LABEL: @testIB(
156+
; CHECK-JT-NEXT: entry:
157+
; CHECK-JT-NEXT: [[CALL_I:%.*]] = call signext i32 @dummy(i32 signext [[V:%.*]])
158+
; CHECK-JT-NEXT: [[TOBOOL_I:%.*]] = icmp eq i32 [[CALL_I]], 0
159+
; CHECK-JT-NEXT: br i1 [[TOBOOL_I]], label [[_ZL6CALLEEI_EXIT:%.*]], label [[_ZL6CALLEEI_EXIT_THREAD:%.*]]
83160
; CHECK-JT: _ZL6calleei.exit.thread:
161+
; CHECK-JT-NEXT: [[CALL1_I:%.*]] = call signext i32 @dummy(i32 signext [[V]])
162+
; CHECK-JT-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT_I_I:%.*]] = zext i32 [[CALL1_I]] to i64
163+
; CHECK-JT-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I_I:%.*]] = or i64 [[RETVAL_SROA_0_0_INSERT_EXT_I_I]], 4294967296
164+
; CHECK-JT-NEXT: [[RC_SROA_0_0_EXTRACT_TRUNC3:%.*]] = trunc i64 [[RETVAL_SROA_0_0_INSERT_INSERT_I_I]] to i32
165+
; CHECK-JT-NEXT: br label [[IF_THEN:%.*]]
166+
; CHECK-JT: _ZL6calleei.exit:
167+
; CHECK-JT-NEXT: [[DOTLOBIT_I:%.*]] = lshr i32 [[V]], 31
168+
; CHECK-JT-NEXT: [[TMP0:%.*]] = zext i32 [[DOTLOBIT_I]] to i64
169+
; CHECK-JT-NEXT: [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I:%.*]] = shl nuw nsw i64 [[TMP0]], 32
170+
; CHECK-JT-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT_I9_I:%.*]] = zext i32 [[V]] to i64
171+
; CHECK-JT-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT_I10_I:%.*]] = or i64 [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I]], [[RETVAL_SROA_0_0_INSERT_EXT_I9_I]]
172+
; CHECK-JT-NEXT: [[RC_SROA_0_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_0_0_INSERT_INSERT_I10_I]] to i32
173+
; CHECK-JT-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[RETVAL_SROA_2_0_INSERT_SHIFT_I8_I]], 0
174+
; CHECK-JT-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN]]
175+
; CHECK-JT: if.then:
176+
; CHECK-JT-NEXT: [[RC_SROA_0_0_EXTRACT_TRUNC5:%.*]] = phi i32 [ [[RC_SROA_0_0_EXTRACT_TRUNC3]], [[_ZL6CALLEEI_EXIT_THREAD]] ], [ [[RC_SROA_0_0_EXTRACT_TRUNC]], [[_ZL6CALLEEI_EXIT]] ]
177+
; CHECK-JT-NEXT: [[CALL1:%.*]] = call signext i32 @dummy(i32 signext 0)
178+
; CHECK-JT-NEXT: br label [[IF_END]]
179+
; CHECK-JT: if.end:
180+
; CHECK-JT-NEXT: [[RC_SROA_0_0_EXTRACT_TRUNC6:%.*]] = phi i32 [ [[RC_SROA_0_0_EXTRACT_TRUNC5]], [[IF_THEN]] ], [ [[RC_SROA_0_0_EXTRACT_TRUNC]], [[_ZL6CALLEEI_EXIT]] ]
181+
; CHECK-JT-NEXT: ret i32 [[RC_SROA_0_0_EXTRACT_TRUNC6]]
84182
;
85183

86184
entry:

0 commit comments

Comments
 (0)