diff --git a/gcc/testsuite/g++.target/aarch64/sve/tls_2.C b/gcc/testsuite/g++.target/aarch64/sve/tls_2.C
index 9267f1e92d1..a1a2c85e591 100644
--- a/gcc/testsuite/g++.target/aarch64/sve/tls_2.C
+++ b/gcc/testsuite/g++.target/aarch64/sve/tls_2.C
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target tls } */
 /* { dg-options "-O2 -fPIC -msve-vector-bits=256" } */
+/* { dg-require-effective-target fpic } */
 
 #include <stdint.h>
 
diff --git a/gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c b/gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c
index 9ee772f87f4..46687bafe8b 100644
--- a/gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/got_mem_hoist_1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fpic -fdump-rtl-loop2_invariant" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "Load/Store hoisted by RTL PRE already" { aarch64*-*-* }  { "-mcmodel=tiny" "-mcmodel=large" } { "" } } */
 
 int bar (int);
diff --git a/gcc/testsuite/gcc.target/aarch64/noplt_1.c b/gcc/testsuite/gcc.target/aarch64/noplt_1.c
index 731fcaea23f..f99a30aeb0e 100644
--- a/gcc/testsuite/gcc.target/aarch64/noplt_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/noplt_1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fpic -fno-plt" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-mcmodel=large" } { "" } } */
 
 int* bar (void) ;
diff --git a/gcc/testsuite/gcc.target/aarch64/noplt_2.c b/gcc/testsuite/gcc.target/aarch64/noplt_2.c
index 3be94aafc66..8d0b899fd60 100644
--- a/gcc/testsuite/gcc.target/aarch64/noplt_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/noplt_2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fpic" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-mcmodel=large" } { "" } } */
 
 __attribute__ ((noplt))
diff --git a/gcc/testsuite/gcc.target/aarch64/noplt_3.c b/gcc/testsuite/gcc.target/aarch64/noplt_3.c
index a3826184549..450cc1aaf50 100644
--- a/gcc/testsuite/gcc.target/aarch64/noplt_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/noplt_3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fpic -fno-plt" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-mcmodel=large" } { "" } } */
 
 int dec (int);
diff --git a/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c b/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
index 043f1ee2c0d..755c0b67ea4 100644
--- a/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
+++ b/gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c
@@ -1,5 +1,6 @@
 /* { dg-options "-O2 -mcmodel=small -fPIC" }  */
 /* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
 
 extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
 extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
diff --git a/gcc/testsuite/gcc.target/aarch64/pic-small.c b/gcc/testsuite/gcc.target/aarch64/pic-small.c
index 2ea056af27d..4ec50e1b7c7 100644
--- a/gcc/testsuite/gcc.target/aarch64/pic-small.c
+++ b/gcc/testsuite/gcc.target/aarch64/pic-small.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
 /* { dg-require-effective-target aarch64_small_fpic } */
 /* { dg-options "-O2 -fpic -fno-inline --save-temps" } */
 /* { dg-skip-if "-fpic for AArch64 small code model" { aarch64*-*-* }  { "-mcmodel=tiny" "-mcmodel=large" } { "" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c b/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
index 406568c9d91..0c5e7fe7fb4 100644
--- a/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
+++ b/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
@@ -1,5 +1,6 @@
 /* { dg-options "-O2 -mcmodel=small -fPIC -fno-builtin" }  */
 /* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
 
 typedef long unsigned int size_t;
 enum
diff --git a/gcc/testsuite/gcc.target/aarch64/pr66912.c b/gcc/testsuite/gcc.target/aarch64/pr66912.c
index b8aabcd3b13..fcf2aebd64e 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr66912.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr66912.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target *-*-linux* } } */
 /* { dg-options "-O2 -fpic" } */
+/* { dg-require-effective-target fpic } */
 
 __attribute__((visibility("protected")))
 int n_common;
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/tls_1.c b/gcc/testsuite/gcc.target/aarch64/sve/tls_1.c
index ca9b908baac..43c52bc2b90 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/tls_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/tls_1.c
@@ -1,4 +1,5 @@
 /* { dg-options "-O2 -fPIC -msve-vector-bits=256" } */
