diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-12-10 23:09:43 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-12-10 23:09:43 +0000 |
commit | edab02b50b6b3b5e4f785adaacd108cd921d1f3f (patch) | |
tree | c285ba3f53a4f648eb0f66e095655f89332f5ccf /llvm/lib/IR/AutoUpgrade.cpp | |
parent | 4c48bbe94da7d0c6b949631b5ecdc2ff045960e1 (diff) | |
download | llvm-edab02b50b6b3b5e4f785adaacd108cd921d1f3f.zip llvm-edab02b50b6b3b5e4f785adaacd108cd921d1f3f.tar.gz llvm-edab02b50b6b3b5e4f785adaacd108cd921d1f3f.tar.bz2 |
[X86] Remove masking from 512-bit PSHUFB intrinsics in preparation for being able to constant fold it in InstCombineCalls like we do for 128/256-bit.
llvm-svn: 289344
Diffstat (limited to 'llvm/lib/IR/AutoUpgrade.cpp')
-rw-r--r-- | llvm/lib/IR/AutoUpgrade.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp index fe7ba8b..9218bed 100644 --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -258,8 +258,7 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) { Name == "sse2.pminu.b" || // Added in 3.9 Name == "sse41.pminuw" || // Added in 3.9 Name == "sse41.pminud" || // Added in 3.9 - Name == "avx512.mask.pshuf.b.128" || // Added in 4.0 - Name == "avx512.mask.pshuf.b.256" || // Added in 4.0 + Name.startswith("avx512.mask.pshuf.b.") || // Added in 4.0 Name.startswith("avx2.pmax") || // Added in 3.9 Name.startswith("avx2.pmin") || // Added in 3.9 Name.startswith("avx512.mask.pmax") || // Added in 4.0 @@ -1451,6 +1450,8 @@ void llvm::UpgradeIntrinsicCall(CallInst *CI, Function *NewFn) { IID = Intrinsic::x86_ssse3_pshuf_b_128; else if (VecTy->getPrimitiveSizeInBits() == 256) IID = Intrinsic::x86_avx2_pshuf_b; + else if (VecTy->getPrimitiveSizeInBits() == 512) + IID = Intrinsic::x86_avx512_pshuf_b_512; else llvm_unreachable("Unexpected intrinsic"); |