@@ -1084,21 +1084,7 @@ define <4 x half> @frintn_4h(<4 x half> %A) nounwind {
10841084;
10851085; CHECK-FP16-LABEL: frintn_4h:
10861086; CHECK-FP16: @ %bb.0:
1087- ; CHECK-FP16-NEXT: vmovx.f16 s2, s0
1088- ; CHECK-FP16-NEXT: vrintn.f16 s2, s2
1089- ; CHECK-FP16-NEXT: vmov r0, s2
1090- ; CHECK-FP16-NEXT: vrintn.f16 s2, s0
1091- ; CHECK-FP16-NEXT: vmov r1, s2
1092- ; CHECK-FP16-NEXT: vrintn.f16 s2, s1
1093- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
1094- ; CHECK-FP16-NEXT: vrintn.f16 s0, s0
1095- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
1096- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
1097- ; CHECK-FP16-NEXT: vmov r0, s2
1098- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
1099- ; CHECK-FP16-NEXT: vmov r0, s0
1100- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
1101- ; CHECK-FP16-NEXT: vorr d0, d16, d16
1087+ ; CHECK-FP16-NEXT: vrintn.f16 d0, d0
11021088; CHECK-FP16-NEXT: bx lr
11031089 %tmp3 = call <4 x half > @llvm.roundeven.v4f16 (<4 x half > %A )
11041090 ret <4 x half > %tmp3
@@ -1248,35 +1234,7 @@ define <8 x half> @frintn_8h(<8 x half> %A) nounwind {
12481234;
12491235; CHECK-FP16-LABEL: frintn_8h:
12501236; CHECK-FP16: @ %bb.0:
1251- ; CHECK-FP16-NEXT: vmovx.f16 s4, s2
1252- ; CHECK-FP16-NEXT: vrintn.f16 s4, s4
1253- ; CHECK-FP16-NEXT: vmov r0, s4
1254- ; CHECK-FP16-NEXT: vrintn.f16 s4, s2
1255- ; CHECK-FP16-NEXT: vmov r1, s4
1256- ; CHECK-FP16-NEXT: vrintn.f16 s4, s3
1257- ; CHECK-FP16-NEXT: vmov.16 d17[0], r1
1258- ; CHECK-FP16-NEXT: vmov.16 d17[1], r0
1259- ; CHECK-FP16-NEXT: vmov r0, s4
1260- ; CHECK-FP16-NEXT: vmovx.f16 s4, s3
1261- ; CHECK-FP16-NEXT: vrintn.f16 s4, s4
1262- ; CHECK-FP16-NEXT: vmov.16 d17[2], r0
1263- ; CHECK-FP16-NEXT: vmov r0, s4
1264- ; CHECK-FP16-NEXT: vmovx.f16 s4, s0
1265- ; CHECK-FP16-NEXT: vrintn.f16 s4, s4
1266- ; CHECK-FP16-NEXT: vmov.16 d17[3], r0
1267- ; CHECK-FP16-NEXT: vmov r0, s4
1268- ; CHECK-FP16-NEXT: vrintn.f16 s4, s0
1269- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
1270- ; CHECK-FP16-NEXT: vmov r1, s4
1271- ; CHECK-FP16-NEXT: vrintn.f16 s4, s1
1272- ; CHECK-FP16-NEXT: vrintn.f16 s0, s0
1273- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
1274- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
1275- ; CHECK-FP16-NEXT: vmov r0, s4
1276- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
1277- ; CHECK-FP16-NEXT: vmov r0, s0
1278- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
1279- ; CHECK-FP16-NEXT: vorr q0, q8, q8
1237+ ; CHECK-FP16-NEXT: vrintn.f16 q0, q0
12801238; CHECK-FP16-NEXT: bx lr
12811239 %tmp3 = call <8 x half > @llvm.roundeven.v8f16 (<8 x half > %A )
12821240 ret <8 x half > %tmp3
@@ -1302,9 +1260,7 @@ define <2 x float> @frintn_2s(<2 x float> %A) nounwind {
13021260;
13031261; CHECK-LABEL: frintn_2s:
13041262; CHECK: @ %bb.0:
1305- ; CHECK-NEXT: vrintn.f32 s3, s1
1306- ; CHECK-NEXT: vrintn.f32 s2, s0
1307- ; CHECK-NEXT: vmov.f64 d0, d1
1263+ ; CHECK-NEXT: vrintn.f32 d0, d0
13081264; CHECK-NEXT: bx lr
13091265 %tmp3 = call <2 x float > @llvm.roundeven.v2f32 (<2 x float > %A )
13101266 ret <2 x float > %tmp3
@@ -1336,11 +1292,7 @@ define <4 x float> @frintn_4s(<4 x float> %A) nounwind {
13361292;
13371293; CHECK-LABEL: frintn_4s:
13381294; CHECK: @ %bb.0:
1339- ; CHECK-NEXT: vrintn.f32 s7, s3
1340- ; CHECK-NEXT: vrintn.f32 s6, s2
1341- ; CHECK-NEXT: vrintn.f32 s5, s1
1342- ; CHECK-NEXT: vrintn.f32 s4, s0
1343- ; CHECK-NEXT: vorr q0, q1, q1
1295+ ; CHECK-NEXT: vrintn.f32 q0, q0
13441296; CHECK-NEXT: bx lr
13451297 %tmp3 = call <4 x float > @llvm.roundeven.v4f32 (<4 x float > %A )
13461298 ret <4 x float > %tmp3
0 commit comments