diff options
-rw-r--r-- | llvm/lib/Analysis/ConstantFolding.cpp | 3 | ||||
-rw-r--r-- | llvm/test/Transforms/InstSimplify/call.ll | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index d33fe4a0094..b8e80eaedd9 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -2036,7 +2036,8 @@ Constant *ConstantFoldVectorCall(StringRef Name, unsigned IntrinsicID, for (unsigned J = 0, JE = Operands.size(); J != JE; ++J) { // These intrinsics use a scalar type for their second argument. if (J == 1 && - (IntrinsicID == Intrinsic::cttz || IntrinsicID == Intrinsic::ctlz)) { + (IntrinsicID == Intrinsic::cttz || IntrinsicID == Intrinsic::ctlz || + IntrinsicID == Intrinsic::powi)) { Lane[J] = Operands[J]; continue; } diff --git a/llvm/test/Transforms/InstSimplify/call.ll b/llvm/test/Transforms/InstSimplify/call.ll index 364fd643691..c7d10e251b4 100644 --- a/llvm/test/Transforms/InstSimplify/call.ll +++ b/llvm/test/Transforms/InstSimplify/call.ll @@ -437,8 +437,7 @@ entry: define <2 x double> @constant_fold_powi_vec() nounwind uwtable ssp { ; CHECK-LABEL: @constant_fold_powi_vec( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[TMP0:%.*]] = call <2 x double> @llvm.powi.v2f64(<2 x double> <double 3.000000e+00, double 5.000000e+00>, i32 2) -; CHECK-NEXT: ret <2 x double> [[TMP0]] +; CHECK-NEXT: ret <2 x double> <double 9.000000e+00, double 2.500000e+01> ; entry: %0 = call <2 x double> @llvm.powi.v2f64(<2 x double> <double 3.00000e+00, double 5.00000e+00>, i32 2) |