diff options
author | Craig Topper <craig.topper@intel.com> | 2018-05-13 00:29:40 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-05-13 00:29:40 +0000 |
commit | df3a9cedffdaa04fd572bd85e018131e93b53ccd (patch) | |
tree | c6467b14c5cdf3decb80b8feb424fdb5e1ec5234 /llvm/lib/IR/AutoUpgrade.cpp | |
parent | 38ad7ddabc95623d9c022adf34d57d5230c726d5 (diff) | |
download | llvm-df3a9cedffdaa04fd572bd85e018131e93b53ccd.zip llvm-df3a9cedffdaa04fd572bd85e018131e93b53ccd.tar.gz llvm-df3a9cedffdaa04fd572bd85e018131e93b53ccd.tar.bz2 |
[X86] Remove an autoupgrade legacy cvtss2sd intrinsics.
llvm-svn: 332187
Diffstat (limited to 'llvm/lib/IR/AutoUpgrade.cpp')
-rw-r--r-- | llvm/lib/IR/AutoUpgrade.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp index e79dbce..9d60314 100644 --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -258,6 +258,7 @@ static bool ShouldUpgradeX86Intrinsic(Function *F, StringRef Name) { Name == "sse.cvtsi642ss" || // Added in 7.0 Name == "sse2.cvtsi2sd" || // Added in 7.0 Name == "sse2.cvtsi642sd" || // Added in 7.0 + Name == "sse2.cvtss2sd" || // Added in 7.0 Name == "sse2.cvtdq2pd" || // Added in 3.9 Name == "sse2.cvtps2pd" || // Added in 3.9 Name == "avx.cvtdq2.pd.256" || // Added in 3.9 @@ -1559,6 +1560,10 @@ void llvm::UpgradeIntrinsicCall(CallInst *CI, Function *NewFn) { Rep = Builder.CreateSIToFP(CI->getArgOperand(1), CI->getType()->getVectorElementType()); Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0); + } else if (IsX86 && Name == "sse2.cvtss2sd") { + Rep = Builder.CreateExtractElement(CI->getArgOperand(1), (uint64_t)0); + Rep = Builder.CreateFPExt(Rep, CI->getType()->getVectorElementType()); + Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0); } else if (IsX86 && (Name == "sse2.cvtdq2pd" || Name == "sse2.cvtps2pd" || Name == "avx.cvtdq2.pd.256" || |