@@ -5,6 +5,8 @@ declare <2 x double> @llvm.minnum.v2f64(<2 x double>, <2 x double>)
55declare <2 x double > @llvm.maxnum.v2f64 (<2 x double >, <2 x double >)
66declare <2 x double > @llvm.minimum.v2f64 (<2 x double >, <2 x double >)
77declare <2 x double > @llvm.maximum.v2f64 (<2 x double >, <2 x double >)
8+ declare <2 x double > @llvm.minimumnum.v2f64 (<2 x double >, <2 x double >)
9+ declare <2 x double > @llvm.maximumnum.v2f64 (<2 x double >, <2 x double >)
810
911; Constant folding - undef undef.
1012
@@ -538,6 +540,38 @@ define <2 x double> @frem_undef_op0_constant_vec(<2 x double> %x) {
538540 ret <2 x double > %r
539541}
540542
543+ define <2 x double > @maximumnum_nan_op0_vec_partial_poison_op1_poison (<2 x double > %x ) {
544+ ; CHECK-LABEL: @maximumnum_nan_op0_vec_partial_poison_op1_poison(
545+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double poison>
546+ ;
547+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > <double 0x7ff8000000000000 , double poison>, <2 x double > poison)
548+ ret <2 x double > %r
549+ }
550+
551+ define <2 x double > @maximumnum_nan_op1_vec_partial_poison_op0_poison (<2 x double > %x ) {
552+ ; CHECK-LABEL: @maximumnum_nan_op1_vec_partial_poison_op0_poison(
553+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double poison>
554+ ;
555+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > poison, <2 x double > <double 0x7ff8000000000000 , double poison>)
556+ ret <2 x double > %r
557+ }
558+
559+ define <2 x double > @minimumnum_nan_op0_vec_partial_poison_op1_poison (<2 x double > %x ) {
560+ ; CHECK-LABEL: @minimumnum_nan_op0_vec_partial_poison_op1_poison(
561+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double poison>
562+ ;
563+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > <double 0x7ff8000000000000 , double poison>, <2 x double > poison)
564+ ret <2 x double > %r
565+ }
566+
567+ define <2 x double > @minimumnum_nan_op1_vec_partial_poison_op0_poison (<2 x double > %x ) {
568+ ; CHECK-LABEL: @minimumnum_nan_op1_vec_partial_poison_op0_poison(
569+ ; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double poison>
570+ ;
571+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > poison, <2 x double > <double 0x7ff8000000000000 , double poison>)
572+ ret <2 x double > %r
573+ }
574+
541575define <2 x double > @maximum_nan_op0_vec_partial_undef_op1_undef (<2 x double > %x ) {
542576; CHECK-LABEL: @maximum_nan_op0_vec_partial_undef_op1_undef(
543577; CHECK-NEXT: ret <2 x double> <double 0x7FF8000000000000, double undef>
0 commit comments