summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvandro Menezes <e.menezes@samsung.com>2019-01-11 22:39:47 +0000
committerEvandro Menezes <e.menezes@samsung.com>2019-01-11 22:39:47 +0000
commit7d7e3256cd8f935a370bc289e2752b0a3efe073a (patch)
treea2b8e1280a731280b6148a0916afd9176e3d8cee
parent4f194250ecaf5f539df55dd896c73d7ca43634b6 (diff)
downloadbcm5719-llvm-7d7e3256cd8f935a370bc289e2752b0a3efe073a.tar.gz
bcm5719-llvm-7d7e3256cd8f935a370bc289e2752b0a3efe073a.zip
[AArch64] Improve Exynos predicates
Expand the predicate using shifted arithmetic and logic instructions to also consider the respective not shifted instructions. llvm-svn: 350976
-rw-r--r--llvm/lib/Target/AArch64/AArch64SchedPredExynos.td15
1 files changed, 12 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td b/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td
index 2044e30ec1c..48c54230e9d 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td
@@ -48,7 +48,10 @@ def ExynosArithFn : TIIPredicate<
CheckExtBy3]>]>]>>>,
MCOpcodeSwitchCase<
IsArithShiftOp.ValidOpcodes,
- MCReturnStatement<ExynosCheckShift>>],
+ MCReturnStatement<ExynosCheckShift>>,
+ MCOpcodeSwitchCase<
+ IsArithUnshiftOp.ValidOpcodes,
+ MCReturnStatement<TruePred>>],
MCReturnStatement<FalsePred>>>;
def ExynosArithPred : MCSchedPredicate<ExynosArithFn>;
@@ -58,7 +61,10 @@ def ExynosLogicFn : TIIPredicate<
MCOpcodeSwitchStatement<
[MCOpcodeSwitchCase<
IsLogicShiftOp.ValidOpcodes,
- MCReturnStatement<ExynosCheckShift>>],
+ MCReturnStatement<ExynosCheckShift>>,
+ MCOpcodeSwitchCase<
+ IsLogicUnshiftOp.ValidOpcodes,
+ MCReturnStatement<TruePred>>],
MCReturnStatement<FalsePred>>>;
def ExynosLogicPred : MCSchedPredicate<ExynosLogicFn>;
@@ -73,7 +79,10 @@ def ExynosLogicExFn : TIIPredicate<
[ExynosCheckShift,
CheckAll<
[CheckShiftLSL,
- CheckShiftBy8]>]>>>],
+ CheckShiftBy8]>]>>>,
+ MCOpcodeSwitchCase<
+ IsLogicUnshiftOp.ValidOpcodes,
+ MCReturnStatement<TruePred>>],
MCReturnStatement<FalsePred>>>;
def ExynosLogicExPred : MCSchedPredicate<ExynosLogicExFn>;
OpenPOWER on IntegriCloud