@@ -86,12 +86,9 @@ define i64 @test_udiv(i1 %c) {
86
86
; CHECK-NEXT: entry:
87
87
; CHECK-NEXT: br label [[LOOP:%.*]]
88
88
; CHECK: loop:
89
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
90
- ; CHECK-NEXT: [[IV_NEXT]] = udiv i64 [[IV]], 3
91
89
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
92
90
; CHECK: exit:
93
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 16
94
- ; CHECK-NEXT: ret i64 [[RES]]
91
+ ; CHECK-NEXT: ret i64 0
95
92
;
96
93
entry:
97
94
br label %loop
@@ -109,12 +106,9 @@ define i64 @test_sdiv(i1 %c) {
109
106
; CHECK-NEXT: entry:
110
107
; CHECK-NEXT: br label [[LOOP:%.*]]
111
108
; CHECK: loop:
112
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ -9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
113
- ; CHECK-NEXT: [[IV_NEXT]] = sdiv i64 [[IV]], -3
114
109
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
115
110
; CHECK: exit:
116
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 16
117
- ; CHECK-NEXT: ret i64 [[RES]]
111
+ ; CHECK-NEXT: ret i64 16
118
112
;
119
113
entry:
120
114
br label %loop
@@ -132,12 +126,9 @@ define i64 @test_sdiv2(i1 %c) {
132
126
; CHECK-NEXT: entry:
133
127
; CHECK-NEXT: br label [[LOOP:%.*]]
134
128
; CHECK: loop:
135
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ -9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
136
- ; CHECK-NEXT: [[IV_NEXT]] = sdiv i64 [[IV]], 3
137
129
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
138
130
; CHECK: exit:
139
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 16
140
- ; CHECK-NEXT: ret i64 [[RES]]
131
+ ; CHECK-NEXT: ret i64 16
141
132
;
142
133
entry:
143
134
br label %loop
@@ -155,12 +146,9 @@ define i64 @test_sdiv3(i1 %c) {
155
146
; CHECK-NEXT: entry:
156
147
; CHECK-NEXT: br label [[LOOP:%.*]]
157
148
; CHECK: loop:
158
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
159
- ; CHECK-NEXT: [[IV_NEXT]] = sdiv i64 [[IV]], -3
160
149
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
161
150
; CHECK: exit:
162
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], -16
163
- ; CHECK-NEXT: ret i64 [[RES]]
151
+ ; CHECK-NEXT: ret i64 0
164
152
;
165
153
entry:
166
154
br label %loop
@@ -178,12 +166,9 @@ define i64 @test_urem(i1 %c) {
178
166
; CHECK-NEXT: entry:
179
167
; CHECK-NEXT: br label [[LOOP:%.*]]
180
168
; CHECK: loop:
181
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 3, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
182
- ; CHECK-NEXT: [[IV_NEXT]] = urem i64 9, [[IV]]
183
169
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
184
170
; CHECK: exit:
185
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 4
186
- ; CHECK-NEXT: ret i64 [[RES]]
171
+ ; CHECK-NEXT: ret i64 0
187
172
;
188
173
entry:
189
174
br label %loop
@@ -201,12 +186,9 @@ define i64 @test_srem(i1 %c) {
201
186
; CHECK-NEXT: entry:
202
187
; CHECK-NEXT: br label [[LOOP:%.*]]
203
188
; CHECK: loop:
204
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ -9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
205
- ; CHECK-NEXT: [[IV_NEXT]] = srem i64 [[IV]], 3
206
189
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
207
190
; CHECK: exit:
208
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 16
209
- ; CHECK-NEXT: ret i64 [[RES]]
191
+ ; CHECK-NEXT: ret i64 16
210
192
;
211
193
entry:
212
194
br label %loop
@@ -224,12 +206,9 @@ define i64 @test_srem2(i1 %c) {
224
206
; CHECK-NEXT: entry:
225
207
; CHECK-NEXT: br label [[LOOP:%.*]]
226
208
; CHECK: loop:
227
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ -9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
228
- ; CHECK-NEXT: [[IV_NEXT]] = srem i64 [[IV]], 3
229
209
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
230
210
; CHECK: exit:
231
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 16
232
- ; CHECK-NEXT: ret i64 [[RES]]
211
+ ; CHECK-NEXT: ret i64 16
233
212
;
234
213
entry:
235
214
br label %loop
@@ -247,12 +226,9 @@ define i64 @test_srem2_flipped(i1 %c) {
247
226
; CHECK-NEXT: entry:
248
227
; CHECK-NEXT: br label [[LOOP:%.*]]
249
228
; CHECK: loop:
250
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 3, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
251
- ; CHECK-NEXT: [[IV_NEXT]] = srem i64 -9, [[IV]]
252
229
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
253
230
; CHECK: exit:
254
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], 4
255
- ; CHECK-NEXT: ret i64 [[RES]]
231
+ ; CHECK-NEXT: ret i64 0
256
232
;
257
233
entry:
258
234
br label %loop
@@ -270,12 +246,9 @@ define i64 @test_srem3(i1 %c) {
270
246
; CHECK-NEXT: entry:
271
247
; CHECK-NEXT: br label [[LOOP:%.*]]
272
248
; CHECK: loop:
273
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 9, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
274
- ; CHECK-NEXT: [[IV_NEXT]] = srem i64 [[IV]], 3
275
249
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
276
250
; CHECK: exit:
277
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], -16
278
- ; CHECK-NEXT: ret i64 [[RES]]
251
+ ; CHECK-NEXT: ret i64 0
279
252
;
280
253
entry:
281
254
br label %loop
@@ -293,12 +266,9 @@ define i64 @test_srem3_flipped(i1 %c) {
293
266
; CHECK-NEXT: entry:
294
267
; CHECK-NEXT: br label [[LOOP:%.*]]
295
268
; CHECK: loop:
296
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ -3, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
297
- ; CHECK-NEXT: [[IV_NEXT]] = srem i64 9, [[IV]]
298
269
; CHECK-NEXT: br i1 [[C:%.*]], label [[EXIT:%.*]], label [[LOOP]]
299
270
; CHECK: exit:
300
- ; CHECK-NEXT: [[RES:%.*]] = and i64 [[IV]], -4
301
- ; CHECK-NEXT: ret i64 [[RES]]
271
+ ; CHECK-NEXT: ret i64 -4
302
272
;
303
273
entry:
304
274
br label %loop
0 commit comments