@@ -813,21 +813,7 @@ define <4 x half> @frintm_4h(<4 x half> %A) nounwind {
813813;
814814; CHECK-FP16-LABEL: frintm_4h:
815815; CHECK-FP16: @ %bb.0:
816- ; CHECK-FP16-NEXT: vmovx.f16 s2, s0
817- ; CHECK-FP16-NEXT: vrintm.f16 s2, s2
818- ; CHECK-FP16-NEXT: vmov r0, s2
819- ; CHECK-FP16-NEXT: vrintm.f16 s2, s0
820- ; CHECK-FP16-NEXT: vmov r1, s2
821- ; CHECK-FP16-NEXT: vrintm.f16 s2, s1
822- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
823- ; CHECK-FP16-NEXT: vrintm.f16 s0, s0
824- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
825- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
826- ; CHECK-FP16-NEXT: vmov r0, s2
827- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
828- ; CHECK-FP16-NEXT: vmov r0, s0
829- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
830- ; CHECK-FP16-NEXT: vorr d0, d16, d16
816+ ; CHECK-FP16-NEXT: vrintm.f16 d0, d0
831817; CHECK-FP16-NEXT: bx lr
832818 %tmp3 = call <4 x half > @llvm.floor.v4f16 (<4 x half > %A )
833819 ret <4 x half > %tmp3
@@ -977,35 +963,7 @@ define <8 x half> @frintm_8h(<8 x half> %A) nounwind {
977963;
978964; CHECK-FP16-LABEL: frintm_8h:
979965; CHECK-FP16: @ %bb.0:
980- ; CHECK-FP16-NEXT: vmovx.f16 s4, s2
981- ; CHECK-FP16-NEXT: vrintm.f16 s4, s4
982- ; CHECK-FP16-NEXT: vmov r0, s4
983- ; CHECK-FP16-NEXT: vrintm.f16 s4, s2
984- ; CHECK-FP16-NEXT: vmov r1, s4
985- ; CHECK-FP16-NEXT: vrintm.f16 s4, s3
986- ; CHECK-FP16-NEXT: vmov.16 d17[0], r1
987- ; CHECK-FP16-NEXT: vmov.16 d17[1], r0
988- ; CHECK-FP16-NEXT: vmov r0, s4
989- ; CHECK-FP16-NEXT: vmovx.f16 s4, s3
990- ; CHECK-FP16-NEXT: vrintm.f16 s4, s4
991- ; CHECK-FP16-NEXT: vmov.16 d17[2], r0
992- ; CHECK-FP16-NEXT: vmov r0, s4
993- ; CHECK-FP16-NEXT: vmovx.f16 s4, s0
994- ; CHECK-FP16-NEXT: vrintm.f16 s4, s4
995- ; CHECK-FP16-NEXT: vmov.16 d17[3], r0
996- ; CHECK-FP16-NEXT: vmov r0, s4
997- ; CHECK-FP16-NEXT: vrintm.f16 s4, s0
998- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
999- ; CHECK-FP16-NEXT: vmov r1, s4
1000- ; CHECK-FP16-NEXT: vrintm.f16 s4, s1
1001- ; CHECK-FP16-NEXT: vrintm.f16 s0, s0
1002- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
1003- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
1004- ; CHECK-FP16-NEXT: vmov r0, s4
1005- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
1006- ; CHECK-FP16-NEXT: vmov r0, s0
1007- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
1008- ; CHECK-FP16-NEXT: vorr q0, q8, q8
966+ ; CHECK-FP16-NEXT: vrintm.f16 q0, q0
1009967; CHECK-FP16-NEXT: bx lr
1010968 %tmp3 = call <8 x half > @llvm.floor.v8f16 (<8 x half > %A )
1011969 ret <8 x half > %tmp3
@@ -1031,9 +989,7 @@ define <2 x float> @frintm_2s(<2 x float> %A) nounwind {
1031989;
1032990; CHECK-LABEL: frintm_2s:
1033991; CHECK: @ %bb.0:
1034- ; CHECK-NEXT: vrintm.f32 s3, s1
1035- ; CHECK-NEXT: vrintm.f32 s2, s0
1036- ; CHECK-NEXT: vmov.f64 d0, d1
992+ ; CHECK-NEXT: vrintm.f32 d0, d0
1037993; CHECK-NEXT: bx lr
1038994 %tmp3 = call <2 x float > @llvm.floor.v2f32 (<2 x float > %A )
1039995 ret <2 x float > %tmp3
@@ -1065,11 +1021,7 @@ define <4 x float> @frintm_4s(<4 x float> %A) nounwind {
10651021;
10661022; CHECK-LABEL: frintm_4s:
10671023; CHECK: @ %bb.0:
1068- ; CHECK-NEXT: vrintm.f32 s7, s3
1069- ; CHECK-NEXT: vrintm.f32 s6, s2
1070- ; CHECK-NEXT: vrintm.f32 s5, s1
1071- ; CHECK-NEXT: vrintm.f32 s4, s0
1072- ; CHECK-NEXT: vorr q0, q1, q1
1024+ ; CHECK-NEXT: vrintm.f32 q0, q0
10731025; CHECK-NEXT: bx lr
10741026 %tmp3 = call <4 x float > @llvm.floor.v4f32 (<4 x float > %A )
10751027 ret <4 x float > %tmp3
0 commit comments