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 | a9acd26d1d910e19c02b931a5c30edb0550ac574 (patch) | |
tree | 925fa857412a1658bd14fe1cb51d4af516467d32 /lib/msan/tests | |
parent | 5b4277ade389dfd4712dfc42b7d1042a4f3c0d33 (diff) |
[msan] Handle x86 vector pack intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210020 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/tests')
-rw-r--r-- | lib/msan/tests/msan_test.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index d0b5ce2ff..b4250b153 100644 --- a/lib/msan/tests/msan_test.cc +++ b/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; |