Commit graph

174272 commits

Author SHA1 Message Date
Frederik Harwath
9e424d9749 Add missing ChangeLog entry for my last commit
libgomp/ChangeLog: Add entry for commit 4bd03ed69b.
2020-01-24 09:25:35 +01:00
Frederik Harwath
4bd03ed69b Fix expectation and types in acc_get_property tests
* Weaken expectation concerning acc_property_free_memory.
  Do not expect the value returned by CUDA since that value might have
  changed in the meantime.
* Use correct type for the results of calls to acc_get_property in tests.

libgomp/
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c
	(expect_device_properties): Remove "expected_free_mem" argument,
	change "expected_total_mem" argument type to size_t;
	change types of acc_get_property results to size_t,
	adapt format strings.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property.c:
	Use %zu instead of %zd to print size_t values.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: Adapt and
	rename to ...
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: ... this.
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: Adapt and
	rename to ...
	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: ... this.

Reviewed-by: Thomas Schwinge  <thomas@codesourcery.com>
2020-01-24 09:14:51 +01:00
Hans-Peter Nilsson
9adea9392b doc: target.def (flags_regnum): Also mention effect on delay slot filling.
* target.def (flags_regnum): Also mention effect on delay slot filling.
* doc/tm.texi: Regenerate.

Previously only mentioned an effect on compare elimination.
2020-01-24 06:47:33 +01:00
David Malcolm
a0b935ac66 analyzer: avoid relying on system <assert.h> in testsuite (PR 93367)
PR analyzer/93367 reports a testsuite failure in abort.c on
hppa64-hp-hpux11.11 when detecting if the analyzer "knows" that the
condition holds after the assert.

The root cause is that the assertion failure function in that
configuration's <assert.h> is not marked with
__attribute__ ((__noreturn__)).

This patch reworks the test to avoid <assert.h> in favor of a custom
implementation of assert, so that the test demonstrates the idea without
relying on properties of <assert.h>.

gcc/testsuite/ChangeLog:
	PR analyzer/93367
	* gcc.dg/analyzer/abort.c: Remove include of <assert.h>.
	Replace use of assert with a custom assertion implementation.
2020-01-23 20:47:34 -05:00
GCC Administrator
472dc648ce Daily bump. 2020-01-24 00:16:25 +00:00
Ian Lance Taylor
1e156d9b21 internal/cpu: don't define CacheLinePadSize for riscv64
In libgo CacheLinePadSize is defined by the generated file cpugen.go.

Keep cpu_riscv64.go around, even though it is now empty, so that
we will pick up changes to it in future merges.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
2020-01-23 16:05:47 -08:00
Jeff Law
dfa075d00d Fix diagnostic text on H8.
* config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
2020-01-23 16:03:27 -07:00
Jeff Law
efe0fd930e Fix profiling issue on H8 port
* config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
	profiling label
2020-01-23 15:55:20 -07:00
Jakub Jelinek
3a26c7b3a3 testsuite: Require lp64 target rather x86_64-*-* in pr93027.c. [PR93027]
I've noticed this test failed on x86_64-linux with -m32 or -mx32 testing,
the triplet doesn't really say which actual multilib it is, and the test
really works with lp64.

2020-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/93027
	* gcc.target/i386/pr93027.c: Require lp64 target rather x86_64-*-*.
2020-01-23 22:50:40 +01:00
Alexandre Oliva
18193e8f00 [libiberty] output empty args as a pair of quotes
writeargv writes out empty arguments in a way that expandargv skips
them instead of preserving them.  Fixed by writing out a pair of
quotes for them.


for  libiberty/ChangeLog

	* argv.c (writeargv): Output empty args as "".
2020-01-23 16:45:24 -03:00
Alexandre Oliva
f9e84b31df reject macros in math decl check
The C++ headers #undef the functions we are testing for, just in case
they're implemented as macros, so do that in the cross math decl tests
as well.


for  libstdc++-v3/ChangeLog

	* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
	* configure: Rebuild.
2020-01-23 16:44:54 -03:00
Alexandre Oliva
7a900bceca tolerate padding in mbstate_t
Padding in mbstate_t objects may get the memcmp to fail.
Attempt to avoid the failure with zero initialization.


for  libstdc++-v3/ChangeLog

	* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
