@@ -46,8 +46,7 @@ define <2 x double> @test_vcvt_high_v1f64_f32_bitcast(<4 x float> %x) nounwind r
46
46
;
47
47
; GISEL-LABEL: test_vcvt_high_v1f64_f32_bitcast:
48
48
; GISEL: // %bb.0:
49
- ; GISEL-NEXT: mov d0, v0[1]
50
- ; GISEL-NEXT: fcvtl v0.2d, v0.2s
49
+ ; GISEL-NEXT: fcvtl2 v0.2d, v0.4s
51
50
; GISEL-NEXT: ret
52
51
%bc1 = bitcast <4 x float > %x to <2 x double >
53
52
%ext = shufflevector <2 x double > %bc1 , <2 x double > undef , <1 x i32 > <i32 1 >
@@ -64,8 +63,7 @@ define <2 x double> @test_vcvt_high_v1i64_f32_bitcast(<2 x i64> %x) nounwind rea
64
63
;
65
64
; GISEL-LABEL: test_vcvt_high_v1i64_f32_bitcast:
66
65
; GISEL: // %bb.0:
67
- ; GISEL-NEXT: mov d0, v0[1]
68
- ; GISEL-NEXT: fcvtl v0.2d, v0.2s
66
+ ; GISEL-NEXT: fcvtl2 v0.2d, v0.4s
69
67
; GISEL-NEXT: ret
70
68
%ext = shufflevector <2 x i64 > %x , <2 x i64 > undef , <1 x i32 > <i32 1 >
71
69
%bc2 = bitcast <1 x i64 > %ext to <2 x float >
@@ -97,8 +95,7 @@ define <2 x double> @test_vcvt_high_v4i16_f32_bitcast(<8 x i16> %x) nounwind rea
97
95
;
98
96
; GISEL-LABEL: test_vcvt_high_v4i16_f32_bitcast:
99
97
; GISEL: // %bb.0:
100
- ; GISEL-NEXT: mov d0, v0[1]
101
- ; GISEL-NEXT: fcvtl v0.2d, v0.2s
98
+ ; GISEL-NEXT: fcvtl2 v0.2d, v0.4s
102
99
; GISEL-NEXT: ret
103
100
%ext = shufflevector <8 x i16 > %x , <8 x i16 > undef , <4 x i32 > <i32 4 , i32 5 , i32 6 , i32 7 >
104
101
%bc2 = bitcast <4 x i16 > %ext to <2 x float >
@@ -114,8 +111,7 @@ define <2 x double> @test_vcvt_high_v8i8_f32_bitcast(<16 x i8> %x) nounwind read
114
111
;
115
112
; GISEL-LABEL: test_vcvt_high_v8i8_f32_bitcast:
116
113
; GISEL: // %bb.0:
117
- ; GISEL-NEXT: mov d0, v0[1]
118
- ; GISEL-NEXT: fcvtl v0.2d, v0.2s
114
+ ; GISEL-NEXT: fcvtl2 v0.2d, v0.4s
119
115
; GISEL-NEXT: ret
120
116
%ext = shufflevector <16 x i8 > %x , <16 x i8 > undef , <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
121
117
%bc2 = bitcast <8 x i8 > %ext to <2 x float >
@@ -131,8 +127,7 @@ define <4 x float> @test_vcvt_high_v1i64_f16_bitcast(<2 x i64> %x) nounwind read
131
127
;
132
128
; GISEL-LABEL: test_vcvt_high_v1i64_f16_bitcast:
133
129
; GISEL: // %bb.0:
134
- ; GISEL-NEXT: mov d0, v0[1]
135
- ; GISEL-NEXT: fcvtl v0.4s, v0.4h
130
+ ; GISEL-NEXT: fcvtl2 v0.4s, v0.8h
136
131
; GISEL-NEXT: ret
137
132
%ext = shufflevector <2 x i64 > %x , <2 x i64 > undef , <1 x i32 > <i32 1 >
138
133
%bc2 = bitcast <1 x i64 > %ext to <4 x half >
@@ -148,8 +143,7 @@ define <4 x float> @test_vcvt_high_v2i32_f16_bitcast(<4 x i32> %x) nounwind read
148
143
;
149
144
; GISEL-LABEL: test_vcvt_high_v2i32_f16_bitcast:
150
145
; GISEL: // %bb.0:
151
- ; GISEL-NEXT: mov d0, v0[1]
152
- ; GISEL-NEXT: fcvtl v0.4s, v0.4h
146
+ ; GISEL-NEXT: fcvtl2 v0.4s, v0.8h
153
147
; GISEL-NEXT: ret
154
148
%ext = shufflevector <4 x i32 > %x , <4 x i32 > undef , <2 x i32 > <i32 2 , i32 3 >
155
149
%bc2 = bitcast <2 x i32 > %ext to <4 x half >
@@ -181,8 +175,7 @@ define <4 x float> @test_vcvt_high_v8i8_f16_bitcast(<16 x i8> %x) nounwind readn
181
175
;
182
176
; GISEL-LABEL: test_vcvt_high_v8i8_f16_bitcast:
183
177
; GISEL: // %bb.0:
184
- ; GISEL-NEXT: mov d0, v0[1]
185
- ; GISEL-NEXT: fcvtl v0.4s, v0.4h
178
+ ; GISEL-NEXT: fcvtl2 v0.4s, v0.8h
186
179
; GISEL-NEXT: ret
187
180
%ext = shufflevector <16 x i8 > %x , <16 x i8 > undef , <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
188
181
%bc2 = bitcast <8 x i8 > %ext to <4 x half >
0 commit comments