@@ -3287,11 +3287,8 @@ define i32 @add_reduce_sqr_sum_flipped(i32 %a, i32 %b) {
3287
3287
define i32 @add_reduce_sqr_sum_flipped2 (i32 %a , i32 %bx ) {
3288
3288
; CHECK-LABEL: @add_reduce_sqr_sum_flipped2(
3289
3289
; CHECK-NEXT: [[B:%.*]] = xor i32 [[BX:%.*]], 42
3290
- ; CHECK-NEXT: [[A_SQ:%.*]] = mul nsw i32 [[A:%.*]], [[A]]
3291
- ; CHECK-NEXT: [[TWO_A:%.*]] = shl i32 [[A]], 1
3292
- ; CHECK-NEXT: [[TWO_A_PLUS_B:%.*]] = add i32 [[TWO_A]], [[B]]
3293
- ; CHECK-NEXT: [[MUL:%.*]] = mul i32 [[B]], [[TWO_A_PLUS_B]]
3294
- ; CHECK-NEXT: [[ADD:%.*]] = add i32 [[MUL]], [[A_SQ]]
3290
+ ; CHECK-NEXT: [[TMP1:%.*]] = add i32 [[B]], [[A:%.*]]
3291
+ ; CHECK-NEXT: [[ADD:%.*]] = mul i32 [[TMP1]], [[TMP1]]
3295
3292
; CHECK-NEXT: ret i32 [[ADD]]
3296
3293
;
3297
3294
%b = xor i32 %bx , 42 ; thwart complexity-based canonicalization
@@ -3350,11 +3347,8 @@ define i32 @add_reduce_sqr_sum_order2_flipped(i32 %a, i32 %b) {
3350
3347
define i32 @add_reduce_sqr_sum_order2_flipped2 (i32 %a , i32 %bx ) {
3351
3348
; CHECK-LABEL: @add_reduce_sqr_sum_order2_flipped2(
3352
3349
; CHECK-NEXT: [[B:%.*]] = xor i32 [[BX:%.*]], 42
3353
- ; CHECK-NEXT: [[A_SQ:%.*]] = mul nsw i32 [[A:%.*]], [[A]]
3354
- ; CHECK-NEXT: [[TWOA:%.*]] = shl i32 [[A]], 1
3355
- ; CHECK-NEXT: [[TWOAB1:%.*]] = add i32 [[B]], [[TWOA]]
3356
- ; CHECK-NEXT: [[TWOAB_B2:%.*]] = mul i32 [[B]], [[TWOAB1]]
3357
- ; CHECK-NEXT: [[AB2:%.*]] = add i32 [[A_SQ]], [[TWOAB_B2]]
3350
+ ; CHECK-NEXT: [[TMP1:%.*]] = add i32 [[B]], [[A:%.*]]
3351
+ ; CHECK-NEXT: [[AB2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
3358
3352
; CHECK-NEXT: ret i32 [[AB2]]
3359
3353
;
3360
3354
%b = xor i32 %bx , 42 ; thwart complexity-based canonicalization
@@ -3370,11 +3364,8 @@ define i32 @add_reduce_sqr_sum_order2_flipped2(i32 %a, i32 %bx) {
3370
3364
define i32 @add_reduce_sqr_sum_order2_flipped3 (i32 %a , i32 %bx ) {
3371
3365
; CHECK-LABEL: @add_reduce_sqr_sum_order2_flipped3(
3372
3366
; CHECK-NEXT: [[B:%.*]] = xor i32 [[BX:%.*]], 42
3373
- ; CHECK-NEXT: [[A_SQ:%.*]] = mul nsw i32 [[A:%.*]], [[A]]
3374
- ; CHECK-NEXT: [[TWOA:%.*]] = shl i32 [[A]], 1
3375
- ; CHECK-NEXT: [[B_SQ1:%.*]] = add i32 [[TWOA]], [[B]]
3376
- ; CHECK-NEXT: [[TWOAB_B2:%.*]] = mul i32 [[B]], [[B_SQ1]]
3377
- ; CHECK-NEXT: [[AB2:%.*]] = add i32 [[A_SQ]], [[TWOAB_B2]]
3367
+ ; CHECK-NEXT: [[TMP1:%.*]] = add i32 [[B]], [[A:%.*]]
3368
+ ; CHECK-NEXT: [[AB2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
3378
3369
; CHECK-NEXT: ret i32 [[AB2]]
3379
3370
;
3380
3371
%b = xor i32 %bx , 42 ; thwart complexity-based canonicalization
@@ -3570,12 +3561,8 @@ define i32 @add_reduce_sqr_sum_order5_flipped2(i32 %a, i32 %b) {
3570
3561
define i32 @add_reduce_sqr_sum_order5_flipped3 (i32 %ax , i32 %b ) {
3571
3562
; CHECK-LABEL: @add_reduce_sqr_sum_order5_flipped3(
3572
3563
; CHECK-NEXT: [[A:%.*]] = xor i32 [[AX:%.*]], 42
3573
- ; CHECK-NEXT: [[A_SQ:%.*]] = mul nsw i32 [[A]], [[A]]
3574
- ; CHECK-NEXT: [[TWOB:%.*]] = shl i32 [[B:%.*]], 1
3575
- ; CHECK-NEXT: [[TWOAB:%.*]] = mul i32 [[A]], [[TWOB]]
3576
- ; CHECK-NEXT: [[B_SQ:%.*]] = mul i32 [[B]], [[B]]
3577
- ; CHECK-NEXT: [[A2_B2:%.*]] = add i32 [[A_SQ]], [[B_SQ]]
3578
- ; CHECK-NEXT: [[AB2:%.*]] = add i32 [[TWOAB]], [[A2_B2]]
3564
+ ; CHECK-NEXT: [[TMP1:%.*]] = add i32 [[A]], [[B:%.*]]
3565
+ ; CHECK-NEXT: [[AB2:%.*]] = mul i32 [[TMP1]], [[TMP1]]
3579
3566
; CHECK-NEXT: ret i32 [[AB2]]
3580
3567
;
3581
3568
%a = xor i32 %ax , 42 ; thwart complexity-based canonicalization
0 commit comments