@@ -707,12 +707,8 @@ define <2 x i50> @test_unsigned_v2f32_v2i50(<2 x float> %f) {
707707define <2 x i64 > @test_unsigned_v2f32_v2i64 (<2 x float > %f ) {
708708; CHECK-LABEL: test_unsigned_v2f32_v2i64:
709709; CHECK: // %bb.0:
710- ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0
711- ; CHECK-NEXT: mov s1, v0.s[1]
712- ; CHECK-NEXT: fcvtzu x8, s0
713- ; CHECK-NEXT: fcvtzu x9, s1
714- ; CHECK-NEXT: fmov d0, x8
715- ; CHECK-NEXT: mov v0.d[1], x9
710+ ; CHECK-NEXT: fcvtl v0.2d, v0.2s
711+ ; CHECK-NEXT: fcvtzu v0.2d, v0.2d
716712; CHECK-NEXT: ret
717713 %x = call <2 x i64 > @llvm.fptoui.sat.v2f32.v2i64 (<2 x float > %f )
718714 ret <2 x i64 > %x
@@ -927,17 +923,10 @@ define <4 x i50> @test_unsigned_v4f32_v4i50(<4 x float> %f) {
927923define <4 x i64 > @test_unsigned_v4f32_v4i64 (<4 x float > %f ) {
928924; CHECK-LABEL: test_unsigned_v4f32_v4i64:
929925; CHECK: // %bb.0:
930- ; CHECK-NEXT: ext v1.16b, v0.16b, v0.16b, #8
931- ; CHECK-NEXT: mov s3, v0.s[1]
932- ; CHECK-NEXT: fcvtzu x9, s0
933- ; CHECK-NEXT: mov s2, v1.s[1]
934- ; CHECK-NEXT: fcvtzu x8, s1
935- ; CHECK-NEXT: fcvtzu x11, s3
936- ; CHECK-NEXT: fmov d0, x9
937- ; CHECK-NEXT: fcvtzu x10, s2
938- ; CHECK-NEXT: fmov d1, x8
939- ; CHECK-NEXT: mov v0.d[1], x11
940- ; CHECK-NEXT: mov v1.d[1], x10
926+ ; CHECK-NEXT: fcvtl2 v1.2d, v0.4s
927+ ; CHECK-NEXT: fcvtl v0.2d, v0.2s
928+ ; CHECK-NEXT: fcvtzu v1.2d, v1.2d
929+ ; CHECK-NEXT: fcvtzu v0.2d, v0.2d
941930; CHECK-NEXT: ret
942931 %x = call <4 x i64 > @llvm.fptoui.sat.v4f32.v4i64 (<4 x float > %f )
943932 ret <4 x i64 > %x
0 commit comments