mirror of
https://github.com/RPCSX/llvm.git
synced 2025-04-02 16:21:36 +00:00
GlobalISel: check for CImm rather than Imm on G_CONSTANTs.
All G_CONSTANTS created by the MachineIRBuilder have an operand of type CImm (i.e. a ConstantInt), so that's what the selector needs to look for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296176 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f7f0f08973
commit
e3a136c5b5
@ -20,6 +20,7 @@
|
||||
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
|
||||
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||
#include "llvm/CodeGen/TargetPassConfig.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
@ -187,8 +188,10 @@ bool InstructionSelector::isOperandImmEqual(
|
||||
MachineInstr *Def = MRI.getVRegDef(MO.getReg());
|
||||
if (Def->getOpcode() != TargetOpcode::G_CONSTANT)
|
||||
return false;
|
||||
assert(Def->getOperand(1).isImm() && "G_CONSTANT values must be constants");
|
||||
return Def->getOperand(1).getImm() == Value;
|
||||
assert(Def->getOperand(1).isCImm() &&
|
||||
"G_CONSTANT values must be constants");
|
||||
const ConstantInt &Imm = *Def->getOperand(1).getCImm();
|
||||
return Imm.getBitWidth() <= 64 && Imm.getSExtValue() == Value;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -100,7 +100,7 @@ body: |
|
||||
liveins: %w0
|
||||
|
||||
%0(s32) = COPY %w0
|
||||
%1(s32) = G_CONSTANT -1
|
||||
%1(s32) = G_CONSTANT i64 -1
|
||||
%2(s32) = G_XOR %0, %1
|
||||
...
|
||||
|
||||
@ -128,7 +128,7 @@ body: |
|
||||
liveins: %x0
|
||||
|
||||
%0(s64) = COPY %x0
|
||||
%1(s64) = G_CONSTANT -1
|
||||
%1(s64) = G_CONSTANT i64 -1
|
||||
%2(s64) = G_XOR %0, %1
|
||||
...
|
||||
|
||||
@ -157,10 +157,9 @@ body: |
|
||||
bb.0:
|
||||
liveins: %w0, %w1
|
||||
successors: %bb.1
|
||||
%1(s32) = G_CONSTANT -1
|
||||
%1(s32) = G_CONSTANT i64 -1
|
||||
G_BR %bb.1
|
||||
bb.1:
|
||||
%0(s32) = COPY %w0
|
||||
%2(s32) = G_XOR %0, %1
|
||||
...
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user