public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/vendors/ARM/heads/morello)] Use effective-target for hybrid tests
@ 2022-10-13 10:46 Matthew Malcomson
  0 siblings, 0 replies; only message in thread
From: Matthew Malcomson @ 2022-10-13 10:46 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:78df431c4dd59a636106f47a04c684be6c7dc713

commit 78df431c4dd59a636106f47a04c684be6c7dc713
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Date:   Thu Oct 13 11:43:00 2022 +0100

    Use effective-target for hybrid tests
    
    Many of our hybrid-specific tests use dg-skip-if looking for the
    `-mabi=purecap` flag to avoid running on purecap targets.  This does not
    work hosted since our hosted implementations run purecap by default.
    
    Here we introduce and use a new effective-target
    `cheri_capability_hybrid` to make the selection more robust.
    
    Some precise-bounds-padding tests were using a TLS variable.  These did
    not have an associated `dg-warning` to catch the warning that we emit
    when the target actually has native TLS support.  This patch adds said
    dg-warning so that we do not get an "excess errors" testsuite failure
    when running these on the board.

Diff:
---
 .../aarch64/morello/alt-base-atomic-compare-exchange-1.c          | 2 +-
 .../aarch64/morello/alt-base-atomic-compare-exchange-2.c          | 2 +-
 .../aarch64/morello/alt-base-atomic-compare-exchange-3.c          | 2 +-
 .../aarch64/morello/alt-base-atomic-compare-exchange-4.c          | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-exchange-1.c       | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-exchange-2.c       | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-exchange-3.c       | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-exchange-4.c       | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-1.c | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-2.c | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-3.c | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-operation-1.c      | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-operation-2.c      | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-operation-3.c      | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-store-1.c          | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-store-2.c          | 2 +-
 .../gcc.target/aarch64/morello/alt-base-atomic-store-3.c          | 2 +-
 .../gcc.target/aarch64/morello/alt-base-autoinc-cadi-1.c          | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-df-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-di-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hf-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hi-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-qi-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-sf-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-si-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-df-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-di-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hf-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hi-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-qi-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-sf-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-si-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-tf-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-ti-1.c     | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v128-1.c   | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v256-1.c   | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v384-1.c   | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v512-1.c   | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v64-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-1.c        | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-2.c        | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-3.c        | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-3.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-1.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-2.c    | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v128-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v256-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v384-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v512-1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-1.c   | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-2.c   | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-compare-swap-1.c     | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-compare-swap-2.c     | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-compare-swap-3.c     | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-lock-release-1.c     | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-lock-release-2.c     | 2 +-
 .../aarch64/morello/alt-base-sync-lock-test-and-set-1.c           | 2 +-
 .../aarch64/morello/alt-base-sync-lock-test-and-set-2.c           | 2 +-
 .../aarch64/morello/alt-base-sync-lock-test-and-set-3.c           | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-operation-1.c        | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-operation-2.c        | 2 +-
 .../gcc.target/aarch64/morello/alt-base-sync-operation-3.c        | 2 +-
 .../gcc.target/aarch64/morello/capability_attribute_errors_1.c    | 2 +-
 .../gcc.target/aarch64/morello/capability_attribute_warnings_1.c  | 2 +-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-1.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-2.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-3.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-4.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-5.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-6.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-7.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-8.c     | 3 ++-
 gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-9.c     | 2 +-
 .../gcc.target/aarch64/morello/hybrid-cap-ptr-conversions.c       | 3 ++-
 .../gcc.target/aarch64/morello/hybrid-cap-ptr-glob-init-errors.c  | 3 ++-
 .../gcc.target/aarch64/morello/precise-bounds-padding-2.c         | 1 +
 gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding.c | 1 +
 gcc/testsuite/lib/target-supports.exp                             | 8 ++++++++
 94 files changed, 112 insertions(+), 91 deletions(-)

diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-1.c
index 24088673306..47826c6cee6 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-2.c
index e310cf235e0..4b047ce9367 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-3.c
index 1f6e527c3f8..3729ece0298 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-3.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-4.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-4.c
index 4c566d991c6..ca50f478957 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-4.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-compare-exchange-4.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-1.c
index 23c1f3dcbf3..8adb3a36f48 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-2.c
index b98bd7ec841..5c8dbb40c79 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-3.c
index c47b0c508c8..805cc3e99ce 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-3.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-4.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-4.c
index f6a1bdac7e4..e350376d1a3 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-4.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-exchange-4.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-1.c
index c9b647139f8..3180e2a669d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-2.c
index 0acf2a8370d..b1da229f5ff 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-3.c
index 0325e46fff7..0e0f8017f1c 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-load-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-1.c
index f42a8cbff67..cabc82d2333 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-2.c
index df56fd504d8..35bee8c9727 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-3.c
index 9b3a13e36bf..142e7c57406 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-operation-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-1.c
index 9bb2d8eec63..609365c542e 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-2.c
index cd95d1835bf..6dff12d2a29 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-3.c
index c35c74f8b61..3b051da931c 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-atomic-store-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-cadi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-cadi-1.c
index 838c3868907..dd85f5ff4d8 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-cadi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-cadi-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-df-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-df-1.c
index c626973620f..204adb88357 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-df-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-df-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-di-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-di-1.c
index e4e6ea7842a..ed78faf5b09 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-di-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-di-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hf-1.c
index 8ec45381870..33ba35c0f47 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hf-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hi-1.c
index b370a8e6ee2..1f98dc591ef 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-hi-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-qi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-qi-1.c
index be59146e4bd..fbe6c5b03fc 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-qi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-qi-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-sf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-sf-1.c
index a6e0148968f..b32c5ef77b3 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-sf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-sf-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-si-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-si-1.c
index 4126356db2f..c0663265613 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-si-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-autoinc-si-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-ivopts -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-df-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-df-1.c
index f731d3e4a2b..9a265bd4ba2 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-df-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-df-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-di-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-di-1.c
index 7d6bacc4b10..6da7085e685 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-di-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-di-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hf-1.c
index c2ffb6ff3e9..9dd666db69f 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hi-1.c
index 4338c36d7fc..5b0a14704b2 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-hi-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-qi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-qi-1.c
index 5069fa284eb..e654bee913b 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-qi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-qi-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-sf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-sf-1.c
index 89883f93354..912ec73ba1d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-sf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-sf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-si-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-si-1.c
index 33d217419b1..cc57b202953 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-si-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-si-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-tf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-tf-1.c
index e43b8f87a7a..7bb3917e6b3 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-tf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-tf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-ti-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-ti-1.c
index c8ddfdf3b09..d84d7b8116f 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-ti-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-ti-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v128-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v128-1.c
index 81cd42e002a..3d98d6f8105 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v128-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v128-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v256-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v256-1.c
index 772400f92ab..d0c85434af5 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v256-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v256-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v384-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v384-1.c
index adf0365794d..413094e6bd4 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v384-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v384-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v512-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v512-1.c
index db91ffa9bfd..d40d9a4764b 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v512-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v512-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v64-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v64-1.c
index 424432694a3..ca216c64590 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v64-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-load-v64-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-1.c
index c137b9090f8..2efff52b0dd 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-2.c
index 6ad18dda97c..007acf70a5d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-2.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fpeephole2 -fno-tree-vectorize -mstrict-align -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-3.c
index a900a66b969..34ee18e05cf 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-pair-3.c
@@ -1,6 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fpeephole2 -fno-tree-vectorize -save-temps" } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-1.c
index 257615dda79..c92f5b6589f 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-2.c
index 04546c251b6..d7a48de605b 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-df-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-1.c
index 029512d105f..66955533b3c 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-2.c
index 1e4b75c14ad..2f6a9ec890d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-di-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-1.c
index 5452854f0a8..0efdd4e5be2 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-2.c
index 44046159209..ff7e27bb225 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hf-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-1.c
index aa94a0d0891..b4d8fdf8e82 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-2.c
index dbdce413404..7210680b436 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-hi-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-1.c
index b330792ab87..c818ed4f91f 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-2.c
index 0ddd6f903dd..5102742bf66 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-qi-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-1.c
index eb0277212eb..2ca8dce24ee 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-2.c
index ace58f464d0..ad1a0b2146a 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-sf-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-1.c
index 1df7b42952a..38539de72b1 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-2.c
index 5aacf58fc5e..1fc6e848f6d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-si-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-1.c
index ea62097f673..59151e76e3d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-2.c
index a439786c0b5..4550c84be45 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-3.c
index 67090cb5bb8..47fca49717d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-tf-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-fno-signed-zeros -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-1.c
index e599bed009a..b4930bcac6d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-2.c
index 865cccaf998..a6d064113cc 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-ti-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v128-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v128-1.c
index 6f982899da0..e6fc19bbef7 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v128-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v128-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v256-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v256-1.c
index 07a1d5a79d9..1ca2fc91f69 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v256-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v256-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v384-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v384-1.c
index 06d2b481f13..97e2c259162 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v384-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v384-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v512-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v512-1.c
index 37d54f1b762..d94a65a1743 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v512-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v512-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #define ALT_BASE
 #include "load-store-utils.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-1.c
