]> granicus.if.org Git - llvm/commitdiff
[AArch64] Improve Exynos predicates
authorEvandro Menezes <e.menezes@samsung.com>
Wed, 19 Dec 2018 22:24:36 +0000 (22:24 +0000)
committerEvandro Menezes <e.menezes@samsung.com>
Wed, 19 Dec 2018 22:24:36 +0000 (22:24 +0000)
Expand the predicate `ExynosResetPred` to include all forms of immediate
moves.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349686 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64SchedPredExynos.td

index f8533d18022af3108248f201451a0301b66f34b0..967245bcba47e003d64c1fba51088ab9d20cf79e 100644 (file)
@@ -88,12 +88,19 @@ def ExynosResetFn   : TIIPredicate<
                              [ADR, ADRP,
                               MOVNWi, MOVNXi,
                               MOVZWi, MOVZXi],
-                             MCReturnStatement<TruePred>>],
+                             MCReturnStatement<TruePred>>,
+                           MCOpcodeSwitchCase<
+                             [ORRWri, ORRXri],
+                             MCReturnStatement<
+                               CheckAll<
+                                 [CheckIsRegOperand<1>,
+                                  CheckAny<
+                                    [CheckRegOperand<1, WZR>,
+                                     CheckRegOperand<1, XZR>]>]>>>],
                           MCReturnStatement<
                             CheckAny<
                               [IsCopyIdiomFn,
-                               IsZeroFPIdiomFn,
-                               IsZeroIdiomFn]>>>>;
+                               IsZeroFPIdiomFn]>>>>;
 def ExynosResetPred : MCSchedPredicate<ExynosResetFn>;
 
 // Identify EXTR as the alias for ROR (immediate).