https://gcc.gnu.org/g:deb0e2f61908bdc57b481995fa9e7c5083839a25
commit r15-5173-gdeb0e2f61908bdc57b481995fa9e7c5083839a25 Author: Wilco Dijkstra <wilco.dijks...@arm.com> Date: Wed Oct 2 16:34:41 2024 +0000 AArch64: Cleanup fusion defines 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. 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: --- gcc/config/aarch64/aarch64-fusion-pairs.def | 5 +++++ gcc/config/aarch64/tuning_models/a64fx.h | 2 +- gcc/config/aarch64/tuning_models/ampere1.h | 7 ++----- gcc/config/aarch64/tuning_models/ampere1a.h | 9 +++------ gcc/config/aarch64/tuning_models/ampere1b.h | 9 +++------ gcc/config/aarch64/tuning_models/cortexa35.h | 4 ++-- gcc/config/aarch64/tuning_models/cortexa53.h | 4 ++-- gcc/config/aarch64/tuning_models/cortexa57.h | 3 +-- gcc/config/aarch64/tuning_models/cortexa72.h | 3 +-- gcc/config/aarch64/tuning_models/cortexa73.h | 4 ++-- gcc/config/aarch64/tuning_models/cortexx925.h | 4 ++-- gcc/config/aarch64/tuning_models/exynosm1.h | 2 +- gcc/config/aarch64/tuning_models/fujitsu_monaka.h | 2 +- gcc/config/aarch64/tuning_models/generic.h | 2 +- gcc/config/aarch64/tuning_models/generic_armv8_a.h | 2 +- gcc/config/aarch64/tuning_models/generic_armv9_a.h | 2 +- gcc/config/aarch64/tuning_models/neoverse512tvb.h | 2 +- gcc/config/aarch64/tuning_models/neoversen1.h | 2 +- gcc/config/aarch64/tuning_models/neoversen2.h | 4 ++-- gcc/config/aarch64/tuning_models/neoversen3.h | 4 ++-- gcc/config/aarch64/tuning_models/neoversev1.h | 2 +- gcc/config/aarch64/tuning_models/neoversev2.h | 5 +---- gcc/config/aarch64/tuning_models/neoversev3.h | 4 ++-- gcc/config/aarch64/tuning_models/neoversev3ae.h | 4 ++-- gcc/config/aarch64/tuning_models/qdf24xx.h | 3 +-- gcc/config/aarch64/tuning_models/saphira.h | 3 +-- gcc/config/aarch64/tuning_models/thunderx2t99.h | 2 +- gcc/config/aarch64/tuning_models/thunderx3t110.h | 2 +- gcc/config/aarch64/tuning_models/tsv110.h | 2 +- 29 files changed, 46 insertions(+), 57 deletions(-) diff --git a/gcc/config/aarch64/aarch64-fusion-pairs.def b/gcc/config/aarch64/aarch64-fusion-pairs.def index bf5e85ba8fe1..f8413ab0c802 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 378a1b3889ee..2de96190b2d6 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 ace9bf49f759..b2b376699ae6 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 7fd7c9fca27b..d2f114c13d07 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 dbf679cdf482..9f0ee807da29 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 a68ac191223a..87f0c283c95e 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 11f1682ab606..ed578d444b3b 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 336da0b3c786..ff8fed8ada80 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 a2eb2422e759..8e555a4e686a 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 fc066395ac1e..bd2cbb818554 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 b509cae75841..89aa35366993 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 2a21763cda32..90814492a6f1 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 c3a1e0620e2f..6a0984977591 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 ee2f3ff42663..542792a7a05d 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 b5088afe068a..9b1cbfc5bd2a 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 76b3e4c9cf73..48353a59939d 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 d2a0b647791d..c407b89a22f1 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 c1c77518e35f..a09b684fcdb0 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 1a5b66901b5c..dd175b75557b 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 3e2b84ca497e..e510c8f09f78 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 705ed025730f..dd9120eee48a 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 e7e37e6b3b6e..b2aca79b9cef 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 c91e8c829532..84415ae65835 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 61e439326eb6..3cb92fde54bf 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 89f90843a69f..7d59f81c0ee9 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 0f7d2daf2585..012ba73bfd7a 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 4ece60cb838a..c78e3423e7f1 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 a29c7b60eb79..328a58eaa6ee 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 f838158dbead..5f817e96edb3 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. */