index cae7b40bfd5..a2c7a785d10 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-2.c
index 5adb1a86046..75d579315fd 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-store-v64-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-1.c
index 678ad7cb157..8032306f82b 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-2.c
index 24c885c9a29..961a24f4923 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-3.c
index 7ad17ee4dae..03af31a8999 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-compare-swap-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-1.c
index de52082d87f..91799804d15 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-2.c
index b709611c96d..4ed41d8d29e 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-release-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-1.c
index 8e03f8f444b..d6a59a9086a 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-2.c
index 9dd1d3d822e..87ef549e657 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-3.c
index 574116a1d0d..50489f20504 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-lock-test-and-set-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-1.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-1.c
index 012c0b115d1..0d84132e10c 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-1.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-2.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-2.c
index 94e6efa6b4e..b2b6030406d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-2.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-3.c b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-3.c
index e9de91aca39..97716bb6ff7 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/alt-base-sync-operation-3.c
@@ -1,7 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-foptimize-sibling-calls -save-temps -Wno-cheri-implicit-pointer-conversion-from-cap -Wno-cheri-explicit-pointer-conversion-from-cap" } */
 /* { dg-final { check-function-bodies "**" ""  { {-O[123s]} } } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_errors_1.c b/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_errors_1.c
index 2de8c2d0dab..77f19f7b021 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_errors_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_errors_1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target aarch64*-*-* } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /* Error on non-pointers.  */
 int __capability var1;  /* { dg-error "'__capability' only applies to pointers" } */
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_warnings_1.c b/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_warnings_1.c
index 46c782d9a34..7acc9b8c7f8 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_warnings_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/capability_attribute_warnings_1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target aarch64*-*-* } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /* Improper ordering: Warning cases.  */
 int __capability *var1; /* { dg-warning "use of '__capability' before the pointer type is deprecated" } */
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-1.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-1.c
index 3dc05a8ef75..7ad7d9cf825 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-1.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=tiny -fno-PIC -fgimple -g0 -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-2.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-2.c
index 415013fa604..d99c3599868 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-2.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=tiny -fPIC -fgimple -g0 -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-3.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-3.c
index 3c4d80d73b6..6ba8e59f1bb 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-3.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-3.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=small -fno-PIC -fgimple -g0 -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-4.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-4.c
index 32fff93d26c..52910f2debe 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-4.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-4.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=small -fPIC -fgimple -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-5.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-5.c
index 0a747d46cf7..2d7f2d6509d 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-5.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-5.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=small -fno-PIC -mpc-relative-literal-loads -fgimple -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-6.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-6.c
index f2086677688..d8f0b5e4b64 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-6.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-6.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=small -fPIC -mpc-relative-literal-loads -fgimple -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-7.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-7.c
index daa0ba00832..d6647638419 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-7.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-7.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=large -fno-PIC -fgimple -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-8.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-8.c
index ccbcd9bd826..8fc70cf209e 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-8.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-8.c
@@ -1,7 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-additional-options "-mcmodel=large -fno-PIC -mpc-relative-literal-loads -fgimple -save-temps" } */
 /* { dg-final { check-function-bodies "**" "" } } */
