aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-12-10 19:46:05 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2023-12-10 19:46:05 +0000
commit23ea0bc2cf042d74c4adfe26a57cf96b1d837a91 (patch)
tree6f8dcb11d8cfc2f9a35d5c8cc04083a41fed9b0c
parent02ecdaab7a50f4505fd905effb6d238d773dc813 (diff)
downloadgcc-23ea0bc2cf042d74c4adfe26a57cf96b1d837a91.zip
gcc-23ea0bc2cf042d74c4adfe26a57cf96b1d837a91.tar.gz
gcc-23ea0bc2cf042d74c4adfe26a57cf96b1d837a91.tar.bz2
aarch64: Skip some SME register save tests on BE
Big-endian targets need to save Z8-Z15 in the same order as the registers would appear for D8-D15, because the layout is mandated by the EH ABI. BE targets therefore use ST1D instead of the normal STR for those registers (but not for others). That difference is already tested elsewhere and isn't important for the SME tests. This patch therefore restricts the affected tests to LE. gcc/testsuite/ * gcc.target/aarch64/sme/call_sm_switch_5.c: Restrict tests that contain Z8-Z23 saves to little-endian. * gcc.target/aarch64/sme/call_sm_switch_8.c: Likewise. * gcc.target/aarch64/sme/locally_streaming_1.c: Likewise.
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c6
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c6
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c b/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
index e3d9bc2..6238ab80 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
@@ -14,7 +14,7 @@ struct callbacks {
};
/*
-** n_caller: { target lp64 }
+** n_caller: { target { lp64 && aarch64_little_endian } }
** stp x30, (x19|x2[0-8]), \[sp, #?-32\]!
** cntd x16
** str x16, \[sp, #?16\]
@@ -114,7 +114,7 @@ n_caller (struct callbacks *c)
}
/*
-** s_caller: { target lp64 }
+** s_caller: { target { lp64 && aarch64_little_endian } }
** stp x30, (x19|x2[0-8]), \[sp, #?-32\]!
** cntd x16
** str x16, \[sp, #?16\]
@@ -214,7 +214,7 @@ s_caller (struct callbacks *c) [[arm::streaming]]
}
/*
-** sc_caller:
+** sc_caller: { target aarch64_little_endian }
** stp x29, x30, \[sp, #?-32\]!
** mov x29, sp
** cntd x16
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c b/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
index f44724d..c909b34 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
@@ -7,7 +7,7 @@ svint8_t produce_z0 ();
void consume_z0 (svint8_t);
/*
-** test_z0:
+** test_z0: { target aarch64_little_endian }
** ...
** smstop sm
** bl produce_z0
@@ -32,7 +32,7 @@ svint8x4_t produce_z3 ();
void consume_z3 (svint8x4_t);
/*
-** test_z3:
+** test_z3: { target aarch64_little_endian }
** ...
** smstop sm
** bl produce_z3
@@ -61,7 +61,7 @@ svbool_t produce_p0 ();
void consume_p0 (svbool_t);
/*
-** test_p0:
+** test_p0: { target aarch64_little_endian }
** ...
** smstop sm
** bl produce_p0
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c b/gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
index 20ff4b8..4bb637f 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
@@ -265,7 +265,7 @@ n_ls_vector_pcs ()
}
/*
-** n_ls_sve_pcs:
+** n_ls_sve_pcs: { target aarch64_little_endian }
** sub sp, sp, #?16
** cntd x16
** str x16, \[sp\]