[llvm] f6a96be - [X86] X86TTIImpl::getIntImmCost - use APInt::isInt/isSignedInt directly
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 12 07:32:58 PST 2022
Author: Simon Pilgrim
Date: 2022-12-12T15:32:49Z
New Revision: f6a96bee518fd1363a594d352ba0616515e82774
URL: https://github.com/llvm/llvm-project/commit/f6a96bee518fd1363a594d352ba0616515e82774
DIFF: https://github.com/llvm/llvm-project/commit/f6a96bee518fd1363a594d352ba0616515e82774.diff
LOG: [X86] X86TTIImpl::getIntImmCost - use APInt::isInt/isSignedInt directly
Avoid some getSExtValue()/getZExtValue() calls
Hopefully we can remove some of the getBitWidth() constraints as well, as many are just there as a proxy for legal types (albeit assuming x86_64).
Added:
Modified:
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index a730d9470aed..74d1f8868f93 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -5550,7 +5550,7 @@ InstructionCost X86TTIImpl::getIntImmCostInst(unsigned Opcode, unsigned Idx,
// We support 64-bit ANDs with immediates with 32-bits of leading zeroes
// by using a 32-bit operation with implicit zero extension. Detect such
// immediates here as the normal path expects bit 31 to be sign extended.
- if (Idx == 1 && Imm.getBitWidth() == 64 && isUInt<32>(Imm.getZExtValue()))
+ if (Idx == 1 && Imm.getBitWidth() == 64 && Imm.isIntN(32))
return TTI::TCC_Free;
ImmIdx = 1;
break;
@@ -5626,16 +5626,16 @@ InstructionCost X86TTIImpl::getIntImmCostIntrin(Intrinsic::ID IID, unsigned Idx,
case Intrinsic::usub_with_overflow:
case Intrinsic::smul_with_overflow:
case Intrinsic::umul_with_overflow:
- if ((Idx == 1) && Imm.getBitWidth() <= 64 && isInt<32>(Imm.getSExtValue()))
+ if ((Idx == 1) && Imm.getBitWidth() <= 64 && Imm.isSignedIntN(32))
return TTI::TCC_Free;
break;
case Intrinsic::experimental_stackmap:
- if ((Idx < 2) || (Imm.getBitWidth() <= 64 && isInt<64>(Imm.getSExtValue())))
+ if ((Idx < 2) || (Imm.getBitWidth() <= 64 && Imm.isSignedIntN(64)))
return TTI::TCC_Free;
break;
case Intrinsic::experimental_patchpoint_void:
case Intrinsic::experimental_patchpoint_i64:
- if ((Idx < 4) || (Imm.getBitWidth() <= 64 && isInt<64>(Imm.getSExtValue())))
+ if ((Idx < 4) || (Imm.getBitWidth() <= 64 && Imm.isSignedIntN(64)))
return TTI::TCC_Free;
break;
}
More information about the llvm-commits
mailing list