[NFC] Strenghten isInteger condition for rL364940
authorDavid Bolvansky <david.bolvansky@gmail.com>
Tue, 2 Jul 2019 21:16:34 +0000 (21:16 +0000)
committerDavid Bolvansky <david.bolvansky@gmail.com>
Tue, 2 Jul 2019 21:16:34 +0000 (21:16 +0000)
llvm-svn: 364969

llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

index 79b1b86..54961f3 100644 (file)
@@ -1543,8 +1543,9 @@ Value *LibCallSimplifier::optimizePow(CallInst *Pow, IRBuilder<> &B) {
 
     APSInt IntExpo(32, /*isUnsigned=*/false);
     // powf(x, C) -> powi(x, C) iff C is a constant signed integer value
-    if (ExpoF->convertToInteger(IntExpo, APFloat::rmTowardZero, &Ignored) ==
-        APFloat::opOK) {
+    if (ExpoF->isInteger() &&
+        ExpoF->convertToInteger(IntExpo, APFloat::rmTowardZero, &Ignored) ==
+            APFloat::opOK) {
       return createPowWithIntegerExponent(
           Base, ConstantInt::get(B.getInt32Ty(), IntExpo), M, B);
     }