diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp index 90efa8ae0e0..c82a00fc2c8 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp @@ -772,8 +772,8 @@ struct FFSOpt : public LibCallOptimization {      // Constant fold.      if (ConstantInt *CI = dyn_cast<ConstantInt>(Op)) { -      if (CI->getValue() == 0)  // ffs(0) -> 0. -        return Constant::getNullValue(CI->getType()); +      if (CI->isZero()) // ffs(0) -> 0. +        return B.getInt32(0);        // ffs(c) -> cttz(c)+1        return B.getInt32(CI->getValue().countTrailingZeros() + 1);      }  | 

