diff options
Diffstat (limited to 'lib/msan/tests')
-rw-r--r-- | lib/msan/tests/msan_test.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index 9ec1e2837..6f4dd99b3 100644 --- a/lib/msan/tests/msan_test.cc +++ b/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 |