diff options
| author | Reid Spencer <rspencer@reidspencer.com> | 2007-04-01 18:42:20 +0000 |
|---|---|---|
| committer | Reid Spencer <rspencer@reidspencer.com> | 2007-04-01 18:42:20 +0000 |
| commit | add6123405bf4d020c5c563d45b3a82c2a767f99 (patch) | |
| tree | 0721156869a46a74ee094fe735cea356e4520c1a /llvm/lib/Analysis/ConstantFolding.cpp | |
| parent | 150f3bbab2154b1e6b86ebe419f023774b3a61d8 (diff) | |
| download | bcm5719-llvm-add6123405bf4d020c5c563d45b3a82c2a767f99.tar.gz bcm5719-llvm-add6123405bf4d020c5c563d45b3a82c2a767f99.zip | |
The bit counting intrinsics return i32 not the operand type. This fixes
last night's regression in SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls
llvm-svn: 35556
Diffstat (limited to 'llvm/lib/Analysis/ConstantFolding.cpp')
| -rw-r--r-- | llvm/lib/Analysis/ConstantFolding.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index f0bd1dd0ad4..8991c246586 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -433,18 +433,17 @@ llvm::ConstantFoldCall(Function *F, Constant** Operands, unsigned NumOperands) { break; } } else if (ConstantInt *Op = dyn_cast<ConstantInt>(Operands[0])) { - const IntegerType *OpTy = cast<IntegerType>(Op->getType()); if (Name.size() > 11 && !memcmp(&Name[0], "llvm.bswap", 10)) { return ConstantInt::get(Op->getValue().byteSwap()); } else if (Name.size() > 11 && !memcmp(&Name[0],"llvm.ctpop",10)) { uint64_t ctpop = Op->getValue().countPopulation(); - return ConstantInt::get(OpTy, ctpop); + return ConstantInt::get(Type::Int32Ty, ctpop); } else if (Name.size() > 10 && !memcmp(&Name[0], "llvm.cttz", 9)) { uint64_t cttz = Op->getValue().countTrailingZeros(); - return ConstantInt::get(OpTy, cttz); + return ConstantInt::get(Type::Int32Ty, cttz); } else if (Name.size() > 10 && !memcmp(&Name[0], "llvm.ctlz", 9)) { uint64_t ctlz = Op->getValue().countLeadingZeros(); - return ConstantInt::get(OpTy, ctlz); + return ConstantInt::get(Type::Int32Ty, ctlz); } } } else if (NumOperands == 2) { |

