diff options
-rw-r--r-- | gcc/config/aarch64/aarch64-fusion-pairs.def | 4 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/cortexx925.h | 4 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/generic_armv9_a.h | 4 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoverse512tvb.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversen2.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversen3.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversev1.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversev2.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversev3.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/tuning_models/neoversev3ae.h | 2 |
10 files changed, 17 insertions, 9 deletions
diff --git a/gcc/config/aarch64/aarch64-fusion-pairs.def b/gcc/config/aarch64/aarch64-fusion-pairs.def index f8413ab..0123430 100644 --- a/gcc/config/aarch64/aarch64-fusion-pairs.def +++ b/gcc/config/aarch64/aarch64-fusion-pairs.def @@ -45,4 +45,8 @@ AARCH64_FUSION_PAIR ("cmp+cset", CMP_CSET) /* Baseline fusion settings suitable for all cores. */ #define AARCH64_FUSE_BASE (AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_AES_AESMC) +/* Baseline fusion settings suitable for all Neoverse cores. */ +#define AARCH64_FUSE_NEOVERSE_BASE (AARCH64_FUSE_BASE | AARCH64_FUSE_CMP_CSEL \ + | AARCH64_FUSE_CMP_CSET) + #define AARCH64_FUSE_MOVK (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK) diff --git a/gcc/config/aarch64/tuning_models/cortexx925.h b/gcc/config/aarch64/tuning_models/cortexx925.h index b2ff716..ef4c7d1 100644 --- a/gcc/config/aarch64/tuning_models/cortexx925.h +++ b/gcc/config/aarch64/tuning_models/cortexx925.h @@ -205,7 +205,9 @@ static const struct tune_params cortexx925_tunings = 2 /* store_pred. */ }, /* memmov_cost. */ 10, /* issue_rate */ - AARCH64_FUSE_BASE, /* 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/generic_armv9_a.h b/gcc/config/aarch64/tuning_models/generic_armv9_a.h index a05a9ab..785e009 100644 --- a/gcc/config/aarch64/tuning_models/generic_armv9_a.h +++ b/gcc/config/aarch64/tuning_models/generic_armv9_a.h @@ -236,7 +236,9 @@ static const struct tune_params generic_armv9_a_tunings = 1 /* store_pred. */ }, /* memmov_cost. */ 3, /* issue_rate */ - AARCH64_FUSE_BASE, /* 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/neoverse512tvb.h b/gcc/config/aarch64/tuning_models/neoverse512tvb.h index c407b89..f725059 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_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_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 fd5f8f3..141c994 100644 --- a/gcc/config/aarch64/tuning_models/neoversen2.h +++ b/gcc/config/aarch64/tuning_models/neoversen2.h @@ -205,7 +205,7 @@ static const struct tune_params neoversen2_tunings = 1 /* store_pred. */ }, /* memmov_cost. */ 5, /* issue_rate */ - AARCH64_FUSE_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_BASE, /* fusible_ops */ "32:16", /* function_align. */ "4", /* jump_align. */ "32:16", /* loop_align. */ diff --git a/gcc/config/aarch64/tuning_models/neoversen3.h b/gcc/config/aarch64/tuning_models/neoversen3.h index 8b156c2..b3e3188 100644 --- a/gcc/config/aarch64/tuning_models/neoversen3.h +++ b/gcc/config/aarch64/tuning_models/neoversen3.h @@ -205,7 +205,7 @@ static const struct tune_params neoversen3_tunings = 2 /* store_pred. */ }, /* memmov_cost. */ 5, /* issue_rate */ - AARCH64_FUSE_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_BASE, /* fusible_ops */ "32:16", /* function_align. */ "4", /* jump_align. */ "32:16", /* loop_align. */ diff --git a/gcc/config/aarch64/tuning_models/neoversev1.h b/gcc/config/aarch64/tuning_models/neoversev1.h index 23c121d..b3d27eb 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_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_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 40af5f4..ea91bbb 100644 --- a/gcc/config/aarch64/tuning_models/neoversev2.h +++ b/gcc/config/aarch64/tuning_models/neoversev2.h @@ -218,7 +218,7 @@ static const struct tune_params neoversev2_tunings = 2 /* store_pred. */ }, /* memmov_cost. */ 5, /* issue_rate */ - (AARCH64_FUSE_BASE | AARCH64_FUSE_CMP_CSEL | AARCH64_FUSE_CMP_CSET), /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_BASE, /* 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 d65d74b..3f5ba4bf 100644 --- a/gcc/config/aarch64/tuning_models/neoversev3.h +++ b/gcc/config/aarch64/tuning_models/neoversev3.h @@ -205,7 +205,7 @@ static const struct tune_params neoversev3_tunings = 2 /* store_pred. */ }, /* memmov_cost. */ 10, /* issue_rate */ - AARCH64_FUSE_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_BASE, /* fusible_ops */ "32:16", /* function_align. */ "4", /* jump_align. */ "32:16", /* loop_align. */ diff --git a/gcc/config/aarch64/tuning_models/neoversev3ae.h b/gcc/config/aarch64/tuning_models/neoversev3ae.h index 7b7fa0b..4d9c62f 100644 --- a/gcc/config/aarch64/tuning_models/neoversev3ae.h +++ b/gcc/config/aarch64/tuning_models/neoversev3ae.h @@ -205,7 +205,7 @@ static const struct tune_params neoversev3ae_tunings = 2 /* store_pred. */ }, /* memmov_cost. */ 10, /* issue_rate */ - AARCH64_FUSE_BASE, /* fusible_ops */ + AARCH64_FUSE_NEOVERSE_BASE, /* fusible_ops */ "32:16", /* function_align. */ "4", /* jump_align. */ "32:16", /* loop_align. */ |