-/* { dg-skip-if "" { *-*-* } { "-O0" "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 /*
 ** foo:
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-9.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-9.c
index 7ebcd7f0f57..bceed41e7ed 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-9.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-addr-expr-9.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-fgimple" } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
 
 int x;
 __GIMPLE int *foo(int i) {
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-conversions.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-conversions.c
index 077a7fe65ff..6a8a4faef4f 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-conversions.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-conversions.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target aarch64*-*-* } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" "-ffake-hybrid" "-ffake-hybrid-init" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
+/* { dg-skip-if "" { *-*-* } { "-ffake-hybrid" "-ffake-hybrid-init" } { "" } }  */
 
 int x;
 int * foo = &x;
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-glob-init-errors.c b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-glob-init-errors.c
index 7dc4b9df2a0..eb44f11b037 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-glob-init-errors.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/hybrid-cap-ptr-glob-init-errors.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target aarch64*-*-* } } */
-/* { dg-skip-if "" { *-*-* } { "-mabi=purecap" "-mfake-capability" "-ffake-hybrid" "-ffake-hybrid-init" } { "" } }  */
+/* { dg-require-effective-target cheri_capability_hybrid } */
+/* { dg-skip-if "" { *-*-* } { "-ffake-hybrid" "-ffake-hybrid-init" } { "" } }  */
 
 int x;
 int * foo = &x;
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding-2.c b/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding-2.c
index c50dad60b38..8199587ddb7 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding-2.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding-2.c
@@ -68,6 +68,7 @@ __thread int tls_array[16394];
    emitted for the TLS variable above).  */
 int aligned_array[16395] __attribute__ ((aligned(4),section(".aligned_sect")));
 /* { dg-warning "object 'aligned_array' has cheri alignment overridden by a user-specified one" "" { target cheri_capability_pure } .-1 } */
+/* { dg-warning "object 'tls_array' has cheri alignment ignored since it is thread local" "" { target tls_native } .-2 } */
 /* { dg-final { scan-assembler-not "\.zero\t24\n" } } */
 /* N.B. Checking for the non-existence of this line rather than the existence
    of an alternate line to allow running this testcase on bare-metal targets
diff --git a/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding.c b/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding.c
index 25d81ccb462..8aca3d35039 100644
--- a/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding.c
+++ b/gcc/testsuite/gcc.target/aarch64/morello/precise-bounds-padding.c
@@ -52,6 +52,7 @@ void setidx (__SIZE_TYPE__ index, int val)
 __thread int tls_array[16394];
 int aligned_array[16394] __attribute__ ((aligned(4),section(".aligned_sect")));
 /* { dg-warning "object 'aligned_array' has cheri alignment overridden by a user-specified one" "" { target cheri_capability_pure } .-1 } */
+/* { dg-warning "object 'tls_array' has cheri alignment ignored since it is thread local" "" { target tls_native } .-2 } */
 /* { dg-final { scan-assembler-not "\.zero\t24\n" } } */
 /* N.B. Checking for the non-existence of this line rather than the existence
    of an alternate line to allow running this testcase on bare-metal targets
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6f479e64cfc..d44ebe15559 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3588,6 +3588,14 @@ proc check_effective_target_cheri_capability_any { } {
   }]
 }
 
+proc check_effective_target_cheri_capability_hybrid { } {
+  return [check_no_compiler_messages cheri_capability_hybrid assembly {
+  #if !defined (__CHERI__) || defined (__CHERI_PURE_CAPABILITY__)
+  #error foo
+  #endif
+  }]
+}
+
 # Return the size in bits of an SVE vector, or 0 if the size is variable.
 proc aarch64_sve_bits { } {
     return [check_cached_effective_target aarch64_sve_bits {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-10-13 10:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-13 10:46 [gcc(refs/vendors/ARM/heads/morello)] Use effective-target for hybrid tests Matthew Malcomson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).