[1/2,ARM,testsuite] Skip tests incompatible with -mpure-code
diff mbox series

Message ID CAKdteOYQ0A2q9dK72QrH0SdWfDtByz=oKDEMu1ATc-09c4Vqew@mail.gmail.com
State New
Headers show
Series
  • [1/2,ARM,testsuite] Skip tests incompatible with -mpure-code
Related show

Commit Message

Christophe Lyon Oct. 18, 2019, 1:18 p.m. UTC
Hi,

All these tests fail when using -mpure-code:
* some force A or R profile
* some use Neon
* some use -fpic/-fPIC
all of which are not supported by this option.

OK?

Thanks,

Christophe
2019-10-18  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/testsuite/
	* gcc.target/arm/attr-crypto.c: Skip if -mpure-code is used.
	* gcc.target/arm/attr-neon-fp16.c: Likewise.
	* gcc.target/arm/combine-cmp-shift.c: Likewise.
	* gcc.target/arm/data-rel-1.c: Likewise.
	* gcc.target/arm/data-rel-2.c: Likewise.
	* gcc.target/arm/data-rel-3.c: Likewise.
	* gcc.target/arm/ftest-armv7a-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7a-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv7r-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7r-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv7ve-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7ve-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv8a-arm.c: Likewise.
	* gcc.target/arm/ftest-armv8a-thumb.c: Likewise.
	* gcc.target/arm/lceil-vcvt_1.c: Likewise.
	* gcc.target/arm/lfloor-vcvt_1.c: Likewise.
	* gcc.target/arm/lround-vcvt_1.c: Likewise.
	* gcc.target/arm/memset-inline-10.c: Likewise.
	* gcc.target/arm/mod_2.c: Likewise.
	* gcc.target/arm/mod_256.c: Likewise.
	* gcc.target/arm/pr40657-1.c: Likewise.
	* gcc.target/arm/pr44788.c: Likewise.
	* gcc.target/arm/pr50305.c: Likewise.
	* gcc.target/arm/pr51835.c: Likewise.
	* gcc.target/arm/pr51915.c: Likewise.
	* gcc.target/arm/pr52006.c: Likewise.
	* gcc.target/arm/pr53187.c: Likewise.
	* gcc.target/arm/pr58784.c: Likewise.
	* gcc.target/arm/pr59575.c: Likewise.
	* gcc.target/arm/pr59923.c: Likewise.
	* gcc.target/arm/pr60650-2.c: Likewise.
	* gcc.target/arm/pr60657.c: Likewise.
	* gcc.target/arm/pr60663.c: Likewise.
	* gcc.target/arm/pr67439_1.c: Likewise.
	* gcc.target/arm/pr68620.c: Likewise.
	* gcc.target/arm/pr7676.c: Likewise.
	* gcc.target/arm/pr79239.c: Likewise.
	* gcc.target/arm/pr81863.c: Likewise.
	* gcc.target/arm/pragma_attribute.c: Likewise.
	* gcc.target/arm/pragma_cpp_fma.c: Likewise.
	* gcc.target/arm/require-pic-register-loc.c: Likewise.
	* gcc.target/arm/thumb-ltu.c: Likewise.
	* gcc.target/arm/thumb1-pic-high-reg.c: Likewise.
	* gcc.target/arm/thumb1-pic-single-base.c: Likewise.
	* gcc.target/arm/tlscall.c: Likewise.
	* gcc.target/arm/unsigned-float.c: Likewise.
	* gcc.target/arm/vrinta-ce.c: Likewise.
From 2ee4c65a4d308fa48c0bfff69e4670feeb649227 Mon Sep 17 00:00:00 2001
From: Christophe Lyon <christophe.lyon@linaro.org>
Date: Thu, 17 Oct 2019 11:11:48 +0200
Subject: [PATCH 1/2] [ARM,testsuite] Skip tests incompatible with -mpure-code.

All these tests fail when using -mpure-code:
* some force A or R profile
* some use Neon
* some use -fpic/-fPIC
all of which are not supported by this option.

