Files
clang-p2996/compiler-rt/test/msan/vector_cvt.cc
Jay Foad 2aec6216cb [msan] Mark one test as only supported on x86
Summary: This test uses x86 intrinsics, so it can't work on other platforms.

Reviewers: garious, eugenis, samsonov

Reviewed By: samsonov

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10652

llvm-svn: 240449
2015-06-23 20:17:45 +00:00

25 lines
547 B
C++

// 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-supported-target
#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.cc:[[@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;
}