@@ -685,25 +685,16 @@ define half @minimum_half(half %a, half %b) {
685685define float @minimum_float (float %a , float %b ) {
686686; CHECK-NOF16-LABEL: minimum_float(
687687; CHECK-NOF16: {
688- ; CHECK-NOF16-NEXT: .reg .pred %p<5>;
689- ; CHECK-NOF16-NEXT: .reg .b32 %r<3>;
690- ; CHECK-NOF16-NEXT: .reg .b32 %f<8>;
688+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
689+ ; CHECK-NOF16-NEXT: .reg .b32 %f<5>;
691690; CHECK-NOF16-EMPTY:
692691; CHECK-NOF16-NEXT: // %bb.0:
693692; CHECK-NOF16-NEXT: ld.param.f32 %f1, [minimum_float_param_0];
694- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
695693; CHECK-NOF16-NEXT: ld.param.f32 %f2, [minimum_float_param_1];
696694; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f2;
697695; CHECK-NOF16-NEXT: min.f32 %f3, %f1, %f2;
698696; CHECK-NOF16-NEXT: selp.f32 %f4, 0f7FC00000, %f3, %p1;
699- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, -2147483648;
700- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f1, %f4, %p2;
701- ; CHECK-NOF16-NEXT: mov.b32 %r2, %f2;
702- ; CHECK-NOF16-NEXT: setp.eq.s32 %p3, %r2, -2147483648;
703- ; CHECK-NOF16-NEXT: selp.f32 %f6, %f2, %f5, %p3;
704- ; CHECK-NOF16-NEXT: setp.eq.f32 %p4, %f4, 0f00000000;
705- ; CHECK-NOF16-NEXT: selp.f32 %f7, %f6, %f4, %p4;
706- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f7;
697+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
707698; CHECK-NOF16-NEXT: ret;
708699;
709700; CHECK-F16-LABEL: minimum_float(
@@ -734,21 +725,15 @@ define float @minimum_float(float %a, float %b) {
734725define float @minimum_imm1 (float %a ) {
735726; CHECK-NOF16-LABEL: minimum_imm1(
736727; CHECK-NOF16: {
737- ; CHECK-NOF16-NEXT: .reg .pred %p<4>;
738- ; CHECK-NOF16-NEXT: .reg .b32 %r<2>;
739- ; CHECK-NOF16-NEXT: .reg .b32 %f<6>;
728+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
729+ ; CHECK-NOF16-NEXT: .reg .b32 %f<4>;
740730; CHECK-NOF16-EMPTY:
741731; CHECK-NOF16-NEXT: // %bb.0:
742732; CHECK-NOF16-NEXT: ld.param.f32 %f1, [minimum_imm1_param_0];
743- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
744733; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f1;
745734; CHECK-NOF16-NEXT: min.f32 %f2, %f1, 0f00000000;
746735; CHECK-NOF16-NEXT: selp.f32 %f3, 0f7FC00000, %f2, %p1;
747- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, -2147483648;
748- ; CHECK-NOF16-NEXT: selp.f32 %f4, %f1, %f3, %p2;
749- ; CHECK-NOF16-NEXT: setp.eq.f32 %p3, %f3, 0f00000000;
750- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f4, %f3, %p3;
751- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f5;
736+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f3;
752737; CHECK-NOF16-NEXT: ret;
753738;
754739; CHECK-F16-LABEL: minimum_imm1(
@@ -777,21 +762,15 @@ define float @minimum_imm1(float %a) {
777762define float @minimum_imm2 (float %a ) {
778763; CHECK-NOF16-LABEL: minimum_imm2(
779764; CHECK-NOF16: {
780- ; CHECK-NOF16-NEXT: .reg .pred %p<4>;
781- ; CHECK-NOF16-NEXT: .reg .b32 %r<2>;
782- ; CHECK-NOF16-NEXT: .reg .b32 %f<6>;
765+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
766+ ; CHECK-NOF16-NEXT: .reg .b32 %f<4>;
783767; CHECK-NOF16-EMPTY:
784768; CHECK-NOF16-NEXT: // %bb.0:
785769; CHECK-NOF16-NEXT: ld.param.f32 %f1, [minimum_imm2_param_0];
786- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
787770; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f1;
788771; CHECK-NOF16-NEXT: min.f32 %f2, %f1, 0f00000000;
789772; CHECK-NOF16-NEXT: selp.f32 %f3, 0f7FC00000, %f2, %p1;
790- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, -2147483648;
791- ; CHECK-NOF16-NEXT: selp.f32 %f4, %f1, %f3, %p2;
792- ; CHECK-NOF16-NEXT: setp.eq.f32 %p3, %f3, 0f00000000;
793- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f4, %f3, %p3;
794- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f5;
773+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f3;
795774; CHECK-NOF16-NEXT: ret;
796775;
797776; CHECK-F16-LABEL: minimum_imm2(
@@ -820,25 +799,16 @@ define float @minimum_imm2(float %a) {
820799define float @minimum_float_ftz (float %a , float %b ) #1 {
821800; CHECK-NOF16-LABEL: minimum_float_ftz(
822801; CHECK-NOF16: {
823- ; CHECK-NOF16-NEXT: .reg .pred %p<5>;
824- ; CHECK-NOF16-NEXT: .reg .b32 %r<3>;
825- ; CHECK-NOF16-NEXT: .reg .b32 %f<8>;
802+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
803+ ; CHECK-NOF16-NEXT: .reg .b32 %f<5>;
826804; CHECK-NOF16-EMPTY:
827805; CHECK-NOF16-NEXT: // %bb.0:
828806; CHECK-NOF16-NEXT: ld.param.f32 %f1, [minimum_float_ftz_param_0];
829- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
830807; CHECK-NOF16-NEXT: ld.param.f32 %f2, [minimum_float_ftz_param_1];
831808; CHECK-NOF16-NEXT: setp.nan.ftz.f32 %p1, %f1, %f2;
832809; CHECK-NOF16-NEXT: min.ftz.f32 %f3, %f1, %f2;
833810; CHECK-NOF16-NEXT: selp.f32 %f4, 0f7FC00000, %f3, %p1;
834- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, -2147483648;
835- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f1, %f4, %p2;
836- ; CHECK-NOF16-NEXT: mov.b32 %r2, %f2;
837- ; CHECK-NOF16-NEXT: setp.eq.s32 %p3, %r2, -2147483648;
838- ; CHECK-NOF16-NEXT: selp.f32 %f6, %f2, %f5, %p3;
839- ; CHECK-NOF16-NEXT: setp.eq.ftz.f32 %p4, %f4, 0f00000000;
840- ; CHECK-NOF16-NEXT: selp.f32 %f7, %f6, %f4, %p4;
841- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f7;
811+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
842812; CHECK-NOF16-NEXT: ret;
843813;
844814; CHECK-F16-LABEL: minimum_float_ftz(
@@ -869,25 +839,16 @@ define float @minimum_float_ftz(float %a, float %b) #1 {
869839define double @minimum_double (double %a , double %b ) {
870840; CHECK-LABEL: minimum_double(
871841; CHECK: {
872- ; CHECK-NEXT: .reg .pred %p<5>;
873- ; CHECK-NEXT: .reg .b64 %rd<3>;
874- ; CHECK-NEXT: .reg .b64 %fd<8>;
842+ ; CHECK-NEXT: .reg .pred %p<2>;
843+ ; CHECK-NEXT: .reg .b64 %fd<5>;
875844; CHECK-EMPTY:
876845; CHECK-NEXT: // %bb.0:
877846; CHECK-NEXT: ld.param.f64 %fd1, [minimum_double_param_0];
878- ; CHECK-NEXT: mov.b64 %rd1, %fd1;
879847; CHECK-NEXT: ld.param.f64 %fd2, [minimum_double_param_1];
880848; CHECK-NEXT: setp.nan.f64 %p1, %fd1, %fd2;
881849; CHECK-NEXT: min.f64 %fd3, %fd1, %fd2;
882850; CHECK-NEXT: selp.f64 %fd4, 0d7FF8000000000000, %fd3, %p1;
883- ; CHECK-NEXT: setp.eq.s64 %p2, %rd1, -9223372036854775808;
884- ; CHECK-NEXT: selp.f64 %fd5, %fd1, %fd4, %p2;
885- ; CHECK-NEXT: mov.b64 %rd2, %fd2;
886- ; CHECK-NEXT: setp.eq.s64 %p3, %rd2, -9223372036854775808;
887- ; CHECK-NEXT: selp.f64 %fd6, %fd2, %fd5, %p3;
888- ; CHECK-NEXT: setp.eq.f64 %p4, %fd4, 0d0000000000000000;
889- ; CHECK-NEXT: selp.f64 %fd7, %fd6, %fd4, %p4;
890- ; CHECK-NEXT: st.param.f64 [func_retval0], %fd7;
851+ ; CHECK-NEXT: st.param.f64 [func_retval0], %fd4;
891852; CHECK-NEXT: ret;
892853 %x = call double @llvm.minimum.f64 (double %a , double %b )
893854 ret double %x
@@ -1243,17 +1204,15 @@ define half @maximum_half(half %a, half %b) {
12431204define float @maximum_imm1 (float %a ) {
12441205; CHECK-NOF16-LABEL: maximum_imm1(
12451206; CHECK-NOF16: {
1246- ; CHECK-NOF16-NEXT: .reg .pred %p<3 >;
1247- ; CHECK-NOF16-NEXT: .reg .b32 %f<5 >;
1207+ ; CHECK-NOF16-NEXT: .reg .pred %p<2 >;
1208+ ; CHECK-NOF16-NEXT: .reg .b32 %f<4 >;
12481209; CHECK-NOF16-EMPTY:
12491210; CHECK-NOF16-NEXT: // %bb.0:
12501211; CHECK-NOF16-NEXT: ld.param.f32 %f1, [maximum_imm1_param_0];
12511212; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f1;
12521213; CHECK-NOF16-NEXT: max.f32 %f2, %f1, 0f00000000;
12531214; CHECK-NOF16-NEXT: selp.f32 %f3, 0f7FC00000, %f2, %p1;
1254- ; CHECK-NOF16-NEXT: setp.eq.f32 %p2, %f3, 0f00000000;
1255- ; CHECK-NOF16-NEXT: selp.f32 %f4, 0f00000000, %f3, %p2;
1256- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
1215+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f3;
12571216; CHECK-NOF16-NEXT: ret;
12581217;
12591218; CHECK-F16-LABEL: maximum_imm1(
@@ -1282,17 +1241,15 @@ define float @maximum_imm1(float %a) {
12821241define float @maximum_imm2 (float %a ) {
12831242; CHECK-NOF16-LABEL: maximum_imm2(
12841243; CHECK-NOF16: {
1285- ; CHECK-NOF16-NEXT: .reg .pred %p<3 >;
1286- ; CHECK-NOF16-NEXT: .reg .b32 %f<5 >;
1244+ ; CHECK-NOF16-NEXT: .reg .pred %p<2 >;
1245+ ; CHECK-NOF16-NEXT: .reg .b32 %f<4 >;
12871246; CHECK-NOF16-EMPTY:
12881247; CHECK-NOF16-NEXT: // %bb.0:
12891248; CHECK-NOF16-NEXT: ld.param.f32 %f1, [maximum_imm2_param_0];
12901249; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f1;
12911250; CHECK-NOF16-NEXT: max.f32 %f2, %f1, 0f00000000;
12921251; CHECK-NOF16-NEXT: selp.f32 %f3, 0f7FC00000, %f2, %p1;
1293- ; CHECK-NOF16-NEXT: setp.eq.f32 %p2, %f3, 0f00000000;
1294- ; CHECK-NOF16-NEXT: selp.f32 %f4, 0f00000000, %f3, %p2;
1295- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
1252+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f3;
12961253; CHECK-NOF16-NEXT: ret;
12971254;
12981255; CHECK-F16-LABEL: maximum_imm2(
@@ -1321,25 +1278,16 @@ define float @maximum_imm2(float %a) {
13211278define float @maximum_float (float %a , float %b ) {
13221279; CHECK-NOF16-LABEL: maximum_float(
13231280; CHECK-NOF16: {
1324- ; CHECK-NOF16-NEXT: .reg .pred %p<5>;
1325- ; CHECK-NOF16-NEXT: .reg .b32 %r<3>;
1326- ; CHECK-NOF16-NEXT: .reg .b32 %f<8>;
1281+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
1282+ ; CHECK-NOF16-NEXT: .reg .b32 %f<5>;
13271283; CHECK-NOF16-EMPTY:
13281284; CHECK-NOF16-NEXT: // %bb.0:
13291285; CHECK-NOF16-NEXT: ld.param.f32 %f1, [maximum_float_param_0];
1330- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
13311286; CHECK-NOF16-NEXT: ld.param.f32 %f2, [maximum_float_param_1];
13321287; CHECK-NOF16-NEXT: setp.nan.f32 %p1, %f1, %f2;
13331288; CHECK-NOF16-NEXT: max.f32 %f3, %f1, %f2;
13341289; CHECK-NOF16-NEXT: selp.f32 %f4, 0f7FC00000, %f3, %p1;
1335- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, 0;
1336- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f1, %f4, %p2;
1337- ; CHECK-NOF16-NEXT: mov.b32 %r2, %f2;
1338- ; CHECK-NOF16-NEXT: setp.eq.s32 %p3, %r2, 0;
1339- ; CHECK-NOF16-NEXT: selp.f32 %f6, %f2, %f5, %p3;
1340- ; CHECK-NOF16-NEXT: setp.eq.f32 %p4, %f4, 0f00000000;
1341- ; CHECK-NOF16-NEXT: selp.f32 %f7, %f6, %f4, %p4;
1342- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f7;
1290+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
13431291; CHECK-NOF16-NEXT: ret;
13441292;
13451293; CHECK-F16-LABEL: maximum_float(
@@ -1370,25 +1318,16 @@ define float @maximum_float(float %a, float %b) {
13701318define float @maximum_float_ftz (float %a , float %b ) #1 {
13711319; CHECK-NOF16-LABEL: maximum_float_ftz(
13721320; CHECK-NOF16: {
1373- ; CHECK-NOF16-NEXT: .reg .pred %p<5>;
1374- ; CHECK-NOF16-NEXT: .reg .b32 %r<3>;
1375- ; CHECK-NOF16-NEXT: .reg .b32 %f<8>;
1321+ ; CHECK-NOF16-NEXT: .reg .pred %p<2>;
1322+ ; CHECK-NOF16-NEXT: .reg .b32 %f<5>;
13761323; CHECK-NOF16-EMPTY:
13771324; CHECK-NOF16-NEXT: // %bb.0:
13781325; CHECK-NOF16-NEXT: ld.param.f32 %f1, [maximum_float_ftz_param_0];
1379- ; CHECK-NOF16-NEXT: mov.b32 %r1, %f1;
13801326; CHECK-NOF16-NEXT: ld.param.f32 %f2, [maximum_float_ftz_param_1];
13811327; CHECK-NOF16-NEXT: setp.nan.ftz.f32 %p1, %f1, %f2;
13821328; CHECK-NOF16-NEXT: max.ftz.f32 %f3, %f1, %f2;
13831329; CHECK-NOF16-NEXT: selp.f32 %f4, 0f7FC00000, %f3, %p1;
1384- ; CHECK-NOF16-NEXT: setp.eq.s32 %p2, %r1, 0;
1385- ; CHECK-NOF16-NEXT: selp.f32 %f5, %f1, %f4, %p2;
1386- ; CHECK-NOF16-NEXT: mov.b32 %r2, %f2;
1387- ; CHECK-NOF16-NEXT: setp.eq.s32 %p3, %r2, 0;
1388- ; CHECK-NOF16-NEXT: selp.f32 %f6, %f2, %f5, %p3;
1389- ; CHECK-NOF16-NEXT: setp.eq.ftz.f32 %p4, %f4, 0f00000000;
1390- ; CHECK-NOF16-NEXT: selp.f32 %f7, %f6, %f4, %p4;
1391- ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f7;
1330+ ; CHECK-NOF16-NEXT: st.param.f32 [func_retval0], %f4;
13921331; CHECK-NOF16-NEXT: ret;
13931332;
13941333; CHECK-F16-LABEL: maximum_float_ftz(
@@ -1419,25 +1358,16 @@ define float @maximum_float_ftz(float %a, float %b) #1 {
14191358define double @maximum_double (double %a , double %b ) {
14201359; CHECK-LABEL: maximum_double(
14211360; CHECK: {
1422- ; CHECK-NEXT: .reg .pred %p<5>;
1423- ; CHECK-NEXT: .reg .b64 %rd<3>;
1424- ; CHECK-NEXT: .reg .b64 %fd<8>;
1361+ ; CHECK-NEXT: .reg .pred %p<2>;
1362+ ; CHECK-NEXT: .reg .b64 %fd<5>;
14251363; CHECK-EMPTY:
14261364; CHECK-NEXT: // %bb.0:
14271365; CHECK-NEXT: ld.param.f64 %fd1, [maximum_double_param_0];
1428- ; CHECK-NEXT: mov.b64 %rd1, %fd1;
14291366; CHECK-NEXT: ld.param.f64 %fd2, [maximum_double_param_1];
14301367; CHECK-NEXT: setp.nan.f64 %p1, %fd1, %fd2;
14311368; CHECK-NEXT: max.f64 %fd3, %fd1, %fd2;
14321369; CHECK-NEXT: selp.f64 %fd4, 0d7FF8000000000000, %fd3, %p1;
1433- ; CHECK-NEXT: setp.eq.s64 %p2, %rd1, 0;
1434- ; CHECK-NEXT: selp.f64 %fd5, %fd1, %fd4, %p2;
1435- ; CHECK-NEXT: mov.b64 %rd2, %fd2;
1436- ; CHECK-NEXT: setp.eq.s64 %p3, %rd2, 0;
1437- ; CHECK-NEXT: selp.f64 %fd6, %fd2, %fd5, %p3;
1438- ; CHECK-NEXT: setp.eq.f64 %p4, %fd4, 0d0000000000000000;
1439- ; CHECK-NEXT: selp.f64 %fd7, %fd6, %fd4, %p4;
1440- ; CHECK-NEXT: st.param.f64 [func_retval0], %fd7;
1370+ ; CHECK-NEXT: st.param.f64 [func_retval0], %fd4;
14411371; CHECK-NEXT: ret;
14421372 %x = call double @llvm.maximum.f64 (double %a , double %b )
14431373 ret double %x
0 commit comments