2019-10-18  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/testsuite/
	* gcc.target/arm/attr-crypto.c: Skip if -mpure-code is used.
	* gcc.target/arm/attr-neon-fp16.c: Likewise.
	* gcc.target/arm/combine-cmp-shift.c: Likewise.
	* gcc.target/arm/data-rel-1.c: Likewise.
	* gcc.target/arm/data-rel-2.c: Likewise.
	* gcc.target/arm/data-rel-3.c: Likewise.
	* gcc.target/arm/ftest-armv7a-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7a-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv7r-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7r-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv7ve-arm.c: Likewise.
	* gcc.target/arm/ftest-armv7ve-thumb.c: Likewise.
	* gcc.target/arm/ftest-armv8a-arm.c: Likewise.
	* gcc.target/arm/ftest-armv8a-thumb.c: Likewise.
	* gcc.target/arm/lceil-vcvt_1.c: Likewise.
	* gcc.target/arm/lfloor-vcvt_1.c: Likewise.
	* gcc.target/arm/lround-vcvt_1.c: Likewise.
	* gcc.target/arm/memset-inline-10.c: Likewise.
	* gcc.target/arm/mod_2.c: Likewise.
	* gcc.target/arm/mod_256.c: Likewise.
	* gcc.target/arm/pr40657-1.c: Likewise.
	* gcc.target/arm/pr44788.c: Likewise.
	* gcc.target/arm/pr50305.c: Likewise.
	* gcc.target/arm/pr51835.c: Likewise.
	* gcc.target/arm/pr51915.c: Likewise.
	* gcc.target/arm/pr52006.c: Likewise.
	* gcc.target/arm/pr53187.c: Likewise.
	* gcc.target/arm/pr58784.c: Likewise.
	* gcc.target/arm/pr59575.c: Likewise.
	* gcc.target/arm/pr59923.c: Likewise.
	* gcc.target/arm/pr60650-2.c: Likewise.
	* gcc.target/arm/pr60657.c: Likewise.
	* gcc.target/arm/pr60663.c: Likewise.
	* gcc.target/arm/pr67439_1.c: Likewise.
	* gcc.target/arm/pr68620.c: Likewise.
	* gcc.target/arm/pr7676.c: Likewise.
	* gcc.target/arm/pr79239.c: Likewise.
	* gcc.target/arm/pr81863.c: Likewise.
	* gcc.target/arm/pragma_attribute.c: Likewise.
	* gcc.target/arm/pragma_cpp_fma.c: Likewise.
	* gcc.target/arm/require-pic-register-loc.c: Likewise.
	* gcc.target/arm/thumb-ltu.c: Likewise.
	* gcc.target/arm/thumb1-pic-high-reg.c: Likewise.
	* gcc.target/arm/thumb1-pic-single-base.c: Likewise.
	* gcc.target/arm/tlscall.c: Likewise.
	* gcc.target/arm/unsigned-float.c: Likewise.
	* gcc.target/arm/vrinta-ce.c: Likewise.

