Wilco Dijkstra <wilco.dijks...@arm.com> writes: > Cleanup the fusion defines by introducing AARCH64_FUSE_BASE as a common base > level of fusion supported by almost all cores. Add AARCH64_FUSE_MOVK as a > shortcut for all MOVK fusion. In most cases there is no change. It enables > AARCH64_FUSE_CMP_BRANCH for a few older cores since it has no measurable > effect if a core doesn't support it. Also it may have been accidentally > left out on some cores that support all other types of branch fusion.
I suppose adding AARCH64_FUSE_CMP_BRANCH to the older cores is the only possibly controversial bit here, but the reasoning sounds good to me FWIW. OK if there are no objections by tomorrow morning. Thanks, Richard > > In the future we could add fusion types to AARCH64_FUSE_BASE if beneficial. > > Passes regress & bootstrap, OK for commit? > > gcc/ChangeLog: > > * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_BASE): New > define. > (AARCH64_FUSE_MOVK): Likewise. > * config/aarch64/tuning_models/a64fx.h: Update. > * config/aarch64/tuning_models/ampere1.h: Likewise. > * config/aarch64/tuning_models/ampere1a.h: Likewise. > * config/aarch64/tuning_models/ampere1b.h: Likewise. > * config/aarch64/tuning_models/cortexa35.h: Likewise. > * config/aarch64/tuning_models/cortexa53.h: Likewise. > * config/aarch64/tuning_models/cortexa57.h: Likewise. > * config/aarch64/tuning_models/cortexa72.h: Likewise. > * config/aarch64/tuning_models/cortexa73.h: Likewise. > * config/aarch64/tuning_models/cortexx925.h: Likewise. > * config/aarch64/tuning_models/exynosm1.h: Likewise. > * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise. > * config/aarch64/tuning_models/generic.h: Likewise. > * config/aarch64/tuning_models/generic_armv8_a.h: Likewise. > * config/aarch64/tuning_models/generic_armv9_a.h: Likewise. > * config/aarch64/tuning_models/neoverse512tvb.h: Likewise. > * config/aarch64/tuning_models/neoversen1.h: Likewise. > * config/aarch64/tuning_models/neoversen2.h: Likewise. > * config/aarch64/tuning_models/neoversen3.h: Likewise. > * config/aarch64/tuning_models/neoversev1.h: Likewise. > * config/aarch64/tuning_models/neoversev2.h: Likewise. > * config/aarch64/tuning_models/neoversev3.h: Likewise. > * config/aarch64/tuning_models/neoversev3ae.h: Likewise. > * config/aarch64/tuning_models/qdf24xx.h: Likewise. > * config/aarch64/tuning_models/saphira.h: Likewise. > * config/aarch64/tuning_models/thunderx2t99.h: Likewise. > * config/aarch64/tuning_models/thunderx3t110.h: Likewise. > * config/aarch64/tuning_models/tsv110.h: Likewise. > > --- > > diff --git a/gcc/config/aarch64/aarch64-fusion-pairs.def > b/gcc/config/aarch64/aarch64-fusion-pairs.def > index > bf5e85ba8fe128721521505bd6b73b38c25d9f65..f8413ab0c802c28290ebcc171bfd131622cb33be > 100644 > --- a/gcc/config/aarch64/aarch64-fusion-pairs.def > +++ b/gcc/config/aarch64/aarch64-fusion-pairs.def > @@ -41,3 +41,8 @@ AARCH64_FUSION_PAIR ("cmp+csel", CMP_CSEL) > AARCH64_FUSION_PAIR ("cmp+cset", CMP_CSET) > > #undef AARCH64_FUSION_PAIR > + > +/* Baseline fusion settings suitable for all cores. */ > +#define AARCH64_FUSE_BASE (AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_AES_AESMC) > + > +#define AARCH64_FUSE_MOVK (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK) > diff --git a/gcc/config/aarch64/tuning_models/a64fx.h > b/gcc/config/aarch64/tuning_models/a64fx.h > index > 378a1b3889ee265859786c1ff6525fce2305b615..2de96190b2d668f7f8e09b48fba418788d726ccf > 100644 > --- a/gcc/config/aarch64/tuning_models/a64fx.h > +++ b/gcc/config/aarch64/tuning_models/a64fx.h > @@ -150,7 +150,7 @@ static const struct tune_params a64fx_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 7, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32", /* function_align. */ > "16", /* jump_align. */ > "32", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/ampere1.h > b/gcc/config/aarch64/tuning_models/ampere1.h > index > ace9bf49f7593d3713ed0bc61494c3915749a9a8..b2b376699ae64c3089896491baa6d8dcd948ef87 > 100644 > --- a/gcc/config/aarch64/tuning_models/ampere1.h > +++ b/gcc/config/aarch64/tuning_models/ampere1.h > @@ -88,11 +88,8 @@ static const struct tune_params ampere1_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC | > - AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK | > - AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ | > - AARCH64_FUSE_CMP_BRANCH), > - /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_MOVK > + | AARCH64_FUSE_ALU_BRANCH), /* fusible_ops */ > "32", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/ampere1a.h > b/gcc/config/aarch64/tuning_models/ampere1a.h > index > 7fd7c9fca27b3ab873b47390e83b3db6b3404050..d2f114c13d07248512df5787c06ff47c53b10686 > 100644 > --- a/gcc/config/aarch64/tuning_models/ampere1a.h > +++ b/gcc/config/aarch64/tuning_models/ampere1a.h > @@ -39,12 +39,9 @@ static const struct tune_params ampere1a_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC | > - AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK | > - AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ | > - AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ | > - AARCH64_FUSE_ADDSUB_2REG_CONST1), > - /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_MOVK > + | AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_ALU_CBZ > + | AARCH64_FUSE_ADDSUB_2REG_CONST1), /* fusible_ops */ > "32", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/ampere1b.h > b/gcc/config/aarch64/tuning_models/ampere1b.h > index > dbf679cdf4822cbe968c4408d9a34f4b1689b9f3..9f0ee807da29ffba3525cc5542d37da5d5abcb6f > 100644 > --- a/gcc/config/aarch64/tuning_models/ampere1b.h > +++ b/gcc/config/aarch64/tuning_models/ampere1b.h > @@ -88,12 +88,9 @@ static const struct tune_params ampere1b_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC | > - AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK | > - AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ | > - AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ | > - AARCH64_FUSE_ADDSUB_2REG_CONST1), > - /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_MOVK > + | AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_ALU_CBZ > + | AARCH64_FUSE_ADDSUB_2REG_CONST1), /* fusible_ops */ > "32", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexa35.h > b/gcc/config/aarch64/tuning_models/cortexa35.h > index > a68ac191223a3f91ee99bc2e693c80db006c775f..87f0c283c95ea1cb798afaa2d250a6d5e85d1487 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexa35.h > +++ b/gcc/config/aarch64/tuning_models/cortexa35.h > @@ -40,8 +40,8 @@ static const struct tune_params cortexa35_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 1, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD > + | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexa53.h > b/gcc/config/aarch64/tuning_models/cortexa53.h > index > 11f1682ab606e682e10778a380a6a8cd75afe601..ed578d444b3b5deda949789349c3ddd3aab724e9 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexa53.h > +++ b/gcc/config/aarch64/tuning_models/cortexa53.h > @@ -49,8 +49,8 @@ static const struct tune_params cortexa53_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 2, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD > + | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexa57.h > b/gcc/config/aarch64/tuning_models/cortexa57.h > index > 336da0b3c78603dc1fd2c9fffcb4ef1fb1d4c505..ff8fed8ada804e777118385a0b362419eb791355 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexa57.h > +++ b/gcc/config/aarch64/tuning_models/cortexa57.h > @@ -87,8 +87,7 @@ static const struct tune_params cortexa57_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD), /* > fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexa72.h > b/gcc/config/aarch64/tuning_models/cortexa72.h > index > a2eb2422e759e2d43075b8363410f400b49e2369..8e555a4e686a6aecdc2b3055db197914cdb1c4f8 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexa72.h > +++ b/gcc/config/aarch64/tuning_models/cortexa72.h > @@ -39,8 +39,7 @@ static const struct tune_params cortexa72_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD), /* > fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexa73.h > b/gcc/config/aarch64/tuning_models/cortexa73.h > index > fc066395ac1ec7b48265ac11acd3cf302c5be720..bd2cbb818554e0b00d4049bdadbe6f94d1d51e81 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexa73.h > +++ b/gcc/config/aarch64/tuning_models/cortexa73.h > @@ -39,8 +39,8 @@ static const struct tune_params cortexa73_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 2, /* issue_rate. */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD > + | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/cortexx925.h > b/gcc/config/aarch64/tuning_models/cortexx925.h > index > b509cae758419a415d9067ec751ef1e6528eb09a..89aa353669937f1a5e8cffae7c3d49044562cfd7 > 100644 > --- a/gcc/config/aarch64/tuning_models/cortexx925.h > +++ b/gcc/config/aarch64/tuning_models/cortexx925.h > @@ -223,7 +223,7 @@ static const struct tune_params cortexx925_tunings = > 2 /* store_pred. */ > }, /* memmov_cost. */ > 10, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > @@ -245,4 +245,4 @@ static const struct tune_params cortexx925_tunings = > AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ > }; > > -#endif /* GCC_AARCH64_H_CORTEXX925. */ > \ No newline at end of file > +#endif /* GCC_AARCH64_H_CORTEXX925. */ > diff --git a/gcc/config/aarch64/tuning_models/exynosm1.h > b/gcc/config/aarch64/tuning_models/exynosm1.h > index > 2a21763cda329dc70244b1fa1e3b5ba4f816bf96..90814492a6f149a7d32b24828e81327885024edb > 100644 > --- a/gcc/config/aarch64/tuning_models/exynosm1.h > +++ b/gcc/config/aarch64/tuning_models/exynosm1.h > @@ -123,7 +123,7 @@ static const struct tune_params exynosm1_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "4", /* function_align. */ > "4", /* jump_align. */ > "4", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/fujitsu_monaka.h > b/gcc/config/aarch64/tuning_models/fujitsu_monaka.h > index > c3a1e0620e2f1d2d6f655720c7fb87230319a23a..6a0984977591ff1e96f97fd5110ed51611bc29ed > 100644 > --- a/gcc/config/aarch64/tuning_models/fujitsu_monaka.h > +++ b/gcc/config/aarch64/tuning_models/fujitsu_monaka.h > @@ -42,7 +42,7 @@ static const struct tune_params fujitsu_monaka_tunings = > 1 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate. */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops. */ > + AARCH64_FUSE_BASE, /* fusible_ops. */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/generic.h > b/gcc/config/aarch64/tuning_models/generic.h > index > ee2f3ff42663bc8cae9d1d5f9ef3047519a0441f..542792a7a05dd8456aff95eeddf130b73c5a7e77 > 100644 > --- a/gcc/config/aarch64/tuning_models/generic.h > +++ b/gcc/config/aarch64/tuning_models/generic.h > @@ -168,7 +168,7 @@ static const struct tune_params generic_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 2, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "16:12", /* function_align. */ > "4", /* jump_align. */ > "8", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/generic_armv8_a.h > b/gcc/config/aarch64/tuning_models/generic_armv8_a.h > index > b5088afe068aa4be7f9dd614cfdd2a51fa96e524..9b1cbfc5bd2a828959833fb80e0e7b2fce71b3a4 > 100644 > --- a/gcc/config/aarch64/tuning_models/generic_armv8_a.h > +++ b/gcc/config/aarch64/tuning_models/generic_armv8_a.h > @@ -169,7 +169,7 @@ static const struct tune_params generic_armv8_a_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/generic_armv9_a.h > b/gcc/config/aarch64/tuning_models/generic_armv9_a.h > index > 76b3e4c9cf7321d5e1f5d0eb2aa0202efa862cad..48353a59939d84647c6981d6d0551af7ce9df751 > 100644 > --- a/gcc/config/aarch64/tuning_models/generic_armv9_a.h > +++ b/gcc/config/aarch64/tuning_models/generic_armv9_a.h > @@ -236,7 +236,7 @@ static const struct tune_params generic_armv9_a_tunings = > 1 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/neoverse512tvb.h > b/gcc/config/aarch64/tuning_models/neoverse512tvb.h > index > d2a0b647791de8fca6d7684849d2ab1e9104b045..c407b89a22f1aecbfd594b493be4fbaf1f9b0437 > 100644 > --- a/gcc/config/aarch64/tuning_models/neoverse512tvb.h > +++ b/gcc/config/aarch64/tuning_models/neoverse512tvb.h > @@ -143,7 +143,7 @@ static const struct tune_params neoverse512tvb_tunings = > 1 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversen1.h > b/gcc/config/aarch64/tuning_models/neoversen1.h > index > c1c77518e35f064f1bae587efa1dda9810f53960..a09b684fcdb0e558c87e3f6c17c6c4f359cca51c > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversen1.h > +++ b/gcc/config/aarch64/tuning_models/neoversen1.h > @@ -39,7 +39,7 @@ static const struct tune_params neoversen1_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversen2.h > b/gcc/config/aarch64/tuning_models/neoversen2.h > index > 1a5b66901b5c3fb78f87fee40236957139644585..dd175b75557b28c485b3e27d7a50c50600f367a5 > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversen2.h > +++ b/gcc/config/aarch64/tuning_models/neoversen2.h > @@ -223,7 +223,7 @@ static const struct tune_params neoversen2_tunings = > 1 /* store_pred. */ > }, /* memmov_cost. */ > 5, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > @@ -245,4 +245,4 @@ static const struct tune_params neoversen2_tunings = > AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ > }; > > -#endif /* GCC_AARCH64_H_NEOVERSEN2. */ > \ No newline at end of file > +#endif /* GCC_AARCH64_H_NEOVERSEN2. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversen3.h > b/gcc/config/aarch64/tuning_models/neoversen3.h > index > 3e2b84ca497e71aaceae7df0956ed81fb7fcefda..e510c8f09f781b9fafb59088e90cfd5dea43cc75 > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversen3.h > +++ b/gcc/config/aarch64/tuning_models/neoversen3.h > @@ -223,7 +223,7 @@ static const struct tune_params neoversen3_tunings = > 2 /* store_pred. */ > }, /* memmov_cost. */ > 5, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > @@ -244,4 +244,4 @@ static const struct tune_params neoversen3_tunings = > AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ > }; > > -#endif /* GCC_AARCH64_H_NEOVERSEN3. */ > \ No newline at end of file > +#endif /* GCC_AARCH64_H_NEOVERSEN3. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversev1.h > b/gcc/config/aarch64/tuning_models/neoversev1.h > index > 705ed025730f6683109a4796c6eefa55b437cec9..dd9120eee48ae4fa30d589173788389c2413cdfe > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversev1.h > +++ b/gcc/config/aarch64/tuning_models/neoversev1.h > @@ -214,7 +214,7 @@ static const struct tune_params neoversev1_tunings = > 1 /* store_pred. */ > }, /* memmov_cost. */ > 3, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversev2.h > b/gcc/config/aarch64/tuning_models/neoversev2.h > index > e7e37e6b3b6ea5f91d44afb7b48a2954157edbfd..b2aca79b9ceff783595759f48d755f2f7985de15 > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversev2.h > +++ b/gcc/config/aarch64/tuning_models/neoversev2.h > @@ -236,10 +236,7 @@ static const struct tune_params neoversev2_tunings = > 2 /* store_pred. */ > }, /* memmov_cost. */ > 5, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC > - | AARCH64_FUSE_CMP_BRANCH > - | AARCH64_FUSE_CMP_CSEL > - | AARCH64_FUSE_CMP_CSET), /* fusible_ops */ > + (AARCH64_FUSE_BASE | AARCH64_FUSE_CMP_CSEL | AARCH64_FUSE_CMP_CSET), /* > fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversev3.h > b/gcc/config/aarch64/tuning_models/neoversev3.h > index > c91e8c829532f9236de0102770e5c6b94e83da9a..84415ae65835e65e86f3c8d38f31ef2e427ae243 > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversev3.h > +++ b/gcc/config/aarch64/tuning_models/neoversev3.h > @@ -223,7 +223,7 @@ static const struct tune_params neoversev3_tunings = > 2 /* store_pred. */ > }, /* memmov_cost. */ > 10, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > @@ -245,4 +245,4 @@ static const struct tune_params neoversev3_tunings = > AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ > }; > > -#endif /* GCC_AARCH64_H_NEOVERSEV3. */ > \ No newline at end of file > +#endif /* GCC_AARCH64_H_NEOVERSEV3. */ > diff --git a/gcc/config/aarch64/tuning_models/neoversev3ae.h > b/gcc/config/aarch64/tuning_models/neoversev3ae.h > index > 61e439326eb6f983abf8574e657cfbb0c2f9bb33..3cb92fde54bfd4cb5f25f9c356443c66daf9006b > 100644 > --- a/gcc/config/aarch64/tuning_models/neoversev3ae.h > +++ b/gcc/config/aarch64/tuning_models/neoversev3ae.h > @@ -223,7 +223,7 @@ static const struct tune_params neoversev3ae_tunings = > 2 /* store_pred. */ > }, /* memmov_cost. */ > 10, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ > + AARCH64_FUSE_BASE, /* fusible_ops */ > "32:16", /* function_align. */ > "4", /* jump_align. */ > "32:16", /* loop_align. */ > @@ -245,4 +245,4 @@ static const struct tune_params neoversev3ae_tunings = > AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model. */ > }; > > -#endif /* GCC_AARCH64_H_NEOVERSEV3AE. */ > \ No newline at end of file > +#endif /* GCC_AARCH64_H_NEOVERSEV3AE. */ > diff --git a/gcc/config/aarch64/tuning_models/qdf24xx.h > b/gcc/config/aarch64/tuning_models/qdf24xx.h > index > 89f90843a69f297ccd55b9cca95705eb593b8b10..7d59f81c0ee9a3e8531e340b1e3e7231b14fa690 > 100644 > --- a/gcc/config/aarch64/tuning_models/qdf24xx.h > +++ b/gcc/config/aarch64/tuning_models/qdf24xx.h > @@ -115,8 +115,7 @@ static const struct tune_params qdf24xx_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops */ > + (AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD), /* fuseable_ops */ > "16", /* function_align. */ > "8", /* jump_align. */ > "16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/saphira.h > b/gcc/config/aarch64/tuning_models/saphira.h > index > 0f7d2daf2585db9f22cbab667ada6d59f3b2a2b0..012ba73bfd7aa80b2b6da2ccd8141c828930ced0 > 100644 > --- a/gcc/config/aarch64/tuning_models/saphira.h > +++ b/gcc/config/aarch64/tuning_models/saphira.h > @@ -41,8 +41,7 @@ static const struct tune_params saphira_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD > - | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops */ > + (AARCH64_FUSE_MOVK | AARCH64_FUSE_ADRP_ADD), /* fuseable_ops */ > "16", /* function_align. */ > "8", /* jump_align. */ > "16", /* loop_align. */ > diff --git a/gcc/config/aarch64/tuning_models/thunderx2t99.h > b/gcc/config/aarch64/tuning_models/thunderx2t99.h > index > 4ece60cb838a66d577309d462baf213e053cb0c9..c78e3423e7f13b88cbe618d87541ddfcd1caa5be > 100644 > --- a/gcc/config/aarch64/tuning_models/thunderx2t99.h > +++ b/gcc/config/aarch64/tuning_models/thunderx2t99.h > @@ -115,7 +115,7 @@ static const struct tune_params thunderx2t99_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate. */ > - (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ALU_BRANCH > | AARCH64_FUSE_ALU_CBZ), /* fusible_ops */ > "16", /* function_align. */ > "8", /* jump_align. */ > diff --git a/gcc/config/aarch64/tuning_models/thunderx3t110.h > b/gcc/config/aarch64/tuning_models/thunderx3t110.h > index > a29c7b60eb79462ae7b9ffe042db5e6a355961e9..328a58eaa6ee9b58e4e317c932f67c068c546cc4 > 100644 > --- a/gcc/config/aarch64/tuning_models/thunderx3t110.h > +++ b/gcc/config/aarch64/tuning_models/thunderx3t110.h > @@ -114,7 +114,7 @@ static const struct tune_params thunderx3t110_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 6, /* issue_rate. */ > - (AARCH64_FUSE_ALU_BRANCH | AARCH64_FUSE_AES_AESMC > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ALU_BRANCH > | AARCH64_FUSE_ALU_CBZ), /* fusible_ops */ > "16", /* function_align. */ > "8", /* jump_align. */ > diff --git a/gcc/config/aarch64/tuning_models/tsv110.h > b/gcc/config/aarch64/tuning_models/tsv110.h > index > f838158dbead98d85a5445a516c63b7629abf5a2..5f817e96edb3a4a3fa21af80544e7d88e3e5e8b7 > 100644 > --- a/gcc/config/aarch64/tuning_models/tsv110.h > +++ b/gcc/config/aarch64/tuning_models/tsv110.h > @@ -115,7 +115,7 @@ static const struct tune_params tsv110_tunings = > 4 /* store_pred. */ > }, /* memmov_cost. */ > 4, /* issue_rate */ > - (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_ALU_BRANCH > + (AARCH64_FUSE_BASE | AARCH64_FUSE_ALU_BRANCH > | AARCH64_FUSE_ALU_CBZ), /* fusible_ops */ > "16", /* function_align. */ > "4", /* jump_align. */