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.
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. */