@@ -167,6 +167,7 @@ __m128 test_mm_cvt_pi2ps(__m128 a, __m64 b) {
167167 // CHECK: sitofp <4 x i32> {{%.*}} to <4 x float>
168168 return _mm_cvt_pi2ps (a , b );
169169}
170+ TEST_CONSTEXPR (match_m128 (_mm_cvt_pi2ps ((__m128 ){-5.0f , +7.0f , -9.0f , +11.0f }, (__m64 )(__v2si ){-2 ,+4 }), -2.0f , +4.0f , -9.0f , +11.0f ));
170171
171172__m64 test_mm_cvt_ps2pi (__m128 a ) {
172173 // CHECK-LABEL: test_mm_cvt_ps2pi
@@ -180,29 +181,40 @@ __m64 test_mm_cvtpd_pi32(__m128d a) {
180181 return _mm_cvtpd_pi32 (a );
181182}
182183
184+ __m128 test_mm_cvtpi8_ps (__m64 a ) {
185+ // CHECK-LABEL: test_mm_cvtpi8_ps
186+ // CHECK: sitofp <4 x i8> {{%.*}} to <4 x float>
187+ return _mm_cvtpi8_ps (a );
188+ }
189+ TEST_CONSTEXPR (match_m128 (_mm_cvtpi8_ps ((__m64 )(__v8qi ){1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }), +1.0f , +2.0f , +3.0f , +4.0f ));
190+
183191__m128 test_mm_cvtpi16_ps (__m64 a ) {
184192 // CHECK-LABEL: test_mm_cvtpi16_ps
185193 // CHECK: sitofp <4 x i16> {{%.*}} to <4 x float>
186194 return _mm_cvtpi16_ps (a );
187195}
196+ TEST_CONSTEXPR (match_m128 (_mm_cvtpi16_ps ((__m64 )(__v4hi ){-3 , +9 , -8 , +256 }), -3.0f , +9.0f , -8.0f , +256.0f ));
188197
189198__m128d test_mm_cvtpi32_pd (__m64 a ) {
190199 // CHECK-LABEL: test_mm_cvtpi32_pd
191200 // CHECK: sitofp <2 x i32> {{%.*}} to <2 x double>
192201 return _mm_cvtpi32_pd (a );
193202}
203+ TEST_CONSTEXPR (match_m128d (_mm_cvtpi32_pd ((__m64 )(__v2si ){-10 ,+17 }), -10.0 , +17.0 ));
194204
195205__m128 test_mm_cvtpi32_ps (__m128 a , __m64 b ) {
196206 // CHECK-LABEL: test_mm_cvtpi32_ps
197207 // CHECK: sitofp <4 x i32> {{%.*}} to <4 x float>
198208 return _mm_cvtpi32_ps (a , b );
199209}
210+ TEST_CONSTEXPR (match_m128 (_mm_cvtpi32_ps ((__m128 ){+1.0f , -2.0f , +3.0f , +5.0f }, (__m64 )(__v2si ){+100 ,-200 }), +100.0f , -200.0f , +3.0f , +5.0f ));
200211
201212__m128 test_mm_cvtpi32x2_ps (__m64 a , __m64 b ) {
202213 // CHECK-LABEL: test_mm_cvtpi32x2_ps
203214 // CHECK: sitofp <4 x i32> {{%.*}} to <4 x float>
204215 return _mm_cvtpi32x2_ps (a , b );
205216}
217+ TEST_CONSTEXPR (match_m128 (_mm_cvtpi32x2_ps ((__m64 )(__v2si ){-8 ,+7 }, (__m64 )(__v2si ){+100 ,-200 }), -8.0f , +7.0f , +100.0f , -200.0f ));
206218
207219__m64 test_mm_cvtps_pi16 (__m128 a ) {
208220 // CHECK-LABEL: test_mm_cvtps_pi16
@@ -217,6 +229,20 @@ __m64 test_mm_cvtps_pi32(__m128 a) {
217229 return _mm_cvtps_pi32 (a );
218230}
219231
232+ __m128 test_mm_cvtpu8_ps (__m64 a ) {
233+ // CHECK-LABEL: test_mm_cvtpu8_ps
234+ // CHECK: uitofp <4 x i8> {{%.*}} to <4 x float>
235+ return _mm_cvtpu8_ps (a );
236+ }
237+ TEST_CONSTEXPR (match_m128 (_mm_cvtpu8_ps ((__m64 )(__v8qi ){8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 }), 8.0f , 7.0f , 6.0f , 5.0f ));
238+
239+ __m128 test_mm_cvtpu16_ps (__m64 a ) {
240+ // CHECK-LABEL: test_mm_cvtpu16_ps
241+ // CHECK: uitofp <4 x i16> {{%.*}} to <4 x float>
242+ return _mm_cvtpu16_ps (a );
243+ }
244+ TEST_CONSTEXPR (match_m128 (_mm_cvtpu16_ps ((__m64 )(__v4hi ){-3 , +9 , -8 , +256 }), 65533.0f , 9.0f , 65528.0f , 256.0f ));
245+
220246__m64 test_mm_cvtsi32_si64 (int a ) {
221247 // CHECK-LABEL: test_mm_cvtsi32_si64
222248 // CHECK: insertelement <2 x i32>
0 commit comments