Change-Id: Id4d66a68f426e98bbc5652f2c1cf516d78b335f9
---
 gcc/testsuite/gcc.target/arm/attr-crypto.c              |  1 +
 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c           |  1 +
 gcc/testsuite/gcc.target/arm/combine-cmp-shift.c        |  1 +
 gcc/testsuite/gcc.target/arm/data-rel-1.c               |  1 +
 gcc/testsuite/gcc.target/arm/data-rel-2.c               |  1 +
 gcc/testsuite/gcc.target/arm/data-rel-3.c               |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c         |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c       |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c         |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c       |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c        |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c      |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c         |  1 +
 gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c       |  1 +
 gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c             |  1 +
 gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c            |  1 +
 gcc/testsuite/gcc.target/arm/lround-vcvt_1.c            |  1 +
 gcc/testsuite/gcc.target/arm/memset-inline-10.c         |  1 +
 gcc/testsuite/gcc.target/arm/mod_2.c                    |  1 +
 gcc/testsuite/gcc.target/arm/mod_256.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr40657-1.c                |  1 +
 gcc/testsuite/gcc.target/arm/pr44788.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr50305.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr51835.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr51915.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr52006.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr53187.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr58784.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr59575.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr59923.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr60650-2.c                |  1 +
 gcc/testsuite/gcc.target/arm/pr60657.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr60663.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr67439_1.c                |  1 +
 gcc/testsuite/gcc.target/arm/pr68620.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr7676.c                   |  1 +
 gcc/testsuite/gcc.target/arm/pr79239.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pr81863.c                  |  1 +
 gcc/testsuite/gcc.target/arm/pragma_attribute.c         |  1 +
 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c           |  1 +
 gcc/testsuite/gcc.target/arm/require-pic-register-loc.c | 17 +++++++++--------
 gcc/testsuite/gcc.target/arm/thumb-ltu.c                |  1 +
 gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c      |  1 +
 gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c   |  1 +
 gcc/testsuite/gcc.target/arm/tlscall.c                  |  1 +
 gcc/testsuite/gcc.target/arm/unsigned-float.c           |  1 +
 gcc/testsuite/gcc.target/arm/vrinta-ce.c                |  1 +
 47 files changed, 55 insertions(+), 8 deletions(-)

Comments

Christophe Lyon Nov. 3, 2019, 3:06 p.m. UTC | #1
Ping?

https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01357.html


On Fri, 18 Oct 2019 at 15:18, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
>
> Hi,
>
> All these tests fail when using -mpure-code:
> * some force A or R profile
> * some use Neon
> * some use -fpic/-fPIC
> all of which are not supported by this option.
>
> OK?
>
> Thanks,
>
> Christophe
Kyrill Tkachov Nov. 4, 2019, 4:54 p.m. UTC | #2
Hi Christophe,

On 10/18/19 2:18 PM, Christophe Lyon wrote:
> Hi,
>
> All these tests fail when using -mpure-code:
> * some force A or R profile
> * some use Neon
> * some use -fpic/-fPIC
> all of which are not supported by this option.
>
> OK?


Hmm... I'm tempted to ask if it would be simpler to add a check for 
-mpure-code in the effective target checks for the above features but a 
lot of those tests don't use effective target checks consistently anyway...

So this is ok, though I'm not a big fan of adding so many dg-skip-if 
directives.

Thanks,

Kyrill


>
> Thanks,
>
> Christophe
Christophe Lyon Nov. 5, 2019, 1:18 p.m. UTC | #3
On Mon, 4 Nov 2019 at 17:54, Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> wrote:
>
> Hi Christophe,
>
> On 10/18/19 2:18 PM, Christophe Lyon wrote:
> > Hi,
> >
> > All these tests fail when using -mpure-code:
> > * some force A or R profile
> > * some use Neon
> > * some use -fpic/-fPIC
> > all of which are not supported by this option.
> >
> > OK?
>
>
> Hmm... I'm tempted to ask if it would be simpler to add a check for
> -mpure-code in the effective target checks for the above features but a
> lot of those tests don't use effective target checks consistently anyway...
>
> So this is ok, though I'm not a big fan of adding so many dg-skip-if
> directives.
>
I'm not a big fan either, that's why I asked
https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01281.html
but finally decided it was easier for me to go with the dg-skip-if approach.

I supposed that all the existing dg-skip-if related to float-abi are used
by the Arm team when running various types of validations?

Committed as r277828.

Thanks

Christophe

> Thanks,
>
> Kyrill
>
>
> >
> > Thanks,
> >
> > Christophe

Patch
diff mbox series

diff --git a/gcc/testsuite/gcc.target/arm/attr-crypto.c b/gcc/testsuite/gcc.target/arm/attr-crypto.c
index af774cd..cbd13a7 100644
--- a/gcc/testsuite/gcc.target/arm/attr-crypto.c
+++ b/gcc/testsuite/gcc.target/arm/attr-crypto.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* Make sure we can force fpu=vfp before switching using the
    pragma.  */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_fp_ok } */
 /* { dg-options "-O2 -march=armv8-a" } */
 /* { dg-add-options arm_fp } */
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
index 984992f..d7b75645 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_fp_ok } */
 /* { dg-options "-mfp16-format=ieee" } */
 /* { dg-add-options arm_fp } */
