@@ -849,6 +849,38 @@ define <2 x double> @minnum_snan_op1_vec(<2 x double> %x) {
849849 ret <2 x double > %r
850850}
851851
852+ define <2 x double > @maxnum_snan_qnan_op0_vec (<2 x double > %x ) {
853+ ; CHECK-LABEL: @maxnum_snan_qnan_op0_vec(
854+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
855+ ;
856+ %r = call <2 x double > @llvm.maxnum.v2f64 (<2 x double > <double 0x7ff4000000000000 , double 0x7fff000000000000 >, <2 x double > %x )
857+ ret <2 x double > %r
858+ }
859+
860+ define <2 x double > @maxnum_snan_qnan_op1_vec (<2 x double > %x ) {
861+ ; CHECK-LABEL: @maxnum_snan_qnan_op1_vec(
862+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
863+ ;
864+ %r = call <2 x double > @llvm.maxnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400000000dead , double 0x7fff000000000000 >)
865+ ret <2 x double > %r
866+ }
867+
868+ define <2 x double > @minnum_snan_qnan_op0_vec (<2 x double > %x ) {
869+ ; CHECK-LABEL: @minnum_snan_qnan_op0_vec(
870+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
871+ ;
872+ %r = call <2 x double > @llvm.minnum.v2f64 (<2 x double > <double 0x7ff4000dead00000 , double 0x7fff000000000000 >, <2 x double > %x )
873+ ret <2 x double > %r
874+ }
875+
876+ define <2 x double > @minnum_snan_qnan_op1_vec (<2 x double > %x ) {
877+ ; CHECK-LABEL: @minnum_snan_qnan_op1_vec(
878+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
879+ ;
880+ %r = call <2 x double > @llvm.minnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400dead00dead , double 0x7fff00dead00dead >)
881+ ret <2 x double > %r
882+ }
883+
852884define float @maxnum_undef_op1 (float %x ) {
853885; CHECK-LABEL: @maxnum_undef_op1(
854886; CHECK-NEXT: ret float [[X:%.*]]
@@ -1346,6 +1378,38 @@ define <2 x double> @minimum_snan_op1_vec(<2 x double> %x) {
13461378 ret <2 x double > %r
13471379}
13481380
1381+ define <2 x double > @maximum_snan_qnan_op0_vec (<2 x double > %x ) {
1382+ ; CHECK-LABEL: @maximum_snan_qnan_op0_vec(
1383+ ; CHECK-NEXT: ret <2 x double> <double 0x7FFC000000000000, double 0x7FFF000000000000>
1384+ ;
1385+ %r = call <2 x double > @llvm.maximum.v2f64 (<2 x double > <double 0x7ff4000000000000 , double 0x7fff000000000000 >, <2 x double > %x )
1386+ ret <2 x double > %r
1387+ }
1388+
1389+ define <2 x double > @maximum_snan_qnan_op1_vec (<2 x double > %x ) {
1390+ ; CHECK-LABEL: @maximum_snan_qnan_op1_vec(
1391+ ; CHECK-NEXT: ret <2 x double> <double 0x7FFC00000000DEAD, double 0x7FFF000000000000>
1392+ ;
1393+ %r = call <2 x double > @llvm.maximum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400000000dead , double 0x7fff000000000000 >)
1394+ ret <2 x double > %r
1395+ }
1396+
1397+ define <2 x double > @minimum_snan_qnan_op0_vec (<2 x double > %x ) {
1398+ ; CHECK-LABEL: @minimum_snan_qnan_op0_vec(
1399+ ; CHECK-NEXT: ret <2 x double> <double 0x7FFC000DEAD00000, double 0x7FFF000000000000>
1400+ ;
1401+ %r = call <2 x double > @llvm.minimum.v2f64 (<2 x double > <double 0x7ff4000dead00000 , double 0x7fff000000000000 >, <2 x double > %x )
1402+ ret <2 x double > %r
1403+ }
1404+
1405+ define <2 x double > @minimum_snan_qnan_op1_vec (<2 x double > %x ) {
1406+ ; CHECK-LABEL: @minimum_snan_qnan_op1_vec(
1407+ ; CHECK-NEXT: ret <2 x double> <double 0x7FFC00DEAD00DEAD, double 0x7FFF00DEAD00DEAD>
1408+ ;
1409+ %r = call <2 x double > @llvm.minimum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400dead00dead , double 0x7fff00dead00dead >)
1410+ ret <2 x double > %r
1411+ }
1412+
13491413define float @maximum_undef_op1 (float %x ) {
13501414; CHECK-LABEL: @maximum_undef_op1(
13511415; CHECK-NEXT: ret float [[X:%.*]]
@@ -1894,6 +1958,30 @@ define <2 x double> @minimumnum_nan_op1_vec(<2 x double> %x) {
18941958 ret <2 x double > %r
18951959}
18961960
1961+ define <2 x double > @maximumnum_nan_op0_vec_partial_poison (<2 x double > %x ) {
1962+ ; CHECK-LABEL: @maximumnum_nan_op0_vec_partial_poison(
1963+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
1964+ ;
1965+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > <double 0x7ff8000000000000 , double poison>, <2 x double > %x )
1966+ ret <2 x double > %r
1967+ }
1968+
1969+ define <2 x double > @maximumnum_nan_op1_vec_partial_poison (<2 x double > %x ) {
1970+ ; CHECK-LABEL: @maximumnum_nan_op1_vec_partial_poison(
1971+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
1972+ ;
1973+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff8000000000000 , double poison>)
1974+ ret <2 x double > %r
1975+ }
1976+
1977+ define <2 x double > @minimumnum_nan_op1_vec_partial_poison (<2 x double > %x ) {
1978+ ; CHECK-LABEL: @minimumnum_nan_op1_vec_partial_poison(
1979+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
1980+ ;
1981+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > %x , <2 x double > <double poison, double 0x7ff8000dead00000 >)
1982+ ret <2 x double > %r
1983+ }
1984+
18971985define double @maximumnum_snan_op0 (double %x ) {
18981986; CHECK-LABEL: @maximumnum_snan_op0(
18991987; CHECK-NEXT: ret double [[X:%.*]]
@@ -1958,6 +2046,70 @@ define <2 x double> @minimumnum_snan_op1_vec(<2 x double> %x) {
19582046 ret <2 x double > %r
19592047}
19602048
2049+ define <2 x double > @maximumnum_snan_op0_vec_partial_poison (<2 x double > %x ) {
2050+ ; CHECK-LABEL: @maximumnum_snan_op0_vec_partial_poison(
2051+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2052+ ;
2053+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > <double 0x7ff4000000000000 , double poison>, <2 x double > %x )
2054+ ret <2 x double > %r
2055+ }
2056+
2057+ define <2 x double > @maximumnum_snan_op1_vec_partial_poison (<2 x double > %x ) {
2058+ ; CHECK-LABEL: @maximumnum_snan_op1_vec_partial_poison(
2059+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2060+ ;
2061+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff4000000000000 , double poison>)
2062+ ret <2 x double > %r
2063+ }
2064+
2065+ define <2 x double > @minimumnum_snan_op0_vec_partial_poison (<2 x double > %x ) {
2066+ ; CHECK-LABEL: @minimumnum_snan_op0_vec_partial_poison(
2067+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2068+ ;
2069+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > <double poison, double 0x7ff4000dead00000 >, <2 x double > %x )
2070+ ret <2 x double > %r
2071+ }
2072+
2073+ define <2 x double > @minimumnum_snan_op1_vec_partial_poison (<2 x double > %x ) {
2074+ ; CHECK-LABEL: @minimumnum_snan_op1_vec_partial_poison(
2075+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2076+ ;
2077+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > %x , <2 x double > <double poison, double 0x7ff4000dead00000 >)
2078+ ret <2 x double > %r
2079+ }
2080+
2081+ define <2 x double > @maximumnum_snan_qnan_op0_vec (<2 x double > %x ) {
2082+ ; CHECK-LABEL: @maximumnum_snan_qnan_op0_vec(
2083+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2084+ ;
2085+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > <double 0x7ff4000000000000 , double 0x7fff000000000000 >, <2 x double > %x )
2086+ ret <2 x double > %r
2087+ }
2088+
2089+ define <2 x double > @maximumnum_snan_qnan_op1_vec (<2 x double > %x ) {
2090+ ; CHECK-LABEL: @maximumnum_snan_qnan_op1_vec(
2091+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2092+ ;
2093+ %r = call <2 x double > @llvm.maximumnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400000000dead , double 0x7fff000000000000 >)
2094+ ret <2 x double > %r
2095+ }
2096+
2097+ define <2 x double > @minimumnum_snan_qnan_op0_vec (<2 x double > %x ) {
2098+ ; CHECK-LABEL: @minimumnum_snan_qnan_op0_vec(
2099+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2100+ ;
2101+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > <double 0x7ff4000dead00000 , double 0x7fff000000000000 >, <2 x double > %x )
2102+ ret <2 x double > %r
2103+ }
2104+
2105+ define <2 x double > @minimumnum_snan_qnan_op1_vec (<2 x double > %x ) {
2106+ ; CHECK-LABEL: @minimumnum_snan_qnan_op1_vec(
2107+ ; CHECK-NEXT: ret <2 x double> [[X:%.*]]
2108+ ;
2109+ %r = call <2 x double > @llvm.minimumnum.v2f64 (<2 x double > %x , <2 x double > <double 0x7ff400dead00dead , double 0x7fff00dead00dead >)
2110+ ret <2 x double > %r
2111+ }
2112+
19612113define float @maximumnum_poison_op1 (float %x ) {
19622114; CHECK-LABEL: @maximumnum_poison_op1(
19632115; CHECK-NEXT: ret float [[X:%.*]]
0 commit comments