8
8
define void @signed_icmp_mul_common_multiplicand (ptr %loc ) vscale_range(1 ,1073741824 ) {
9
9
; CHECK-LABEL: define void @signed_icmp_mul_common_multiplicand(
10
10
; CHECK-SAME: ptr [[LOC:%.*]]) #[[ATTR0:[0-9]+]] {
11
- ; CHECK-NEXT: [[ENTRY:.*]]:
12
- ; CHECK-NEXT: [[Z:%.*]] = call i32 @llvm.vscale.i32()
13
- ; CHECK-NEXT: [[X:%.*]] = mul nsw i32 9, [[Z]]
14
- ; CHECK-NEXT: [[Y:%.*]] = mul nsw i32 5, [[Z]]
11
+ ; CHECK-NEXT: [[ENTRY:.*:]]
15
12
; CHECK-NEXT: br label %[[LOOP:.*]]
16
13
; CHECK: [[LOOP]]:
17
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
18
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
19
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
20
- ; CHECK-NEXT: [[COND:%.*]] = icmp slt i32 [[X]], [[Y]]
21
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
14
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
15
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
22
16
; CHECK: [[EXIT]]:
23
17
; CHECK-NEXT: ret void
24
18
;
@@ -42,17 +36,11 @@ exit:
42
36
define void @signed_icmp_mul_common_multiplicand_commuted (ptr %loc ) vscale_range(1 ,1073741824 ) {
43
37
; CHECK-LABEL: define void @signed_icmp_mul_common_multiplicand_commuted(
44
38
; CHECK-SAME: ptr [[LOC:%.*]]) #[[ATTR0]] {
45
- ; CHECK-NEXT: [[ENTRY:.*]]:
46
- ; CHECK-NEXT: [[Z:%.*]] = call i32 @llvm.vscale.i32()
47
- ; CHECK-NEXT: [[X:%.*]] = mul nsw i32 [[Z]], 9
48
- ; CHECK-NEXT: [[Y:%.*]] = mul nsw i32 [[Z]], 5
39
+ ; CHECK-NEXT: [[ENTRY:.*:]]
49
40
; CHECK-NEXT: br label %[[LOOP:.*]]
50
41
; CHECK: [[LOOP]]:
51
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
52
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
53
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
54
- ; CHECK-NEXT: [[COND:%.*]] = icmp slt i32 [[X]], [[Y]]
55
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
42
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
43
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
56
44
; CHECK: [[EXIT]]:
57
45
; CHECK-NEXT: ret void
58
46
;
@@ -76,18 +64,11 @@ exit:
76
64
define void @signed_icmp_mul_common_multiplicand_mixed_arith (ptr %loc ) vscale_range(1 ,1073741824 ) {
77
65
; CHECK-LABEL: define void @signed_icmp_mul_common_multiplicand_mixed_arith(
78
66
; CHECK-SAME: ptr [[LOC:%.*]]) #[[ATTR0]] {
79
- ; CHECK-NEXT: [[ENTRY:.*]]:
80
- ; CHECK-NEXT: [[VS1:%.*]] = call i32 @llvm.vscale.i32()
81
- ; CHECK-NEXT: [[VS2:%.*]] = call i32 @llvm.vscale.i32()
82
- ; CHECK-NEXT: [[X:%.*]] = mul nsw i32 9, [[VS1]]
83
- ; CHECK-NEXT: [[Y:%.*]] = shl nsw i32 [[VS2]], 2
67
+ ; CHECK-NEXT: [[ENTRY:.*:]]
84
68
; CHECK-NEXT: br label %[[LOOP:.*]]
85
69
; CHECK: [[LOOP]]:
86
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
87
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
88
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
89
- ; CHECK-NEXT: [[COND:%.*]] = icmp slt i32 [[X]], [[Y]]
90
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
70
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
71
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
91
72
; CHECK: [[EXIT]]:
92
73
; CHECK-NEXT: ret void
93
74
;
@@ -212,17 +193,11 @@ exit:
212
193
define void @unsigned_icmp_mul_common_multiplicand (ptr %loc ) {
213
194
; CHECK-LABEL: define void @unsigned_icmp_mul_common_multiplicand(
214
195
; CHECK-SAME: ptr [[LOC:%.*]]) {
215
- ; CHECK-NEXT: [[ENTRY:.*]]:
216
- ; CHECK-NEXT: [[Z:%.*]] = call i32 @llvm.vscale.i32()
217
- ; CHECK-NEXT: [[X:%.*]] = mul nuw i32 9, [[Z]]
218
- ; CHECK-NEXT: [[Y:%.*]] = mul nuw i32 5, [[Z]]
196
+ ; CHECK-NEXT: [[ENTRY:.*:]]
219
197
; CHECK-NEXT: br label %[[LOOP:.*]]
220
198
; CHECK: [[LOOP]]:
221
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
222
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
223
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
224
- ; CHECK-NEXT: [[COND:%.*]] = icmp ult i32 [[X]], [[Y]]
225
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
199
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
200
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
226
201
; CHECK: [[EXIT]]:
227
202
; CHECK-NEXT: ret void
228
203
;
@@ -246,17 +221,11 @@ exit:
246
221
define void @unsigned_icmp_mul_common_multiplicand_commuted (ptr %loc ) {
247
222
; CHECK-LABEL: define void @unsigned_icmp_mul_common_multiplicand_commuted(
248
223
; CHECK-SAME: ptr [[LOC:%.*]]) {
249
- ; CHECK-NEXT: [[ENTRY:.*]]:
250
- ; CHECK-NEXT: [[Z:%.*]] = call i32 @llvm.vscale.i32()
251
- ; CHECK-NEXT: [[X:%.*]] = mul nuw i32 [[Z]], 9
252
- ; CHECK-NEXT: [[Y:%.*]] = mul nuw i32 [[Z]], 5
224
+ ; CHECK-NEXT: [[ENTRY:.*:]]
253
225
; CHECK-NEXT: br label %[[LOOP:.*]]
254
226
; CHECK: [[LOOP]]:
255
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
256
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
257
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
258
- ; CHECK-NEXT: [[COND:%.*]] = icmp ult i32 [[X]], [[Y]]
259
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
227
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
228
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
260
229
; CHECK: [[EXIT]]:
261
230
; CHECK-NEXT: ret void
262
231
;
@@ -280,18 +249,11 @@ exit:
280
249
define void @unsigned_icmp_mul_common_multiplicand_mixed_arith (ptr %loc ) {
281
250
; CHECK-LABEL: define void @unsigned_icmp_mul_common_multiplicand_mixed_arith(
282
251
; CHECK-SAME: ptr [[LOC:%.*]]) {
283
- ; CHECK-NEXT: [[ENTRY:.*]]:
284
- ; CHECK-NEXT: [[VS1:%.*]] = call i32 @llvm.vscale.i32()
285
- ; CHECK-NEXT: [[VS2:%.*]] = call i32 @llvm.vscale.i32()
286
- ; CHECK-NEXT: [[X:%.*]] = mul nuw i32 9, [[VS1]]
287
- ; CHECK-NEXT: [[Y:%.*]] = shl nuw i32 [[VS2]], 2
252
+ ; CHECK-NEXT: [[ENTRY:.*:]]
288
253
; CHECK-NEXT: br label %[[LOOP:.*]]
289
254
; CHECK: [[LOOP]]:
290
- ; CHECK-NEXT: [[IDX:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[IDX_DEC:%.*]], %[[LOOP]] ]
291
- ; CHECK-NEXT: store i32 [[IDX]], ptr [[LOC]], align 4
292
- ; CHECK-NEXT: [[IDX_DEC]] = add nuw i32 [[IDX]], 1
293
- ; CHECK-NEXT: [[COND:%.*]] = icmp ult i32 [[X]], [[Y]]
294
- ; CHECK-NEXT: br i1 [[COND]], label %[[LOOP]], label %[[EXIT:.*]]
255
+ ; CHECK-NEXT: store i32 0, ptr [[LOC]], align 4
256
+ ; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
295
257
; CHECK: [[EXIT]]:
296
258
; CHECK-NEXT: ret void
297
259
;
0 commit comments