Enable the following macro-fusion pairs for xt-c9501fdvt:
RISCV_FUSE_LUI_ADDI
RISCV_FUSE_AUIPC_ADDI
RISCV_FUSE_SUB_SEQZ
RISCV_FUSE_ADD_ANDI
RISCV_FUSE_ADD_LD
RISCV_FUSE_ADD_ST
RISCV_FUSE_ANDI_ADD
RISCV_FUSE_LOGIC_LOGIC
RISCV_FUSE_SLLI_SRLI
RISCV_FUSE_SRLI_ADD
RISCV_FUSE_PREINDEX_LD
RISCV_FUSE_PREINDEX_ST
RISCV_FUSE_POSTINDEX_LD
RISCV_FUSE_POSTINDEX_ST
RISCV_FUSE_LDST_PAIR_INC
RISCV_FUSE_LDST_PAIR_DEC
Leave RISCV_FUSE_FLDFST_PAIR_INC and RISCV_FUSE_FLDFST_PAIR_DEC
disabled for xt-c9501fdvt; they will be enabled for future CPUs.
gcc/ChangeLog:
* config/riscv/riscv.cc (xt_c9501_tune_info): Enable supported
fusion pairs.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/fusion-add-addi-andi.c: Remove the fusion xfail.
* gcc.target/riscv/fusion-add-ldst.c: Likewise.
* gcc.target/riscv/fusion-addw-adduw-ldst.c: Likewise.
* gcc.target/riscv/fusion-andi-add-addi.c: Likewise.
* gcc.target/riscv/fusion-andi-adduw-rtl.c: Likewise.
* gcc.target/riscv/fusion-arith-rtl-shapes.c: Likewise.
* gcc.target/riscv/fusion-c950-lui-auipc.c: Likewise.
* gcc.target/riscv/fusion-fp-zero-rtl.c: Likewise.
* gcc.target/riscv/fusion-ldst-pair-dec.c: Likewise.
* gcc.target/riscv/fusion-ldst-pair-inc.c: Likewise.
* gcc.target/riscv/fusion-ldst-pair-store-base.c: Likewise.
* gcc.target/riscv/fusion-load-store-type-rtl.c: Likewise.
* gcc.target/riscv/fusion-logic-logic-direction-rtl.c: Likewise.
* gcc.target/riscv/fusion-logic-logic-zbkb.c: Likewise.
* gcc.target/riscv/fusion-logic-logic.c: Likewise.
* gcc.target/riscv/fusion-memory-rtl-shapes.c: Likewise.
* gcc.target/riscv/fusion-memory-subreg-address-rtl.c: Likewise.
* gcc.target/riscv/fusion-mv-li-andi-rtl.c: Likewise.
* gcc.target/riscv/fusion-mv-self-rtl.c: Likewise.
* gcc.target/riscv/fusion-postindex-ldst.c: Likewise.
* gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c: Likewise.
* gcc.target/riscv/fusion-preindex-ldst.c: Likewise.
* gcc.target/riscv/fusion-rv32-fp-losum-rtl.c: Likewise.
* gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c: Likewise.
* gcc.target/riscv/fusion-slli-srli.c: Likewise.
* gcc.target/riscv/fusion-special-positive-rtl.c: Likewise.
* gcc.target/riscv/fusion-srli-add.c: Likewise.
* gcc.target/riscv/fusion-sub-seqz-snez.c: Likewise.
* gcc.target/riscv/fusion-subreg-address-rtl.c: Likewise.
* gcc.target/riscv/fusion-word-positive-rtl.c: Likewise.
---
gcc/config/riscv/riscv.cc | 11 ++++++++++-
.../gcc.target/riscv/fusion-add-addi-andi.c | 3 +--
gcc/testsuite/gcc.target/riscv/fusion-add-ldst.c | 5 ++---
.../gcc.target/riscv/fusion-addw-adduw-ldst.c | 4 ++--
.../gcc.target/riscv/fusion-andi-add-addi.c | 3 +--
.../gcc.target/riscv/fusion-andi-adduw-rtl.c | 3 +--
.../gcc.target/riscv/fusion-arith-rtl-shapes.c | 13 ++++++-------
.../gcc.target/riscv/fusion-c950-lui-auipc.c | 5 ++---
.../gcc.target/riscv/fusion-fp-zero-rtl.c | 5 ++---
.../gcc.target/riscv/fusion-ldst-pair-dec.c | 3 +--
.../gcc.target/riscv/fusion-ldst-pair-inc.c | 3 +--
.../riscv/fusion-ldst-pair-store-base.c | 5 ++---
.../gcc.target/riscv/fusion-load-store-type-rtl.c | 7 +++----
.../riscv/fusion-logic-logic-direction-rtl.c | 3 +--
.../gcc.target/riscv/fusion-logic-logic-zbkb.c | 3 +--
.../gcc.target/riscv/fusion-logic-logic.c | 3 +--
.../gcc.target/riscv/fusion-memory-rtl-shapes.c | 15 +++++++--------
.../riscv/fusion-memory-subreg-address-rtl.c | 7 +++----
.../gcc.target/riscv/fusion-mv-li-andi-rtl.c | 3 +--
.../gcc.target/riscv/fusion-mv-self-rtl.c | 6 +++---
.../gcc.target/riscv/fusion-postindex-ldst.c | 5 ++---
.../riscv/fusion-postindex-unsigned-load-rtl.c | 3 +--
.../gcc.target/riscv/fusion-preindex-ldst.c | 5 ++---
.../gcc.target/riscv/fusion-rv32-fp-losum-rtl.c | 4 ++--
.../riscv/fusion-rv32-subreg-positive-rtl.c | 12 ++++++------
gcc/testsuite/gcc.target/riscv/fusion-slli-srli.c | 3 +--
.../riscv/fusion-special-positive-rtl.c | 13 ++++++-------
gcc/testsuite/gcc.target/riscv/fusion-srli-add.c | 3 +--
.../gcc.target/riscv/fusion-sub-seqz-snez.c | 3 +--
.../gcc.target/riscv/fusion-subreg-address-rtl.c | 3 +--
.../gcc.target/riscv/fusion-word-positive-rtl.c | 5 ++---
31 files changed, 76 insertions(+), 93 deletions(-)
diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 8f18a60b7c7..1a41ca5be92 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -730,7 +730,16 @@ static const struct riscv_tune_param xt_c9501_tune_info = {
false, /* overlap_op_by_pieces */
true, /* use_zero_stride_load
*/
false, /* speculative_sched_vsetvl */
- RISCV_FUSE_NOTHING, /* fusible_ops */
+ RISCV_FUSE_LUI_ADDI | RISCV_FUSE_AUIPC_ADDI
+ | RISCV_FUSE_SUB_SEQZ
+ | RISCV_FUSE_ADD_ANDI
+ | RISCV_FUSE_ADD_LD | RISCV_FUSE_ADD_ST
+ | RISCV_FUSE_ANDI_ADD | RISCV_FUSE_LOGIC_LOGIC
+ | RISCV_FUSE_SLLI_SRLI | RISCV_FUSE_SRLI_ADD
+ | RISCV_FUSE_PREINDEX_LD | RISCV_FUSE_PREINDEX_ST
+ | RISCV_FUSE_POSTINDEX_LD | RISCV_FUSE_POSTINDEX_ST
+ | RISCV_FUSE_LDST_PAIR_INC
+ | RISCV_FUSE_LDST_PAIR_DEC, /* fusible_ops */
&xt_c9501_vector_cost, /* vector cost */
"32", /* function_align */
"8", /* jump_align */
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-add-addi-andi.c
b/gcc/testsuite/gcc.target/riscv/fusion-add-addi-andi.c
index 983d40c8f6b..694794523ac 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-add-addi-andi.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-add-addi-andi.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zba -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 5 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 5 "sched2" } } */
typedef long int64_t;
typedef unsigned long uint64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-add-ldst.c
b/gcc/testsuite/gcc.target/riscv/fusion-add-ldst.c
index bc00fc2f960..7d2cf3fd2b0 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-add-ldst.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-add-ldst.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64g -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 7 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 4 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 7 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 4 "sched2" } } */
typedef signed char int8_t;
typedef unsigned char uint8_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-addw-adduw-ldst.c
b/gcc/testsuite/gcc.target/riscv/fusion-addw-adduw-ldst.c
index 4947dd9101d..0a886ec9600 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-addw-adduw-ldst.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-addw-adduw-ldst.c
@@ -1,8 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zba -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 2 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 2 "sched2" } } */
/* addw + ld should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-andi-add-addi.c
b/gcc/testsuite/gcc.target/riscv/fusion-andi-add-addi.c
index 746f865535d..871c39d2110 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-andi-add-addi.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-andi-add-addi.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zba -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 4 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 4 "sched2" } } */
typedef long int64_t;
typedef int int32_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-andi-adduw-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-andi-adduw-rtl.c
index aa87846dd99..4a92ca8e922 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-andi-adduw-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-andi-adduw-rtl.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zba -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 1 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 1 "sched2" } } */
/* andi feeding add.uw's zero-extended operand should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-arith-rtl-shapes.c
b/gcc/testsuite/gcc.target/riscv/fusion-arith-rtl-shapes.c
index 522b5a1f6fb..6d7d97c7293 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-arith-rtl-shapes.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-arith-rtl-shapes.c
@@ -1,13 +1,12 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zbb -mabi=lp64d -O2 -mtune=xt-c9501fdvt
-fdump-rtl-sched2" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 3 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 3 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 6 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 2 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 3 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 3 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 6 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 2 "sched2" } } */
/* subw expressed via subreg, followed by snez, should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-c950-lui-auipc.c
b/gcc/testsuite/gcc.target/riscv/fusion-c950-lui-auipc.c
index fa39ac8338e..5136266ca79 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-c950-lui-auipc.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-c950-lui-auipc.c
@@ -2,9 +2,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -O2 -mcmodel=medany
-mtune=xt-c9501fdvt -mexplicit-relocs -fno-section-anchors -fdump-rtl-sched1" }
*/
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LUI_ADDI" 1 "sched1" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_AUIPC_ADDI" 1 "sched1" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LUI_ADDI" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_AUIPC_ADDI" 1 "sched1" } } */
extern int c950_array[];
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-fp-zero-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-fp-zero-rtl.c
index 03b97a8bd25..e5aabb95299 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-fp-zero-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-fp-zero-rtl.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" } } */
/* Pre-index load into FP register ft0 should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-dec.c
b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-dec.c
index 9fe4a3eae64..29d2baf0524 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-dec.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-dec.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 4 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 4 "sched2" } }
*/
typedef int int32_t;
typedef long int64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-inc.c
b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-inc.c
index 5a14a4d8a6a..fe2ec72b5a6 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-inc.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-inc.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 4 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 4 "sched2" } }
*/
typedef int int32_t;
typedef long int64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-store-base.c
b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-store-base.c
index f09a0d4ce2f..3d4b3b9d206 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-store-base.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-ldst-pair-store-base.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 2 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 2 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 2 "sched2" } }
*/
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 2 "sched2" } }
*/
typedef long int64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-load-store-type-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-load-store-type-rtl.c
index e7f69697ee4..26708306c51 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-load-store-type-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-load-store-type-rtl.c
@@ -1,10 +1,9 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched2" } }
*/
/* An add feeding an SFmode load into a GPR should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-direction-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-direction-rtl.c
index 393dc68fe8a..b2474e6d649 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-direction-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-direction-rtl.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zbb -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 2 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 2 "sched2" } } */
/* reg-operand logic followed by imm-operand logic should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-zbkb.c
b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-zbkb.c
index e485ed65184..147c4e1c9ef 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-zbkb.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic-zbkb.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zbkb -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 3 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 3 "sched2" } } */
typedef long int64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic.c
b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic.c
index 2aa8214b570..3e8335c996b 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-logic-logic.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-logic-logic.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zbb -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 36 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 36 "sched2" } } */
typedef long int64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-memory-rtl-shapes.c
b/gcc/testsuite/gcc.target/riscv/fusion-memory-rtl-shapes.c
index a96851975e3..f8845515246 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-memory-rtl-shapes.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-memory-rtl-shapes.c
@@ -1,14 +1,13 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zfh -mabi=lp64d -mexplicit-relocs -O2
-mtune=xt-c9501fdvt -fdump-rtl-sched2" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 3 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 1 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 3 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 2 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 3 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 3 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 2 "sched2" } }
*/
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_DEC" 1 "sched2" } }
*/
extern long fusion_memory_symbol;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-memory-subreg-address-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-memory-subreg-address-rtl.c
index 208f63f6553..4b26b384883 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-memory-subreg-address-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-memory-subreg-address-rtl.c
@@ -1,10 +1,9 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -O2 -fschedule-insns
-mtune=xt-c9501fdvt -fdump-rtl-sched1" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched1" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 1 "sched1" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 1 "sched1" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 1 "sched1" } } */
/* add followed by a load addressed through a subreg should fuse. */
long __RTL (startwith ("sched1"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-mv-li-andi-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-mv-li-andi-rtl.c
index ce8d2de28c3..d26cbb220fc 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-mv-li-andi-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-mv-li-andi-rtl.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 2 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 2 "sched2" } } */
/* mv followed by andi should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-mv-self-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-mv-self-rtl.c
index 8850c694ba6..aff74505afd 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-mv-self-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-mv-self-rtl.c
@@ -1,9 +1,9 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -O2 -fno-dce -mtune=xt-c9501fdvt
-fdump-rtl-sched2-details" } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" } } */
/* andi followed by a self-move should still fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-postindex-ldst.c
b/gcc/testsuite/gcc.target/riscv/fusion-postindex-ldst.c
index 932a21cacea..3b7586b66d3 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-postindex-ldst.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-postindex-ldst.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-funroll-loops"
"-flto" } } */
/* { dg-options "-march=rv64gc_zfh -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 7 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 7 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 7 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 7 "sched2" } } */
typedef signed char int8_t;
typedef short int16_t;
diff --git
a/gcc/testsuite/gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c
index b516e865dc6..f2365ed003b 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-postindex-unsigned-load-rtl.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_LD" 1 "sched2" } } */
/* Unsigned byte load followed by a post-index update should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-preindex-ldst.c
b/gcc/testsuite/gcc.target/riscv/fusion-preindex-ldst.c
index 607e7610fc1..9c3fa06c9d6 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-preindex-ldst.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-preindex-ldst.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-funroll-loops"
"-flto" } } */
/* { dg-options "-march=rv64gc_zfh -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 6 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 6 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 6 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_ST" 6 "sched2" } } */
typedef signed char int8_t;
typedef short int16_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-rv32-fp-losum-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-rv32-fp-losum-rtl.c
index 4a94a6e5a02..5050f36d333 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-rv32-fp-losum-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-rv32-fp-losum-rtl.c
@@ -1,8 +1,8 @@
/* { dg-do compile { target { rv32 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv32gc -mabi=ilp32d -mexplicit-relocs -O2 -fno-dce
-mstrict-align -mtune=xt-c9501fdvt -fdump-rtl-sched2-details" } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched2" } } */
extern double fusion_rv32_fp_symbol;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c
index 59a84d196ae..51894e29f59 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-rv32-subreg-positive-rtl.c
@@ -1,12 +1,12 @@
/* { dg-do compile { target { rv32 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv32gc -mabi=ilp32d -O2 -fno-dce -fschedule-insns
-mtune=xt-c9501fdvt -fdump-rtl-sched1-details" } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched1" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched1" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 1 "sched1" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched1" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched1" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched1" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_LD" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ST" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_PREINDEX_LD" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_POSTINDEX_ST" 1 "sched1" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched1" } }
*/
/* On RV32, an add feeding a load via the low subreg half should fuse. */
int __RTL (startwith ("sched1"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-slli-srli.c
b/gcc/testsuite/gcc.target/riscv/fusion-slli-srli.c
index 4bf56e5e876..c460436cb28 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-slli-srli.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-slli-srli.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 4 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 4 "sched2" } } */
typedef unsigned long uint64_t;
typedef unsigned int uint32_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-special-positive-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-special-positive-rtl.c
index 94277c8cb3a..a6a01faa1aa 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-special-positive-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-special-positive-rtl.c
@@ -1,13 +1,12 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zbb -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 1 "sched2" {
xfail *-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 1 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 1 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ADD_ANDI" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_ANDI_ADD" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LOGIC_LOGIC" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 1 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 1 "sched2" } } */
extern long fusion_low_symbol;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-srli-add.c
b/gcc/testsuite/gcc.target/riscv/fusion-srli-add.c
index 0fe58cbb785..9bd192b1f2a 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-srli-add.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-srli-add.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc_zba -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 3 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 3 "sched2" } } */
typedef long int64_t;
typedef unsigned long uint64_t;
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-sub-seqz-snez.c
b/gcc/testsuite/gcc.target/riscv/fusion-sub-seqz-snez.c
index 20c841c9019..f2cb635197d 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-sub-seqz-snez.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-sub-seqz-snez.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 2 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SUB_SEQZ" 2 "sched2" } } */
/* sub + seqz should fuse. */
long __RTL (startwith ("sched2"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-subreg-address-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-subreg-address-rtl.c
index ccff256f5e0..011c3c030a3 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-subreg-address-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-subreg-address-rtl.c
@@ -1,8 +1,7 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fschedule-insns -fdump-rtl-sched1-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched1" {
xfail *-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_LDST_PAIR_INC" 1 "sched1" } }
*/
/* A load pair addressed through a subreg of a wider register should fuse. */
long __RTL (startwith ("sched1"))
diff --git a/gcc/testsuite/gcc.target/riscv/fusion-word-positive-rtl.c
b/gcc/testsuite/gcc.target/riscv/fusion-word-positive-rtl.c
index 665c8e909dc..f53a658f7b2 100644
--- a/gcc/testsuite/gcc.target/riscv/fusion-word-positive-rtl.c
+++ b/gcc/testsuite/gcc.target/riscv/fusion-word-positive-rtl.c
@@ -1,9 +1,8 @@
/* { dg-do compile { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-O[sgz]" "-flto" } } */
/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=xt-c9501fdvt -O2
-fdump-rtl-sched2-details" } */
-/* No tune enables these fusion pairs yet. */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 2 "sched2" { xfail
*-*-* } } } */
-/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 2 "sched2" { xfail
*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SRLI_ADD" 2 "sched2" } } */
+/* { dg-final { scan-rtl-dump-times "RISCV_FUSE_SLLI_SRLI" 2 "sched2" } } */
/* Raw SImode slli followed by raw SImode srli should fuse. */
int __RTL (startwith ("sched2"))
--
2.52.0