@@ -79,21 +79,7 @@ define <4 x half> @frinta_4h(<4 x half> %A) nounwind {
7979;
8080; CHECK-FP16-LABEL: frinta_4h:
8181; CHECK-FP16: @ %bb.0:
82- ; CHECK-FP16-NEXT: vmovx.f16 s2, s0
83- ; CHECK-FP16-NEXT: vrinta.f16 s2, s2
84- ; CHECK-FP16-NEXT: vmov r0, s2
85- ; CHECK-FP16-NEXT: vrinta.f16 s2, s0
86- ; CHECK-FP16-NEXT: vmov r1, s2
87- ; CHECK-FP16-NEXT: vrinta.f16 s2, s1
88- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
89- ; CHECK-FP16-NEXT: vrinta.f16 s0, s0
90- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
91- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
92- ; CHECK-FP16-NEXT: vmov r0, s2
93- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
94- ; CHECK-FP16-NEXT: vmov r0, s0
95- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
96- ; CHECK-FP16-NEXT: vorr d0, d16, d16
82+ ; CHECK-FP16-NEXT: vrinta.f16 d0, d0
9783; CHECK-FP16-NEXT: bx lr
9884 %tmp3 = call <4 x half > @llvm.round.v4f16 (<4 x half > %A )
9985 ret <4 x half > %tmp3
@@ -243,35 +229,7 @@ define <8 x half> @frinta_8h(<8 x half> %A) nounwind {
243229;
244230; CHECK-FP16-LABEL: frinta_8h:
245231; CHECK-FP16: @ %bb.0:
246- ; CHECK-FP16-NEXT: vmovx.f16 s4, s2
247- ; CHECK-FP16-NEXT: vrinta.f16 s4, s4
248- ; CHECK-FP16-NEXT: vmov r0, s4
249- ; CHECK-FP16-NEXT: vrinta.f16 s4, s2
250- ; CHECK-FP16-NEXT: vmov r1, s4
251- ; CHECK-FP16-NEXT: vrinta.f16 s4, s3
252- ; CHECK-FP16-NEXT: vmov.16 d17[0], r1
253- ; CHECK-FP16-NEXT: vmov.16 d17[1], r0
254- ; CHECK-FP16-NEXT: vmov r0, s4
255- ; CHECK-FP16-NEXT: vmovx.f16 s4, s3
256- ; CHECK-FP16-NEXT: vrinta.f16 s4, s4
257- ; CHECK-FP16-NEXT: vmov.16 d17[2], r0
258- ; CHECK-FP16-NEXT: vmov r0, s4
259- ; CHECK-FP16-NEXT: vmovx.f16 s4, s0
260- ; CHECK-FP16-NEXT: vrinta.f16 s4, s4
261- ; CHECK-FP16-NEXT: vmov.16 d17[3], r0
262- ; CHECK-FP16-NEXT: vmov r0, s4
263- ; CHECK-FP16-NEXT: vrinta.f16 s4, s0
264- ; CHECK-FP16-NEXT: vmovx.f16 s0, s1
265- ; CHECK-FP16-NEXT: vmov r1, s4
266- ; CHECK-FP16-NEXT: vrinta.f16 s4, s1
267- ; CHECK-FP16-NEXT: vrinta.f16 s0, s0
268- ; CHECK-FP16-NEXT: vmov.16 d16[0], r1
269- ; CHECK-FP16-NEXT: vmov.16 d16[1], r0
270- ; CHECK-FP16-NEXT: vmov r0, s4
271- ; CHECK-FP16-NEXT: vmov.16 d16[2], r0
272- ; CHECK-FP16-NEXT: vmov r0, s0
273- ; CHECK-FP16-NEXT: vmov.16 d16[3], r0
274- ; CHECK-FP16-NEXT: vorr q0, q8, q8
232+ ; CHECK-FP16-NEXT: vrinta.f16 q0, q0
275233; CHECK-FP16-NEXT: bx lr
276234 %tmp3 = call <8 x half > @llvm.round.v8f16 (<8 x half > %A )
277235 ret <8 x half > %tmp3
@@ -297,9 +255,7 @@ define <2 x float> @frinta_2s(<2 x float> %A) nounwind {
297255;
298256; CHECK-LABEL: frinta_2s:
299257; CHECK: @ %bb.0:
300- ; CHECK-NEXT: vrinta.f32 s3, s1
301- ; CHECK-NEXT: vrinta.f32 s2, s0
302- ; CHECK-NEXT: vmov.f64 d0, d1
258+ ; CHECK-NEXT: vrinta.f32 d0, d0
303259; CHECK-NEXT: bx lr
304260 %tmp3 = call <2 x float > @llvm.round.v2f32 (<2 x float > %A )
305261 ret <2 x float > %tmp3
@@ -331,11 +287,7 @@ define <4 x float> @frinta_4s(<4 x float> %A) nounwind {
331287;
332288; CHECK-LABEL: frinta_4s:
333289; CHECK: @ %bb.0:
334- ; CHECK-NEXT: vrinta.f32 s7, s3
335- ; CHECK-NEXT: vrinta.f32 s6, s2
336- ; CHECK-NEXT: vrinta.f32 s5, s1
337- ; CHECK-NEXT: vrinta.f32 s4, s0
338- ; CHECK-NEXT: vorr q0, q1, q1
290+ ; CHECK-NEXT: vrinta.f32 q0, q0
339291; CHECK-NEXT: bx lr
340292 %tmp3 = call <4 x float > @llvm.round.v4f32 (<4 x float > %A )
341293 ret <4 x float > %tmp3
0 commit comments