diff --git a/gcc/testsuite/gcc.target/arm/combine-cmp-shift.c b/gcc/testsuite/gcc.target/arm/combine-cmp-shift.c
index a64f20e..21d1478 100644
--- a/gcc/testsuite/gcc.target/arm/combine-cmp-shift.c
+++ b/gcc/testsuite/gcc.target/arm/combine-cmp-shift.c
@@ -1,4 +1,5 @@ 
 /* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv7-a" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -mcpu=cortex-a8" }  */
 /* { dg-final { scan-assembler "cmp\tr\[0-9\]*, r\[0-9\]*, asr #31" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/data-rel-1.c b/gcc/testsuite/gcc.target/arm/data-rel-1.c
index d9d88f2..a09e235 100644
--- a/gcc/testsuite/gcc.target/arm/data-rel-1.c
+++ b/gcc/testsuite/gcc.target/arm/data-rel-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-fPIC -mno-pic-data-is-text-relative" } */
 /* { dg-final { scan-assembler-not "j-\\(.LPIC"  } } */
 /* { dg-final { scan-assembler-not "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */
diff --git a/gcc/testsuite/gcc.target/arm/data-rel-2.c b/gcc/testsuite/gcc.target/arm/data-rel-2.c
index 7d37a8c..56a54e8 100644
--- a/gcc/testsuite/gcc.target/arm/data-rel-2.c
+++ b/gcc/testsuite/gcc.target/arm/data-rel-2.c
@@ -1,4 +1,5 @@ 
 /* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-fPIC -mno-pic-data-is-text-relative -mno-single-pic-base" } */
 /* { dg-final { scan-assembler-not "j-\\(.LPIC"  } } */
 /* { dg-final { scan-assembler "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */
diff --git a/gcc/testsuite/gcc.target/arm/data-rel-3.c b/gcc/testsuite/gcc.target/arm/data-rel-3.c
index 534c6c4..4ce9048 100644
--- a/gcc/testsuite/gcc.target/arm/data-rel-3.c
+++ b/gcc/testsuite/gcc.target/arm/data-rel-3.c
@@ -1,4 +1,5 @@ 
 /* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-fPIC -mpic-data-is-text-relative" } */
 /* { dg-final { scan-assembler "j-\\(.LPIC"  } } */
 /* { dg-final { scan-assembler-not "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c b/gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
index c71a7cd..43f52fe 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7a-arm.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7-a" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-mthumb" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-marm" } */
 /* { dg-add-options arm_arch_v7a } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c b/gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
index f1f789e..717f44c 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7a-thumb.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7-a" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-mthumb" } */
 /* { dg-add-options arm_arch_v7a } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c b/gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
index 08c017f..24b93ea 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7r-arm.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7-r" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-mthumb" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-marm" } */
 /* { dg-add-options arm_arch_v7r } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c b/gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
index 1b69dc0..a7c3772 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7r-thumb.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7-r" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-mthumb" } */
 /* { dg-add-options arm_arch_v7r } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c b/gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
index 3cf987c..72c4c1f 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7ve-arm.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7ve" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-mthumb" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-marm" } */
 /* { dg-add-options arm_arch_v7ve } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c b/gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c
index 0d6b432..772405b 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv7ve-thumb.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv7ve" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-mthumb" } */
 /* { dg-add-options arm_arch_v7ve } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c b/gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c
index 7812c5c..feab5ee 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv8a-arm.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv8-a" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-mthumb" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-marm" } */
 /* { dg-add-options arm_arch_v8a } */
 
diff --git a/gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c b/gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
index 605b173..28d54bf 100644
--- a/gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
+++ b/gcc/testsuite/gcc.target/arm/ftest-armv8a-thumb.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv8-a" } } */
 /* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-mthumb" } */
 /* { dg-add-options arm_arch_v8a } */
 
