aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/AutoUpgrade.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-05-27 09:02:25 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-05-27 09:02:25 +0000
commit4642a57fbfda606d6af3da4f0ee5c17c96cfcce5 (patch)
tree9e974b951d5d21527747287cee31f89993d22637 /llvm/lib/IR/AutoUpgrade.cpp
parent99302edd1c63639204f0f1a8799384995dba4ca1 (diff)
downloadllvm-4642a57fbfda606d6af3da4f0ee5c17c96cfcce5.zip
llvm-4642a57fbfda606d6af3da4f0ee5c17c96cfcce5.tar.gz
llvm-4642a57fbfda606d6af3da4f0ee5c17c96cfcce5.tar.bz2
Revert: r270973 - [X86][SSE] Replace (V)PMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (llvm)
llvm-svn: 270976
Diffstat (limited to 'llvm/lib/IR/AutoUpgrade.cpp')
-rw-r--r--llvm/lib/IR/AutoUpgrade.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index fd2873e..d05bb47 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -178,9 +178,6 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
Name.startswith("x86.avx2.pbroadcast") ||
Name.startswith("x86.avx.vpermil.") ||
Name.startswith("x86.sse41.pmovsx") ||
- Name.startswith("x86.sse41.pmovzx") ||
- Name.startswith("x86.avx2.pmovsx") ||
- Name.startswith("x86.avx2.pmovzx") ||
Name == "x86.sse2.cvtdq2pd" ||
Name == "x86.sse2.cvtps2pd" ||
Name == "x86.avx.cvtdq2.pd.256" ||
@@ -547,25 +544,19 @@ void llvm::UpgradeIntrinsicCall(CallInst *CI, Function *NewFn) {
for (unsigned I = 0; I < EltNum; ++I)
Rep = Builder.CreateInsertElement(Rep, Load,
ConstantInt::get(I32Ty, I));
- } else if (Name.startswith("llvm.x86.sse41.pmovsx") ||
- Name.startswith("llvm.x86.sse41.pmovzx") ||
- Name.startswith("llvm.x86.avx2.pmovsx") ||
- Name.startswith("llvm.x86.avx2.pmovzx")) {
+ } else if (Name.startswith("llvm.x86.sse41.pmovsx")) {
VectorType *SrcTy = cast<VectorType>(CI->getArgOperand(0)->getType());
VectorType *DstTy = cast<VectorType>(CI->getType());
unsigned NumDstElts = DstTy->getNumElements();
- // Extract a subvector of the first NumDstElts lanes and sign/zero extend.
+ // Extract a subvector of the first NumDstElts lanes and sign extend.
SmallVector<int, 8> ShuffleMask;
for (int i = 0; i != (int)NumDstElts; ++i)
ShuffleMask.push_back(i);
Value *SV = Builder.CreateShuffleVector(
CI->getArgOperand(0), UndefValue::get(SrcTy), ShuffleMask);
-
- bool DoSext = (StringRef::npos != Name.find("pmovsx"));
- Rep = DoSext ? Builder.CreateSExt(SV, DstTy)
- : Builder.CreateZExt(SV, DstTy);
+ Rep = Builder.CreateSExt(SV, DstTy);
} else if (Name == "llvm.x86.avx2.vbroadcasti128") {
// Replace vbroadcasts with a vector shuffle.
Type *VT = VectorType::get(Type::getInt64Ty(C), 2);