@@ -473,10 +473,9 @@ define float @fdiv_fsub_denorm(float %x) {
473
473
474
474
define float @lerp_commute0 (float %a , float %b , float %c ) {
475
475
; CHECK-LABEL: @lerp_commute0(
476
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast float 1.000000e+00, [[C:%.*]]
477
- ; CHECK-NEXT: [[MUL:%.*]] = fmul fast float [[SUB]], [[A:%.*]]
478
- ; CHECK-NEXT: [[BC:%.*]] = fmul fast float [[C]], [[B:%.*]]
479
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast float [[MUL]], [[BC]]
476
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[B:%.*]], [[A:%.*]]
477
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast float [[TMP1]], [[C:%.*]]
478
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast float [[TMP2]], [[A]]
480
479
; CHECK-NEXT: ret float [[ADD]]
481
480
;
482
481
%sub = fsub fast float 1 .0 , %c
@@ -488,10 +487,9 @@ define float @lerp_commute0(float %a, float %b, float %c) {
488
487
489
488
define <2 x float > @lerp_commute1 (<2 x float > %a , <2 x float > %b , <2 x float > %c ) {
490
489
; CHECK-LABEL: @lerp_commute1(
491
- ; CHECK-NEXT: [[SUB:%.*]] = fsub <2 x float> <float 1.000000e+00, float 1.000000e+00>, [[C:%.*]]
492
- ; CHECK-NEXT: [[MUL:%.*]] = fmul <2 x float> [[SUB]], [[A:%.*]]
493
- ; CHECK-NEXT: [[BC:%.*]] = fmul <2 x float> [[C]], [[B:%.*]]
494
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast <2 x float> [[BC]], [[MUL]]
490
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast <2 x float> [[B:%.*]], [[A:%.*]]
491
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast <2 x float> [[TMP1]], [[C:%.*]]
492
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast <2 x float> [[TMP2]], [[A]]
495
493
; CHECK-NEXT: ret <2 x float> [[ADD]]
496
494
;
497
495
%sub = fsub <2 x float > <float 1 .0 , float 1 .0 >, %c
@@ -503,10 +501,9 @@ define <2 x float> @lerp_commute1(<2 x float> %a, <2 x float> %b, <2 x float> %c
503
501
504
502
define float @lerp_commute2 (float %a , float %b , float %c ) {
505
503
; CHECK-LABEL: @lerp_commute2(
506
- ; CHECK-NEXT: [[SUB:%.*]] = fsub float 1.000000e+00, [[C:%.*]]
507
- ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[SUB]], [[A:%.*]]
508
- ; CHECK-NEXT: [[BC:%.*]] = fmul float [[B:%.*]], [[C]]
509
- ; CHECK-NEXT: [[ADD:%.*]] = fadd reassoc nsz float [[MUL]], [[BC]]
504
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub reassoc nsz float [[B:%.*]], [[A:%.*]]
505
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul reassoc nsz float [[TMP1]], [[C:%.*]]
506
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd reassoc nsz float [[TMP2]], [[A]]
510
507
; CHECK-NEXT: ret float [[ADD]]
511
508
;
512
509
%sub = fsub float 1 .0 , %c
@@ -518,10 +515,9 @@ define float @lerp_commute2(float %a, float %b, float %c) {
518
515
519
516
define float @lerp_commute3 (float %a , float %b , float %c ) {
520
517
; CHECK-LABEL: @lerp_commute3(
521
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast float 1.000000e+00, [[C:%.*]]
522
- ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[SUB]], [[A:%.*]]
523
- ; CHECK-NEXT: [[BC:%.*]] = fmul float [[B:%.*]], [[C]]
524
- ; CHECK-NEXT: [[ADD:%.*]] = fadd reassoc ninf nsz float [[BC]], [[MUL]]
518
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub reassoc ninf nsz float [[B:%.*]], [[A:%.*]]
519
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul reassoc ninf nsz float [[TMP1]], [[C:%.*]]
520
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd reassoc ninf nsz float [[TMP2]], [[A]]
525
521
; CHECK-NEXT: ret float [[ADD]]
526
522
;
527
523
%sub = fsub fast float 1 .0 , %c
@@ -533,10 +529,9 @@ define float @lerp_commute3(float %a, float %b, float %c) {
533
529
534
530
define double @lerp_commute4 (double %a , double %b , double %c ) {
535
531
; CHECK-LABEL: @lerp_commute4(
536
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast double 1.000000e+00, [[C:%.*]]
537
- ; CHECK-NEXT: [[MUL:%.*]] = fmul fast double [[SUB]], [[A:%.*]]
538
- ; CHECK-NEXT: [[BC:%.*]] = fmul fast double [[C]], [[B:%.*]]
539
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast double [[MUL]], [[BC]]
532
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast double [[B:%.*]], [[A:%.*]]
533
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast double [[TMP1]], [[C:%.*]]
534
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast double [[TMP2]], [[A]]
540
535
; CHECK-NEXT: ret double [[ADD]]
541
536
;
542
537
%sub = fsub fast double 1 .0 , %c
@@ -548,10 +543,9 @@ define double @lerp_commute4(double %a, double %b, double %c) {
548
543
549
544
define double @lerp_commute5 (double %a , double %b , double %c ) {
550
545
; CHECK-LABEL: @lerp_commute5(
551
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast double 1.000000e+00, [[C:%.*]]
552
- ; CHECK-NEXT: [[MUL:%.*]] = fmul fast double [[SUB]], [[A:%.*]]
553
- ; CHECK-NEXT: [[BC:%.*]] = fmul fast double [[C]], [[B:%.*]]
554
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast double [[BC]], [[MUL]]
546
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast double [[B:%.*]], [[A:%.*]]
547
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast double [[TMP1]], [[C:%.*]]
548
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast double [[TMP2]], [[A]]
555
549
; CHECK-NEXT: ret double [[ADD]]
556
550
;
557
551
%sub = fsub fast double 1 .0 , %c
@@ -563,10 +557,9 @@ define double @lerp_commute5(double %a, double %b, double %c) {
563
557
564
558
define half @lerp_commute6 (half %a , half %b , half %c ) {
565
559
; CHECK-LABEL: @lerp_commute6(
566
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast half 0xH3C00, [[C:%.*]]
567
- ; CHECK-NEXT: [[MUL:%.*]] = fmul fast half [[SUB]], [[A:%.*]]
568
- ; CHECK-NEXT: [[BC:%.*]] = fmul fast half [[B:%.*]], [[C]]
569
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast half [[MUL]], [[BC]]
560
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast half [[B:%.*]], [[A:%.*]]
561
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast half [[TMP1]], [[C:%.*]]
562
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast half [[TMP2]], [[A]]
570
563
; CHECK-NEXT: ret half [[ADD]]
571
564
;
572
565
%sub = fsub fast half 1 .0 , %c
@@ -578,10 +571,9 @@ define half @lerp_commute6(half %a, half %b, half %c) {
578
571
579
572
define half @lerp_commute7 (half %a , half %b , half %c ) {
580
573
; CHECK-LABEL: @lerp_commute7(
581
- ; CHECK-NEXT: [[SUB:%.*]] = fsub fast half 0xH3C00, [[C:%.*]]
582
- ; CHECK-NEXT: [[MUL:%.*]] = fmul fast half [[SUB]], [[A:%.*]]
583
- ; CHECK-NEXT: [[BC:%.*]] = fmul fast half [[B:%.*]], [[C]]
584
- ; CHECK-NEXT: [[ADD:%.*]] = fadd fast half [[BC]], [[MUL]]
574
+ ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast half [[B:%.*]], [[A:%.*]]
575
+ ; CHECK-NEXT: [[TMP2:%.*]] = fmul fast half [[TMP1]], [[C:%.*]]
576
+ ; CHECK-NEXT: [[ADD:%.*]] = fadd fast half [[TMP2]], [[A]]
585
577
; CHECK-NEXT: ret half [[ADD]]
586
578
;
587
579
%sub = fsub fast half 1 .0 , %c
0 commit comments