diff --git a/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c b/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
index bbe4271..a8afab1 100644
--- a/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
+++ b/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_v8_vfp_ok } */
 /* { dg-options "-O2 -march=armv8-a" } */
 /* { dg-add-options arm_v8_vfp } */
diff --git a/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c b/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
index 88671d3..b8eb1b0 100644
--- a/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
+++ b/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_v8_vfp_ok } */
 /* { dg-options "-O2 -march=armv8-a" } */
 /* { dg-add-options arm_v8_vfp } */
diff --git a/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c b/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
index 8b1f6a7..4c52a83 100644
--- a/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
+++ b/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_v8_vfp_ok } */
 /* { dg-options "-O2 -march=armv8-a -ffast-math" } */
 /* { dg-add-options arm_v8_vfp } */
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-10.c b/gcc/testsuite/gcc.target/arm/memset-inline-10.c
index ce51c1d..c2f8125 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-10.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-10.c
@@ -3,6 +3,7 @@ 
 /* { dg-options "-march=armv7-a -mfloat-abi=hard -mfpu=neon -O2" } */
 /* { dg-skip-if "need SIMD instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
 /* { dg-skip-if "need SIMD instructions" { *-*-* } { "-mfpu=vfp*" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 
 #define BUF 100
 long a[BUF];
diff --git a/gcc/testsuite/gcc.target/arm/mod_2.c b/gcc/testsuite/gcc.target/arm/mod_2.c
index 93017a1..1143725 100644
--- a/gcc/testsuite/gcc.target/arm/mod_2.c
+++ b/gcc/testsuite/gcc.target/arm/mod_2.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm32 } */
 /* { dg-options "-O2 -mcpu=cortex-a57 -save-temps" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/mod_256.c b/gcc/testsuite/gcc.target/arm/mod_256.c
index ccb7f3c..d8dca0f 100644
--- a/gcc/testsuite/gcc.target/arm/mod_256.c
+++ b/gcc/testsuite/gcc.target/arm/mod_256.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm32 } */
 /* { dg-options "-O2 -mcpu=cortex-a57 -save-temps" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr40657-1.c b/gcc/testsuite/gcc.target/arm/pr40657-1.c
index a6ac6c7..645f46b 100644
--- a/gcc/testsuite/gcc.target/arm/pr40657-1.c
+++ b/gcc/testsuite/gcc.target/arm/pr40657-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-Os -march=armv5te -mthumb" }  */
 /* { dg-require-effective-target arm_thumb1_ok } */
 /* { dg-final { scan-assembler "pop.*r1.*pc" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pr44788.c b/gcc/testsuite/gcc.target/arm/pr44788.c
index 9ce44a8..e69bbc6 100644
--- a/gcc/testsuite/gcc.target/arm/pr44788.c
+++ b/gcc/testsuite/gcc.target/arm/pr44788.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb2_ok } */
 /* { dg-options "-Os -fno-strict-aliasing -fPIC -mthumb -march=armv7-a -mfpu=vfp3 -mfloat-abi=softfp" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr50305.c b/gcc/testsuite/gcc.target/arm/pr50305.c
index 2f6ad5c..f93df9f 100644
--- a/gcc/testsuite/gcc.target/arm/pr50305.c
+++ b/gcc/testsuite/gcc.target/arm/pr50305.c
@@ -1,5 +1,6 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv7-a" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -fno-omit-frame-pointer -marm -march=armv7-a -mfpu=vfp3" } */
 
 struct event {
diff --git a/gcc/testsuite/gcc.target/arm/pr51835.c b/gcc/testsuite/gcc.target/arm/pr51835.c
index 128b9d5..157dcbf 100644
--- a/gcc/testsuite/gcc.target/arm/pr51835.c
+++ b/gcc/testsuite/gcc.target/arm/pr51835.c
@@ -2,6 +2,7 @@ 
 /* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */
 /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "avoid conflicting -mfpu" { *-*-* } { "-mfpu=*" } { "-mfpu=fpv4-sp-d16" "-mfpu=vfpv3xd" "-mfpu=vfpv3xd-fp16" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -march=armv7-a -mfloat-abi=hard -mfpu=fpv4-sp-d16" }  */
 
 int func1 (double d)
diff --git a/gcc/testsuite/gcc.target/arm/pr51915.c b/gcc/testsuite/gcc.target/arm/pr51915.c
index f9ed305..d79f9b3 100644
--- a/gcc/testsuite/gcc.target/arm/pr51915.c
+++ b/gcc/testsuite/gcc.target/arm/pr51915.c
@@ -2,6 +2,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */
 /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2" } */
 
 struct S { int s1; void *s2; };
diff --git a/gcc/testsuite/gcc.target/arm/pr52006.c b/gcc/testsuite/gcc.target/arm/pr52006.c
index dbbcfe0..136a39d 100644
--- a/gcc/testsuite/gcc.target/arm/pr52006.c
+++ b/gcc/testsuite/gcc.target/arm/pr52006.c
@@ -2,6 +2,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "avoid conflicts with multilib flags" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2 -fPIC" } */
 
 unsigned long a;
diff --git a/gcc/testsuite/gcc.target/arm/pr53187.c b/gcc/testsuite/gcc.target/arm/pr53187.c
index 5fbc52c..59ca27e 100644
--- a/gcc/testsuite/gcc.target/arm/pr53187.c
+++ b/gcc/testsuite/gcc.target/arm/pr53187.c
@@ -2,6 +2,7 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */
 /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2" } */
 
 void bar (int);
diff --git a/gcc/testsuite/gcc.target/arm/pr58784.c b/gcc/testsuite/gcc.target/arm/pr58784.c
index 44528f34..5fdf116 100644
--- a/gcc/testsuite/gcc.target/arm/pr58784.c
+++ b/gcc/testsuite/gcc.target/arm/pr58784.c
@@ -2,6 +2,7 @@ 
 /* { dg-skip-if "incompatible options" { arm_thumb1 } } */
 /* { dg-options "-march=armv7-a -mfloat-abi=hard -mfpu=neon -marm -O2" } */
 /* { dg-skip-if "need hardfp ABI" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 
 
 typedef struct __attribute__ ((__packed__))
diff --git a/gcc/testsuite/gcc.target/arm/pr59575.c b/gcc/testsuite/gcc.target/arm/pr59575.c
index 13494f4..cc49be3 100644
--- a/gcc/testsuite/gcc.target/arm/pr59575.c
+++ b/gcc/testsuite/gcc.target/arm/pr59575.c
@@ -1,5 +1,6 @@ 
 /* PR target/59575 */
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-Os -g -march=armv7-a" } */
 
 void foo (int *);
diff --git a/gcc/testsuite/gcc.target/arm/pr59923.c b/gcc/testsuite/gcc.target/arm/pr59923.c
index 86a4e7d..7182810 100644
--- a/gcc/testsuite/gcc.target/arm/pr59923.c
+++ b/gcc/testsuite/gcc.target/arm/pr59923.c
@@ -1,5 +1,6 @@ 
 /* PR target/59923 */
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb2_ok } */
 /* { dg-options "-O2 -mcpu=cortex-a15 -fno-strict-aliasing -mthumb -g" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr60650-2.c b/gcc/testsuite/gcc.target/arm/pr60650-2.c
index c8d4615..c44d7b5 100644
--- a/gcc/testsuite/gcc.target/arm/pr60650-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr60650-2.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -fno-omit-frame-pointer -march=armv7-a" } */
 
 int a, h, j;
diff --git a/gcc/testsuite/gcc.target/arm/pr60657.c b/gcc/testsuite/gcc.target/arm/pr60657.c
index 66355c3..ca12152 100644
--- a/gcc/testsuite/gcc.target/arm/pr60657.c
+++ b/gcc/testsuite/gcc.target/arm/pr60657.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -march=armv7-a" } */
 
 
diff --git a/gcc/testsuite/gcc.target/arm/pr60663.c b/gcc/testsuite/gcc.target/arm/pr60663.c
index b79b830..8d76d79 100644
--- a/gcc/testsuite/gcc.target/arm/pr60663.c
+++ b/gcc/testsuite/gcc.target/arm/pr60663.c
@@ -1,5 +1,6 @@ 
 /* PR rtl-optimization/60663 */
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -march=armv7-a" } */
 
 int
diff --git a/gcc/testsuite/gcc.target/arm/pr67439_1.c b/gcc/testsuite/gcc.target/arm/pr67439_1.c
index f7a6128..01a9ab6 100644
--- a/gcc/testsuite/gcc.target/arm/pr67439_1.c
+++ b/gcc/testsuite/gcc.target/arm/pr67439_1.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb2_ok } */
 /* { dg-options "-O1 -mfp16-format=ieee -march=armv7-a -mfpu=neon -mthumb -mrestrict-it" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr68620.c b/gcc/testsuite/gcc.target/arm/pr68620.c
index 984992f..9187843 100644
--- a/gcc/testsuite/gcc.target/arm/pr68620.c
+++ b/gcc/testsuite/gcc.target/arm/pr68620.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_fp_ok } */
 /* { dg-options "-mfp16-format=ieee" } */
 /* { dg-add-options arm_fp } */
