[compiler-rt] r296849 - [msan] Test for _mm_getcsr and _mm_setcsr (r296848).

Evgeniy Stepanov via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 2 17:13:23 PST 2017


Author: eugenis
Date: Thu Mar  2 19:13:23 2017
New Revision: 296849

URL: http://llvm.org/viewvc/llvm-project?rev=296849&view=rev
Log:
[msan] Test for _mm_getcsr and _mm_setcsr (r296848).

Modified:
    compiler-rt/trunk/lib/msan/tests/msan_test.cc

Modified: compiler-rt/trunk/lib/msan/tests/msan_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=296849&r1=296848&r2=296849&view=diff
==============================================================================
--- compiler-rt/trunk/lib/msan/tests/msan_test.cc (original)
+++ compiler-rt/trunk/lib/msan/tests/msan_test.cc Thu Mar  2 19:13:23 2017
@@ -3602,6 +3602,18 @@ TEST(MemorySanitizer, ICmpVectorRelation
   EXPECT_POISONED(_mm_cmpgt_epi16(poisoned(_mm_set1_epi16(6), _mm_set1_epi16(0xF)),
                                poisoned(_mm_set1_epi16(7), _mm_set1_epi16(0))));
 }
+
+TEST(MemorySanitizer, stmxcsr_ldmxcsr) {
+  U4 x = _mm_getcsr();
+  EXPECT_NOT_POISONED(x);
+
+  _mm_setcsr(x);
+
+  __msan_poison(&x, sizeof(x));
+  U4 origin = __LINE__;
+  __msan_set_origin(&x, sizeof(x), origin);
+  EXPECT_UMR_O(_mm_setcsr(x), origin);
+}
 #endif
 
 // Volatile bitfield store is implemented as load-mask-store




More information about the llvm-commits mailing list