diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-02 12:31:44 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-02 12:31:44 +0000 |
| commit | d425a2b169e7a1fceaa266c4513b23fe29641d36 (patch) | |
| tree | 0af7030b621347f956f3493cc707b24cf2842bb7 /compiler-rt | |
| parent | 0797874f3366aa5a8435c62ee7239e47b6a44696 (diff) | |
| download | bcm5719-llvm-d425a2b169e7a1fceaa266c4513b23fe29641d36.tar.gz bcm5719-llvm-d425a2b169e7a1fceaa266c4513b23fe29641d36.zip | |
[msan] Handle x86 vector pack intrinsics.
llvm-svn: 210020
Diffstat (limited to 'compiler-rt')
| -rw-r--r-- | compiler-rt/lib/msan/tests/msan_test.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/tests/msan_test.cc b/compiler-rt/lib/msan/tests/msan_test.cc index d0b5ce2ff9d..b4250b153fa 100644 --- a/compiler-rt/lib/msan/tests/msan_test.cc +++ b/compiler-rt/lib/msan/tests/msan_test.cc @@ -3612,6 +3612,27 @@ TEST(VectorShiftTest, avx2_left) { #endif // __AVX2__ } // namespace +TEST(VectorPackTest, sse2_packssdw_128) { + const unsigned S2_max = (1 << 15) - 1; + V4x32 a = {*GetPoisoned<U4>() & 0xFF0000U, *GetPoisoned<U4>() & 0xFFFF0000, + S2_max + 100, 4}; + V4x32 b = {*GetPoisoned<U4>() & 0xFF, S2_max + 10000, + *GetPoisoned<U4>() & 0xFF00, S2_max}; + V8x16 c = _mm_packs_epi32(a, b); + EXPECT_POISONED(c[0]); + EXPECT_POISONED(c[1]); + EXPECT_NOT_POISONED(c[2]); + EXPECT_NOT_POISONED(c[3]); + EXPECT_POISONED(c[4]); + EXPECT_NOT_POISONED(c[5]); + EXPECT_POISONED(c[6]); + EXPECT_NOT_POISONED(c[7]); + + EXPECT_EQ(c[2], S2_max); + EXPECT_EQ(c[3], 4); + EXPECT_EQ(c[5], S2_max); + EXPECT_EQ(c[7], S2_max); +} TEST(MemorySanitizerDr, StoreInDSOTest) { if (!__msan_has_dynamic_component()) return; |