diff --git a/gcc/testsuite/gcc.target/arm/pr7676.c b/gcc/testsuite/gcc.target/arm/pr7676.c
index 349d7a3..0e9095c 100644
--- a/gcc/testsuite/gcc.target/arm/pr7676.c
+++ b/gcc/testsuite/gcc.target/arm/pr7676.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O1 -march=armv8-a -mfloat-abi=soft -mthumb" }  */
 /* { dg-skip-if "Do not combine float-abi= hard | soft | softfp" {*-*-*} {"-mfloat-abi=hard" -mfloat-abi=softfp } {""} } */
 int a;
diff --git a/gcc/testsuite/gcc.target/arm/pr79239.c b/gcc/testsuite/gcc.target/arm/pr79239.c
index d1f1b28..5b40e2e 100644
--- a/gcc/testsuite/gcc.target/arm/pr79239.c
+++ b/gcc/testsuite/gcc.target/arm/pr79239.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_fp_ok }  */
 /* { dg-add-options arm_fp } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr81863.c b/gcc/testsuite/gcc.target/arm/pr81863.c
index 225a0c5..85bfab1 100644
--- a/gcc/testsuite/gcc.target/arm/pr81863.c
+++ b/gcc/testsuite/gcc.target/arm/pr81863.c
@@ -1,6 +1,7 @@ 
 /* testsuite/gcc.target/arm/pr48183.c */
 /* { dg-do compile } */
 /* { dg-skip-if "-mslow-flash-data and -mword-relocations incompatible" { *-*-* } { "-mslow-flash-data" } } */
