summaryrefslogtreecommitdiffstats
path: root/compiler-rt/test/msan/vector_cvt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/test/msan/vector_cvt.cpp')
-rw-r--r--compiler-rt/test/msan/vector_cvt.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler-rt/test/msan/vector_cvt.cpp b/compiler-rt/test/msan/vector_cvt.cpp
new file mode 100644
index 00000000000..aa5327e3c19
--- /dev/null
+++ b/compiler-rt/test/msan/vector_cvt.cpp
@@ -0,0 +1,24 @@
+// RUN: %clangxx_msan -O0 %s -o %t && %run %t
+// RUN: %clangxx_msan -DPOSITIVE -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s
+// REQUIRES: x86_64-target-arch
+
+#include <emmintrin.h>
+
+int to_int(double v) {
+ __m128d t = _mm_set_sd(v);
+ int x = _mm_cvtsd_si32(t);
+ return x;
+ // CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value
+ // CHECK: #{{.*}} in to_int{{.*}}vector_cvt.cpp:[[@LINE-3]]
+}
+
+int main() {
+#ifdef POSITIVE
+ double v;
+#else
+ double v = 1.1;
+#endif
+ double* volatile p = &v;
+ int x = to_int(*p);
+ return !x;
+}
OpenPOWER on IntegriCloud