@@ -505,3 +505,93 @@ define double @frem_undef_op1_fast_constant_inf(double %x) {
505
505
ret double %r
506
506
}
507
507
508
+ define <2 x double > @fadd_undef_op1_constant_vec (<2 x double > %x ) {
509
+ ; ANY-LABEL: fadd_undef_op1_constant_vec:
510
+ ; ANY: # %bb.0:
511
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
512
+ ; ANY-NEXT: retq
513
+ %r = fadd <2 x double > <double 42 .0 , double undef >, undef
514
+ ret <2 x double > %r
515
+ }
516
+
517
+ define <2 x double > @fadd_undef_op0_constant_vec (<2 x double > %x ) {
518
+ ; ANY-LABEL: fadd_undef_op0_constant_vec:
519
+ ; ANY: # %bb.0:
520
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
521
+ ; ANY-NEXT: retq
522
+ %r = fadd <2 x double > undef , <double undef , double 42 .0 >
523
+ ret <2 x double > %r
524
+ }
525
+
526
+ define <2 x double > @fsub_undef_op1_constant_vec (<2 x double > %x ) {
527
+ ; ANY-LABEL: fsub_undef_op1_constant_vec:
528
+ ; ANY: # %bb.0:
529
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
530
+ ; ANY-NEXT: retq
531
+ %r = fsub <2 x double > <double undef , double 42 .0 >, undef
532
+ ret <2 x double > %r
533
+ }
534
+
535
+ define <2 x double > @fsub_undef_op0_constant_vec (<2 x double > %x ) {
536
+ ; ANY-LABEL: fsub_undef_op0_constant_vec:
537
+ ; ANY: # %bb.0:
538
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
539
+ ; ANY-NEXT: retq
540
+ %r = fsub <2 x double > undef , <double 42 .0 , double undef >
541
+ ret <2 x double > %r
542
+ }
543
+
544
+ define <2 x double > @fmul_undef_op1_constant_vec (<2 x double > %x ) {
545
+ ; ANY-LABEL: fmul_undef_op1_constant_vec:
546
+ ; ANY: # %bb.0:
547
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
548
+ ; ANY-NEXT: retq
549
+ %r = fmul <2 x double > <double 42 .0 , double undef >, undef
550
+ ret <2 x double > %r
551
+ }
552
+
553
+ define <2 x double > @fmul_undef_op0_constant_vec (<2 x double > %x ) {
554
+ ; ANY-LABEL: fmul_undef_op0_constant_vec:
555
+ ; ANY: # %bb.0:
556
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
557
+ ; ANY-NEXT: retq
558
+ %r = fmul <2 x double > undef , <double undef , double 42 .0 >
559
+ ret <2 x double > %r
560
+ }
561
+
562
+ define <2 x double > @fdiv_undef_op1_constant_vec (<2 x double > %x ) {
563
+ ; ANY-LABEL: fdiv_undef_op1_constant_vec:
564
+ ; ANY: # %bb.0:
565
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
566
+ ; ANY-NEXT: retq
567
+ %r = fdiv <2 x double > <double 42 .0 , double undef >, undef
568
+ ret <2 x double > %r
569
+ }
570
+
571
+ define <2 x double > @fdiv_undef_op0_constant_vec (<2 x double > %x ) {
572
+ ; ANY-LABEL: fdiv_undef_op0_constant_vec:
573
+ ; ANY: # %bb.0:
574
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
575
+ ; ANY-NEXT: retq
576
+ %r = fdiv <2 x double > undef , <double undef , double 42 .0 >
577
+ ret <2 x double > %r
578
+ }
579
+
580
+ define <2 x double > @frem_undef_op1_constant_vec (<2 x double > %x ) {
581
+ ; ANY-LABEL: frem_undef_op1_constant_vec:
582
+ ; ANY: # %bb.0:
583
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
584
+ ; ANY-NEXT: retq
585
+ %r = frem <2 x double > <double undef , double 42 .0 >, undef
586
+ ret <2 x double > %r
587
+ }
588
+
589
+ define <2 x double > @frem_undef_op0_constant_vec (<2 x double > %x ) {
590
+ ; ANY-LABEL: frem_undef_op0_constant_vec:
591
+ ; ANY: # %bb.0:
592
+ ; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
593
+ ; ANY-NEXT: retq
594
+ %r = frem <2 x double > undef , <double 42 .0 , double undef >
595
+ ret <2 x double > %r
596
+ }
597
+
0 commit comments