mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-02 23:50:19 +00:00
Recommit r338204 "[X86] Correct the immediate cost for 'add/sub i64 %x, 0x80000000'."
This checks in a more direct way without triggering a UBSAN error. llvm-svn: 338273
This commit is contained in:
parent
bbcc8895bb
commit
dd0ef801f8
@ -2332,9 +2332,15 @@ int X86TTIImpl::getIntImmCost(unsigned Opcode, unsigned Idx, const APInt &Imm,
|
||||
// immediates here as the normal path expects bit 31 to be sign extended.
|
||||
if (Idx == 1 && Imm.getBitWidth() == 64 && isUInt<32>(Imm.getZExtValue()))
|
||||
return TTI::TCC_Free;
|
||||
LLVM_FALLTHROUGH;
|
||||
ImmIdx = 1;
|
||||
break;
|
||||
case Instruction::Add:
|
||||
case Instruction::Sub:
|
||||
// For add/sub, we can use the opposite instruction for INT32_MIN.
|
||||
if (Idx == 1 && Imm.getBitWidth() == 64 && Imm.getZExtValue() == 0x80000000)
|
||||
return TTI::TCC_Free;
|
||||
ImmIdx = 1;
|
||||
break;
|
||||
case Instruction::Mul:
|
||||
case Instruction::UDiv:
|
||||
case Instruction::SDiv:
|
||||
|
Loading…
x
Reference in New Issue
Block a user