diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.h | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 2c35222..a0058e4 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -13791,6 +13791,11 @@ bool ARMTargetLowering::shouldFoldConstantShiftPairToMask( return false; } +bool ARMTargetLowering::shouldFoldSelectWithIdentityConstant(unsigned BinOpcode, + EVT VT) const { + return Subtarget->hasMVEIntegerOps() && isTypeLegal(VT); +} + bool ARMTargetLowering::preferIncOfAddToSubOfNot(EVT VT) const { if (!Subtarget->hasNEON()) { if (Subtarget->isThumb1Only()) diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h index 2db55a5..3d2c09c 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.h +++ b/llvm/lib/Target/ARM/ARMISelLowering.h @@ -738,6 +738,9 @@ class VectorType; bool shouldFoldConstantShiftPairToMask(const SDNode *N, CombineLevel Level) const override; + bool shouldFoldSelectWithIdentityConstant(unsigned BinOpcode, + EVT VT) const override; + bool preferIncOfAddToSubOfNot(EVT VT) const override; bool shouldConvertFpToSat(unsigned Op, EVT FPVT, EVT VT) const override; |