1 // RUN: %clangxx_msan -O0 %s -o %t && %run %t
2 // RUN: %clangxx_msan -DPOSITIVE -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s
3 // REQUIRES: x86_64-target-arch
4 
5 #include <emmintrin.h>
6 
to_int(double v)7 int to_int(double v) {
8   __m128d t = _mm_set_sd(v);
9   int x = _mm_cvtsd_si32(t);
10   return x;
11   // CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value
12   // CHECK: #{{.*}} in to_int{{.*}}vector_cvt.cpp:[[@LINE-3]]
13 }
14 
main()15 int main() {
16 #ifdef POSITIVE
17   double v;
18 #else
19   double v = 1.1;
20 #endif
21   double* volatile p = &v;
22   int x = to_int(*p);
23   return !x;
24 }
25