+/* { dg-skip-if "-mpure-code and -mword-relocations incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-O2 -mword-relocations -march=armv7-a -marm" } */
 /* { dg-final { scan-assembler-not "\[\\t \]+movw" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pragma_attribute.c b/gcc/testsuite/gcc.target/arm/pragma_attribute.c
index 12afc97..a11a811 100644
--- a/gcc/testsuite/gcc.target/arm/pragma_attribute.c
+++ b/gcc/testsuite/gcc.target/arm/pragma_attribute.c
@@ -1,6 +1,7 @@ 
 /* Test for #prama target macros.  */
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-require-effective-target arm_arm_ok } */
 
 #pragma GCC target ("thumb")
 
diff --git a/gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c b/gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
index c72ea8c..3b4720a 100644
--- a/gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
+++ b/gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
@@ -1,6 +1,7 @@ 
 /* Test that FMA macro is correctly undef.  */
 /* { dg-do compile } */
 /* { dg-skip-if "Default no fma" { *-*-* } { "-mfpu=*vfpv4*" "-mfpu=*armv8"} } */
+/* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_fp_ok } */
 /* { dg-add-options arm_fp } */
 
diff --git a/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c b/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
index 268e9e4..9f089ee 100644
--- a/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
+++ b/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
@@ -1,14 +1,15 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-g -fPIC" } */
 
 void *v;
 void a (void *x) { }
 void b (void) { }
