diff options
| -rw-r--r-- | compiler-rt/lib/msan/tests/msan_test.cc | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/tests/msan_test.cc b/compiler-rt/lib/msan/tests/msan_test.cc index 9ec1e28374d..6f4dd99b339 100644 --- a/compiler-rt/lib/msan/tests/msan_test.cc +++ b/compiler-rt/lib/msan/tests/msan_test.cc @@ -3602,6 +3602,18 @@ TEST(MemorySanitizer, ICmpVectorRelational) {    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  | 

