summaryrefslogtreecommitdiff
path: root/0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-02-28 10:03:49 +0000
committerCoprDistGit <infra@openeuler.org>2025-02-28 10:03:49 +0000
commit73127104a245052cd5cf29cdaaca3e5c32c70348 (patch)
tree8e28b63e478c43c252f18b49836dff7313affe54 /0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch
parent49d3feaf4665cdb07576fc1a2382a4d82a612d35 (diff)
automatic import of gccopeneuler24.03_LTS_SP1
Diffstat (limited to '0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch')
-rw-r--r--0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch b/0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch
new file mode 100644
index 0000000..0b0dbd9
--- /dev/null
+++ b/0222-Backport-SME-aarch64-Skip-some-SME-register-save-tes.patch
@@ -0,0 +1,106 @@
+From cc2e901eccd40992432f74270a9ebc1b708b6eb1 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Sun, 10 Dec 2023 19:46:05 +0000
+Subject: [PATCH 123/157] [Backport][SME] aarch64: Skip some SME register save
+ tests on BE
+
+Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=23ea0bc2cf042d74c4adfe26a57cf96b1d837a91
+
+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.
+---
+ gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c | 6 +++---
+ gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c | 6 +++---
+ gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c | 2 +-
+ 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 e3d9bc274..6238ab80d 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 f44724df3..c909b34ff 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 20ff4b87d..4bb637f47 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\]
+--
+2.33.0
+