summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2017-07-18 09:08:47 +0000
committerDiana Picus <diana.picus@linaro.org>2017-07-18 09:08:47 +0000
commitdf4100b3d2f29b99f403d8ff63f7780135b5017d (patch)
tree2afeb83c8942c0ffdb4914c4e638e81994b225d6 /llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
parent7f633dfe99e85f3dc2272b12b64dc2ad109ba663 (diff)
downloadbcm5719-llvm-df4100b3d2f29b99f403d8ff63f7780135b5017d.tar.gz
bcm5719-llvm-df4100b3d2f29b99f403d8ff63f7780135b5017d.zip
GlobalISel: Support G_(S|U)REM widening in LegalizerHelper
Treat widening G_SREM and G_UREM the same as G_SDIV and G_UDIV. This is going to be used in the ARM backend (and that's when the test will come too). llvm-svn: 308278
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 49fb5e8f075..5258370e668 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -433,9 +433,12 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
}
case TargetOpcode::G_SDIV:
case TargetOpcode::G_UDIV:
+ case TargetOpcode::G_SREM:
+ case TargetOpcode::G_UREM:
case TargetOpcode::G_ASHR:
case TargetOpcode::G_LSHR: {
unsigned ExtOp = MI.getOpcode() == TargetOpcode::G_SDIV ||
+ MI.getOpcode() == TargetOpcode::G_SREM ||
MI.getOpcode() == TargetOpcode::G_ASHR
? TargetOpcode::G_SEXT
: TargetOpcode::G_ZEXT;
OpenPOWER on IntegriCloud