================
@@ -364,33 +366,41 @@ int test_mm_cvtss_si32(__m128 A) {
   // CHECK: call {{.*}}i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}})
   return _mm_cvtss_si32(A);
 }
+TEST_CONSTEXPR(_mm_cvtss_si32((__m128){+3.0f}) == 3);
+TEST_CONSTEXPR(_mm_cvtss_si32((__m128){-2.0f}) == -2);
 
 #ifdef __x86_64__
 long long test_mm_cvtss_si64(__m128 A) {
   // CHECK-LABEL: test_mm_cvtss_si64
   // CHECK: call {{.*}}i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}})
   return _mm_cvtss_si64(A);
 }
+TEST_CONSTEXPR(_mm_cvtss_si64((__m128){+1.0f}) == 1LL);
+TEST_CONSTEXPR(_mm_cvtss_si64((__m128){-7.0f}) == -7LL);
 #endif
 
 int test_mm_cvtt_ss2si(__m128 A) {
   // CHECK-LABEL: test_mm_cvtt_ss2si
   // CHECK: call {{.*}}i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}})
   return _mm_cvtt_ss2si(A);
 }
+TEST_CONSTEXPR(_mm_cvtt_ss2si((__m128){+3.0f}) == 3);
 
 int test_mm_cvttss_si32(__m128 A) {
   // CHECK-LABEL: test_mm_cvttss_si32
   // CHECK: call {{.*}}i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}})
   return _mm_cvttss_si32(A);
 }
+TEST_CONSTEXPR(_mm_cvttss_si32((__m128){+3.0f}) == 3);
+
 
 #ifdef __x86_64__
 long long test_mm_cvttss_si64(__m128 A) {
   // CHECK-LABEL: test_mm_cvttss_si64
   // CHECK: call {{.*}}i64 @llvm.x86.sse.cvttss2si64(<4 x float> %{{.*}})
   return _mm_cvttss_si64(A);
 }
+TEST_CONSTEXPR(_mm_cvttss_si64((__m128){-12.0f}) == -12LL);
----------------
RKSimon wrote:

add a second test with a result that requires a i64 ?

https://github.com/llvm/llvm-project/pull/214611
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to