+/* { dg-require-effective-target fpic } */
 
 typedef unsigned int v8si __attribute__((vector_size(32)));
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_1.c b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_1.c
index c9ee14de15d..1d377703592 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O3 -fpic" } */
+/* { dg-require-effective-target fpic } */
 
 /* Clobber highs do not need to be spilled around tls usage.  */
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_2.c b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_2.c
index 37bd47034c2..8d73ad72a7f 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O3 -fpic -msve-vector-bits=256 -fno-schedule-insns" } */
+/* { dg-require-effective-target fpic } */
 
 /* Clobber highs must be spilled around tls usage.  */
 
@@ -21,4 +22,4 @@ v8si foo (v8si a, v8si b, v8si c)
   return y + 7;
 }
 
-/* { dg-final { scan-assembler-times {\tstr\tz[0-9]+,} 3 } } */
\ No newline at end of file
+/* { dg-final { scan-assembler-times {\tstr\tz[0-9]+,} 3 } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_3.c b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_3.c
index 162ece69f6c..17f39d184b1 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/tls_preserve_3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O3 -fpic -msve-vector-bits=512 -fno-schedule-insns" } */
+/* { dg-require-effective-target fpic } */
 
 /* Clobber highs must be spilled around tls usage.  */
 
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsie_tiny_1.c b/gcc/testsuite/gcc.target/aarch64/tlsie_tiny_1.c
index 7477fa60661..d1886a7e5c9 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsie_tiny_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsie_tiny_1.c
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=initial-exec -mcmodel=tiny" } */
+/* { dg-require-effective-target fpic } */
 
 #include "tls_1.x"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle12_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle12_1.c
index c0bf488b3b6..f175d27bc70 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle12_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle12_1.c
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=12 --save-temps" } */
+/* { dg-require-effective-target fpic } */
 
 #include "tls_1.x"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny_1.c
index d9d439e1025..94ab3a0c6bc 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle12_tiny_1.c
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=12 -mcmodel=tiny --save-temps" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "TLS 12bit size for tiny" { aarch64*-*-* }  { "-mcmodel=small" "-mcmodel=large" } { "" } } */
 
 #include "tls_1.x"
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle24_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle24_1.c
index 9acc4c85a76..7759556ab5c 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle24_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle24_1.c
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=24 --save-temps" } */
+/* { dg-require-effective-target fpic } */
 
 #include "tls_1.x"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny_1.c
index 2dfb06ed772..93dbef3b33c 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle24_tiny_1.c
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=24 -mcmodel=tiny --save-temps" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "TLS 24bit size for tiny" { aarch64*-*-* }  { "-mcmodel=small" "-mcmodel=large" } { "" } } */
 
 #include "tls_1.x"
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle32_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
index 0610d2ac15c..e340a0bd1d3 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle32_1.c
@@ -2,6 +2,7 @@
 /* { dg-require-effective-target tls_native } */
 /* { dg-require-effective-target aarch64_tlsle32 } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=32 --save-temps" } */
+/* { dg-require-effective-target fpic } */
 
 #include "tls_1.x"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
index d9975f7842d..8bb0f4ce57b 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c
@@ -2,6 +2,7 @@
 /* { dg-require-effective-target tls_native } */
 /* { dg-require-effective-target aarch64_tlsle32 } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=48 --save-temps" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "TLS size trunc for small" { aarch64*-*-* }  { "-mcmodel=tiny" "-mcmodel=large" } { "" } } */
 
 #include "tls_1.x"
diff --git a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
index 8274764de48..c929beb1011 100644
--- a/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target tls_native } */
 /* { dg-options "-O2 -fpic -ftls-model=local-exec -mtls-size=32 -mcmodel=tiny --save-temps" } */
+/* { dg-require-effective-target fpic } */
 /* { dg-skip-if "TLS size trunc for tiny" { aarch64*-*-* }  { "-mcmodel=small" "-mcmodel=large" } { "" } } */
 
 #include "tls_1.x"
