aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2016-02-09 13:56:57 +0100
committerYvan Roux <yvan.roux@linaro.org>2016-02-09 14:37:49 +0100
commita509608c287a60934ef67b2a58dc0caa77e47dff (patch)
tree353a418963fb48afcef81870eae4dab68dd0f5d3 /gcc/testsuite
parentbb60074a075724c6c59acf70c9f4efa4cbdea073 (diff)
Merge branches/gcc-5-branch rev 233233.
Change-Id: If2cd17ed92b705b4b6468ed3da7c1bdc102a2368
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog309
-rw-r--r--gcc/testsuite/c-c++-common/vector-compare-4.c42
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-array15.C29
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/union7.C15
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/parameter-pack-1.C23
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/parameter-pack-2.C21
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/var-templ47.C19
-rw-r--r--gcc/testsuite/g++.dg/pr63995-1.C3
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm.x10
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.x10
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr69447.c26
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr69110.c17
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr69426.c19
-rw-r--r--gcc/testsuite/gcc.dg/pr68513.c125
-rw-r--r--gcc/testsuite/gcc.dg/pr69644.c11
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr69542.c37
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr67755.c25
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr69355.c44
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c2
-rw-r--r--gcc/testsuite/gcc.target/arm/pr69194.c13
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c6
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512dq-vrangeps-1.c6
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512dq-vrangesd-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512dq-vrangess-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2sd64-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss64-1.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-always_inline.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-bndret.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-builtins-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-builtins-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-builtins-3.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-builtins-4.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-const-check-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-const-check-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-hidden-def.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-label-address.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-lifetime-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-narrow-bounds.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-remove-bndint-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-remove-bndint-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strchr.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strlen-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strlen-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strlen-3.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strlen-4.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-strlen-5.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-1.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-10.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-11.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-12.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-13.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-14.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-15.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-16.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-3.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-4.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-5.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-6.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-7.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-8.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/chkp-stropt-9.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr63995-2.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr64805.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr65044.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr65167.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr65183.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr65184.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr68986-1.c11
-rw-r--r--gcc/testsuite/gcc.target/i386/pr68986-2.c13
-rw-r--r--gcc/testsuite/gcc.target/i386/pr68986-3.c13
-rw-r--r--gcc/testsuite/gcc.target/i386/pr69140.c24
-rw-r--r--gcc/testsuite/gcc.target/i386/pr69459.c42
-rw-r--r--gcc/testsuite/gcc.target/i386/pr69551.c23
-rw-r--r--gcc/testsuite/gcc.target/i386/thunk-retbnd.c3
-rw-r--r--gcc/testsuite/gcc.target/ia64/pr60465-gprel64-c37.c10
-rw-r--r--gcc/testsuite/gcc.target/ia64/pr60465-gprel64.c27
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr69548.c11
-rw-r--r--gcc/testsuite/gcc.target/s390/gpr2fprsavecfi.c23
-rw-r--r--gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f9030
-rw-r--r--gcc/testsuite/gfortran.dg/allocatable_scalar_13.f904
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_with_source_14.f032
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_with_source_16.f9026
-rw-r--r--gcc/testsuite/gfortran.dg/coarray_allocate_2.f0826
-rw-r--r--gcc/testsuite/gfortran.dg/coarray_allocate_3.f0828
-rw-r--r--gcc/testsuite/gfortran.dg/coarray_allocate_4.f0843
-rw-r--r--gcc/testsuite/gfortran.dg/common_22.f9024
-rw-r--r--gcc/testsuite/gfortran.dg/common_23.f9010
-rw-r--r--gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90133
-rw-r--r--gcc/testsuite/gfortran.dg/pr68283.f9015
-rw-r--r--gcc/testsuite/gnat.dg/inline12.adb23
104 files changed, 1416 insertions, 127 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7af47eb8dd5..17187f2cce3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,304 @@
+2016-02-04 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2016-02-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/69644
+ * gcc.dg/pr69644.c: New test.
+
+2016-02-03 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/67451
+ PR fortran/69418
+ * gfortran.dg/coarray_allocate_2.f08: New test.
+ * gfortran.dg/coarray_allocate_3.f08: New test.
+ * gfortran.dg/coarray_allocate_4.f08: New test.
+
+2016-02-02 Alan Modra <amodra@gmail.com>
+
+ PR target/69548
+ * gcc.target/powerpc/pr69548.c: New test.
+
+2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from mainline
+ 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
+ PR target/68986
+ * gcc.target/i386/pr68986-1.c: New test.
+ * gcc.target/i386/pr68986-2.c: Likewise.
+ * gcc.target/i386/pr68986-3.c: Likewise.
+
+2016-01-30 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ PR fortran/66707
+ gfortran.dg/common_23.f90: New test.
+
+ Backport from trunk.
+ 2015-08-08 Bud Davis <jmdavis@link.com>
+ Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/59746
+ * gfortran.dg/common_22.f90: New.
+
+2016-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR target/65546
+ * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Correct
+ condition being checked, and disable it when the target supports
+ misaligned loads and stores.
+
+2016-01-29 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/69459
+ * gcc.target/i386/pr69459.c: New test.
+
+2016-01-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/69551
+ * gcc.target/i386/pr69551.c: New test.
+
+2016-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/69542
+ * gcc.dg/torture/pr69542.c: New test.
+
+2016-01-28 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/69355
+ * gcc.dg/tree-ssa/pr69355.c: New test.
+
+2016-01-28 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/62536
+ * gfortran.dg/block_14.f08: New test.
+
+2016-01-27 Marek Polacek <polacek@redhat.com>
+
+ Backport from mainline
+ 2016-01-27 Marek Polacek <polacek@redhat.com>
+
+ PR c/68062
+ * c-c++-common/vector-compare-4.c: New test.
+
+2016-01-27 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/69268
+ * gfortran.dg/allocatable_scalar_13.f90: Fixing counts of malloc/
+ free to fit the actual number of calls.
+ * gfortran.dg/allocate_with_source_16.f90: New test.
+
+2016-01-27 Tom de Vries <tom@codesourcery.com>
+
+ * gcc.dg/autopar/pr69110.c: Fix pass number.
+
+2016-01-26 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/69110
+ * gcc.dg/autopar/pr69110.c: New test.
+
+2016-01-25 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR fortran/61831
+ * gfortran.dg/derived_constructor_comps_6.f90: Add missing } to fix
+ up dg-additional-options.
+
+2016-01-25 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ PR fortran/68283
+ gfortran.dg/pr68283.f90: New test.
+
+2016-01-23 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/69426
+ * gcc.dg/autopar/pr69426.c: New test.
+
+2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ Backport from mainline
+ 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/69403
+ * gcc.c-torture/execute/pr69403.c: New test.
+
+2016-01-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ Backported from mainline
+ 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * gcc.target/s390/gpr2fprsavecfi.c: New test.
+
+2016-01-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ Backport from mainline
+ 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ PR tree-optimization/67781
+ * gcc.c-torture/execute/pr67781.c: New file.
+
+2016-01-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from mainline
+ 2016-01-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR testsuite/69366
+ * g++.dg/pr63995-1.C: Require non-x32 target, instead of,
+ the MPX run-time library, for compile-time MPX test.
+ * gcc.target/i386/chkp-always_inline.c: Likewise.
+ * gcc.target/i386/chkp-bndret.c: Likewise.
+ * gcc.target/i386/chkp-builtins-1.c: Likewise.
+ * gcc.target/i386/chkp-builtins-2.c: Likewise.
+ * gcc.target/i386/chkp-builtins-3.c: Likewise.
+ * gcc.target/i386/chkp-builtins-4.c: Likewise.
+ * gcc.target/i386/chkp-const-check-1.c: Likewise.
+ * gcc.target/i386/chkp-const-check-2.c: Likewise.
+ * gcc.target/i386/chkp-hidden-def.c: Likewise.
+ * gcc.target/i386/chkp-label-address.c: Likewise.
+ * gcc.target/i386/chkp-lifetime-1.c: Likewise.
+ * gcc.target/i386/chkp-narrow-bounds.c: Likewise.
+ * gcc.target/i386/chkp-remove-bndint-1.c: Likewise.
+ * gcc.target/i386/chkp-remove-bndint-2.c: Likewise.
+ * gcc.target/i386/chkp-strchr.c: Likewise.
+ * gcc.target/i386/chkp-strlen-1.c: Likewise.
+ * gcc.target/i386/chkp-strlen-2.c: Likewise.
+ * gcc.target/i386/chkp-strlen-3.c: Likewise.
+ * gcc.target/i386/chkp-strlen-4.c: Likewise.
+ * gcc.target/i386/chkp-strlen-5.c: Likewise.
+ * gcc.target/i386/chkp-stropt-1.c: Likewise.
+ * gcc.target/i386/chkp-stropt-10.c: Likewise.
+ * gcc.target/i386/chkp-stropt-11.c: Likewise.
+ * gcc.target/i386/chkp-stropt-12.c: Likewise.
+ * gcc.target/i386/chkp-stropt-13.c: Likewise.
+ * gcc.target/i386/chkp-stropt-14.c: Likewise.
+ * gcc.target/i386/chkp-stropt-15.c: Likewise.
+ * gcc.target/i386/chkp-stropt-16.c: Likewise.
+ * gcc.target/i386/chkp-stropt-2.c: Likewise.
+ * gcc.target/i386/chkp-stropt-3.c: Likewise.
+ * gcc.target/i386/chkp-stropt-4.c: Likewise.
+ * gcc.target/i386/chkp-stropt-5.c: Likewise.
+ * gcc.target/i386/chkp-stropt-6.c: Likewise.
+ * gcc.target/i386/chkp-stropt-7.c: Likewise.
+ * gcc.target/i386/chkp-stropt-8.c: Likewise.
+ * gcc.target/i386/chkp-stropt-9.c: Likewise.
+ * gcc.target/i386/pr63995-2.c: Likewise.
+ * gcc.target/i386/pr64805.c: Likewise.
+ * gcc.target/i386/pr65044.c: Likewise.
+ * gcc.target/i386/pr65167.c: Likewise.
+ * gcc.target/i386/pr65183.c: Likewise.
+ * gcc.target/i386/pr65184.c: Likewise.
+ * gcc.target/i386/thunk-retbnd.c: Likewise.
+
+2016-01-20 Marek Polacek <polacek@redhat.com>
+
+ PR c/68513
+ * gcc.dg/pr68513.c: New test.
+
+2016-01-19 Sergei Trofimovich <siarheit@google.com>
+
+ Backport from mainline
+ PR other/60465
+ * gcc.target/ia64/pr60465-gprel64.c: New test.
+ * gcc.target/ia64/pr60465-gprel64-c37.c: New test.
+
+2016-01-19 Jeff Law <law@redhat.com>
+
+ Backport from mainline
+ 2016-01-12 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/67755
+ * gcc.dg/tree-ssa/pr67755.c: New test.
+
+2016-01-19 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/68820
+ * gcc.c-torture/execute/builtins/memops-asm.x: New file.
+ * gcc.c-torture/execute/builtins/strstr-asm.x: Ditto.
+ * gcc.c-torture/execute/builtins/strstr-asm.c: Remove dg-options.
+
+2016-01-19 Marek Polacek <polacek@redhat.com>
+
+ Backported from mainline
+ 2016-01-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/68965
+ * g++.dg/cpp1y/parameter-pack-1.C: New test.
+ * g++.dg/cpp1y/parameter-pack-2.C: New test.
+
+2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ Backport from mainline
+ 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/69135
+ * gcc.target/arm/pr69135_1.c: New test.
+
+2016-01-18 Alexander Fomin <alexander.fomin@intel.com>
+
+ Backport from mainline
+ 2015-10-09 Alexander Fomin <alexander.fomin@intel.com>
+
+ PR target/67895
+ * gcc.target/i386/avx512dq-vrangepd-1.c: Adjust.
+ * gcc.target/i386/avx512dq-vrangeps-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vrangesd-1.c: Likewise.
+ * gcc.target/i386/avx512dq-vrangess-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsi2sd64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsi2ss-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtsi2ss64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtusi2ss-1.c: Likewise.
+ * gcc.target/i386/avx512f-vcvtusi2ss64-1.c: Likewise.
+
+2016-01-18 Uros Bizjak <ubizjak@gmail.com>
+
+ Backport from mainline
+ 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/69140
+ * gcc.target/i386/pr69140.c: New test
+
+2016-01-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/inline12.adb: New test.
+
+2016-01-17 Mikael Morin <mikael@gcc.gnu.org>
+
+ Backport from trunk.
+ PR fortran/61831
+ * gfortran.dg/derived_constructor_components_6.f90: New file.
+ * gfortran.dg/allocate_with_source_14.f03: Change count of
+ __builtin_malloc from 21 to 23.
+
+2016-01-17 Paul Thomas <pault@gcc.gnu.org>
+
+ Backport from trunk.
+ PR fortran/66082
+ * gfortran.dg/alloc_comp_auto_array_3.f90: New file. Count of
+ __builtin_malloc increased from 3 to 4, relative to trunk.
+
+2016-01-17 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ Backport from mainline
+ 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
+ Jim Wilson <jim.wilson@linaro.org>
+
+ PR target/69194
+ * gcc.target/arm/pr69194.c: New test.
+
+2016-01-15 Alexander Fomin <alexander.fomin@intel.com>
+
+ Backport from mainline
+ 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
+
+ PR target/69228
+ * gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust.
+ * gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Likewise.
+ * gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Likewise.
+
2016-01-12 James Greenhalgh <james.greenhalgh@arm.com>
Backport from mainline r222186.
@@ -564,7 +865,7 @@
2015-11-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/68106
- * testsuite/gcc.target/aarch64/pr68106.c: New.
+ * gcc.target/aarch64/pr68106.c: New.
2015-01-25 Paul Thomas <pault@gcc.gnu.org>
@@ -684,8 +985,8 @@
Backport from mainline
2015-10-09 Martin Jambor <mjambor@suse.cz>
- * gcc.dg/ipa/ipa-sra-10.c: New test.
- * gcc.dg/torture/pr67794.c: Likewise.
+ * gcc.dg/ipa/ipa-sra-10.c: New test.
+ * gcc.dg/torture/pr67794.c: Likewise.
2015-10-22 Paul Thomas <pault@gcc.gnu.org>
@@ -3806,7 +4107,7 @@
2015-03-05 Martin Sebor <msebor@redhat.com>
- * PR testsuite/63175
+ PR testsuite/63175
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c (main1): Move
checking of results into main to prevent it from getting optimized
away.
diff --git a/gcc/testsuite/c-c++-common/vector-compare-4.c b/gcc/testsuite/c-c++-common/vector-compare-4.c
new file mode 100644
index 00000000000..b44f474f395
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/vector-compare-4.c
@@ -0,0 +1,42 @@
+/* PR c/68062 */
+/* { dg-do compile } */
+/* { dg-options "-Wsign-compare" } */
+
+typedef signed char __attribute__ ((vector_size (4))) v4qi;
+typedef unsigned char __attribute__ ((vector_size (4))) uv4qi;
+typedef signed int __attribute__ ((vector_size (4 * __SIZEOF_INT__))) v4si;
+typedef unsigned int __attribute__ ((vector_size (4 * __SIZEOF_INT__))) uv4si;
+
+v4qi
+fn1 (void)
+{
+ v4qi a = { 1, 2, 3, 4 };
+ uv4qi b = { 4, 3, 2, 1 };
+ v4qi v = { 0, 0, 0, 0 };
+
+ v += (a == b); /* { dg-warning "comparison between types" } */
+ v += (a != b); /* { dg-warning "comparison between types" } */
+ v += (a >= b); /* { dg-warning "comparison between types" } */
+ v += (a <= b); /* { dg-warning "comparison between types" } */
+ v += (a > b); /* { dg-warning "comparison between types" } */
+ v += (a < b); /* { dg-warning "comparison between types" } */
+
+ return v;
+}
+
+v4si
+fn2 (void)
+{
+ v4si a = { 1, 2, 3, 4 };
+ uv4si b = { 4, 3, 2, 1 };
+ v4si v = { 0, 0, 0, 0 };
+
+ v += (a == b); /* { dg-warning "comparison between types" } */
+ v += (a != b); /* { dg-warning "comparison between types" } */
+ v += (a >= b); /* { dg-warning "comparison between types" } */
+ v += (a <= b); /* { dg-warning "comparison between types" } */
+ v += (a > b); /* { dg-warning "comparison between types" } */
+ v += (a < b); /* { dg-warning "comparison between types" } */
+
+ return v;
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-array15.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-array15.C
new file mode 100644
index 00000000000..a59e6f5df14
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-array15.C
@@ -0,0 +1,29 @@
+// PR c++/68949
+// { dg-do run { target c++11 } }
+
+struct Sub {
+ int i;
+
+ constexpr Sub() : i(-1) {} // remove constexpr and it works as expected
+ Sub(Sub&& rhs); // remove this constructor and it works as epxected.
+};
+
+// v-- move this inline and it works as expected
+// v-- remove ': Sub()' and it works as expected
+Sub::Sub(Sub&& rhs) : Sub() { int tmp = i; i = rhs.i; rhs.i = tmp; }
+
+struct Class {
+ // v-- remove '[1]' and it works as expected
+ // v-- add '= {}' and it works as expected
+ Sub s[1];
+
+ // v-- add ': s{}' and it works as expected
+ // v-- removing this constructor makes it work as expected
+ Class() {}
+};
+
+int main() {
+ Class c;
+ if (c.s[0].i != -1)
+ __builtin_abort();
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/union7.C b/gcc/testsuite/g++.dg/cpp0x/union7.C
new file mode 100644
index 00000000000..c42d2177ab0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/union7.C
@@ -0,0 +1,15 @@
+// PR c++/69131
+// { dg-do compile { target c++11 } }
+
+struct X
+{
+ ~X() {}
+};
+
+union U
+{
+ X x;
+ ~U() {}
+};
+
+U u;
diff --git a/gcc/testsuite/g++.dg/cpp1y/parameter-pack-1.C b/gcc/testsuite/g++.dg/cpp1y/parameter-pack-1.C
new file mode 100644
index 00000000000..27a6bf9dedb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/parameter-pack-1.C
@@ -0,0 +1,23 @@
+// PR c++/68965
+// { dg-do compile { target c++14 } }
+// { dg-options "-Wall -Wextra" }
+
+auto count = [](auto&&... xs)
+{
+ return sizeof...(xs);
+};
+
+struct count_struct
+{
+ template<typename... Ts>
+ auto operator()(Ts&&... xs)
+ {
+ return sizeof...(xs);
+ }
+};
+
+int main()
+{
+ count(1,2,3);
+ count_struct{}(1,2,3);
+}
diff --git a/gcc/testsuite/g++.dg/cpp1y/parameter-pack-2.C b/gcc/testsuite/g++.dg/cpp1y/parameter-pack-2.C
new file mode 100644
index 00000000000..95208758a6b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/parameter-pack-2.C
@@ -0,0 +1,21 @@
+// PR c++/68965
+// { dg-do compile { target c++14 } }
+// { dg-options "-Wall -Wextra" }
+
+auto count = [](auto&&... xs) // { dg-warning "unused parameter" }
+{
+};
+
+struct count_struct
+{
+ template<typename... Ts>
+ auto operator()(Ts&&... xs) // { dg-warning "unused parameter" }
+ {
+ }
+};
+
+int main()
+{
+ count(1,2,3);
+ count_struct{}(1,2,3);
+}
diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ47.C b/gcc/testsuite/g++.dg/cpp1y/var-templ47.C
new file mode 100644
index 00000000000..a40ec575be4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/var-templ47.C
@@ -0,0 +1,19 @@
+// PR c++/69009
+// { dg-do compile { target c++14 } }
+
+using _uchar = char;
+using _size_t = decltype(sizeof(_uchar));
+using size_t = _size_t;
+template <class T, T> struct integral_constant;
+template <bool b> using bool_constant = integral_constant<bool, b>;
+template <class> constexpr auto tuple_size_v = 0;
+template <class T> auto const tuple_size_v<T const volatile> = tuple_size_v<T>;
+template <class T>
+using tuple_size = integral_constant<size_t, tuple_size_v<T>>;
+template <typename Base, typename Deriv>
+using is_base_of = bool_constant<__is_base_of(Base, Deriv)>;
+template <class T, size_t N> void test() {
+ is_base_of<integral_constant<size_t, N>, tuple_size<T>> value(
+ is_base_of<integral_constant<size_t, N>, tuple_size<const volatile T>>);
+}
+void foo() { test<int, 0>; }
diff --git a/gcc/testsuite/g++.dg/pr63995-1.C b/gcc/testsuite/g++.dg/pr63995-1.C
index 82e76063ef1..41a1c01153b 100644
--- a/gcc/testsuite/g++.dg/pr63995-1.C
+++ b/gcc/testsuite/g++.dg/pr63995-1.C
@@ -1,5 +1,4 @@
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && { ! x32 } } } } */
/* { dg-options "-O2 -g -fcheck-pointer-bounds -mmpx" } */
int test1 (int i)
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm.x
new file mode 100644
index 00000000000..031049dc812
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm.x
@@ -0,0 +1,10 @@
+# Different translation units may have different user name overrides
+# and we do not preserve enough context to known which one we want.
+
+set torture_eval_before_compile {
+ if {[string match {*-flto*} "$option"]} {
+ continue
+ }
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.c b/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.c
index 41678412b63..3c3e45dfa5d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.c
@@ -2,7 +2,6 @@
Ensure all expected transformations of builtin strstr occur and
perform correctly in presence of redirect. */
-/* { dg-options "-ffat-lto-objects" } */
#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname)
#define ASMNAME2(prefix, cname) STRING (prefix) cname
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.x
new file mode 100644
index 00000000000..031049dc812
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm.x
@@ -0,0 +1,10 @@
+# Different translation units may have different user name overrides
+# and we do not preserve enough context to known which one we want.
+
+set torture_eval_before_compile {
+ if {[string match {*-flto*} "$option"]} {
+ continue
+ }
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr69447.c b/gcc/testsuite/gcc.c-torture/execute/pr69447.c
new file mode 100644
index 00000000000..b6d8591f6d6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr69447.c
@@ -0,0 +1,26 @@
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+typedef unsigned long long u64;
+
+u64 __attribute__((noinline, noclone))
+foo(u8 u8_0, u16 u16_0, u64 u64_0, u8 u8_1, u16 u16_1, u64 u64_1, u64 u64_2, u8 u8_3, u64 u64_3)
+{
+ u64_1 *= 0x7730;
+ u64_3 *= u64_3;
+ u16_1 |= u64_3;
+ u64_3 -= 2;
+ u8_3 /= u64_2;
+ u8_0 |= 3;
+ u64_3 %= u8_0;
+ u8_0 -= 1;
+ return u8_0 + u16_0 + u64_0 + u8_1 + u16_1 + u64_1 + u8_3 + u64_3;
+}
+
+int main()
+{
+ unsigned x = foo(1, 1, 1, 1, 1, 1, 1, 1, 1);
+ if (x != 0x7737)
+ __builtin_abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/autopar/pr69110.c b/gcc/testsuite/gcc.dg/autopar/pr69110.c
new file mode 100644
index 00000000000..438281dd990
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/autopar/pr69110.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -ftree-parallelize-loops=2 -fno-tree-loop-im -fdump-tree-parloops-details" } */
+
+#define N 1000
+
+unsigned int i = 0;
+
+void
+foo (void)
+{
+ unsigned int z;
+ for (z = 0; z < N; ++z)
+ ++i;
+}
+
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "FAILED: data dependencies exist across iterations" 1 "parloops" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr69426.c b/gcc/testsuite/gcc.dg/autopar/pr69426.c
new file mode 100644
index 00000000000..e91421cefed
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/autopar/pr69426.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2" } */
+
+int iq;
+
+void
+mr(void)
+{
+ unsigned int i8;
+
+ for (i8 = 0; i8 != 1; i8 += 3) {
+ void *f0[] = { f0 };
+ int hv;
+
+ for (; hv < 1; ++hv)
+ iq = 0;
+ }
+ ++iq;
+}
diff --git a/gcc/testsuite/gcc.dg/pr68513.c b/gcc/testsuite/gcc.dg/pr68513.c
new file mode 100644
index 00000000000..86f878d5d73
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr68513.c
@@ -0,0 +1,125 @@
+/* PR c/68513 */
+/* { dg-do compile } */
+/* { dg-options "-funsafe-math-optimizations -fno-math-errno -O -Wno-div-by-zero" } */
+
+int i;
+unsigned u;
+volatile int *e;
+
+#define E (i ? *e : 0)
+
+/* Can't trigger some of them because operand_equal_p will return false
+ for side-effects. */
+
+/* (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x */
+int
+fn1 (void)
+{
+ int r = 0;
+ r += (short) (E & ~u | i & u);
+ r += -(short) (E & ~u | i & u);
+ r += (short) -(E & ~u | i & u);
+ return r;
+}
+
+/* sqrt(x) < y is x >= 0 && x != +Inf, when y is large. */
+double
+fn2 (void)
+{
+ double r;
+ r = __builtin_sqrt (E) < __builtin_inf ();
+ return r;
+}
+
+/* sqrt(x) < c is the same as x >= 0 && x < c*c. */
+double
+fn3 (void)
+{
+ double r;
+ r = __builtin_sqrt (E) < 1.3;
+ return r;
+}
+
+/* copysign(x,y)*copysign(x,y) -> x*x. */
+double
+fn4 (double y, double x)
+{
+ return __builtin_copysign (E, y) * __builtin_copysign (E, y);
+}
+
+/* x <= +Inf is the same as x == x, i.e. !isnan(x). */
+int
+fn5 (void)
+{
+ return E <= __builtin_inf ();
+}
+
+/* Fold (A & ~B) - (A & B) into (A ^ B) - B. */
+int
+fn6 (void)
+{
+ return (i & ~E) - (i & E);
+}
+
+/* Fold (A & B) - (A & ~B) into B - (A ^ B). */
+int
+fn7 (void)
+{
+ return (i & E) - (i & ~E);
+}
+
+/* x + (x & 1) -> (x + 1) & ~1 */
+int
+fn8 (void)
+{
+ return E + (E & 1);
+}
+
+/* Simplify comparison of something with itself. */
+int
+fn9 (void)
+{
+ return E <= E | E >= E;
+}
+
+/* Fold (A & ~B) - (A & B) into (A ^ B) - B. */
+int
+fn10 (void)
+{
+ return (i & ~E) - (i & E);
+}
+
+/* abs(x)*abs(x) -> x*x. Should be valid for all types. */
+int
+fn11 (void)
+{
+ return __builtin_abs (E) * __builtin_abs (E);
+}
+
+/* (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2) */
+int
+fn12 (void)
+{
+ return (E | 11) & 12;
+}
+
+/* fold_range_test */
+int
+fn13 (const char *s)
+{
+ return s[E] != '\0' && s[E] != '/';
+}
+
+/* fold_comparison */
+int
+fn14 (void)
+{
+ return (!!i ? : (u *= E / 0)) >= (u = E);
+}
+
+/* fold_mult_zconjz */
+_Complex int
+fn15 (_Complex volatile int *z)
+{
+ return *z * ~*z;
+}
diff --git a/gcc/testsuite/gcc.dg/pr69644.c b/gcc/testsuite/gcc.dg/pr69644.c
new file mode 100644
index 00000000000..c60b1917029
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr69644.c
@@ -0,0 +1,11 @@
+/* PR target/69644 */
+/* { dg-do compile } */
+
+int
+main ()
+{
+ unsigned short x = 0x8000;
+ if (!__sync_bool_compare_and_swap (&x, 0x8000, 0) || x)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr69542.c b/gcc/testsuite/gcc.dg/torture/pr69542.c
new file mode 100644
index 00000000000..ced5c326ac8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr69542.c
@@ -0,0 +1,37 @@
+/* PR middle-end/69542 */
+/* { dg-do compile } */
+/* { dg-additional-options "-fcompare-debug" } */
+
+typedef struct A *B;
+extern int *a[];
+struct C { B b; struct D *d; };
+struct A { struct { struct C e[1]; long long f[1]; } u; };
+struct D { int g; B h[100]; };
+int b, c, e, g;
+B d, f;
+void foo (void) __attribute__ ((__noreturn__));
+int bar (void)
+{
+ int i = 0;
+ do
+ {
+ if ('E' && a[e][0] != 'V')
+ foo ();
+ struct D *k = d->u.e[0].d;
+ B x = k->h[i], o = f->u.e[0].b;
+ if (b)
+ return 0;
+ if (a[g][0] != 'E' && a[g][0] != 'V')
+ foo ();
+ struct D *n = o->u.e[0].d;
+ int r = x->u.f[0];
+ (void) r;
+ if (c)
+ foo ();
+ B y = n->h[x->u.f[0]];
+ if (i != y->u.f[0])
+ return 0;
+ i++;
+ }
+ while (1);
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr67755.c b/gcc/testsuite/gcc.dg/tree-ssa/pr67755.c
new file mode 100644
index 00000000000..64ffd0b349b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr67755.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-dom2-details-blocks" } */
+/* We want to verify no outgoing edge from a conditional
+ has a probability of 100%. */
+/* { dg-final { scan-tree-dump-not "succ:\[ \]+. .100.0%. .\(TRUE|FALSE\)_VALUE" "dom2"} } */
+
+
+void (*zend_block_interruptions) (void);
+
+int * _zend_mm_alloc_int (int * heap, long int size)
+{
+ int *best_fit;
+ long int true_size = (size < 15 ? 32 : size);
+
+ if (zend_block_interruptions)
+ zend_block_interruptions ();
+
+ if (__builtin_expect ((true_size < 543), 1))
+ best_fit = heap + 2;
+ else
+ best_fit = heap;
+
+ return best_fit;
+}
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr69355.c b/gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
new file mode 100644
index 00000000000..f515c211c99
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr69355.c
@@ -0,0 +1,44 @@
+/* { dg-do run } */
+/* { dg-options "-O -fno-strict-aliasing" } */
+
+struct S
+{
+ void *a;
+ long double b;
+};
+
+struct Z
+{
+ long long l;
+ short s;
+} __attribute__((packed));
+
+struct S __attribute__((noclone, noinline))
+foo (void *v, struct Z *z)
+{
+ struct S t;
+ t.a = v;
+ *(struct Z *) &t.b = *z;
+ return t;
+}
+
+struct Z gz;
+
+int
+main (int argc, char **argv)
+{
+ struct S s;
+
+ if (sizeof (long double) < sizeof (struct Z))
+ return 0;
+
+ gz.l = 0xbeef;
+ gz.s = 0xab;
+
+ s = foo ((void *) 0, &gz);
+
+ if ((((struct Z *) &s.b)->l != gz.l)
+ || (((struct Z *) &s.b)->s != gz.s))
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
index ff67ff28130..72b4930d9bb 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
@@ -46,5 +46,5 @@ int main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorization not profitable" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 1 "vect" { target { ! vect_hw_misalign } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_hw_misalign } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/pr69194.c b/gcc/testsuite/gcc.target/arm/pr69194.c
new file mode 100644
index 00000000000..477d5f92c8e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr69194.c
@@ -0,0 +1,13 @@
+/* PR target/69194 */
+/* { dg-do-compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_neon } */
+
+typedef __simd128_float32_t float32x4_t;
+
+float32x4_t
+sub (float32x4_t a, float32x4_t b, float32x4_t c, float32x4_t d, float32x4_t e)
+{
+ return __builtin_neon_vld1v4sf((const float *)&e);
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c
index 034c2337e9e..7e5a9cb1393 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c
@@ -1,15 +1,15 @@
/* { dg-do compile } */
/* { dg-options "-mavx512dq -mavx512vl -O2" } */
-/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangepd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vrangeps-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vrangeps-1.c
index 47f974b02f7..a376dc13e72 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-vrangeps-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-vrangeps-1.c
@@ -3,15 +3,15 @@
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangeps\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vrangesd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vrangesd-1.c
index 6f320c0ef89..4f7d6352da4 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-vrangesd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-vrangesd-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mavx512dq -O2" } */
/* { dg-final { scan-assembler-times "vrangesd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangesd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangesd\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vrangess-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vrangess-1.c
index 8be003238aa..b0ed86d59ad 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-vrangess-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-vrangess-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mavx512dq -O2" } */
/* { dg-final { scan-assembler-times "vrangess\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrangess\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vrangess\[ \\t\]+\[^\$\n\]*\\$\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c
index cceaf599043..7e8bcc0f73e 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c
@@ -1,6 +1,6 @@
/* { dg-do compile { target { ! { ia32 } } } } */
/* { dg-options "-mavx512f -O2" } */
-/* { dg-final { scan-assembler-times "vcvtsi2sdq\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtsi2sdq\[ \\t\]+\[^%\n\]*%r\[^\{\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c
index 832f636bf39..179ab64a726 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512f -O2" } */
-/* { dg-final { scan-assembler-times "vcvtsi2ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtsi2ss\[ \\t\]+\[^%\n\]*%e\[^\{\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c
index 061924069c9..114a687707b 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c
@@ -1,6 +1,6 @@
/* { dg-do compile { target { ! { ia32 } } } } */
/* { dg-options "-mavx512f -O2" } */
-/* { dg-final { scan-assembler-times "vcvtsi2ssq\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtsi2ssq\[ \\t\]+\[^%\n\]*%r\[^\{\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2sd64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2sd64-1.c
index 4eea866fe4b..fcdfcacbeca 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2sd64-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2sd64-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile { target { ! { ia32 } } } } */
/* { dg-options "-mavx512f -O2" } */
/* { dg-final { scan-assembler-times "vcvtusi2sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtusi2sd\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtusi2sd\[ \\t\]+\[^%\n\]*%r\[^\{\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss-1.c
index 3a621735cd2..cbd5d3f0d5e 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-mavx512f -O2" } */
/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^%\n\]*%e\[^\{\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss64-1.c
index 11f0969fbbf..6b9368f8704 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss64-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtusi2ss64-1.c
@@ -1,7 +1,7 @@
/* { dg-do compile { target { ! { ia32 } } } } */
/* { dg-options "-mavx512f -O2" } */
/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtusi2ss\[ \\t\]+\[^%\n\]*%r\[^\{\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
index ace50de4fe2..5a153ea3d4c 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
volatile __m256i idx;
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
index d648b2ee95c..d1173a2b7f3 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
index d32345c5a9b..67529e7be83 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
index 44c908fe4f0..9ff580fea4d 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
index ff383380369..73a029d10a1 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
index 8ec3388cd77..439bc853485 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
index 2c4eb2a5b47..3ae16cd2e19 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
index 34bcb654949..35cd7d3b5d3 100644
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-mavx512pf -O2" } */
-/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
#include <immintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/chkp-always_inline.c b/gcc/testsuite/gcc.target/i386/chkp-always_inline.c
index 26e80fe1975..c10d1310e0e 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-always_inline.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-always_inline.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -Wno-attributes" } */
static __attribute__((always_inline)) int f1 (int *p)
diff --git a/gcc/testsuite/gcc.target/i386/chkp-bndret.c b/gcc/testsuite/gcc.target/i386/chkp-bndret.c
index e1f5cea5c17..d84ea70dcda 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-bndret.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-bndret.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump-not "bndret" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-builtins-1.c b/gcc/testsuite/gcc.target/i386/chkp-builtins-1.c
index 2acc087e62a..99cfa82681c 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-builtins-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-builtins-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump-not "bnd_init_ptr_bounds" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-builtins-2.c b/gcc/testsuite/gcc.target/i386/chkp-builtins-2.c
index dc62238c5bd..6da8d0a83ff 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-builtins-2.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-builtins-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump-not "bnd_copy_ptr_bounds" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-builtins-3.c b/gcc/testsuite/gcc.target/i386/chkp-builtins-3.c
index 055f0ed07d9..ae30534c6da 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-builtins-3.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-builtins-3.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump-not "bnd_set_ptr_bounds" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-builtins-4.c b/gcc/testsuite/gcc.target/i386/chkp-builtins-4.c
index 434df78ac34..d408a490b13 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-builtins-4.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-builtins-4.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump-not "bnd_null_ptr_bounds" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-const-check-1.c b/gcc/testsuite/gcc.target/i386/chkp-const-check-1.c
index 4170886584f..6e6d067fb50 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-const-check-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-const-check-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt" } */
/* { dg-final { scan-tree-dump-not "bndcl" "chkpopt" } } */
/* { dg-final { scan-tree-dump-not "bndcu" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-const-check-2.c b/gcc/testsuite/gcc.target/i386/chkp-const-check-2.c
index 18e497a0b92..683c21ddbe7 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-const-check-2.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-const-check-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -Wchkp" } */
int test (int *p)
diff --git a/gcc/testsuite/gcc.target/i386/chkp-hidden-def.c b/gcc/testsuite/gcc.target/i386/chkp-hidden-def.c
index 8d2b2288db2..ca7e9d2e5ce 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-hidden-def.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-hidden-def.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */
/* { dg-final { scan-assembler-not "test.chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-label-address.c b/gcc/testsuite/gcc.target/i386/chkp-label-address.c
index 05963e2e6ed..979c33e93e3 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-label-address.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-label-address.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -Wchkp" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/i386/chkp-lifetime-1.c b/gcc/testsuite/gcc.target/i386/chkp-lifetime-1.c
index 5ceaa8e4621..70b8b38dc28 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-lifetime-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-lifetime-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt-details" } */
/* { dg-final { scan-tree-dump "Moving creation of \[^ \]+ down to its use" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-narrow-bounds.c b/gcc/testsuite/gcc.target/i386/chkp-narrow-bounds.c
index 60e4ed2d602..ab1b122479a 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-narrow-bounds.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-narrow-bounds.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkp" } */
/* { dg-final { scan-tree-dump "bndcl" "chkp" } } */
/* { dg-final { scan-tree-dump "bndcu" "chkp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-1.c b/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-1.c
index 7a87926a9c0..7c0f13f8ccf 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-not "bndint" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-2.c b/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-2.c
index 942f555b3a1..413941abcc2 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-2.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-remove-bndint-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-optimized -Wchkp" } */
/* { dg-final { scan-tree-dump-not "bndint" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strchr.c b/gcc/testsuite/gcc.target/i386/chkp-strchr.c
index 94a5eaab692..01ee619dfd9 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strchr.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strchr.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */
#include "string.h"
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strlen-1.c b/gcc/testsuite/gcc.target/i386/chkp-strlen-1.c
index 01a7b397e6a..de6279f1dfa 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strlen-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strlen-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-strlen" } */
/* { dg-final { scan-tree-dump "memcpy.chkp" "strlen" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strlen-2.c b/gcc/testsuite/gcc.target/i386/chkp-strlen-2.c
index c20ad8f099d..9f584efee0a 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strlen-2.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strlen-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target stpcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-strlen" } */
/* { dg-final { scan-tree-dump-not "strlen" "strlen" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strlen-3.c b/gcc/testsuite/gcc.target/i386/chkp-strlen-3.c
index c8e9a7c6699..311c9a042e0 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strlen-3.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strlen-3.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-strlen" } */
/* { dg-final { scan-tree-dump-times "strlen" 1 "strlen" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strlen-4.c b/gcc/testsuite/gcc.target/i386/chkp-strlen-4.c
index 62166d0d875..794c8a860da 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strlen-4.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strlen-4.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target mempcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-strlen -D_GNU_SOURCE" } */
/* { dg-final { scan-tree-dump-times "strlen" 1 "strlen" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-strlen-5.c b/gcc/testsuite/gcc.target/i386/chkp-strlen-5.c
index 66e9a63a0c4..e44096cd429 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-strlen-5.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-strlen-5.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-strlen" } */
/* { dg-final { scan-tree-dump-times "strlen" 2 "strlen" } } */
/* { dg-final { scan-tree-dump "memcpy" "strlen" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-1.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-1.c
index 49e62f4fc22..18aa2819cdf 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-1.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-1.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions" } */
/* { dg-final { scan-tree-dump "memcpy_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-10.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-10.c
index b8454df956b..26e9f13a190 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-10.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-10.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump-not "memset_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-11.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-11.c
index 13b6e02e1fb..e84963f11f7 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-11.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-11.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump-not "memmove_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-12.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-12.c
index 2f1873044bf..898e7768b30 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-12.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-12.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target mempcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions -D_GNU_SOURCE" } */
/* { dg-final { scan-tree-dump-not "mempcpy_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-13.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-13.c
index 609d162d026..3b926b11f83 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-13.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-13.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memcpy_nobnd_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-14.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-14.c
index 3c876178a7e..a8d000ba1fa 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-14.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-14.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memset_nobnd_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-15.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-15.c
index ffe48f65a7d..7c6065657c0 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-15.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-15.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memmove_nobnd_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-16.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-16.c
index d4336be1445..891adb4f293 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-16.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-16.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target mempcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions -fchkp-use-fast-string-functions -D_GNU_SOURCE" } */
/* { dg-final { scan-tree-dump "mempcpy_nobnd_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-2.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-2.c
index 0187411edaf..cac0feaecbb 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-2.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions" } */
/* { dg-final { scan-tree-dump "memset_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-3.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-3.c
index a8da83b5ec4..72ff3869f7b 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-3.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-3.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions" } */
/* { dg-final { scan-tree-dump "memmove_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-4.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-4.c
index a68d8fb0e40..3faa58b0aea 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-4.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-4.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target mempcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-nochk-string-functions -D_GNU_SOURCE" } */
/* { dg-final { scan-tree-dump "mempcpy_nochk" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-5.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-5.c
index b449801b4a9..02ad9ccc496 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-5.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-5.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memcpy_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-6.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-6.c
index ffb34b6d92e..6db5d83a0bc 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-6.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-6.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memset_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-7.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-7.c
index ddaa6234d21..761e6263d86 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-7.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-7.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump "memmove_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-8.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-8.c
index 67c34e05e60..01bff6930a3 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-8.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-8.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-require-effective-target mempcpy } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions -D_GNU_SOURCE" } */
/* { dg-final { scan-tree-dump "mempcpy_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/chkp-stropt-9.c b/gcc/testsuite/gcc.target/i386/chkp-stropt-9.c
index 3b14b031ba1..b79d09633dd 100644
--- a/gcc/testsuite/gcc.target/i386/chkp-stropt-9.c
+++ b/gcc/testsuite/gcc.target/i386/chkp-stropt-9.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2 -fdump-tree-chkpopt -fchkp-use-fast-string-functions" } */
/* { dg-final { scan-tree-dump-not "memcpy_nobnd" "chkpopt" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr63995-2.c b/gcc/testsuite/gcc.target/i386/pr63995-2.c
index 7c22e625a8d..89b429e7f55 100644
--- a/gcc/testsuite/gcc.target/i386/pr63995-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr63995-2.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-O2 -g -fcheck-pointer-bounds -mmpx -fcompare-debug" } */
struct ts
diff --git a/gcc/testsuite/gcc.target/i386/pr64805.c b/gcc/testsuite/gcc.target/i386/pr64805.c
index 8ba0a972208..3c8d6668dfa 100644
--- a/gcc/testsuite/gcc.target/i386/pr64805.c
+++ b/gcc/testsuite/gcc.target/i386/pr64805.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.target/i386/pr65044.c b/gcc/testsuite/gcc.target/i386/pr65044.c
index 4f318d62f88..3b129862aa9 100644
--- a/gcc/testsuite/gcc.target/i386/pr65044.c
+++ b/gcc/testsuite/gcc.target/i386/pr65044.c
@@ -1,6 +1,5 @@
/* { dg-error "-fcheck-pointer-bounds is not supported with Address Sanitizer" } */
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fsanitize=address" } */
extern int x[];
diff --git a/gcc/testsuite/gcc.target/i386/pr65167.c b/gcc/testsuite/gcc.target/i386/pr65167.c
index 35f3d6bc884..64cc7aef520 100644
--- a/gcc/testsuite/gcc.target/i386/pr65167.c
+++ b/gcc/testsuite/gcc.target/i386/pr65167.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-O -fschedule-insns -fcheck-pointer-bounds -mmpx" } */
void bar(int *a, int *b, int *c, int *d, int *e, int *f);
diff --git a/gcc/testsuite/gcc.target/i386/pr65183.c b/gcc/testsuite/gcc.target/i386/pr65183.c
index 069a543af36..4d62267fc0d 100644
--- a/gcc/testsuite/gcc.target/i386/pr65183.c
+++ b/gcc/testsuite/gcc.target/i386/pr65183.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-O -fcheck-pointer-bounds -fchkp-use-nochk-string-functions -mmpx" } */
extern void bar(void *);
diff --git a/gcc/testsuite/gcc.target/i386/pr65184.c b/gcc/testsuite/gcc.target/i386/pr65184.c
index 0355f29a0f2..e12b8a922f1 100644
--- a/gcc/testsuite/gcc.target/i386/pr65184.c
+++ b/gcc/testsuite/gcc.target/i386/pr65184.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-O2 -mabi=ms -fcheck-pointer-bounds -mmpx" } */
void
diff --git a/gcc/testsuite/gcc.target/i386/pr68986-1.c b/gcc/testsuite/gcc.target/i386/pr68986-1.c
new file mode 100644
index 00000000000..998f34f05b4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr68986-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-fPIC -mno-accumulate-outgoing-args -mpreferred-stack-boundary=5 -mincoming-stack-boundary=4" } */
+
+extern __thread int msgdata;
+int
+foo ()
+{
+ return msgdata;
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr68986-2.c b/gcc/testsuite/gcc.target/i386/pr68986-2.c
new file mode 100644
index 00000000000..c3a366c1958
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr68986-2.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target ia32 } } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-fPIC -mno-accumulate-outgoing-args -mpreferred-stack-boundary=2" } */
+
+extern __thread int msgdata;
+int
+foo ()
+{
+ return msgdata;
+}
+
+/* { dg-final { scan-assembler "andl\[\\t \]*\\$-16,\[\\t \]*%esp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr68986-3.c b/gcc/testsuite/gcc.target/i386/pr68986-3.c
new file mode 100644
index 00000000000..5744cf222ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr68986-3.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target tls_native } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-fPIC -mno-sse -mpreferred-stack-boundary=3 -mincoming-stack-boundary=3" } */
+
+extern __thread int msgdata;
+int
+foo ()
+{
+ return msgdata;
+}
+
+/* { dg-final { scan-assembler "and\[lq\]\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr69140.c b/gcc/testsuite/gcc.target/i386/pr69140.c
new file mode 100644
index 00000000000..2c345dd75bc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr69140.c
@@ -0,0 +1,24 @@
+/* { dg-do compile { target lp64 } } */
+/* { dg-options "-O2 -mincoming-stack-boundary=3" } */
+
+typedef struct {
+ unsigned int buf[4];
+ unsigned char in[64];
+} MD4_CTX;
+
+static void
+MD4Transform (unsigned int buf[4], const unsigned int in[16])
+{
+ unsigned int a, b, c, d;
+ (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]);
+ (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]);
+ (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]);
+ buf[3] += d;
+}
+
+void __attribute__((ms_abi))
+MD4Update (MD4_CTX *ctx, const unsigned char *buf)
+{
+ MD4Transform( ctx->buf, (unsigned int *)ctx->in);
+ MD4Transform( ctx->buf, (unsigned int *)ctx->in);
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr69459.c b/gcc/testsuite/gcc.target/i386/pr69459.c
new file mode 100644
index 00000000000..2d0bbbcdbf1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr69459.c
@@ -0,0 +1,42 @@
+/* PR target/69549 */
+/* { dg-do run { target sse2_runtime } } */
+/* { dg-options "-O2 -msse2" } */
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+typedef unsigned long long u64;
+typedef unsigned char v16u8 __attribute__ ((vector_size (16)));
+typedef unsigned short v16u16 __attribute__ ((vector_size (16)));
+typedef unsigned int v16u32 __attribute__ ((vector_size (16)));
+typedef unsigned long long v16u64 __attribute__ ((vector_size (16)));
+
+u64 __attribute__((noinline, noclone))
+foo (u8 u8_0, u16 u16_3, v16u8 v16u8_0, v16u16 v16u16_0, v16u32 v16u32_0, v16u64 v16u64_0, v16u8 v16u8_1, v16u16 v16u16_1, v16u32 v16u32_1, v16u64 v16u64_1, v16u8 v16u8_2, v16u16 v16u16_2, v16u32 v16u32_2, v16u64 v16u64_2, v16u8 v16u8_3, v16u16 v16u16_3, v16u32 v16u32_3, v16u64 v16u64_3)
+{
+ v16u64_0 /= (v16u64){u16_3, ((0))} | 1;
+ v16u64_1 += (v16u64)~v16u32_0;
+ v16u16_1 /= (v16u16){-v16u64_3[1]} | 1;
+ v16u64_3[1] -= 0x1fffffff;
+ v16u32_2 /= (v16u32)-v16u64_0 | 1;
+ v16u32_1 += ~v16u32_1;
+ v16u16_3 %= (v16u16){0xfff, v16u32_2[3], v16u8_0[14]} | 1;
+ v16u64_3 -= (v16u64)v16u32_2;
+ if (v16u64_1[1] >= 1) {
+ v16u64_0 %= (v16u64){v16u32_0[1]} | 1;
+ v16u32_1[1] %= 0x5fb856;
+ v16u64_1 |= -v16u64_0;
+ }
+ v16u8_0 *= (v16u8)v16u32_1;
+ return u8_0 + v16u8_0 [12] + v16u8_0 [13] + v16u8_0 [14] + v16u8_0 [15] + v16u16_0 [0] + v16u16_0 [1] + v16u32_0 [0] + v16u32_0 [1] + v16u32_0 [2] + v16u32_0 [3] + v16u64_0 [0] + v16u64_0 [1] + v16u8_1 [9] + v16u8_1 [10] + v16u8_1 [11] + v16u8_1 [15] + v16u16_1 [0] + v16u16_1 [1] + v16u16_1 [3] + v16u64_1 [0] + v16u64_1 [1] + v16u8_2 [3] + v16u8_2 [4] + v16u8_2 [5] + v16u8_2 [0] + v16u32_2 [1] + v16u32_2 [2] + v16u32_2 [3] + v16u64_2 [0] + v16u64_2 [1] + v16u8_3 [0] + v16u16_3 [6] + v16u16_3[7] + v16u32_3[1] + v16u32_3[2] + v16u64_3[0] + v16u64_3[1];
+}
+
+int
+main ()
+{
+ u64 x = foo(1, 1, (v16u8){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, (v16u16){1, 1}, (v16u32){1}, (v16u64){1}, (v16u8){1}, (v16u16){1, 1}, (v16u32){1}, (v16u64){1}, (v16u8){1, 1, 1, 1, 1}, (v16u16){1}, (v16u32){1}, (v16u64){1}, (v16u8){1}, (v16u16){1}, (v16u32){1}, (v16u64){1});
+
+ if (x != 0xffffffffe0000209)
+ __builtin_abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr69551.c b/gcc/testsuite/gcc.target/i386/pr69551.c
new file mode 100644
index 00000000000..1505fc21dbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr69551.c
@@ -0,0 +1,23 @@
+/* PR target/69551 */
+/* { dg-do run { target sse_runtime } } */
+/* { dg-options "-O2 -mno-sse2 -msse" } */
+
+typedef unsigned char v16qi __attribute__ ((vector_size (16)));
+typedef unsigned int v4si __attribute__ ((vector_size (16)));
+
+char __attribute__ ((noinline, noclone))
+test (v4si vec)
+{
+ vec[1] = 0x5fb856;
+ return ((v16qi) vec)[0];
+}
+
+int
+main ()
+{
+ char z = test ((v4si) { -1, -1, -1, -1 });
+
+ if (z != -1)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/i386/thunk-retbnd.c b/gcc/testsuite/gcc.target/i386/thunk-retbnd.c
index 88ec9c9441d..dcce6baf104 100644
--- a/gcc/testsuite/gcc.target/i386/thunk-retbnd.c
+++ b/gcc/testsuite/gcc.target/i386/thunk-retbnd.c
@@ -1,5 +1,4 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target mpx } */
+/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-O2 -fcheck-pointer-bounds -mmpx -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "return &glob," 2 "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/ia64/pr60465-gprel64-c37.c b/gcc/testsuite/gcc.target/ia64/pr60465-gprel64-c37.c
new file mode 100644
index 00000000000..a7e6809eb6d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/ia64/pr60465-gprel64-c37.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target ia64-*-* } } */
+/* { dg-options "-O2 -fpic" } */
+/* { dg-final { scan-assembler-not "@ltoffx" } } */
+
+/* A bit of https://bugzilla.redhat.com/show_bug.cgi?id=33354
+ where many stores to static variables overflow .sdata */
+
+static const char *s90;
+void f() { s90 = "string 90"; }
+const char * g() { return s90; }
diff --git a/gcc/testsuite/gcc.target/ia64/pr60465-gprel64.c b/gcc/testsuite/gcc.target/ia64/pr60465-gprel64.c
new file mode 100644
index 00000000000..c00ecc947d9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/ia64/pr60465-gprel64.c
@@ -0,0 +1,27 @@
+/* { dg-do compile { target ia64-*-* } } */
+/* { dg-options "-O2 -fpic" } */
+/* { dg-final { scan-assembler-not "@ltoffx" } } */
+
+/* Test imitates early ld.so setup in glibc
+ where no dynamic relocations must be present. */
+
+struct rtld_global
+{
+ long *p[77];
+};
+
+struct rtld_global _rtld_local __attribute__ ((visibility ("hidden"), section (".sdata")));
+
+static void __attribute__ ((unused, noinline))
+elf_get_dynamic_info (struct rtld_global * g, long * dyn)
+{
+ long **info = g->p;
+
+ info[(0x6ffffeff - *dyn) + 66] = dyn;
+}
+
+void __attribute__ ((unused, noinline))
+_dl_start (long * dyn)
+{
+ elf_get_dynamic_info(&_rtld_local, dyn);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr69548.c b/gcc/testsuite/gcc.target/powerpc/pr69548.c
new file mode 100644
index 00000000000..439f588b874
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr69548.c
@@ -0,0 +1,11 @@
+/* { dg-do assemble { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -Os -mbig" } */
+
+__int128
+quad_exchange (__int128 *ptr, __int128 newval)
+{
+ return __atomic_exchange_n (ptr, newval, __ATOMIC_RELAXED);
+}
diff --git a/gcc/testsuite/gcc.target/s390/gpr2fprsavecfi.c b/gcc/testsuite/gcc.target/s390/gpr2fprsavecfi.c
new file mode 100644
index 00000000000..92a0d3ae29a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/gpr2fprsavecfi.c
@@ -0,0 +1,23 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -march=z10 -mzarch -fdwarf2-cfi-asm" } */
+
+char *gl[100];
+
+long
+foo ()
+{
+ long r = 0;
+ char bla[100];
+ int i;
+
+ __builtin_memcpy (bla, gl, 100);
+
+ for (i = 0; i < 100; i++)
+ r += bla[i];
+
+ return r;
+}
+
+/* { dg-final { scan-assembler-not "cfi_def_cfa_register" } } */
+/* { dg-final { scan-assembler "cfi_register" } } */
+/* { dg-final { scan-assembler "cfi_def_cfa_offset" } } */
diff --git a/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90 b/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
new file mode 100644
index 00000000000..c96a4df237b
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
@@ -0,0 +1,30 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! Test the fix for PR66082. The original problem was with the first
+! call foo_1d.
+!
+! Reported by Damian Rouson <damian@sourceryinstitute.org>
+!
+ type foo_t
+ real, allocatable :: bigarr
+ end type
+ block
+ type(foo_t) :: foo
+ allocate(foo%bigarr)
+ call foo_1d (1,[foo]) ! was lost
+ call foo_1d (1,bar_1d()) ! Check that this is OK
+ end block
+contains
+ subroutine foo_1d (n,foo)
+ integer n
+ type(foo_t) :: foo(n)
+ end subroutine
+ function bar_1d () result (array)
+ type(foo_t) :: array(1)
+ allocate (array(1)%bigarr)
+ end function
+end
+! { dg-final { scan-tree-dump-times "builtin_malloc" 4 "original" } }
+! { dg-final { scan-tree-dump-times "builtin_free" 4 "original" } }
+! { dg-final { scan-tree-dump-times "while \\(1\\)" 4 "original" } }
diff --git a/gcc/testsuite/gfortran.dg/allocatable_scalar_13.f90 b/gcc/testsuite/gfortran.dg/allocatable_scalar_13.f90
index 67a8641637d..09113018373 100644
--- a/gcc/testsuite/gfortran.dg/allocatable_scalar_13.f90
+++ b/gcc/testsuite/gfortran.dg/allocatable_scalar_13.f90
@@ -67,5 +67,5 @@ contains
! allocate(res, source = arg) ! Caused an ICE
! end subroutine
end
-! { dg-final { scan-tree-dump-times "builtin_malloc" 15 "original" } }
-! { dg-final { scan-tree-dump-times "builtin_free" 17 "original" } }
+! { dg-final { scan-tree-dump-times "builtin_malloc" 16 "original" } }
+! { dg-final { scan-tree-dump-times "builtin_free" 16 "original" } }
diff --git a/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03 b/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
index 5ca47a62e83..36c1245ccdd 100644
--- a/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
+++ b/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
@@ -210,5 +210,5 @@ program main
call v%free()
deallocate(av)
end program
-! { dg-final { scan-tree-dump-times "__builtin_malloc" 21 "original" } }
+! { dg-final { scan-tree-dump-times "__builtin_malloc" 23 "original" } }
! { dg-final { scan-tree-dump-times "__builtin_free" 29 "original" } }
diff --git a/gcc/testsuite/gfortran.dg/allocate_with_source_16.f90 b/gcc/testsuite/gfortran.dg/allocate_with_source_16.f90
new file mode 100644
index 00000000000..977202d04aa
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/allocate_with_source_16.f90
@@ -0,0 +1,26 @@
+!{ dg-do compile }
+! PR69268
+!
+! Contributed by Rich Townsend <townsend@astro.wisc.edu>
+
+program test_sourced_alloc
+
+ implicit none
+
+ type :: foo_t
+ end type foo_t
+
+ class(foo_t), allocatable :: f
+
+ allocate(f, SOURCE=f_func())
+
+contains
+
+ function f_func () result (f)
+ type(foo_t) :: f
+ integer, save :: c = 0
+ c = c + 1
+ if (c .gt. 1) call abort()
+ end function f_func
+
+end program test_sourced_alloc
diff --git a/gcc/testsuite/gfortran.dg/coarray_allocate_2.f08 b/gcc/testsuite/gfortran.dg/coarray_allocate_2.f08
new file mode 100644
index 00000000000..7a712a94203
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/coarray_allocate_2.f08
@@ -0,0 +1,26 @@
+! { dg-do run }
+! { dg-options "-fcoarray=single" }
+!
+! Contributed by Ian Harvey <ian_harvey@bigpond.com>
+! Extended by Andre Vehreschild <vehre@gcc.gnu.org>
+! to test that coarray references in allocate work now
+! PR fortran/67451
+
+ program main
+ implicit none
+ type foo
+ integer :: bar = 99
+ end type
+ class(foo), allocatable :: foobar[:]
+ class(foo), allocatable :: some_local_object
+ allocate(foobar[*])
+
+ allocate(some_local_object, source=foobar)
+
+ if (.not. allocated(foobar)) call abort()
+ if (.not. allocated(some_local_object)) call abort()
+
+ deallocate(some_local_object)
+ deallocate(foobar)
+ end program
+
diff --git a/gcc/testsuite/gfortran.dg/coarray_allocate_3.f08 b/gcc/testsuite/gfortran.dg/coarray_allocate_3.f08
new file mode 100644
index 00000000000..b9413b6ce4a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/coarray_allocate_3.f08
@@ -0,0 +1,28 @@
+! { dg-do run }
+! { dg-options "-fcoarray=single" }
+!
+! Contributed by Ian Harvey <ian_harvey@bigpond.com>
+! Extended by Andre Vehreschild <vehre@gcc.gnu.org>
+! to test that coarray references in allocate work now
+! PR fortran/67451
+
+ program main
+ implicit none
+ type foo
+ integer :: bar = 99
+ end type
+ class(foo), dimension(:), allocatable :: foobar[:]
+ class(foo), dimension(:), allocatable :: some_local_object
+ allocate(foobar(10)[*])
+
+ allocate(some_local_object(10), source=foobar)
+
+ if (.not. allocated(foobar)) call abort()
+ if (lbound(foobar, 1) /= 1 .OR. ubound(foobar, 1) /= 10) call abort()
+ if (.not. allocated(some_local_object)) call abort()
+ if (any(some_local_object(:)%bar /= [99, 99, 99, 99, 99, 99, 99, 99, 99, 99])) call abort()
+
+ deallocate(some_local_object)
+ deallocate(foobar)
+ end program
+
diff --git a/gcc/testsuite/gfortran.dg/coarray_allocate_4.f08 b/gcc/testsuite/gfortran.dg/coarray_allocate_4.f08
new file mode 100644
index 00000000000..a36d7968b42
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/coarray_allocate_4.f08
@@ -0,0 +1,43 @@
+! { dg-do run }
+! { dg-options "-fcoarray=single" }
+!
+! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+! Andre Vehreschild <vehre@gcc.gnu.org>
+! Check that PR fortran/69451 is fixed.
+
+program main
+
+implicit none
+
+type foo
+end type
+
+class(foo), allocatable :: p[:]
+class(foo), pointer :: r
+class(*), allocatable, target :: z
+
+allocate(p[*])
+
+call s(p, z)
+select type (z)
+ class is (foo)
+ r => z
+ class default
+ call abort()
+end select
+
+if (.not. associated(r)) call abort()
+
+deallocate(r)
+deallocate(p)
+
+contains
+
+subroutine s(x, z)
+ class(*) :: x[*]
+ class(*), allocatable:: z
+ allocate (z, source=x)
+end
+
+end
+
diff --git a/gcc/testsuite/gfortran.dg/common_22.f90 b/gcc/testsuite/gfortran.dg/common_22.f90
new file mode 100644
index 00000000000..e2254099d72
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/common_22.f90
@@ -0,0 +1,24 @@
+! { dg-do compile }
+!
+! PR fortran/59746
+! Check that symbols present in common block are properly cleaned up
+! upon error.
+!
+! Contributed by Bud Davis <jmdavis@link.com>
+
+ CALL RCCFL (NVE,IR,NU3,VE (1,1,1,I))
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+! the PR only contained the two above.
+! success is no segfaults or infinite loops.
+! let's check some combinations
+ CALL ABC (INTG)
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ CALL DEF (NT1)
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ CALL GHI (NRESL)
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ COMMON /CCFILE/ INTG,NT1,NT2,NT3,NVM,NVE,NFRLE,NRESF,NRESL !{ dg-error "Unexpected COMMON" }
+ END
diff --git a/gcc/testsuite/gfortran.dg/common_23.f90 b/gcc/testsuite/gfortran.dg/common_23.f90
new file mode 100644
index 00000000000..3f1f005db85
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/common_23.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR fortran/66707
+! Check the compilation on wrong usage of common
+! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+program p
+ integer, pointer :: a
+ common a, a ! { dg-error "is already in a COMMON block" }
+ common a
+end
diff --git a/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90 b/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
new file mode 100644
index 00000000000..9cdb81ae520
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
@@ -0,0 +1,133 @@
+! { dg-do run }
+! { dg-additional-options "-fdump-tree-original" }
+!
+! PR fortran/61831
+! The deallocation of components of array constructor elements
+! used to have the side effect of also deallocating some other
+! variable's components from which they were copied.
+
+program main
+ implicit none
+
+ integer, parameter :: n = 2
+
+ type :: string_t
+ character(LEN=1), dimension(:), allocatable :: chars
+ end type string_t
+
+ type :: string_container_t
+ type(string_t) :: comp
+ end type string_container_t
+
+ type :: string_array_container_t
+ type(string_t) :: comp(n)
+ end type string_array_container_t
+
+ type(string_t) :: prt_in, tmp, tmpa(n)
+ type(string_container_t) :: tmpc, tmpca(n)
+ type(string_array_container_t) :: tmpac, tmpaca(n)
+ integer :: i, j, k
+
+ do i=1,16
+
+ ! Test without intermediary function
+ prt_in = string_t(["A"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "A")) call abort
+ deallocate (prt_in%chars)
+
+ ! scalar elemental function
+ prt_in = string_t(["B"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "B")) call abort
+ tmp = new_prt_spec (prt_in)
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "B")) call abort
+ deallocate (prt_in%chars)
+ deallocate (tmp%chars)
+
+ ! array elemental function with array constructor
+ prt_in = string_t(["C"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "C")) call abort
+ tmpa = new_prt_spec ([(prt_in, i=1,2)])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "C")) call abort
+ deallocate (prt_in%chars)
+ do j=1,n
+ deallocate (tmpa(j)%chars)
+ end do
+
+ ! scalar elemental function with structure constructor
+ prt_in = string_t(["D"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "D")) call abort
+ tmpc = new_prt_spec2 (string_container_t(prt_in))
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "D")) call abort
+ deallocate (prt_in%chars)
+ deallocate(tmpc%comp%chars)
+
+ ! array elemental function of an array constructor of structure constructors
+ prt_in = string_t(["E"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "E")) call abort
+ tmpca = new_prt_spec2 ([ (string_container_t(prt_in), i=1,2) ])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "E")) call abort
+ deallocate (prt_in%chars)
+ do j=1,n
+ deallocate (tmpca(j)%comp%chars)
+ end do
+
+ ! scalar elemental function with a structure constructor and a nested array constructor
+ prt_in = string_t(["F"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "F")) call abort
+ tmpac = new_prt_spec3 (string_array_container_t([ (prt_in, i=1,2) ]))
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "F")) call abort
+ deallocate (prt_in%chars)
+ do j=1,n
+ deallocate (tmpac%comp(j)%chars)
+ end do
+
+ ! array elemental function with an array constructor nested inside
+ ! a structure constructor nested inside an array constructor
+ prt_in = string_t(["G"])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "G")) call abort
+ tmpaca = new_prt_spec3 ([ (string_array_container_t([ (prt_in, i=1,2) ]), j=1,2) ])
+ if (.not. allocated(prt_in%chars)) call abort
+ if (any(prt_in%chars .ne. "G")) call abort
+ deallocate (prt_in%chars)
+ do j=1,n
+ do k=1,n
+ deallocate (tmpaca(j)%comp(k)%chars)
+ end do
+ end do
+
+ end do
+
+contains
+
+ elemental function new_prt_spec (name) result (prt_spec)
+ type(string_t), intent(in) :: name
+ type(string_t) :: prt_spec
+ prt_spec = name
+ end function new_prt_spec
+
+ elemental function new_prt_spec2 (name) result (prt_spec)
+ type(string_container_t), intent(in) :: name
+ type(string_container_t) :: prt_spec
+ prt_spec = name
+ end function new_prt_spec2
+
+ elemental function new_prt_spec3 (name) result (prt_spec)
+ type(string_array_container_t), intent(in) :: name
+ type(string_array_container_t) :: prt_spec
+ prt_spec = name
+ end function new_prt_spec3
+end program main
+! { dg-final { scan-tree-dump-times "__builtin_malloc" 15 "original" } }
+! { dg-final { scan-tree-dump-times "__builtin_free" 33 "original" } }
diff --git a/gcc/testsuite/gfortran.dg/pr68283.f90 b/gcc/testsuite/gfortran.dg/pr68283.f90
new file mode 100644
index 00000000000..81f74129fe9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr68283.f90
@@ -0,0 +1,15 @@
+! { dg-do compile }
+MODULE neb_utils
+ IMPLICIT NONE
+ INTEGER, PARAMETER :: dp=8
+ TYPE neb_var_type
+ REAL(KIND=dp), DIMENSION(:, :), POINTER :: xyz, int, wrk
+ END TYPE neb_var_type
+CONTAINS
+ SUBROUTINE get_neb_force()
+ INTEGER :: i
+ TYPE(neb_var_type), POINTER :: forces
+ REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: dtmp1, wrk
+ dtmp1 = forces%wrk(:,i)-dot_product_band ! { dg-error "Symbol 'dot_product_band' at .1. has no IMPLICIT type" }
+ END SUBROUTINE get_neb_force
+END MODULE neb_utils
diff --git a/gcc/testsuite/gnat.dg/inline12.adb b/gcc/testsuite/gnat.dg/inline12.adb
new file mode 100644
index 00000000000..e73f3c1aeb6
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/inline12.adb
@@ -0,0 +1,23 @@
+-- PR ada/69219
+-- Testcae by yuta tomino <demoonlit@panathenaia.halfmoon.jp> */
+
+-- { dg-do compile }
+
+procedure Inline12 is
+
+ procedure NI;
+
+ procedure IA;
+ pragma Convention (Intrinsic, IA);
+ pragma Inline_Always (IA);
+
+ procedure IA is
+ begin
+ NI;
+ end;
+
+ procedure NI is null;
+
+begin
+ IA;
+end;