diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-21 15:00:35 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-21 15:00:35 +0000 |
commit | 155dda9134c4f771ffc75864a6a0554309ec0531 (patch) | |
tree | 10aca4ba2ea82b5e4a0af626147204498de58685 /llvm/lib/Analysis/ConstantFolding.cpp | |
parent | 0d2ad420df9446392c7d8b645b3fa88f553f860c (diff) | |
download | bcm5719-llvm-155dda9134c4f771ffc75864a6a0554309ec0531.tar.gz bcm5719-llvm-155dda9134c4f771ffc75864a6a0554309ec0531.zip |
Implement constant folding for bitreverse
llvm-svn: 263945
Diffstat (limited to 'llvm/lib/Analysis/ConstantFolding.cpp')
-rw-r--r-- | llvm/lib/Analysis/ConstantFolding.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index cf472ae351e..8c1ad96c7b6 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -1286,6 +1286,7 @@ bool llvm::canConstantFoldCallTo(const Function *F) { case Intrinsic::umul_with_overflow: case Intrinsic::convert_from_fp16: case Intrinsic::convert_to_fp16: + case Intrinsic::bitreverse: case Intrinsic::x86_sse_cvtss2si: case Intrinsic::x86_sse_cvtss2si64: case Intrinsic::x86_sse_cvttss2si: @@ -1618,6 +1619,8 @@ static Constant *ConstantFoldScalarCall(StringRef Name, unsigned IntrinsicID, return ConstantInt::get(Ty->getContext(), Op->getValue().byteSwap()); case Intrinsic::ctpop: return ConstantInt::get(Ty, Op->getValue().countPopulation()); + case Intrinsic::bitreverse: + return ConstantInt::get(Ty->getContext(), Op->getValue().reverseBits()); case Intrinsic::convert_from_fp16: { APFloat Val(APFloat::IEEEhalf, Op->getValue()); |