@@ -505,3 +505,93 @@ define double @frem_undef_op1_fast_constant_inf(double %x) {
505505 ret double %r
506506}
507507
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