@@ -89,10 +89,10 @@ subroutine vec_st_vi4i4via4(arg1, arg2, arg3, i)
89
89
90
90
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
91
91
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
92
- ! LLVMIR: %[[iextsub:.*]] = sub i64 %[[iext]], 1
93
- ! LLVMIR: %[[iextmul:.*]] = mul i64 %[[iextsub]], 1
94
- ! LLVMIR: %[[iextmul2:.*]] = mul i64 %[[iextmul]], 1
95
- ! LLVMIR: %[[iextadd:.*]] = add i64 %[[iextmul2]], 0
92
+ ! LLVMIR: %[[iextsub:.*]] = sub nsw i64 %[[iext]], 1
93
+ ! LLVMIR: %[[iextmul:.*]] = mul nsw i64 %[[iextsub]], 1
94
+ ! LLVMIR: %[[iextmul2:.*]] = mul nsw i64 %[[iextmul]], 1
95
+ ! LLVMIR: %[[iextadd:.*]] = add nsw i64 %[[iextmul2]], 0
96
96
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iextadd]]
97
97
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
98
98
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -206,10 +206,10 @@ subroutine vec_ste_vi4i4ia4(arg1, arg2, arg3, i)
206
206
207
207
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
208
208
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
209
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
210
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
211
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
212
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
209
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
210
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
211
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
212
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
213
213
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
214
214
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
215
215
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -244,10 +244,10 @@ subroutine vec_stxv_test_vi4i8ia4(arg1, arg2, arg3, i)
244
244
245
245
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
246
246
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
247
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
248
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
249
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
250
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
247
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
248
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
249
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
250
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
251
251
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
252
252
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
253
253
! LLVMIR: %[[arg2:.*]] = load i64, ptr %1, align 8
@@ -278,10 +278,10 @@ subroutine vec_stxv_test_vi4i4vai4(arg1, arg2, arg3, i)
278
278
279
279
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
280
280
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
281
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
282
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
283
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
284
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
281
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
282
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
283
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
284
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
285
285
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iadd]]
286
286
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
287
287
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -317,10 +317,10 @@ subroutine vec_xst_test_vi4i8ia4(arg1, arg2, arg3, i)
317
317
318
318
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
319
319
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
320
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
321
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
322
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
323
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
320
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
321
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
322
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
323
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
324
324
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
325
325
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
326
326
! LLVMIR: %[[arg2:.*]] = load i64, ptr %1, align 8
@@ -351,10 +351,10 @@ subroutine vec_xst_test_vi4i4vai4(arg1, arg2, arg3, i)
351
351
352
352
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
353
353
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
354
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
355
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
356
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
357
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
354
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
355
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
356
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
357
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
358
358
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iadd]]
359
359
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
360
360
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -390,10 +390,10 @@ subroutine vec_xst_be_test_vi4i8ia4(arg1, arg2, arg3, i)
390
390
391
391
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
392
392
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
393
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
394
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
395
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
396
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
393
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
394
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
395
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
396
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
397
397
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
398
398
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
399
399
! LLVMIR: %[[arg2:.*]] = load i64, ptr %1, align 8
@@ -426,10 +426,10 @@ subroutine vec_xst_be_test_vi4i4vai4(arg1, arg2, arg3, i)
426
426
427
427
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
428
428
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
429
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
430
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
431
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
432
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
429
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
430
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
431
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
432
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
433
433
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iadd]]
434
434
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
435
435
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -467,10 +467,10 @@ subroutine vec_xstd2_test_vi4i8ia4(arg1, arg2, arg3, i)
467
467
468
468
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
469
469
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
470
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
471
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
472
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
473
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
470
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
471
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
472
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
473
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
474
474
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
475
475
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
476
476
! LLVMIR: %[[arg2:.*]] = load i64, ptr %1, align 8
@@ -503,10 +503,10 @@ subroutine vec_xstd2_test_vi4i4vai4(arg1, arg2, arg3, i)
503
503
504
504
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
505
505
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
506
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
507
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
508
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
509
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
506
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
507
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
508
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
509
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
510
510
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iadd]]
511
511
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
512
512
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
@@ -543,10 +543,10 @@ subroutine vec_xstw4_test_vi4i8ia4(arg1, arg2, arg3, i)
543
543
544
544
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
545
545
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
546
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
547
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
548
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
549
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
546
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
547
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
548
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
549
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
550
550
! LLVMIR: %[[gep1:.*]] = getelementptr i32, ptr %2, i64 %[[iadd]]
551
551
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
552
552
! LLVMIR: %[[arg2:.*]] = load i64, ptr %1, align 8
@@ -578,10 +578,10 @@ subroutine vec_xstw4_test_vi4i4vai4(arg1, arg2, arg3, i)
578
578
579
579
! LLVMIR: %[[i:.*]] = load i32, ptr %3, align 4
580
580
! LLVMIR: %[[iext:.*]] = sext i32 %[[i]] to i64
581
- ! LLVMIR: %[[isub:.*]] = sub i64 %[[iext]], 1
582
- ! LLVMIR: %[[imul1:.*]] = mul i64 %[[isub]], 1
583
- ! LLVMIR: %[[imul2:.*]] = mul i64 %[[imul1]], 1
584
- ! LLVMIR: %[[iadd:.*]] = add i64 %[[imul2]], 0
581
+ ! LLVMIR: %[[isub:.*]] = sub nsw i64 %[[iext]], 1
582
+ ! LLVMIR: %[[imul1:.*]] = mul nsw i64 %[[isub]], 1
583
+ ! LLVMIR: %[[imul2:.*]] = mul nsw i64 %[[imul1]], 1
584
+ ! LLVMIR: %[[iadd:.*]] = add nsw i64 %[[imul2]], 0
585
585
! LLVMIR: %[[gep1:.*]] = getelementptr <4 x i32>, ptr %2, i64 %[[iadd]]
586
586
! LLVMIR: %[[arg1:.*]] = load <4 x i32>, ptr %0, align 16
587
587
! LLVMIR: %[[arg2:.*]] = load i32, ptr %1, align 4
0 commit comments