forked from OSchip/llvm-project
[AArch64] Improve Exynos predicates
Expand the predicate using shifted arithmetic and logic instructions to also consider the respective not shifted instructions. llvm-svn: 350976
This commit is contained in:
parent
4f194250ec
commit
7d7e3256cd
|
@ -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>;
|
||||
|
||||
|
|
Loading…
Reference in New Issue