summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorPetar Avramovic <Petar.Avramovic@rt-rk.com>2019-12-30 11:26:45 +0100
committerPetar Avramovic <Petar.Avramovic@rt-rk.com>2019-12-30 11:26:45 +0100
commitdbc136e0fe7e14c64dcb78e72321bb41af60afa4 (patch)
treed45452755ac0733c9411611617b10d7e3aaa7854 /llvm/lib/Target
parent94a24e7a401be7a3db0ddfa2035855b75c8cc55d (diff)
downloadbcm5719-llvm-dbc136e0fe7e14c64dcb78e72321bb41af60afa4.tar.gz
bcm5719-llvm-dbc136e0fe7e14c64dcb78e72321bb41af60afa4.zip
[MIPS GlobalISel] Select bitreverse
G_BITREVERSE is generated from llvm.bitreverse.<type> intrinsics, clang genrates these intrinsics from __builtin_bitreverse32 and __builtin_bitreverse64. Add lower and narrowscalar for G_BITREVERSE. Lower G_BITREVERSE on MIPS32. Differential Revision: https://reviews.llvm.org/D71363
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/Mips/MipsLegalizerInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp b/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
index 51ad1e2de3a..39e53a75ac7 100644
--- a/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
+++ b/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
@@ -198,6 +198,10 @@ MipsLegalizerInfo::MipsLegalizerInfo(const MipsSubtarget &ST) {
})
.maxScalar(0, s32);
+ getActionDefinitionsBuilder(G_BITREVERSE)
+ .lowerFor({s32})
+ .maxScalar(0, s32);
+
// FP instructions
getActionDefinitionsBuilder(G_FCONSTANT)
.legalFor({s32, s64});
OpenPOWER on IntegriCloud