Skip to content

Commit 9039253

Browse files
nikicgithub-actions[bot]
authored andcommitted
Automerge: [SpeculativeExecution] Generate test checks (NFC)
Also replace the undef values with function arguments.
2 parents 7c8feb6 + cceca04 commit 9039253

File tree

1 file changed

+122
-55
lines changed

1 file changed

+122
-55
lines changed

llvm/test/Transforms/SpeculativeExecution/spec-casts.ll

Lines changed: 122 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,147 +1,214 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
12
; RUN: opt < %s -S -passes=speculative-execution \
23
; RUN: -spec-exec-max-speculation-cost 4 -spec-exec-max-not-hoisted 3 \
34
; RUN: | FileCheck %s
45

5-
; CHECK-LABEL: @ifThen_bitcast(
6-
; CHECK: bitcast
7-
; CHECK: br i1 true
8-
define void @ifThen_bitcast() {
6+
define void @ifThen_bitcast(i32 %arg) {
7+
; CHECK-LABEL: define void @ifThen_bitcast(
8+
; CHECK-SAME: i32 [[ARG:%.*]]) {
9+
; CHECK-NEXT: [[X:%.*]] = bitcast i32 [[ARG]] to float
10+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
11+
; CHECK: [[A]]:
12+
; CHECK-NEXT: br label %[[B]]
13+
; CHECK: [[B]]:
14+
; CHECK-NEXT: ret void
15+
;
916
br i1 true, label %a, label %b
1017

1118
a:
12-
%x = bitcast i32 undef to float
19+
%x = bitcast i32 %arg to float
1320
br label %b
1421

1522
b:
1623
ret void
1724
}
1825

19-
; CHECK-LABEL: @ifThen_ptrtoint(
20-
; CHECK: ptrtoint
21-
; CHECK: br i1 true
22-
define void @ifThen_ptrtoint() {
26+
define void @ifThen_ptrtoint(ptr %arg) {
27+
; CHECK-LABEL: define void @ifThen_ptrtoint(
28+
; CHECK-SAME: ptr [[ARG:%.*]]) {
29+
; CHECK-NEXT: [[X:%.*]] = ptrtoint ptr [[ARG]] to i64
30+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
31+
; CHECK: [[A]]:
32+
; CHECK-NEXT: br label %[[B]]
33+
; CHECK: [[B]]:
34+
; CHECK-NEXT: ret void
35+
;
2336
br i1 true, label %a, label %b
2437

2538
a:
26-
%x = ptrtoint ptr undef to i64
39+
%x = ptrtoint ptr %arg to i64
2740
br label %b
2841

2942
b:
3043
ret void
3144
}
3245

33-
; CHECK-LABEL: @ifThen_inttoptr(
34-
; CHECK: inttoptr
35-
; CHECK: br i1 true
36-
define void @ifThen_inttoptr() {
46+
define void @ifThen_inttoptr(i64 %arg) {
47+
; CHECK-LABEL: define void @ifThen_inttoptr(
48+
; CHECK-SAME: i64 [[ARG:%.*]]) {
49+
; CHECK-NEXT: [[X:%.*]] = inttoptr i64 [[ARG]] to ptr
50+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
51+
; CHECK: [[A]]:
52+
; CHECK-NEXT: br label %[[B]]
53+
; CHECK: [[B]]:
54+
; CHECK-NEXT: ret void
55+
;
3756
br i1 true, label %a, label %b
3857

3958
a:
40-
%x = inttoptr i64 undef to ptr
59+
%x = inttoptr i64 %arg to ptr
4160
br label %b
4261

4362
b:
4463
ret void
4564
}
4665

47-
; CHECK-LABEL: @ifThen_addrspacecast(
48-
; CHECK: addrspacecast
49-
; CHECK: br i1 true
50-
define void @ifThen_addrspacecast() {
66+
define void @ifThen_addrspacecast(ptr %arg) {
67+
; CHECK-LABEL: define void @ifThen_addrspacecast(
68+
; CHECK-SAME: ptr [[ARG:%.*]]) {
69+
; CHECK-NEXT: [[X:%.*]] = addrspacecast ptr [[ARG]] to ptr addrspace(1)
70+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
71+
; CHECK: [[A]]:
72+
; CHECK-NEXT: br label %[[B]]
73+
; CHECK: [[B]]:
74+
; CHECK-NEXT: ret void
75+
;
5176
br i1 true, label %a, label %b
5277
a:
53-
%x = addrspacecast ptr undef to ptr addrspace(1)
78+
%x = addrspacecast ptr %arg to ptr addrspace(1)
5479
br label %b
5580

5681
b:
5782
ret void
5883
}
5984

60-
; CHECK-LABEL: @ifThen_fptoui(
61-
; CHECK: fptoui
62-
; CHECK: br i1 true
63-
define void @ifThen_fptoui() {
85+
define void @ifThen_fptoui(float %arg) {
86+
; CHECK-LABEL: define void @ifThen_fptoui(
87+
; CHECK-SAME: float [[ARG:%.*]]) {
88+
; CHECK-NEXT: [[X:%.*]] = fptoui float [[ARG]] to i32
89+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
90+
; CHECK: [[A]]:
91+
; CHECK-NEXT: br label %[[B]]
92+
; CHECK: [[B]]:
93+
; CHECK-NEXT: ret void
94+
;
6495
br i1 true, label %a, label %b
6596
a:
66-
%x = fptoui float undef to i32
97+
%x = fptoui float %arg to i32
6798
br label %b
6899

69100
b:
70101
ret void
71102
}
72103

73-
; CHECK-LABEL: @ifThen_fptosi(
74-
; CHECK: fptosi
75-
; CHECK: br i1 true
76-
define void @ifThen_fptosi() {
104+
define void @ifThen_fptosi(float %arg) {
105+
; CHECK-LABEL: define void @ifThen_fptosi(
106+
; CHECK-SAME: float [[ARG:%.*]]) {
107+
; CHECK-NEXT: [[X:%.*]] = fptosi float [[ARG]] to i32
108+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
109+
; CHECK: [[A]]:
110+
; CHECK-NEXT: br label %[[B]]
111+
; CHECK: [[B]]:
112+
; CHECK-NEXT: ret void
113+
;
77114
br i1 true, label %a, label %b
78115
a:
79-
%x = fptosi float undef to i32
116+
%x = fptosi float %arg to i32
80117
br label %b
81118

82119
b:
83120
ret void
84121
}
85122

86-
; CHECK-LABEL: @ifThen_uitofp(
87-
; CHECK: uitofp
88-
; CHECK: br i1 true
89-
define void @ifThen_uitofp() {
123+
define void @ifThen_uitofp(i32 %arg) {
124+
; CHECK-LABEL: define void @ifThen_uitofp(
125+
; CHECK-SAME: i32 [[ARG:%.*]]) {
126+
; CHECK-NEXT: [[X:%.*]] = uitofp i32 [[ARG]] to float
127+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
128+
; CHECK: [[A]]:
129+
; CHECK-NEXT: br label %[[B]]
130+
; CHECK: [[B]]:
131+
; CHECK-NEXT: ret void
132+
;
90133
br i1 true, label %a, label %b
91134
a:
92-
%x = uitofp i32 undef to float
135+
%x = uitofp i32 %arg to float
93136
br label %b
94137

95138
b:
96139
ret void
97140
}
98141

99-
; CHECK-LABEL: @ifThen_sitofp(
100-
; CHECK: sitofp
101-
; CHECK: br i1 true
102-
define void @ifThen_sitofp() {
142+
define void @ifThen_sitofp(i32 %arg) {
143+
; CHECK-LABEL: define void @ifThen_sitofp(
144+
; CHECK-SAME: i32 [[ARG:%.*]]) {
145+
; CHECK-NEXT: [[X:%.*]] = sitofp i32 [[ARG]] to float
146+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
147+
; CHECK: [[A]]:
148+
; CHECK-NEXT: br label %[[B]]
149+
; CHECK: [[B]]:
150+
; CHECK-NEXT: ret void
151+
;
103152
br i1 true, label %a, label %b
104153
a:
105-
%x = sitofp i32 undef to float
154+
%x = sitofp i32 %arg to float
106155
br label %b
107156

108157
b:
109158
ret void
110159
}
111160

112-
; CHECK-LABEL: @ifThen_fpext(
113-
; CHECK: fpext
114-
; CHECK: br i1 true
115-
define void @ifThen_fpext() {
161+
define void @ifThen_fpext(float %arg) {
162+
; CHECK-LABEL: define void @ifThen_fpext(
163+
; CHECK-SAME: float [[ARG:%.*]]) {
164+
; CHECK-NEXT: [[X:%.*]] = fpext float [[ARG]] to double
165+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
166+
; CHECK: [[A]]:
167+
; CHECK-NEXT: br label %[[B]]
168+
; CHECK: [[B]]:
169+
; CHECK-NEXT: ret void
170+
;
116171
br i1 true, label %a, label %b
117172
a:
118-
%x = fpext float undef to double
173+
%x = fpext float %arg to double
119174
br label %b
120175

121176
b:
122177
ret void
123178
}
124179

125-
; CHECK-LABEL: @ifThen_fptrunc(
126-
; CHECK: fptrunc
127-
; CHECK: br i1 true
128-
define void @ifThen_fptrunc() {
180+
define void @ifThen_fptrunc(double %arg) {
181+
; CHECK-LABEL: define void @ifThen_fptrunc(
182+
; CHECK-SAME: double [[ARG:%.*]]) {
183+
; CHECK-NEXT: [[X:%.*]] = fptrunc double [[ARG]] to float
184+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
185+
; CHECK: [[A]]:
186+
; CHECK-NEXT: br label %[[B]]
187+
; CHECK: [[B]]:
188+
; CHECK-NEXT: ret void
189+
;
129190
br i1 true, label %a, label %b
130191
a:
131-
%x = fptrunc double undef to float
192+
%x = fptrunc double %arg to float
132193
br label %b
133194

134195
b:
135196
ret void
136197
}
137198

138-
; CHECK-LABEL: @ifThen_trunc(
139-
; CHECK: trunc
140-
; CHECK: br i1 true
141-
define void @ifThen_trunc() {
199+
define void @ifThen_trunc(i32 %arg) {
200+
; CHECK-LABEL: define void @ifThen_trunc(
201+
; CHECK-SAME: i32 [[ARG:%.*]]) {
202+
; CHECK-NEXT: [[X:%.*]] = trunc i32 [[ARG]] to i16
203+
; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
204+
; CHECK: [[A]]:
205+
; CHECK-NEXT: br label %[[B]]
206+
; CHECK: [[B]]:
207+
; CHECK-NEXT: ret void
208+
;
142209
br i1 true, label %a, label %b
143210
a:
144-
%x = trunc i32 undef to i16
211+
%x = trunc i32 %arg to i16
145212
br label %b
146213

147214
b:

0 commit comments

Comments
 (0)