2020-01-23 16:36:34 -03:00
Jakub Jelinek
32667e04c7 postreload: Fix up postreload combine [PR93402]
The following testcase is miscompiled, because the postreload pass changes:
-(insn 14 13 23 2 (parallel [
-            (set (reg:DI 1 dx [94])
-                (plus:DI (reg:DI 1 dx [95])
-                    (reg:DI 5 di [92])))
-            (clobber (reg:CC 17 flags))
-        ]) "pr93402.c":8:30 186 {*adddi_1}
-     (expr_list:REG_EQUAL (plus:DI (reg:DI 5 di [92])
-            (const_int 111111111111 [0x19debd01c7]))
-        (nil)))
-(insn 23 14 25 2 (set (reg:SI 0 ax)
+(insn 23 13 25 2 (set (reg:SI 0 ax)
         (const_int 0 [0])) "pr93402.c":10:1 67 {*movsi_internal}
      (nil))
 (insn 25 23 26 2 (use (reg:SI 0 ax)) "pr93402.c":10:1 -1
      (nil))
-(insn 26 25 35 2 (use (reg:DI 1 dx)) "pr93402.c":10:1 -1
+(insn 26 25 35 2 (use (plus:DI (reg:DI 1 dx [95])
+            (reg:DI 5 di [92]))) "pr93402.c":10:1 -1
      (nil))
A USE insn is not a normal insn and verify_changes called from
apply_change_group is happy about any changes into it.
The following patch avoids this optimization if we were to change
the USE operand (this routine only changes a reg into (plus reg reg2)).

2020-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/93402
	* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
	USE insns.

	* gcc.c-torture/execute/pr93402.c: New test.
2020-01-23 20:08:22 +01:00
Paolo Carlini
c91072247e Fix "PR c++/92804 ICE trying to use concept as a nested-name-specifier"
A rather simple ICE where we failed to properly check for concept-ids
uses in nested-name-specifiers.

Tested x86_64-linux.

       /cp
       PR c++/92804
       * parser.c (cp_parser_nested_name_specifier_opt): Properly
       diagnose concept-ids.

       /testsuite
       PR c++/92804
       * g++.dg/concepts/pr92804-1.C: New.
       * g++.dg/concepts/pr92804-2.C: New.
2020-01-23 19:28:23 +01:00
Jason Merrill
6f346913f2 c++: Avoid ICE when constant evaluation of __builtin_strchr fails.
If we can't change the argument to &"...", use the original arg instead of
the partially munged one.

	PR c++/93331 - ICE with __builtin_strchr.
	* constexpr.c (cxx_eval_builtin_function_call): Use the original
	argument if we didn't manage to extract a STRING_CST.
2020-01-23 13:11:10 -05:00
Jason Merrill
20afdcd369 c++: Fix ICE with defaulted destructor and template.
In a template we don't instantiate a deferred noexcept-spec, and we don't
need it because we aren't going to do anything with the value of
throwing_cleanup in a template anyway.

	PR c++/93345 - ICE with defaulted dtor and template.
	PR c++/33799
	* decl.c (cxx_maybe_build_cleanup): Don't try to set
	throwing_cleanup in a template.
2020-01-23 13:11:10 -05:00
David Malcolm
648796dab4 analyzer: avoid ICE with missing arguments (PR 93375)
PR analyzer/93375 reports an ICE under certain circumstances
involving a call where the number of arguments at the callsite
is less than the parameter count of the callee,

Specifically, the ICE occurs when pruning a checker_path for a
diagnostic, when attempting to maintain which expression is of
interest through such a call.

The root cause is an assumption that there were enough arguments at
the callsite, within callgraph_superedge's methods for mapping
expressions between callee and caller.

This patch adds checks for this to the relevant methods, fixing the ICE.

gcc/analyzer/ChangeLog:
	PR analyzer/93375
	* supergraph.cc (callgraph_superedge::get_arg_for_parm): Fail
	gracefully is the number of parameters at the callee exceeds the
	number of arguments at the call stmt.
	(callgraph_superedge::get_parm_for_arg): Likewise.

gcc/testsuite/ChangeLog:
	PR analyzer/93375
	* gcc.dg/analyzer/pr93375.c: New test.
2020-01-23 11:24:16 -05:00
Jason Merrill
6d00f052ef c-family: One more 40752 tweak for unsigned char.
My last patch didn't fix all the failures on unsignd char targets.  We were
missing one warning because by suppressing -Wsign-conversion for the second
operand of + we missed an overflow that we want to warn about, and we
properly don't warn about unsigned / or %.

	PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
	* c-warn.c (conversion_warning): Change -Wsign-conversion handling.
	* lib/target-supports.exp (check_effective_target_unsigned_char):
	New.
2020-01-23 11:13:48 -05:00
Dragan Mladjenovic
54b3d52c3c Emit .note.GNU-stack for hard-float linux targets.
libgcc/ChangeLog:

2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* config/mips/gnustack.h: Check for TARGET_LIBC_GNUSTACK also.

gcc/ChangeLog:

2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* config.in: Regenerated.
	* config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
	for TARGET_LIBC_GNUSTACK.
	* configure: Regenerated.
	* configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
	found to be 2.31 or greater.
2020-01-23 17:00:03 +01:00
Dragan Mladjenovic
a3c1e1f2ff Emit .note.GNU-stack for soft-float linux targets.
gcc/ChangeLog:

2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
	TARGET_SOFT_FLOAT.
	* config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
	(mips_asm_file_end): New function. Delegate to
	file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
	* config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.

libgcc/ChangeLog:

2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* config/mips/gnustack.h: New file.
	* config/mips/crti.S: Include gnustack.h.
	* config/mips/crtn.S: Likewise.
	* config/mips/mips16.S: Likewise.
	* config/mips/vr4120-div.S: Likewise.
2020-01-23 17:00:02 +01:00
Jakub Jelinek
c124b345e4 i386: Fix ICEs on TImode signed overflow add/sub patterns [PR93376]
The following testcase ICEs, because during try_combine of i3:
(insn 18 17 19 2 (parallel [
            (set (reg:CCO 17 flags)
                (eq:CCO (plus:OI (sign_extend:OI (reg:TI 96))
                        (const_int 1 [0x1]))
                    (sign_extend:OI (plus:TI (reg:TI 96)
                            (const_int 1 [0x1])))))
            (set (reg:TI 98)
                (plus:TI (reg:TI 96)
                    (const_int 1 [0x1])))
        ]) "pr93376.c":8:10 223 {*addvti4_doubleword_1}
     (expr_list:REG_UNUSED (reg:TI 98)
        (expr_list:REG_DEAD (reg:TI 96)
            (nil))))
and i2:
(insn 17 37 18 2 (set (reg:TI 96)
        (const_wide_int 0x7fffffffffffffffffffffffffffffff)) "pr93376.c":8:10 65 {*movti_internal}
     (nil))
the eq in there gets simplified into:
(eq:CCO (const_wide_int 0x080000000000000000000000000000000)
    (const_wide_int 0x80000000000000000000000000000000))
and simplify-rtx.c tries to simplify it by simplifying MINUS
of the two operands.
Now, i386 defines MAX_BITSIZE_MODE_ANY_INT to 128, because OImode
and XImode are used mainly as a placeholder for the vector modes;
these new signed overflow patterns are an exception to that,
but what they really need is just TImode precision + 1 (maybe 2 worst case)
bits at any time.

wide-int.h defines WIDE_INT_MAX_ELTS in a way that it contains one more
HWI above number of HWIs to cover WIDE_INT_MAX_ELTS, so on i386 that is
3 HWIs, meaning that TImode precision + 1/2 bits is still representable in
there.  Unfortunately, the way wi::sub_large is implemented, it needs
not just those 3 HWIs, but one HWI above the maximum of the lengths of
both operands, which means it buffer overflows, overwrites the following
precision in wide_int_storage and ICEs later on.  The need for 4 HWIs is
only temporary, because canonize immediately after it canonicalizes it
back to 3 HWIs only.

The patch is something suggested by Richard S., avoid using OImode
for this and instead use a partial int mode that is smaller.

2020-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/93376
	* config/i386/i386-modes.def (POImode): New mode.
	(MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
	* config/i386/i386.md (DPWI): New mode attribute.
	(addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
	(QWI): Rename to...
	(QPWI): ... this.  Use POI instead of OI for TImode.
	(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
	*subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
	instead of <QWI>.

	* gcc.dg/pr93376.c: New test.
2020-01-23 16:17:56 +01:00
Jonathan Wakely
04681fca93 libstdc++: Simplify makefile rule for largefile-config.h (PR91947)
The previous rule could leave an incomplete file if the build was
interrupted, which would then not be remade if make was run again.

This makes the rule more robust by writing to a temporary file and only
moving it into place as the final step. It also simplifies the rule so
that only the essential macro definitions are written to the file, not
the explanatory comments and commented out #undef lines.

Also, the macro for enabling LFS on Mac OS X 10.5 is now set
unconditionally, which is a bug fix from upstream autoconf.

	PR libstdc++/91947
	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
	rule.
	* include/Makefile.in: Regenerate.
2020-01-23 14:02:32 +00:00
Richard Sandiford
2214053f9d aarch64: Fix -mtrack-speculation for irreversible conditions [PR93341]
We can't yet represent the inverse of all conditions in rtl
(see g:865257c447cc50f5819e), triggering an ICE in the pass
that handles -mtrack-speculation.  Since we don't expect these
insns to be optimised in any way, the easiest fix seemed to be
to add an insn that reverses the condition internally.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR target/93341
	* config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
	unspec.
	(speculation_tracker_rev): New pattern.
	* config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
	Use speculation_tracker_rev to track the inverse condition.

gcc/testsuite/
	PR target/93341
	* gcc.target/aarch64/pr93341.c: New test.
2020-01-23 13:56:16 +00:00
David Malcolm
d16db16edd analyzer: introduce analyzer-torture.exp
gcc/testsuite/ChangeLog:
	* gcc.dg/analyzer/data-model-3.c: Remove hardcoded "-O2" and move
	to torture/conftest-1.c.
	* gcc.dg/analyzer/torture/analyzer-torture.exp: New.
	* gcc.dg/analyzer/torture/conftest-1.c: Move here from
	analyzer/data-model-3.c.
	* gcc.dg/analyzer/torture/poc.c: New test.
2020-01-23 08:48:05 -05:00
Martin Liska
e9ee848dcd
Remove wrong bail out in prune_topn_counter.
* libgcov-driver.c (prune_topn_counter): Remove
	check for -1 as we only prune run-time counters
	that do not generate an invalid state.
2020-01-23 14:34:59 +01:00
Andrew Stubbs
14e5e74698 Fix libgomp plugin-gcn bug
2020-01-23  Andrew Stubbs  <ams@codesourcery.com>

	libgomp/
	* plugin/plugin-gcn.c (parse_target_attributes): Use correct mask for
	the device id.
2020-01-23 12:40:04 +00:00
Richard Biener
f5ee5d05f3 tree-optimization/93354 FRE redundant store removal validity fix
This fixes tracking of the alias-set of partial defs for use by
redundant store removal.

2020-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93381
	* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
	alias-set of the def as argument and record the first one.
	(vn_walk_cb_data::first_set): New member.
	(vn_reference_lookup_3): Pass the alias-set of the current def
	to push_partial_def.  Fix alias-set used in the aggregate copy
	case.
	(vn_reference_lookup): Consistently set *last_vuse_ptr.
	* real.c (clear_significand_below): Fix out-of-bound access.

	* gcc.dg/torture/pr93354.c: New testcase.
2020-01-23 12:46:39 +01:00
Jakub Jelinek
9592f639ff i386: Use bzhi for x & ((1 << y) - 1) or x & ((1U << y) - 1) [PR93346]
The bzhi patterns are quite complicated because they need to accurately
describe the behavior of the instruction for all input values.
The following patterns are simple and make bzhi recognizable even for
cases where not all input values are valid, because the user used
a shift, in which case the low 8 bit of the last operand need to be in
between 0 and precision-1.

2020-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/93346
	* config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
	New define_insn patterns.

	* gcc.target/i386/pr93346.c: New test.
2020-01-23 12:39:13 +01:00
Martin Sebor
8a990ffafa PR c/84919 - bogus -Wrestrict on sprintf %p with destination as argument
gcc/c-family/ChangeLog:

	PR c/84919
	* c-common.c (check_function_arguments): Avoid overlap checking
	of sprintf functions.

gcc/testsuite/ChangeLog:

	PR c/84919
	* gcc.dg/Wrestrict-20.c: New test.
2020-01-23 11:37:02 +01:00
Richard Sandiford
0ed442a40f aarch64: Skip whilele_1.C test for ILP32
The definitions of the integer types for ILP32 newlib make the
resolution of some of the bool-related tests ambiguous.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
	* g++.target/aarch64/sve/acle/general-c++/whilele_1.C: Skip for ILP32.
2020-01-23 09:39:13 +00:00
Richard Sandiford
b02fbed15a aarch64: Skip some SVE ACLE function-body tests for ILP32
The load, store, prefetch and alias-check test functions require
extra zero extends for ILP32, so they don't match the expected function
bodies.  This patch therefore skips those parts of the tests for ILP32,
but keeps the compile/assemble parts.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
	* gcc.target/aarch64/sve/acle/asm/ld1_f16.c: Skip check-function-bodies
	test for ILP32.
	* gcc.target/aarch64/sve/acle/asm/ld1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ro_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1rq_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sb_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1sw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1ub_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld1uw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld2_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld3_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ld4_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1sw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldff1uw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1sw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uw_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnf1uw_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/ldnt1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfb.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfb_gather.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfd.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfd_gather.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfh.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfh_gather.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfw.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/prfw_gather.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1b_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1h_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1w_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1w_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1w_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st1w_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st2_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st3_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/st4_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_f16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_f32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_f64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_s16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_s32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_s64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_s8.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_u16.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_u32.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_u64.c: Likewise.
	* gcc.target/aarch64/sve/acle/asm/stnt1_u8.c: Likewise.
	* gcc.target/aarch64/sve/acle/general/temporaries_1.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_f16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_f32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_f64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_s16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_s8.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_u16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilerw_u8.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_f16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_f32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_f64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_s16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_s32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_s64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_s8.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_u16.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_u32.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_u64.c: Likewise.
	* gcc.target/aarch64/sve2/acle/asm/whilewr_u8.c: Likewise.
2020-01-23 09:39:12 +00:00
Richard Sandiford
4c33b2daeb testsuite: Add target/xfail argument to check-function-bodies
check-function-bodies allows individual function tests to be
annotated with target/xfail selectors, but sometimes it's
useful to have the same selector for all functions.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* doc/sourcebuild.texi (check-function-bodies): Add an
	optional target/xfail selector.

gcc/testsuite/
	* lib/scanasm.exp (check-function-bodies): Add an optional
	target/xfail selector.
2020-01-23 09:19:16 +00:00
Richard Sandiford
ccb6817964 auto-inc-dec: Don't add incs/decs to bare CLOBBERs [PR93124]
In this PR, auto-inc-dec was trying to turn:

    (set (reg X) (plus (reg X) (const_int N)))
    (clobber (mem (reg X)))

into:

    (clobber (mem (pre_modify (reg X) ...)))

But bare clobber insns are just there to describe dataflow.  They're
not supposed to generate any code.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR rtl-optimization/93124
	* auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
	bare USE and CLOBBER insns.

gcc/testsuite/
	* gcc.dg/torture/pr93124.c: New test.
2020-01-23 09:19:15 +00:00
Ian Lance Taylor
92bea423c2 gotest: explicitly skip type descriptors
Type descriptors are normally weak and nm will report them as V,
so we will skip them when collecting the list of symbols.
But when not using GNU nm, they may be reported as D,
so also skip them in symstogo.

This fixes go/doc/check on Solaris.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215900
2020-01-22 20:53:43 -08:00
David Malcolm
591b59ebfc analyzer: fix ICE due to sm-state origin being purged (PR 93382)
The ICE in PR analyzer/93382 is a validation error.

The global variable "idx" acquires a "tainted" state from local array
n1[0].  When the frame is popped, the svalue for n1[0] is purged, but
the "taint" sm_state_map's entry for "idx" has a svalue_id referencing
the now-purged svalue.  This is caught by program_state::validate as an
assertion failure.

This patch fixes the issue by resetting the origin id within
sm_state_map entries for the case where the origin id has been purged.

gcc/analyzer/ChangeLog:
	PR analyzer/93382
	* program-state.cc (sm_state_map::on_svalue_purge): If the
	entry survives, but the origin is being purged, then reset the
	origin to null.

gcc/testsuite/ChangeLog:
	PR analyzer/93382
	* gcc.dg/analyzer/pr93382.c: New test.
2020-01-22 21:06:45 -05:00
David Malcolm
c9c8aef474 analyzer: fix build with --enable-checking=release
When adding namespaces to the analyzer in
r10-6151-g75038aa6aa5b562e6358108619d66ef2ccab9a53
I messed up the nesting of the #endif for #if CHECKING_P
and the closing of namespace ana.

This patch fixes it.

gcc/analyzer/ChangeLog:
	* sm-signal.cc: Fix nesting of CHECKING_P and namespace ana.
2020-01-22 20:57:11 -05:00
Andrew Pinski
41fe06f89f Fix patchable-function-entry on arc
The problem here is arc looks at current_output_insn unconditional
but sometimes current_output_insn is NULL.  With patchable-function-entry,
it will be. This is similar to how the nios2, handles "%.".

Committed as obvious after a simple test with -fpatchable-function-entry=1.

ChangeLog:
* config/arc/arc.c (output_short_suffix): Check insn for nullness.
2020-01-23 01:23:28 +00:00
Andrew Pinski
83b0448980 Revert "Allow tree-ssa.exp to be run by itself" and move some testcases
This reverts commit 9085381f19 as it was
causing default dg-do to be set incorrectly on most targets.
Instead move testcases that are vect related testcase that
use "dg-require-effective-target vect_*" to the vect test area.

ChangeLog:
* gcc.dg/tree-ssa/pr88497-1.c: Move to ...
* gcc.dg/vect/pr88497-1.c: This.
* gcc.dg/tree-ssa/pr88497-2.c: Move to ...
* gcc.dg/vect/pr88497-2.c: This.
* gcc.dg/tree-ssa/pr88497-3.c: Move to ...
* gcc.dg/vect/pr88497-3.c: This.
* gcc.dg/tree-ssa/pr88497-4.c: Move to ...
* gcc.dg/vect/pr88497-4.c: This.
* gcc.dg/tree-ssa/pr88497-5.c: Move to ...
* gcc.dg/vect/pr88497-5.c: This.
* gcc.dg/tree-ssa/pr88497-6.c: Move to ...
* gcc.dg/vect/pr88497-6.c: This.
* gcc.dg/tree-ssa/pr88497-7.c: Move to ...
* gcc.dg/vect/pr88497-7.c: This.

Revert:
* tree-ssa.exp: Set DEFAULT_VECTCFLAGS and DEFAULT_VECTCFLAGS.
Call check_vect_support_and_set_flags also.
2020-01-23 01:17:00 +00:00
GCC Administrator
4857e6f343 Daily bump. 2020-01-23 00:16:33 +00:00
Ian Lance Taylor
9e16359ce8 runtime: for Solaris, add osinit, and drop duplicate getncpu
Fixes a build breakage introduced in the 1.14beta1 upgrade.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215857
2020-01-22 15:08:25 -08:00
Andrew Pinski
26afdf5070 internal/syscall/unix: use getrandom_linux_generic.go on arm64be
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215342
2020-01-22 15:05:26 -08:00
Jason Merrill
55b7df8bfb c-family: Fix problems with blender and PPC from PR 40752 patch.
blender in SPEC is built with -funsigned-char, which is also the default on
PPC, and exposed -Wsign-conversion issues that weren't seen by the x86_64
testsuite.  In blender we were complaining about operands to an expression
that we didn't't previously complain about as a whole.  So only check
operands after we check the whole expression.  Also, to fix the PR 40752
testcases on -funsigned-char targets, don't consider -Wsign-conversion for
the second operand of PLUS_EXPR, especially since fold changes
"x - 5" to "x + (-5)".  And don't use SCHAR_MAX with plain char.

	PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
	PR c++/40752
	* c-warn.c (conversion_warning): Check operands only after checking
	the whole expression.  Don't check second operand of + for sign.
2020-01-22 17:05:43 -05:00
Jason Merrill
d963716881 c-family: Remove location parm from unsafe_conversion_p.
My earlier change removed the warning calls from this function, so the
location is no longer useful.

	* c-common.c (unsafe_conversion_p): Remove location parm.
2020-01-22 17:05:42 -05:00
Andrew Pinski
9085381f19 Allow tree-ssa.exp to be run by itself
tree-ssa testcases sometimes check autovect effective target
but does not set it up.  On MIPS, those testcases fail with
some TCL error messages.  This fixes the issue by calling
check_vect_support_and_set_flags inside tree-ssa.exp.
There might be other .exp files which need to be done this
way too but I have not checked all of them.

Tested on x86_64-linux-gnu and a cross to mips64-octeon-linux-gnu.
Both full run of the testsuite and running tree-ssa.exp by itself.

testsuite/ChangeLog:
* tree-ssa.exp: Set DEFAULT_VECTCFLAGS and DEFAULT_VECTCFLAGS.
Call check_vect_support_and_set_flags also.
2020-01-22 20:44:07 +00:00
David Malcolm
597e403d6d analyzer: fix usage of "_setjmp" in test for PR 93378
gcc/testsuite/ChangeLog:
	PR analyzer/93378
	* gcc.dg/analyzer/setjmp-pr93378.c: Use setjmp rather than
	_setjmp.
2020-01-22 15:28:33 -05:00
David Malcolm
fd9982bb00 analyzer: fix setjmp handling with -g (PR 93378)
PR analyzer/93378 reports an ICE at -O1 -g when analyzing a rewind via
longjmp to a setjmp call with.

The root cause is that the rewind_info_t::get_setjmp_call attempts to
locate the setjmp GIMPLE_CALL via within the exploded_node containing
it, but the exploded_node has two stmts: a GIMPLE_DEBUG, then the
GIMPLE_CALL, and so erroneously picks the GIMPLE_DEBUG, leading to
a failed as_a <const gcall *>.

This patch reworks how the analyzer stores information about a setjmp
so that instead of storing an exploded_node *, it instead introduces
a "setjmp_record" struct, for use by both setjmp_svalue and
rewind_info_t.  Hence we store the information directly, rather than
attempting to reconstruct it, fixing the bug.

gcc/analyzer/ChangeLog:
	PR analyzer/93378
	* engine.cc (setjmp_svalue::compare_fields): Update for
	replacement of m_enode with m_setjmp_record.
	(setjmp_svalue::add_to_hash): Likewise.
	(setjmp_svalue::get_index): Rename...
	(setjmp_svalue::get_enode_index): ...to this.
	(setjmp_svalue::print_details): Update for replacement of m_enode
	with m_setjmp_record.
	(exploded_node::on_longjmp): Likewise.
	* exploded-graph.h (rewind_info_t::m_enode_origin): Replace...
	(rewind_info_t::m_setjmp_record): ...with this.
	(rewind_info_t::rewind_info_t): Update for replacement of m_enode
	with m_setjmp_record.
	(rewind_info_t::get_setjmp_point): Likewise.
	(rewind_info_t::get_setjmp_call): Likewise.
	* region-model.cc (region_model::dump_summary_of_map): Likewise.
	(region_model::on_setjmp): Likewise.
	* region-model.h (struct setjmp_record): New struct.
	(setjmp_svalue::m_enode): Replace...
	(setjmp_svalue::m_setjmp_record): ...with this.
	(setjmp_svalue::setjmp_svalue): Update for replacement of m_enode
	with m_setjmp_record.
	(setjmp_svalue::clone): Likewise.
	(setjmp_svalue::get_index): Rename...
	(setjmp_svalue::get_enode_index): ...to this.
	(setjmp_svalue::get_exploded_node): Replace...
	(setjmp_svalue::get_setjmp_record): ...with this.

gcc/testsuite/ChangeLog:
	PR analyzer/93378
	* gcc.dg/analyzer/setjmp-pr93378.c: New test.
2020-01-22 14:52:11 -05:00
David Malcolm
da7cf663b7 analyzer: testsuite fixes for alloca, getpass, and setjmp (PR 93316)
PR analyzer/93316 reports various testsuite failures where I
accidentally relied on properties of x86_64-pc-linux-gnu.

The following patch fixes them on sparc-sun-solaris2.11 (gcc211 in the
GCC compile farm), and, I hope, the other configurations showing
failures.

There may still be other failures for pattern-test-2.c, which I'm
tracking separately as PR analyzer/93291.

gcc/analyzer/ChangeLog:
	PR analyzer/93316
	* analyzer.cc (is_setjmp_call_p): Check for "setjmp" as well as
	"_setjmp".

gcc/testsuite/ChangeLog:
	PR analyzer/93316
	* gcc.dg/analyzer/data-model-1.c: Include <alloca.h>.
	* gcc.dg/analyzer/malloc-1.c: Likewise.
	* gcc.dg/analyzer/malloc-callbacks.c (get_alloca): Return
	__builtin_alloca rather than alloca.
	* gcc.dg/analyzer/malloc-paths-8.c: Include <alloca.h>.
	* gcc.dg/analyzer/sensitive-1.c: Define __EXTENSIONS__ before
	including unistd.h.
	* gcc.dg/analyzer/setjmp-2.c: Replace include of <setjmp.h>
	with "test-setjmp.h" and usage of setjmp with new SETJMP macro.
	* gcc.dg/analyzer/setjmp-3.c: Likewise.
	* gcc.dg/analyzer/setjmp-4.c: Likewise.
	* gcc.dg/analyzer/setjmp-5.c: Likewise.
	* gcc.dg/analyzer/setjmp-6.c: Likewise.
	* gcc.dg/analyzer/setjmp-7.c: Likewise.
	* gcc.dg/analyzer/setjmp-7a.c: Likewise.
	* gcc.dg/analyzer/setjmp-8.c: Likewise.
	* gcc.dg/analyzer/setjmp-9.c: Likewise.
	* gcc.dg/analyzer/test-setjmp.h: New header.
2020-01-22 14:32:08 -05:00
David Malcolm
75038aa6aa analyzer: introduce namespace to avoid ODR clashes (PR 93307)
PR analyzer/93307 reports that in an LTO bootstrap, there are ODR
violations between:
- the "region" type:
    gcc/analyzer/region-model.h:792
  vs:
    gcc/sched-int.h:1443
- the "constraint" type:
    gcc/analyzer/constraint-manager.h:121
  vs:
    gcc/tree-ssa-structalias.c:533

This patches solves this clash by putting all of the analyzer names
within a namespace.  I chose "ana" as it is short (to save typing).
The analyzer selftests are moved from namespace "selftest" to
"ana::selftest".

There are various places where the namespace has to be closed
and reopened, to allow e.g. for specializations of templates
in the global namespace.

gcc/analyzer/ChangeLog:
	PR analyzer/93307
	* analysis-plan.h: Wrap everything namespace "ana".
	* analyzer-logging.cc: Likewise.
	* analyzer-logging.h: Likewise.
	* analyzer-pass.cc (pass_analyzer::execute): Update for "ana"
	namespace.
	* analyzer-selftests.cc: Wrap everything namespace "ana".
	* analyzer-selftests.h: Likewise.
	* analyzer.h: Likewise for forward decls of types.
	* call-string.h: Likewise.
	* checker-path.cc: Likewise.
	* checker-path.h: Likewise.
	* constraint-manager.cc: Likewise.
	* constraint-manager.h: Likewise.
	* diagnostic-manager.cc: Likewise.
	* diagnostic-manager.h: Likewise.
	* engine.cc: Likewise.
	* engine.h: Likewise.
	* exploded-graph.h: Likewise.
	* function-set.cc: Likewise.
	* function-set.h: Likewise.
	* pending-diagnostic.cc: Likewise.
	* pending-diagnostic.h: Likewise.
	* program-point.cc: Likewise.
	* program-point.h: Likewise.
	* program-state.cc: Likewise.
	* program-state.h: Likewise.
	* region-model.cc: Likewise.
	* region-model.h: Likewise.
	* sm-file.cc: Likewise.
	* sm-malloc.cc: Likewise.
	* sm-pattern-test.cc: Likewise.
	* sm-sensitive.cc: Likewise.
	* sm-signal.cc: Likewise.
	* sm-taint.cc: Likewise.
	* sm.cc: Likewise.
	* sm.h: Likewise.
	* state-purge.h: Likewise.
	* supergraph.cc: Likewise.
	* supergraph.h: Likewise.

gcc/ChangeLog:
	PR analyzer/93307
	* gdbinit.in (break-on-saved-diagnostic): Update for move of
	diagnostic_manager into "ana" namespace.
	* selftest-run-tests.c (selftest::run_tests): Update for move of
	selftest::run_analyzer_selftests to
	ana::selftest::run_analyzer_selftests.
2020-01-22 14:18:31 -05:00
Ian Lance Taylor
68cbbe7cdc runtime: call runtime_nanotime1, not runtime_nanotime
The function name was changed in 1.14beta1. Fix the non-x86, non-s390 code.

Fixes golang/go#36694

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215724
2020-01-22 11:14:52 -08:00
Marek Polacek
e1fd040884 PR c++/92907 - noexcept does not consider "const" in member functions.
Here the problem is that if the noexcept specifier is used in the context
of a const member function, const is not considered for the member variables,
leading to a bogus error.  g's const makes its 'this' const, so the first
overload of f should be selected.

In cp_parser_noexcept_specification_opt we inject 'this', but always
unqualified:
25737           if (current_class_type)
25738             inject_this_parameter (current_class_type, TYPE_UNQUALIFIED);
so we need to pass the function's qualifiers down here.  In
cp_parser_direct_declarator it's easy: use the just parsed cv_quals, in
cp_parser_late_noexcept_specifier look at the 'this' parameter to figure it
out.

2020-01-22  Marek Polacek  <polacek@redhat.com>

	PR c++/92907 - noexcept does not consider "const" in member functions.
	* parser.c (cp_parser_lambda_declarator_opt): Pass the proper
	qualifiers to cp_parser_exception_specification_opt.
	(cp_parser_direct_declarator): Pass the function qualifiers to
	cp_parser_exception_specification_opt.
	(cp_parser_class_specifier_1): Pass the function declaration to
	cp_parser_late_noexcept_specifier.
	(cp_parser_late_noexcept_specifier): Add a tree parameter.  Use it to
	pass the qualifiers of the function to
	cp_parser_noexcept_specification_opt.
	(cp_parser_noexcept_specification_opt): New cp_cv_quals parameter.
	Use it in inject_this_parameter.
	(cp_parser_exception_specification_opt): New cp_cv_quals parameter.
	Use it.
	(cp_parser_transaction): Pass TYPE_UNQUALIFIED to
	cp_parser_noexcept_specification_opt.
	(cp_parser_transaction_expression): Likewise.

	* g++.dg/cpp0x/noexcept56.C: New test.
2020-01-22 12:30:15 -05:00