On Fri, Nov 8, 2024 at 8:56 AM Wilco Dijkstra <wilco.dijks...@arm.com> wrote:
>
>
> 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.

qdf24xx.h and saphira.h changes look correct to me.

>         * config/aarch64/tuning_models/thunderx2t99.h: Likewise.
>         * config/aarch64/tuning_models/thunderx3t110.h: Likewise.

thunderx2t99.h and thunderx3t110.h changes look decent (though since I
am not at Marvell any more).

Thanks,
Andrew

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

Reply via email to