@@ -451,3 +451,83 @@ define double @frem_undef_op1_fast_constant_inf(double %x) {
451
451
ret double %r
452
452
}
453
453
454
+ define <2 x double > @fadd_undef_op1_constant_vec (<2 x double > %x ) {
455
+ ; CHECK-LABEL: @fadd_undef_op1_constant_vec(
456
+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
457
+ ;
458
+ %r = fadd <2 x double > <double 42 .0 , double undef >, undef
459
+ ret <2 x double > %r
460
+ }
461
+
462
+ define <2 x double > @fadd_undef_op0_constant_vec (<2 x double > %x ) {
463
+ ; CHECK-LABEL: @fadd_undef_op0_constant_vec(
464
+ ; CHECK-NEXT: ret <2 x double> <double undef, double 0x7FF8000000000000>
465
+ ;
466
+ %r = fadd <2 x double > undef , <double undef , double 42 .0 >
467
+ ret <2 x double > %r
468
+ }
469
+
470
+ define <2 x double > @fsub_undef_op1_constant_vec (<2 x double > %x ) {
471
+ ; CHECK-LABEL: @fsub_undef_op1_constant_vec(
472
+ ; CHECK-NEXT: ret <2 x double> <double undef, double 0x7FF8000000000000>
473
+ ;
474
+ %r = fsub <2 x double > <double undef , double 42 .0 >, undef
475
+ ret <2 x double > %r
476
+ }
477
+
478
+ define <2 x double > @fsub_undef_op0_constant_vec (<2 x double > %x ) {
479
+ ; CHECK-LABEL: @fsub_undef_op0_constant_vec(
480
+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
481
+ ;
482
+ %r = fsub <2 x double > undef , <double 42 .0 , double undef >
483
+ ret <2 x double > %r
484
+ }
485
+
486
+ define <2 x double > @fmul_undef_op1_constant_vec (<2 x double > %x ) {
487
+ ; CHECK-LABEL: @fmul_undef_op1_constant_vec(
488
+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
489
+ ;
490
+ %r = fmul <2 x double > <double 42 .0 , double undef >, undef
491
+ ret <2 x double > %r
492
+ }
493
+
494
+ define <2 x double > @fmul_undef_op0_constant_vec (<2 x double > %x ) {
495
+ ; CHECK-LABEL: @fmul_undef_op0_constant_vec(
496
+ ; CHECK-NEXT: ret <2 x double> <double undef, double 0x7FF8000000000000>
497
+ ;
498
+ %r = fmul <2 x double > undef , <double undef , double 42 .0 >
499
+ ret <2 x double > %r
500
+ }
501
+
502
+ define <2 x double > @fdiv_undef_op1_constant_vec (<2 x double > %x ) {
503
+ ; CHECK-LABEL: @fdiv_undef_op1_constant_vec(
504
+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
505
+ ;
506
+ %r = fdiv <2 x double > <double 42 .0 , double undef >, undef
507
+ ret <2 x double > %r
508
+ }
509
+
510
+ define <2 x double > @fdiv_undef_op0_constant_vec (<2 x double > %x ) {
511
+ ; CHECK-LABEL: @fdiv_undef_op0_constant_vec(
512
+ ; CHECK-NEXT: ret <2 x double> <double undef, double 0x7FF8000000000000>
513
+ ;
514
+ %r = fdiv <2 x double > undef , <double undef , double 42 .0 >
515
+ ret <2 x double > %r
516
+ }
517
+
518
+ define <2 x double > @frem_undef_op1_constant_vec (<2 x double > %x ) {
519
+ ; CHECK-LABEL: @frem_undef_op1_constant_vec(
520
+ ; CHECK-NEXT: ret <2 x double> <double undef, double 0x7FF8000000000000>
521
+ ;
522
+ %r = frem <2 x double > <double undef , double 42 .0 >, undef
523
+ ret <2 x double > %r
524
+ }
525
+
526
+ define <2 x double > @frem_undef_op0_constant_vec (<2 x double > %x ) {
527
+ ; CHECK-LABEL: @frem_undef_op0_constant_vec(
528
+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
529
+ ;
530
+ %r = frem <2 x double > undef , <double 42 .0 , double undef >
531
+ ret <2 x double > %r
532
+ }
533
+
0 commit comments