-                       /* line 7.  */
-int                    /* line 8.  */
-main (int argc)        /* line 9.  */
-{                      /* line 10.  */
-  if (argc == 12345)   /* line 11.  */
+                       /* line 8.  */
+int                    /* line 9.  */
+main (int argc)        /* line 10.  */
+{                      /* line 11.  */
+  if (argc == 12345)   /* line 12.  */
     {
       a (v);
       return 1;
@@ -18,12 +19,12 @@  main (int argc)        /* line 9.  */
   return 0;
 }
 
-/* { dg-final { scan-assembler-not "\.loc 1 7 \[0-9\]\+" } } */
 /* { dg-final { scan-assembler-not "\.loc 1 8 \[0-9\]\+" } } */
 /* { dg-final { scan-assembler-not "\.loc 1 9 \[0-9\]\+" } } */
+/* { dg-final { scan-assembler-not "\.loc 1 10 \[0-9\]\+" } } */
 
 /* The loc at the start of the prologue.  */
-/* { dg-final { scan-assembler-times "\.loc 1 10 \[0-9\]\+" 1 } } */
+/* { dg-final { scan-assembler-times "\.loc 1 11 \[0-9\]\+" 1 } } */
 
 /* The loc at the end of the prologue, with the first user line.  */
-/* { dg-final { scan-assembler-times "\.loc 1 11 \[0-9\]\+" 1 } } */
+/* { dg-final { scan-assembler-times "\.loc 1 12 \[0-9\]\+" 1 } } */
diff --git a/gcc/testsuite/gcc.target/arm/thumb-ltu.c b/gcc/testsuite/gcc.target/arm/thumb-ltu.c
index ae4ad5b..5ec321b 100644
--- a/gcc/testsuite/gcc.target/arm/thumb-ltu.c
+++ b/gcc/testsuite/gcc.target/arm/thumb-ltu.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb1_ok } */
 /* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c b/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
index df269fc..6cb14bb 100644
--- a/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
+++ b/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code and -fpic incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb1_ok } */
 /* { dg-options "-mthumb -fpic -mpic-register=9" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c b/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
index 6e9b257..b231466 100644
--- a/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
+++ b/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code and -fpic incompatible" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_thumb1_ok } */
 /* { dg-options "-mthumb -fpic -msingle-pic-base" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/tlscall.c b/gcc/testsuite/gcc.target/arm/tlscall.c
index 5f4d58b..71366ef 100644
--- a/gcc/testsuite/gcc.target/arm/tlscall.c
+++ b/gcc/testsuite/gcc.target/arm/tlscall.c
@@ -3,6 +3,7 @@ 
 /* { dg-do assemble } */
 /* { dg-options "-O2 -fPIC -mtls-dialect=gnu2" } */
 /* { dg-skip-if "FDPIC does not support gnu2 TLS dialect" { arm*-*-uclinuxfdpiceabi } "*" "" } */
+/* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "-mpure-code" } } */
 
 typedef struct _IO_FILE FILE;
 
diff --git a/gcc/testsuite/gcc.target/arm/unsigned-float.c b/gcc/testsuite/gcc.target/arm/unsigned-float.c
index e1cda0c..ad589d9 100644
--- a/gcc/testsuite/gcc.target/arm/unsigned-float.c
+++ b/gcc/testsuite/gcc.target/arm/unsigned-float.c
@@ -1,6 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_fp_ok } */
 /* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-options "-march=armv7-a -O1" } */
 /* { dg-add-options arm_fp } */
 
diff --git a/gcc/testsuite/gcc.target/arm/vrinta-ce.c b/gcc/testsuite/gcc.target/arm/vrinta-ce.c
index 71c5b3b..092d914 100644
--- a/gcc/testsuite/gcc.target/arm/vrinta-ce.c
+++ b/gcc/testsuite/gcc.target/arm/vrinta-ce.c
@@ -1,4 +1,5 @@ 
 /* { dg-do compile } */
+/* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_v8_vfp_ok } */
 /* { dg-options "-O2 -marm -march=armv8-a" } */
 /* { dg-add-options arm_v8_vfp } */