diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-12-26 19:48:43 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-12-26 19:48:43 +0000 |
commit | 7e3ba15529f1a9d82b9d024c6e4bd515de4dca3a (patch) | |
tree | 5e797fd0011d032afc1e800fcec21d268c383130 /llvm/lib/Target/X86/Utils | |
parent | fa5f35e6ad4f9ac27f7f98d2df6eacb67e68c538 (diff) | |
download | bcm5719-llvm-7e3ba15529f1a9d82b9d024c6e4bd515de4dca3a.tar.gz bcm5719-llvm-7e3ba15529f1a9d82b9d024c6e4bd515de4dca3a.zip |
[X86] Add support for printing shuffle comments for AVX512 PSHUFB instructions.
llvm-svn: 256452
Diffstat (limited to 'llvm/lib/Target/X86/Utils')
-rw-r--r-- | llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp b/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp index 7b8527ef79d..a3729769901 100644 --- a/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp +++ b/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp @@ -309,9 +309,7 @@ void DecodePSHUFBMask(const Constant *C, SmallVectorImpl<int> &ShuffleMask) { // i32 -2147483648, i32 -2147483648> unsigned MaskTySize = MaskTy->getPrimitiveSizeInBits(); - - if (MaskTySize != 128 && MaskTySize != 256) // FIXME: Add support for AVX-512. - return; + assert(MaskTySize == 128 || MaskTySize == 256 || MaskTySize == 512); // This is a straightforward byte vector. if (MaskTy->isVectorTy() && MaskTy->getVectorElementType()->isIntegerTy(8)) { @@ -321,7 +319,7 @@ void DecodePSHUFBMask(const Constant *C, SmallVectorImpl<int> &ShuffleMask) { for (int i = 0; i < NumElements; ++i) { // For AVX vectors with 32 bytes the base of the shuffle is the 16-byte // lane of the vector we're inside. - int Base = i < 16 ? 0 : 16; + int Base = i & ~0xf; Constant *COp = C->getAggregateElement(i); if (!COp) { ShuffleMask.clear(); |