Commit graph

205345 commits

Author SHA1 Message Date
Gaius Mulley
0036702555 PR modula2/110779: Add reduced acinclude.m4 to allow interrogation of time features
This patch adds libgm2/acinclude.m4 and libgm2/configure.host which
are reduced versions from libstdc++-v3.  They currently allow for
discovering the time features available in libc and will be extended
to discover availability of ieee128 long double support in the near
future.  These files were also added to provide the functions:
GLIBCXX_CONFIGURE, GLIBCXX_CHECK_GETTIMEOFDAY and
GLIBCXX_ENABLE_LIBSTDCXX_TIME called by configure.ac.

libgm2/ChangeLog:

	PR modula2/110779
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove newline.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.
	* acinclude.m4: New file.
	* configure.host: New file.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-11-13 15:11:50 +00:00
Richard Earnshaw
a6ac36d80a arm: testsuite: improve compatibility of gcc.dg/debug/pr57351.c
This test is arm specific and requires neon.  To improve compatibility
add a new test for armv7-a with neon and use that.

gcc/testsuite:

	* lib/target-supports.exp (v7a_neon): New feature-test target.
	* gcc.dg/debug/pr57351.c: Use it.
2023-11-13 14:15:57 +00:00
Richard Earnshaw
1fb7440150 arm: testsuite: fix some more architecture tests
This fixes a bunch more tests that try to override the default architecture;
some partially used the framework for doing this, others just blindly
added a -march option, which was doomed to cause problems.  In most cases
we can now run these tests regardless of the users testing options and
the base compiler configuration.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
	Add test for v7a_arm.
	* gcc.target/arm/pr60650-2.c: Use require-effective-target and
	add-options.
	* gcc.target/arm/pr60657.c: Likewise.
	* gcc.target/arm/pr60663.c: Likewise.
	* gcc.target/arm/pr81863.c: Likewise.
	* gcc.target/arm/pr97969.c: Likewise.
	* gcc.target/arm/pr98931.c: Likewise.
	* gcc.target/arm/tail-long-call.c: Likewise.
2023-11-13 14:15:57 +00:00
Richard Earnshaw
fa3fa735db testsuite: arm: tighten up mode-specific ISA tests
Some of the standard Arm architecture tests require the test to use a
specific instruction set (arm or thumb).  But although the framework
was checking that the flag was accepted, it wasn't checking that the
flag wasn't somehow being override (eg by run-specific options).  We
can improve these tests easily by checking whether or not __thumb-_ is
defined.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
	For instruction-set specific tests, check that __thumb__ is, or
	isn't defined as appropriate.
2023-11-13 14:15:57 +00:00
Richard Earnshaw
47b3f2c84d arm: testsuite: improve compatibility of gcc.target/arm/pr59575.c
Use dg-require-effective-target/dg-add-options to improve
compatibility of this test with various compiler configurations.

gcc/testsuite:

	* gcc.target/arm/pr59575.c: Use dg-require-effective-target and
	dg-add-options.
2023-11-13 14:15:57 +00:00
Richard Earnshaw
cf86e67b15 arm: testsuite: improve compatibility of gcc.target/arm/pr19599.c
Add +fp to the architecture specification, so that -mfpu=auto works
with the hard-float ABI.

gcc/testsuite:

	* gcc.target/arm/pr19599.c: Add +fp to the architecture.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
511e5938d7 arm: testsuite: improve compatibility of gcc.target/arm/optional_thumb-*.c
These tests deliberately pass invalid option combinations to check
that the compiler is generating the correct diagnostic.  Nevertheless,
we can improve their compatibility with other testsuite options.  For
optional_thumb-1.c we use a soft-float ABI, while for
optional_thumb2.c we use arm_arch_v7em as the target architecture,
then set the architecture manually.

gcc/testsuite:

	* gcc.target/arm/optional_thumb-1.c: Force a soft-float ABI.
	* gcc.target/arm/optional_thumb-3.c: Check for armv7e-m compatibility,
	then set the architecture explicitly.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
5bc424925a arm: testsuite: improve compatibility of gcc.target/arm/macro_defs*.c
Convert these tests to use dg-add-options for increased compatibilty.
Since they also result in an empty translation unit, override the
default testsuite options.

gcc/testsuite:

	* gcc.target/arm/macro_defs0.c: Use dg-effective-target and
	dg-add-options.
	* gcc.target/arm/macro_defs1.c: Likewise.
	* gcc.target/arm/macro_defs2.c: Likewise.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
b9bed256c9 arm: testsuite: improve compatibility of ftest-armv7m-thumb.c
This test is specific to armv7m cores which do not support hardware
floating-point.  We can improve its compatibility by having the default
options for this core specify -mfloat-abi=soft.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
	Use soft-float ABI for armv7m.
	* gcc.target/arm/ftest-armv7m-thumb.c: Use dg-require-effective-target
	to check flag compatibility.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
929dc1f10d arm: testsuite: modernize framework usage for arm/scd42-2.c
Make this test more useful by using dg-require-effective-target/
dg-add-options.

gcc/testsuite:

	* gcc.target/arm/scd42-2.c: Use modern dg- flags.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
ea36e391e8 arm: testsuite: improve compatibility of pragma_arch_switch_2.c
This test was explicitly setting the architecture on the command-line and
in the body of the test.  In both cases this causes problems with the auto
FPU setting.  Fix by using the testsuite infrastructure correctly and by
adding +fp to the pragma.

gcc/testsuite:

	* gcc.target/arm/pragma_arch_switch_2.c: Use testsuite infrastructure
	to set the architecture flags.  Add +fp to the pragma that changes the
	architecture.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
40e25ea5b0 arm: testsuite: improve compatibility of pragma_arch_attribute*.c
These tests use pragmas adn attributes to change the architecture.
Sometimes they simply add a feature using "+crc", but other times they
try to completely reset the architecture using "arch=armv8-a+crc".
The latter fails on a hard-float ABI with -mfpu=auto because it also
clears the FP capability.  Fix by adding +simd when the full
architecture is specified.

gcc/testsuite:

	* gcc.target/arm/pragma_arch_attribute.c: Add +simd to pragmas that
	set an explicit architecture.
	* gcc.target/arm/pragma_arch_attribute_2.c: Likewise.
	* gcc.target/arm/pragma_arch_attribute_3.c: Likewise.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
c034b8f532 arm: testsuite: improve compatibility of pr88648-asm-syntax-unified.c
Fix another test that was trying to set the architecture directly
rather than using the infrastructure as intended.

gcc/testsuite:

	* gcc.target/arm/pr88648-asm-syntax-unified.c: It isn't necessary
	to try to override the architecture flags specified by arm_arch_v7a.
2023-11-13 14:15:56 +00:00
Richard Earnshaw
a92d0a4126 arm: testsuite: improve compatibility of arm/pr78353-*.c
Again, use the infrastructure available to improve the compatibility
of these tests.

gcc/testsuite:

	* gcc.target/arm/pr78353-1.c: Use dg-add-options to manage target
	flags.
	* gcc.target/arm/pr78353-2.c: Likewise.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
cec6144587 arm: testsuite: tidy up pr65647-2.c pre-checks.
Another case where we can make better use of the infrastructure to
improve the compatibility of this test.

gcc/testsuite:

	* gcc.target/arm/pr65647-2.c: Use dg-add-options to manage target
	flags.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
418ec7e743 arm: testsuite: improve compatibility of arm/lto/pr96939_1.c
This test overrides the architecture, but fails to specify the
floating point architecture.  This causes problems if -mfpu=auto is
used.

gcc/testsuite:

	* gcc.target/arm/lto/pr96939_1.c: Add +simd to the architecture
	specification.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
0fcc0eff65 arm: testsuite: tidy up pre-run check for g2.c
gcc.target/arm/g2.c is an xscale-only test, but the test is quite old
and we have improved the infrastructure for setting up such tests now.
So make use of that to reduce the number of cases where this test fails
to run.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
	Add entry to check for xscale.
	* gcc.target/arm/g2.c: Use it.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
f757ea72ed arm: testsuite: avoid problems with -mfpu=auto in attr_thumb-static2.c
This test overrides the architecture, but fails to describe which
floating-point features are needed.  This causes problems if the ABI
requires FP for parameter passing and -mfpu=auto is selected, so ensure
that one is specified.

gcc/testsuite:

	* gcc.target/arm/attr_thumb-static2.c: Add +fp to the -march
	specification.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
825652797c arm: testsuite: avoid problems with -mfpu=auto in attr-crypto.c
This test overrides the architecture, but fails to describe which
floating-point features are needed.  This causes problems if the ABI
requires FP for parameter passing and -mfpu=auto is selected, so ensure
that one is specified.

gcc/testsuite:

	* gcc.target/arm/attr-crypto.c: Add +simd to the -march
	specification.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
380f419773 arm: testsuite: avoid problems with -mfpu=auto in pacbti-m-predef-11.c
This test overrides the architecture, but fails to describe which
floating-point features are needed.  This causes problems if the ABI
requires FP for parameter passing and -mfpu=auto is selected, so ensure
that one is specified.

gcc/testsuite:

	* gcc.target/arm/acle/pacbti-m-predef-11.c: Add +fp to the -march
	specification.
2023-11-13 14:15:55 +00:00
Richard Earnshaw
ed52bc2e30 arm: testsuite: avoid hard-float ABI incompatibility with -march
A number of tests in the gcc testsuite, especially for arm-specific
targets, add various flags to control the architecture.  These run
into problems when the compiler is configured with -mfpu=auto if the
new architecture lacks an architectural feature that implies we have
floating-point instructions.

The testsuite makes this worse as it falls foul of this requirement in
the base architecture strings provided by target-supports.exp.

To fix this we add "+fp", or something equivalent to this, to all the
base architecture specifications.  The feature will be ignored if the
float ABI is set to soft.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
	Add base FPU specifications to all architectures that can support
	one.
2023-11-13 14:15:54 +00:00
Richard Earnshaw
ccbc8bd4d4 arm: testsuite: correctly detect hard_float
Add an arm-specific test to check_effective_target_hard_float for
Arm to handle cases where we only have single-precision FP in hardware.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_hard_float): Add
	arm-specific test.
2023-11-13 14:15:54 +00:00
Richard Earnshaw
04367b11ec arm: testsuite: correctly detect armv6t2 hardware for acle execution tests
Some of the ACLE tests for Arm are executable, but we were only testing
that the compiler could generate code for them, not that the hardware
was capable of executing them.  Fix this by adding an execution test for
suitable hardware.

gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_arm_arch_v6t2_hw_ok):
	New function.
	* gcc.target/arm/acle/data-intrinsics-armv6.c: Use it.
	* gcc.target/arm/acle/data-intrinsics-rbit.c: Likewise.
2023-11-13 14:15:54 +00:00
Richard Biener
0f593c0521 tree-optimization/112495 - alias versioning and address spaces
We are not correctly handling differing address spaces in dependence
analysis runtime alias check generation so refuse to do that.

	PR tree-optimization/112495
	* tree-data-ref.cc (runtime_alias_check_p): Reject checks
	between different address spaces.

	* gcc.target/i386/pr112495.c: New testcase.
2023-11-13 15:00:39 +01:00
Richard Biener
5021fa7076 middle-end/112487 - inline and parameter mismatch
When passing an aggregate to a implicitly declared function that's
later declared as receiving a register type we can run into a
sanity assert that cannot hold for such gross mismatches.  Instead
of asserting avoid emitting a debug temp that's invalid.

	PR middle-end/112487
	* tree-inline.cc (setup_one_parameter): When the parameter
	is unused only insert a debug bind when there's not a gross
	mismatch in value and declared parameter type.  Do not assert
	there effectively isn't.

	* gcc.dg/torture/pr112487.c: New testcase.
2023-11-13 15:00:39 +01:00
Richard Biener
a0b2abef4e tree-optimization/111792 - new testcase
This was fixed as part of the PR111000 fix.

	PR tree-optimization/111792
	PR tree-optimization/111000
	* gcc.dg/torture/pr111792.c: New testcase.
2023-11-13 13:40:29 +01:00
Juzhe-Zhong
e0cacaabca RISC-V: Adapt VLS init tests
Realize that init tests are wrong by my previous mistakes.
Fix them and committed.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/vls/def.h: Fix init test.
	* gcc.target/riscv/rvv/autovec/vls/init-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-3.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-4.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-5.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-6.c: Ditto.
	* gcc.target/riscv/rvv/autovec/vls/init-7.c: Ditto.
2023-11-13 20:01:39 +08:00
Juzhe-Zhong
ed3ce1c3bb RISC-V: Optimize combine sequence by merge approach
gcc/ChangeLog:

	* config/riscv/riscv-v.cc
	(rvv_builder::combine_sequence_use_merge_profitable_p): New function.
	(expand_vector_init_merge_combine_sequence): Ditto.
	(expand_vec_init): Adapt for new optimization.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge-1.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge-2.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-1.c: New test.
	* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-2.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-1.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-10.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-11.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-12.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-13.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-14.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-2.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-3.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-4.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-5.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-6.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-7.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-8.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/combine-merge-9.c: New test.
2023-11-13 19:09:08 +08:00
liuhongt
2794d510b9 Support vec_set/vec_extract/vec_init for V4HF/V2HF.
gcc/ChangeLog:

	* config/i386/i386-expand.cc
	(ix86_expand_vector_init_duplicate): Handle V4HF/V4BF and
	V2HF/V2BF.
	(ix86_expand_vector_init_one_nonzero): Ditto.
	(ix86_expand_vector_init_one_var): Ditto.
	(ix86_expand_vector_init_general): Ditto.
	(ix86_expand_vector_set_var): Ditto.
	(ix86_expand_vector_set): Ditto.
	(ix86_expand_vector_extract): Ditto.
	* config/i386/mmx.md
	(mmxdoublevecmode): Extend to V4HF/V4BF/V2HF/V2BF.
	(*mmx_pinsrw): Extend to V4FI_64, add a new alternative (&x,
	x, x), add a new define_split after the pattern.
	(*mmx_pextrw<mode>): New define_insn.
	(mmx_pshufw_1): Rename to ..
	(mmx_pshufw<mode>_1): .. this, extend to V4FI_64.
	(*mmx_pblendw64): Extend to V4FI_64.
	(*vec_dup<mode>): New define_insn.
	(vec_setv4hi): Rename to ..
	(vec_set<mode>): .. this, and extend to V4FI_64
	(vec_extractv4hihi): Rename to ..
	(vec_extract<mode><mmxscalarmodelower>): .. this, and extend
	to V4FI_64.
	(vec_init<mode><mmxscalarmodelower>): New define_insn.
	(*pinsrw): Extend to V2FI_32, add a new alternative (&x,
	x, x), and add a new define_split after it.
	(*pextrw<mode>): New define_insn.
	(vec_setv2hi): Rename to ..
	(vec_set<mode>): .. this, extend to V2FI_32.
	(vec_extractv2hihi): Rename to ..
	(vec_extract<mode><mmxscalarmodelower>): .. this, extend to
	V2FI_32.
	(*punpckwd): Extend to V2FI_32.
	(*pshufw_1): Rename to ..
	(*pshufw<mode>_1): .. this, extend to V2FI_32.
	(vec_initv2hihi): Rename to ..
	(vec_init<mode><mmxscalarmodelower>): .. this, and extend to
	V2FI_32.
	(*vec_dup<mode>): New define_insn.
	* config/i386/sse.md (*vec_extract<mode>): Refine constraint
	from v to Yw.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/part-vect-vec_elem-1.c: New test.
	* gcc.target/i386/part-vect-vec_elem-2.c: New test.
2023-11-13 18:36:12 +08:00
Roger Sayle
b51bfee1be ARC: Improved DImode rotates and right shifts by one bit.
This patch improves the code generated for DImode right shifts (both
arithmetic and logical) by a single bit, and also for DImode rotates
(both left and right) by a single bit.  In approach, this is similar
to the recently added DImode left shift by a single bit patch, but
also builds upon the x86's UNSPEC carry flag representation:
https://gcc.gnu.org/pipermail/gcc-patches/2023-October/632169.html

The benefits can be seen from the four new test cases:

long long ashr(long long x) { return x >> 1; }

Before:
ashr:   asl     r2,r1,31
        lsr_s   r0,r0
        or_s    r0,r0,r2
        j_s.d   [blink]
        asr_s   r1,r1,1

After:
ashr:   asr.f   r1,r1
        j_s.d   [blink]
        rrc     r0,r0

unsigned long long lshr(unsigned long long x) { return x >> 1; }

Before:
lshr:   asl     r2,r1,31
        lsr_s   r0,r0
        or_s    r0,r0,r2
        j_s.d   [blink]
        lsr_s   r1,r1

After:
lshr:	lsr.f   r1,r1
        j_s.d   [blink]
        rrc     r0,r0

unsigned long long rotl(unsigned long long x) { return (x<<1) | (x>>63); }

Before:
rotl:   lsr     r12,r1,31
        lsr     r2,r0,31
        asl_s   r3,r0,1
        asl_s   r1,r1,1
        or      r0,r12,r3
        j_s.d   [blink]
        or_s    r1,r1,r2

After:
rotl:   add.f   r0,r0,r0
        adc.f   r1,r1,r1
        j_s.d   [blink]
        add.cs  r0,r0,1

unsigned long long rotr(unsigned long long x) { return (x>>1) | (x<<63); }

Before:
rotr:   asl     r12,r1,31
        asl     r2,r0,31
        lsr_s   r3,r0
        lsr_s   r1,r1
        or      r0,r12,r3
        j_s.d   [blink]
        or_s    r1,r1,r2

After:
rotr:   asr.f   0,r0
        rrc.f   r1,r1
        j_s.d   [blink]
        rrc     r0,r0

On CPUs without a barrel shifter the improvements are even better.

2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
	* config/arc/arc.md (UNSPEC_ARC_CC_NEZ): New UNSPEC that
	represents the carry flag being set if the operand is non-zero.
	(adc_f): New define_insn representing adc with updated flags.
	(ashrdi3): New define_expand that only handles shifts by 1.
	(ashrdi3_cnt1): New pre-reload define_insn_and_split.
	(lshrdi3): New define_expand that only handles shifts by 1.
	(lshrdi3_cnt1): New pre-reload define_insn_and_split.
	(rrcsi2): New define_insn for rrc (SImode rotate right through carry).
	(rrcsi2_carry): Likewise for rrc.f, as above but updating flags.
	(rotldi3): New define_expand that only handles rotates by 1.
	(rotldi3_cnt1): New pre-reload define_insn_and_split.
	(rotrdi3): New define_expand that only handles rotates by 1.
	(rotrdi3_cnt1): New pre-reload define_insn_and_split.
	(lshrsi3_cnt1_carry): New define_insn for lsr.f.
	(ashrsi3_cnt1_carry): New define_insn for asr.f.
	(btst_0_carry): New define_insn for asr.f without result.

gcc/testsuite/ChangeLog
	* gcc.target/arc/ashrdi3-1.c: New test case.
	* gcc.target/arc/lshrdi3-1.c: Likewise.
	* gcc.target/arc/rotldi3-1.c: Likewise.
	* gcc.target/arc/rotrdi3-1.c: Likewise.
2023-11-13 09:16:59 +00:00
Roger Sayle
e9d59a2a5a ARC: Provide a TARGET_FOLD_BUILTIN target hook.
This patch implements a arc_fold_builtin target hook to allow ARC
builtins to be folded at the tree-level.  Currently this function
converts __builtin_arc_swap into a LROTATE_EXPR at the tree-level,
and evaluates __builtin_arc_norm and __builtin_arc_normw of integer
constant arguments at compile-time.  Because ARC_BUILTIIN_SWAP is
now handled at the tree-level, UNSPEC_ARC_SWAP no longer used,
allowing it and the "swap" define_insn to be removed.

An example benefit of folding things at compile-time is that
calling __builtin_arc_swap on the result of __builtin_arc_swap
now eliminates both and generates no code, and likewise calling
__builtin_arc_swap of a constant integer argument is evaluated
at compile-time.

2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
	* config/arc/arc.cc (TARGET_FOLD_BUILTIN): Define to
	arc_fold_builtin.
	(arc_fold_builtin): New function.  Convert ARC_BUILTIN_SWAP
	into a rotate.  Evaluate ARC_BUILTIN_NORM and
	ARC_BUILTIN_NORMW of constant arguments.
	* config/arc/arc.md (UNSPEC_ARC_SWAP): Delete.
	(normw): Make output template/assembler whitespace consistent.
	(swap): Remove define_insn, only use of SWAP UNSPEC.
	* config/arc/builtins.def: Tweak indentation.
	(SWAP): Expand using rotlsi2_cnt16 instead of using swap.

gcc/testsuite/ChangeLog
	* gcc.target/arc/builtin_norm-1.c: New test case.
	* gcc.target/arc/builtin_norm-2.c: Likewise.
	* gcc.target/arc/builtin_normw-1.c: Likewise.
	* gcc.target/arc/builtin_normw-2.c: Likewise.
	* gcc.target/arc/builtin_swap-1.c: Likewise.
	* gcc.target/arc/builtin_swap-2.c: Likewise.
	* gcc.target/arc/builtin_swap-3.c: Likewise.
2023-11-13 09:11:42 +00:00
Roger Sayle
0a140730c9 i386: Improve reg pressure of double word right shift then truncate.
This patch improves register pressure during reload, inspired by PR 97756.
Normally, a double-word right-shift by a constant produces a double-word
result, the highpart of which is dead when followed by a truncation.
The dead code calculating the high part gets cleaned up post-reload, so
the issue isn't normally visible, except for the increased register
pressure during reload, sometimes leading to odd register assignments.
Providing a post-reload splitter, which clobbers a single wordmode
result register instead of a doubleword result register, helps (a bit).

An example demonstrating this effect is:

unsigned long foo (__uint128_t n)
{
  unsigned long a = n & MASK60;
  unsigned long b = (n >> 60);
  b = b & MASK60;
  unsigned long c = (n >> 120);
  return a+b+c;
}

which currently with -O2 generates (13 instructions):
foo:    movabsq $1152921504606846975, %rcx
        xchgq   %rdi, %rsi
        movq    %rsi, %rax
        shrdq   $60, %rdi, %rax
        movq    %rax, %rdx
        movq    %rsi, %rax
        movq    %rdi, %rsi
        andq    %rcx, %rax
        shrq    $56, %rsi
        andq    %rcx, %rdx
        addq    %rsi, %rax
        addq    %rdx, %rax
        ret

with this patch, we generate one less mov (12 instructions):
foo:    movabsq $1152921504606846975, %rcx
        xchgq   %rdi, %rsi
        movq    %rdi, %rdx
        movq    %rsi, %rax
        movq    %rdi, %rsi
        shrdq   $60, %rdi, %rdx
        andq    %rcx, %rax
        shrq    $56, %rsi
        addq    %rsi, %rax
        andq    %rcx, %rdx
        addq    %rdx, %rax
        ret

The significant difference is easier to see via diff:
<       shrdq   $60, %rdi, %rax
<       movq    %rax, %rdx
---
>       shrdq   $60, %rdi, %rdx

Admittedly a single "mov" isn't much of a saving on modern architectures,
but as demonstrated by the PR, people still track the number of them.

2023-11-13  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
	* config/i386/i386.md (<insn><dwi>3_doubleword_lowpart): New
	define_insn_and_split to optimize register usage of doubleword
	right shifts followed by truncation.
2023-11-13 09:05:16 +00:00
Jakub Jelinek
56caf0b435 i386: Remove j constraint letter from list of unused letters
I've noticed the list of unused letters still list j, even when that
constraint letter is now the first letter of jr, jR, jm, j<, j>, jo, jV, jp,
ja, jb and jc constraints.

2023-11-13  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/constraints.md: Remove j constraint letter from list of
	unused letters.
2023-11-13 09:49:09 +01:00
Florian Weimer
fc649fe832 C99 testsuite readiness: Cleanup of execute tests
This change updates the gcc.c-torture/execute/ to avoid obsolete
language constructs.  In the changed tests, use of the features
appears to be accidental, and updating allows the tests run with
the default compiler flags.

gcc/testsuite/

	* gcc.c-torture/execute/20000112-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/20000113-1.c (foobar): Add missing
	void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/20000314-2.c (main): Likewise.
	* gcc.c-torture/execute/20000402-1.c (main): Likewise.
	* gcc.c-torture/execute/20000403-1.c (main): Likewise.
	* gcc.c-torture/execute/20000503-1.c (main): Likewise.
	* gcc.c-torture/execute/20000605-2.c (main): Likewise.
	* gcc.c-torture/execute/20000717-1.c (main): Likewise.
	* gcc.c-torture/execute/20000717-5.c (main): Likewise.
	* gcc.c-torture/execute/20000726-1.c (main): Likewise.
	* gcc.c-torture/execute/20000914-1.c(blah): Add missing
	void types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/20001009-1.c (main): Likewise.
	* gcc.c-torture/execute/20001013-1.c (main): Likewise.
	* gcc.c-torture/execute/20001031-1.c (main): Likewise.
	* gcc.c-torture/execute/20010221-1.c (main): Likewise.
	* gcc.c-torture/execute/20010723-1.c (main): Likewise.
	* gcc.c-torture/execute/20010915-1.c (s): Call
	__builtin_strcmp instead of strcmp.
	* gcc.c-torture/execute/20010924-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/20011128-1.c (main): Likewise.
	* gcc.c-torture/execute/20020226-1.c (main): Likewise.
	* gcc.c-torture/execute/20020328-1.c (foo): Add missing
	void types.
	* gcc.c-torture/execute/20020406-1.c (DUPFFexgcd): Call
	__builtin_printf instead of printf.
	(main): Likewise.
	* gcc.c-torture/execute/20020508-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/20020508-2.c (main): Likewise.
	* gcc.c-torture/execute/20020508-3.c (main): Likewise.
	* gcc.c-torture/execute/20020611-1.c (main): Likewise.
	* gcc.c-torture/execute/20021010-2.c (main): Likewise.
	* gcc.c-torture/execute/20021113-1.c (foo): Add missing
	void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/20021120-3.c (foo): Call
	__builtin_sprintf instead of sprintf.
	* gcc.c-torture/execute/20030125-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/20030216-1.c (main): Likewise.
	* gcc.c-torture/execute/20030404-1.c (main): Likewise.
	* gcc.c-torture/execute/20030606-1.c (main): Likewise.
	Call __builtin_memset instead of memset.
	* gcc.c-torture/execute/20030828-1.c (main): Add missing int
	and void types.
	* gcc.c-torture/execute/20030828-2.c (main): Likewise.
	* gcc.c-torture/execute/20031012-1.c: Call __builtin_strlen
	instead of strlen.
	* gcc.c-torture/execute/20031211-1.c (main): Add missing int
	and void types.
	* gcc.c-torture/execute/20040319-1.c (main): Likewise.
	* gcc.c-torture/execute/20040411-1.c (sub1): Call
	__builtin_memcpy instead of memcpy.
	* gcc.c-torture/execute/20040423-1.c (sub1): Likewise.
	* gcc.c-torture/execute/20040917-1.c (main): Add missing int
	and void types.
	* gcc.c-torture/execute/20050131-1.c (main): Likewise.
	* gcc.c-torture/execute/20051113-1.c (main): Likewise.
	* gcc.c-torture/execute/20121108-1.c (main): Call
	__builtin_printf instead of printf.
	* gcc.c-torture/execute/20170401-2.c (main): Add missing int
	and void types.
	* gcc.c-torture/execute/900409-1.c (main): Likewise.
	* gcc.c-torture/execute/920202-1.c (f): Add int return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/920302-1.c (execute): Add void return
	type.
	(main): Add missing int	and void types.
	* gcc.c-torture/execute/920410-1.c (main): Likewise.
	* gcc.c-torture/execute/920501-2.c (main): Likewise.
	* gcc.c-torture/execute/920501-3.c (execute): Add void return
	type.
	(main): Add missing int	and void types.
	* gcc.c-torture/execute/920501-5.c (x): Add int return type.
	(main): Add missing int	and void types.
	* gcc.c-torture/execute/920501-6.c (main): Add int return
	type.
	* gcc.c-torture/execute/920501-8.c (main): Add missing
	int and void types.  Call __builtin_strcmp instead of strcmp.
	* gcc.c-torture/execute/920506-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/920612-2.c (main): Likewise.
	* gcc.c-torture/execute/920618-1.c (main): Likewise.
	* gcc.c-torture/execute/920625-1.c (main): Likewise.
	* gcc.c-torture/execute/920710-1.c (main): Likewise.
	* gcc.c-torture/execute/920721-1.c (main): Likewise.
	* gcc.c-torture/execute/920721-4.c (main): Likewise.
	* gcc.c-torture/execute/920726-1.c (first, second): Call
	__builtin_strlen instead of strlen.
	(main): Add missing int	and void types.  Call __builtin_strcmp
	instead of strcmp.
	* gcc.c-torture/execute/920810-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/920829-1.c (main): Likewise.
	* gcc.c-torture/execute/920908-1.c (main): Likewise.
	* gcc.c-torture/execute/920922-1.c (main): Likewise.
	* gcc.c-torture/execute/920929-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/921006-1.c (main): Likewise.  Call
	__builtin_strcmp instead of strcmp.
	* gcc.c-torture/execute/921007-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/921016-1.c (main): Likewise.
	* gcc.c-torture/execute/921019-1.c (main): Likewise.
	* gcc.c-torture/execute/921019-2.c (main): Likewise.
	* gcc.c-torture/execute/921029-1.c (main): Likewise.
	* gcc.c-torture/execute/921104-1.c (main): Likewise.
	* gcc.c-torture/execute/921112-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/921113-1.c (w, f1, f2, gitter): Add
	void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/921117-1.c (check): Call
	__builtin_strcmp instead of strcmp.
	(main): Add missing int and void types.  Call __builtin_strcpy
	instead of strcpy.
	* gcc.c-torture/execute/921123-2.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/921202-2.c (main): Likewise.
	* gcc.c-torture/execute/921204-1.c (main): Likewise.
	* gcc.c-torture/execute/921208-1.c (main): Likewise.
	* gcc.c-torture/execute/930123-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930126-1.c (main): Likewise.
	* gcc.c-torture/execute/930406-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930408-1.c (p, f): Add missing void
	types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930429-1.c (main): Likewise.
	* gcc.c-torture/execute/930603-2.c (f): Add missing void
	types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930608-1.c (main): Likewise.
	* gcc.c-torture/execute/930614-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930614-2.c (main): Likewise.
	* gcc.c-torture/execute/930622-2.c (main): Likewise.
	* gcc.c-torture/execute/930628-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/930725-1.c (main): Likewise.  Call
	__builtin_strcmp instead of strcmp.
	* gcc.c-torture/execute/930930-2.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/931002-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-10.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-11.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-12.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-13.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-14.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-2.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-3.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-4.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-5.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-6.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-7.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-8.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931004-9.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/931005-1.c (main): Likewise.
	* gcc.c-torture/execute/931110-1.c (main): Likewise.
	* gcc.c-torture/execute/931110-2.c (main): Likewise.
	* gcc.c-torture/execute/941014-1.c (main): Likewise.
	* gcc.c-torture/execute/941014-2.c (main): Likewise.
	* gcc.c-torture/execute/941015-1.c (main): Likewise.
	* gcc.c-torture/execute/941021-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/941025-1.c (main): Likewise.
	* gcc.c-torture/execute/941031-1.c (main): Likewise.
	* gcc.c-torture/execute/950221-1.c (g2): Add int return type.
	(f): Add missing void types.  Call __builtin_strcpy instead
	of strcpy.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/950426-2.c (main): Likewise.
	* gcc.c-torture/execute/950503-1.c (main): Likewise.
	* gcc.c-torture/execute/950511-1.c (main): Likewise.
	* gcc.c-torture/execute/950607-1.c (main): Likewise.
	* gcc.c-torture/execute/950607-2.c (main): Likewise.
	* gcc.c-torture/execute/950612-1.c (main): Likewise.
	* gcc.c-torture/execute/950628-1.c (main): Likewise.
	* gcc.c-torture/execute/950704-1.c (main): Likewise.
	* gcc.c-torture/execute/950706-1.c (main): Likewise.
	* gcc.c-torture/execute/950710-1.c (main): Likewise.
	* gcc.c-torture/execute/950714-1.c (main): Likewise.
	* gcc.c-torture/execute/950809-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/950906-1.c (g, f): Add void return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/950915-1.c (main): Likewise.
	* gcc.c-torture/execute/950929-1.c (main): Likewise.
	* gcc.c-torture/execute/951003-1.c (f): Add missing int
	parameter type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/951115-1.c (g, f): Add void return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/951204-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960116-1.c (p): Add int return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960117-1.c (main): Likewise.
	* gcc.c-torture/execute/960209-1.c (main): Likewise.
	* gcc.c-torture/execute/960215-1.c (main): Likewise.
	* gcc.c-torture/execute/960219-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960301-1.c (main): Likewise.
	* gcc.c-torture/execute/960302-1.c (foo, main): Add missing
	int and void types.
	* gcc.c-torture/execute/960311-1.c (main): Likewise.
	* gcc.c-torture/execute/960311-2.c (main): Likewise.
	* gcc.c-torture/execute/960311-3.c (main): Likewise.
	* gcc.c-torture/execute/960312-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960317-1.c (main): Likewise.
	* gcc.c-torture/execute/960321-1.c (main): Likewise.
	* gcc.c-torture/execute/960326-1.c (main): Likewise.
	* gcc.c-torture/execute/960327-1.c (g, main): Add missing
	int and void types.
	(f): Add missing void types.
	* gcc.c-torture/execute/960405-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/960416-1.c (main): Likewise.
	* gcc.c-torture/execute/960419-1.c (main): Likewise.
	* gcc.c-torture/execute/960419-2.c (main): Likewise.
	* gcc.c-torture/execute/960512-1.c (main): Likewise.
	* gcc.c-torture/execute/960513-1.c (main): Likewise.
	* gcc.c-torture/execute/960521-1.c (f): Add missing void
	types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960608-1.c (f): Add int return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/960801-1.c (main): Likewise.
	* gcc.c-torture/execute/960802-1.c (main): Likewise.
	* gcc.c-torture/execute/960909-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/961004-1.c (main): Likewise.
	* gcc.c-torture/execute/961017-1.c (main): Likewise.
	* gcc.c-torture/execute/961017-2.c (main): Likewise.
	* gcc.c-torture/execute/961026-1.c (main): Likewise.
	* gcc.c-torture/execute/961122-1.c (addhi, subhi): Add void
	return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/961122-2.c (main): Likewise.
	* gcc.c-torture/execute/961125-1.c (main): Likewise.
	* gcc.c-torture/execute/961206-1.c (main): Likewise.
	* gcc.c-torture/execute/961213-1.c (main): Likewise.
	* gcc.c-torture/execute/970214-1.c (main): Likewise.
	* gcc.c-torture/execute/970214-2.c (main): Likewise.
	* gcc.c-torture/execute/970217-1.c (sub): Add int return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/970923-1.c (main): Likewise.
	* gcc.c-torture/execute/980223.c (main): Likewise.
	* gcc.c-torture/execute/980506-1.c (main): Likewise.
	* gcc.c-torture/execute/980506-2.c (main): Likewise.
	* gcc.c-torture/execute/980506-3.c (build_lookup): Call
	__builtin_strlen instead of strlen and __builtin_memset
	instead of memset.
	* gcc.c-torture/execute/980526-3.c (main): Likewise.
	* gcc.c-torture/execute/980602-1.c (main): Likewise.
	* gcc.c-torture/execute/980604-1.c (main): Likewise.
	* gcc.c-torture/execute/980605-1.c (dummy): Add missing int
	parameter type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/980701-1.c (ns_name_skip): Add missing
	int return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/980709-1.c (main): Likewise.
	* gcc.c-torture/execute/990117-1.c (main): Likewise.
	* gcc.c-torture/execute/990127-1.c (main): Likewise.
	* gcc.c-torture/execute/990128-1.c (main): Likewise.
	* gcc.c-torture/execute/990130-1.c (main): Likewise.
	* gcc.c-torture/execute/990324-1.c (main): Likewise.
	* gcc.c-torture/execute/990524-1.c (main): Likewise.
	* gcc.c-torture/execute/990531-1.c (main): Likewise.
	* gcc.c-torture/execute/990628-1.c (fetch, load_data): Call
	__builtin_memset instead of memset.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/991019-1.c (main): Likewise.
	* gcc.c-torture/execute/991023-1.c (foo, main): Likewise.
	* gcc.c-torture/execute/991112-1.c (isprint): Declare.
	* gcc.c-torture/execute/991118-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/alias-1.c (ptr2): Add cast to float *
	in initializer.
	(typepun): Add missing void types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/alias-2.c (main): Likewise.
	* gcc.c-torture/execute/alias-3.c (inc): Add missing
	void types.
	* gcc.c-torture/execute/alias-4.c (main): Add missing int
	return type.
	* gcc.c-torture/execute/arith-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/arith-rand-ll.c (main): Likewise.
	* gcc.c-torture/execute/arith-rand.c (main): Likewise.
	* gcc.c-torture/execute/bf-layout-1.c (main): Likewise.
	* gcc.c-torture/execute/bf-pack-1.c (foo): Add missing
	void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/bf-sign-1.c (main): Likewise.
	* gcc.c-torture/execute/bf-sign-2.c (main): Likewise.
	* gcc.c-torture/execute/bf64-1.c (main): Likewise.
	* gcc.c-torture/execute/builtin-prefetch-2.c (stat_int_arr):
	Add missing int array element type.
	* gcc.c-torture/execute/builtin-prefetch-3.c (stat_int_arr):
	Likewise.
	* gcc.c-torture/execute/cbrt.c (main): Add missing int and
	void types.
	* gcc.c-torture/execute/complex-1.c (main): Likewise.
	* gcc.c-torture/execute/complex-2.c (main): Likewise.
	* gcc.c-torture/execute/complex-3.c (main): Likewise.
	* gcc.c-torture/execute/complex-4.c (main): Likewise.
	* gcc.c-torture/execute/complex-5.c (main): Likewise.
	* gcc.c-torture/execute/compndlit-1.c (main): Likewise.
	* gcc.c-torture/execute/conversion.c (test_integer_to_float)
	(test_longlong_integer_to_float, test_float_to_integer)
	(test_float_to_longlong_integer): Add missing void return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/cvt-1.c (main): Likewise.
	* gcc.c-torture/execute/divconst-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/divconst-2.c (main): Likewise.
	* gcc.c-torture/execute/divconst-3.c (main): Likewise.
	* gcc.c-torture/execute/enum-1.c (main): Likewise.
	* gcc.c-torture/execute/func-ptr-1.c (main): Likewise.
	* gcc.c-torture/execute/ieee/20011123-1.c (main): Likewise.
	* gcc.c-torture/execute/ieee/920518-1.c (main): Likewise.
	* gcc.c-torture/execute/ieee/920810-1.c (main): Likewise.
	Call __builtin_strcmp instead of strcmp.
	* gcc.c-torture/execute/ieee/930529-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/ieee/fp-cmp-1.c (main): Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-2.c (main): Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-3.c (main): Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-6.c (main): Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-9.c (main): Likewise.
	* gcc.c-torture/execute/ieee/minuszero.c (main): Likewise.
	* gcc.c-torture/execute/ieee/mzero2.c (expect): Call
	__builtin_memcmp instead of memcmp.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/ieee/mzero3.c (main): Likewise.
	(expectd, expectf): Call __builtin_memcmp instead of memcmp.
	* gcc.c-torture/execute/ieee/mzero5.c (negzero_check):
	Likewise.
	* gcc.c-torture/execute/ieee/rbug.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/index-1.c (main): Likewise.
	* gcc.c-torture/execute/loop-1.c (main): Likewise.
	* gcc.c-torture/execute/loop-2b.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/loop-6.c (main): Likewise.
	* gcc.c-torture/execute/loop-7.c (main): Likewise.
	* gcc.c-torture/execute/lto-tbaa-1.c (use_a, set_b, use_c):
	Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/memcpy-1.c (main): Likewise.
	* gcc.c-torture/execute/memcpy-2.c (main): Likewise.
	* gcc.c-torture/execute/memcpy-bi.c (main): Likewise.
	* gcc.c-torture/execute/memset-1.c (main): Likewise.
	* gcc.c-torture/execute/memset-2.c: Include <string.h>.
	* gcc.c-torture/execute/memset-3.c: Likewise.
	* gcc.c-torture/execute/nest-stdar-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/nestfunc-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/packed-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/pr15262-1.c (main): Likewise.  Call
	__builtin_malloc instead of malloc.
	* gcc.c-torture/execute/pr15262-2.c (foo): Add int return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/pr15262.c (main): Likewise.
	* gcc.c-torture/execute/pr17252.c (main): Likewise.
	* gcc.c-torture/execute/pr21331.c (main): Likewise.
	* gcc.c-torture/execute/pr34176.c (foo): Add missing int
	type to definition of foo.
	* gcc.c-torture/execute/pr42231.c (max): Add missing int type
	to definition.
	* gcc.c-torture/execute/pr42614.c (expect_func): Call
	__builtin_abs instead of abs.
	* gcc.c-torture/execute/pr54937.c (t): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/ptr-arith-1.c (main): Likewise.
	* gcc.c-torture/execute/regstack-1.c (main): Likewise.
	* gcc.c-torture/execute/scope-1.c (f): Add missing void types.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/simd-5.c (main): Call __builtin_memcmp
	instead of memcmp.
	* gcc.c-torture/execute/strcmp-1.c (main): Add missing
	int and void types.
	* gcc.c-torture/execute/strcpy-1.c (main): Likewise.
	* gcc.c-torture/execute/strct-pack-1.c (main): Likewise.
	* gcc.c-torture/execute/strct-pack-2.c (main): Likewise.
	* gcc.c-torture/execute/strct-pack-4.c (main): Likewise.
	* gcc.c-torture/execute/strct-stdarg-1.c (f): Add void return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/strct-varg-1.c (f): Add void return
	type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/strlen-1.c (main): Likewise.
	* gcc.c-torture/execute/strncmp-1.c (main): Likewise.
	* gcc.c-torture/execute/struct-ini-1.c (main): Likewise.
	* gcc.c-torture/execute/struct-ini-2.c (main): Likewise.
	* gcc.c-torture/execute/struct-ini-3.c (main): Likewise.
	* gcc.c-torture/execute/struct-ini-4.c (main): Likewise.
	* gcc.c-torture/execute/struct-ret-1.c (main): Likewise.
	* gcc.c-torture/execute/struct-ret-2.c (main): Likewise.
	* gcc.c-torture/execute/va-arg-1.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/va-arg-10.c (main): Likewise.
	* gcc.c-torture/execute/va-arg-2.c (main): Likewise.
	* gcc.c-torture/execute/va-arg-4.c (main): Likewise.
	* gcc.c-torture/execute/va-arg-5.c (va_double)
	(va_long_double): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/va-arg-6.c (f): Add void return type.
	(main): Add missing int and void types.
	* gcc.c-torture/execute/va-arg-9.c (main): Likewise.
	* gcc.c-torture/execute/widechar-1.c (main): Likewise.
2023-11-13 08:54:11 +01:00
Florian Weimer
8fe6a58dbb C99 testsuite readiness: Add missing abort, exit declarations
The execute tests use abort/exit to report failure/success, but
they generally do not declare these functions (or include <stdlib.h>).
This change adds declarations as appropriate.

It would have been possible to switch to __builtin_abort and
__builtin_exit instead.  Existing practice varies.  Adding the
declarations makes it easier to write the GNU-style commit message
because it is not necessary to mention the function with the call
site.

Instead of this change, it would be possible to create a special
header file with the declarations that is included during the
test file compilation using -include, but that would mean that
many tests would no longer build standalone.

gcc/testsuite/ChangeLog:

	* gcc.c-torture/execute/20000112-1.c: Declare exit and abort
	as appropriate.
	* gcc.c-torture/execute/20000113-1.c: Likewise.
	* gcc.c-torture/execute/20000205-1.c: Likewise.
	* gcc.c-torture/execute/20000217-1.c: Likewise.
	* gcc.c-torture/execute/20000223-1.c: Likewise.
	* gcc.c-torture/execute/20000224-1.c: Likewise.
	* gcc.c-torture/execute/20000225-1.c: Likewise.
	* gcc.c-torture/execute/20000227-1.c: Likewise.
	* gcc.c-torture/execute/20000313-1.c: Likewise.
	* gcc.c-torture/execute/20000314-1.c: Likewise.
	* gcc.c-torture/execute/20000314-2.c: Likewise.
	* gcc.c-torture/execute/20000314-3.c: Likewise.
	* gcc.c-torture/execute/20000402-1.c: Likewise.
	* gcc.c-torture/execute/20000403-1.c: Likewise.
	* gcc.c-torture/execute/20000412-1.c: Likewise.
	* gcc.c-torture/execute/20000412-2.c: Likewise.
	* gcc.c-torture/execute/20000412-4.c: Likewise.
	* gcc.c-torture/execute/20000412-5.c: Likewise.
	* gcc.c-torture/execute/20000412-6.c: Likewise.
	* gcc.c-torture/execute/20000419-1.c: Likewise.
	* gcc.c-torture/execute/20000422-1.c: Likewise.
	* gcc.c-torture/execute/20000503-1.c: Likewise.
	* gcc.c-torture/execute/20000511-1.c: Likewise.
	* gcc.c-torture/execute/20000519-1.c: Likewise.
	* gcc.c-torture/execute/20000519-2.c: Likewise.
	* gcc.c-torture/execute/20000523-1.c: Likewise.
	* gcc.c-torture/execute/20000528-1.c: Likewise.
	* gcc.c-torture/execute/20000603-1.c: Likewise.
	* gcc.c-torture/execute/20000605-1.c: Likewise.
	* gcc.c-torture/execute/20000605-2.c: Likewise.
	* gcc.c-torture/execute/20000605-3.c: Likewise.
	* gcc.c-torture/execute/20000622-1.c: Likewise.
	* gcc.c-torture/execute/20000717-1.c: Likewise.
	* gcc.c-torture/execute/20000717-2.c: Likewise.
	* gcc.c-torture/execute/20000717-5.c: Likewise.
	* gcc.c-torture/execute/20000722-1.c: Likewise.
	* gcc.c-torture/execute/20000726-1.c: Likewise.
	* gcc.c-torture/execute/20000731-1.c: Likewise.
	* gcc.c-torture/execute/20000731-2.c: Likewise.
	* gcc.c-torture/execute/20000801-3.c: Likewise.
	* gcc.c-torture/execute/20000801-4.c: Likewise.
	* gcc.c-torture/execute/20000808-1.c: Likewise.
	* gcc.c-torture/execute/20000815-1.c: Likewise.
	* gcc.c-torture/execute/20000818-1.c: Likewise.
	* gcc.c-torture/execute/20000819-1.c: Likewise.
	* gcc.c-torture/execute/20000822-1.c: Likewise.
	* gcc.c-torture/execute/20000914-1.c: Likewise.
	* gcc.c-torture/execute/20000917-1.c: Likewise.
	* gcc.c-torture/execute/20001009-1.c: Likewise.
	* gcc.c-torture/execute/20001009-2.c: Likewise.
	* gcc.c-torture/execute/20001013-1.c: Likewise.
	* gcc.c-torture/execute/20001017-1.c: Likewise.
	* gcc.c-torture/execute/20001017-2.c: Likewise.
	* gcc.c-torture/execute/20001024-1.c: Likewise.
	* gcc.c-torture/execute/20001027-1.c: Likewise.
	* gcc.c-torture/execute/20001101.c: Likewise.
	* gcc.c-torture/execute/20001108-1.c: Likewise.
	* gcc.c-torture/execute/20001112-1.c: Likewise.
	* gcc.c-torture/execute/20001124-1.c: Likewise.
	* gcc.c-torture/execute/20001130-1.c: Likewise.
	* gcc.c-torture/execute/20001130-2.c: Likewise.
	* gcc.c-torture/execute/20001203-2.c: Likewise.
	* gcc.c-torture/execute/20001221-1.c: Likewise.
	* gcc.c-torture/execute/20001228-1.c: Likewise.
	* gcc.c-torture/execute/20001229-1.c: Likewise.
	* gcc.c-torture/execute/20010106-1.c: Likewise.
	* gcc.c-torture/execute/20010118-1.c: Likewise.
	* gcc.c-torture/execute/20010119-1.c: Likewise.
	* gcc.c-torture/execute/20010206-1.c: Likewise.
	* gcc.c-torture/execute/20010209-1.c: Likewise.
	* gcc.c-torture/execute/20010221-1.c: Likewise.
	* gcc.c-torture/execute/20010222-1.c: Likewise.
	* gcc.c-torture/execute/20010329-1.c: Likewise.
	* gcc.c-torture/execute/20010403-1.c: Likewise.
	* gcc.c-torture/execute/20010409-1.c: Likewise.
	* gcc.c-torture/execute/20010422-1.c: Likewise.
	* gcc.c-torture/execute/20010518-1.c: Likewise.
	* gcc.c-torture/execute/20010518-2.c: Likewise.
	* gcc.c-torture/execute/20010520-1.c: Likewise.
	* gcc.c-torture/execute/20010604-1.c: Likewise.
	* gcc.c-torture/execute/20010711-1.c: Likewise.
	* gcc.c-torture/execute/20010723-1.c: Likewise.
	* gcc.c-torture/execute/20010904-1.c: Likewise.
	* gcc.c-torture/execute/20010904-2.c: Likewise.
	* gcc.c-torture/execute/20010915-1.c: Likewise.
	* gcc.c-torture/execute/20010924-1.c: Likewise.
	* gcc.c-torture/execute/20011024-1.c: Likewise.
	* gcc.c-torture/execute/20011109-1.c: Likewise.
	* gcc.c-torture/execute/20011109-2.c: Likewise.
	* gcc.c-torture/execute/20011114-1.c: Likewise.
	* gcc.c-torture/execute/20011121-1.c: Likewise.
	* gcc.c-torture/execute/20011126-1.c: Likewise.
	* gcc.c-torture/execute/20011128-1.c: Likewise.
	* gcc.c-torture/execute/20011217-1.c: Likewise.
	* gcc.c-torture/execute/20020213-1.c: Likewise.
	* gcc.c-torture/execute/20020215-1.c: Likewise.
	* gcc.c-torture/execute/20020225-2.c: Likewise.
	* gcc.c-torture/execute/20020226-1.c: Likewise.
	* gcc.c-torture/execute/20020227-1.c: Likewise.
	* gcc.c-torture/execute/20020307-1.c: Likewise.
	* gcc.c-torture/execute/20020328-1.c: Likewise.
	* gcc.c-torture/execute/20020404-1.c: Likewise.
	* gcc.c-torture/execute/20020406-1.c: Likewise.
	* gcc.c-torture/execute/20020413-1.c: Likewise.
	* gcc.c-torture/execute/20020418-1.c: Likewise.
	* gcc.c-torture/execute/20020508-1.c: Likewise.
	* gcc.c-torture/execute/20020508-2.c: Likewise.
	* gcc.c-torture/execute/20020508-3.c: Likewise.
	* gcc.c-torture/execute/20020529-1.c: Likewise.
	* gcc.c-torture/execute/20020611-1.c: Likewise.
	* gcc.c-torture/execute/20020615-1.c: Likewise.
	* gcc.c-torture/execute/20020619-1.c: Likewise.
	* gcc.c-torture/execute/20020904-1.c: Likewise.
	* gcc.c-torture/execute/20020916-1.c: Likewise.
	* gcc.c-torture/execute/20021010-1.c: Likewise.
	* gcc.c-torture/execute/20021113-1.c: Likewise.
	* gcc.c-torture/execute/20021118-1.c: Likewise.
	* gcc.c-torture/execute/20021118-2.c: Likewise.
	* gcc.c-torture/execute/20021120-1.c: Likewise.
	* gcc.c-torture/execute/20021120-2.c: Likewise.
	* gcc.c-torture/execute/20021120-3.c: Likewise.
	* gcc.c-torture/execute/20030105-1.c: Likewise.
	* gcc.c-torture/execute/20030109-1.c: Likewise.
	* gcc.c-torture/execute/20030117-1.c: Likewise.
	* gcc.c-torture/execute/20030120-1.c: Likewise.
	* gcc.c-torture/execute/20030125-1.c: Likewise.
	* gcc.c-torture/execute/20030128-1.c: Likewise.
	* gcc.c-torture/execute/20030209-1.c: Likewise.
	* gcc.c-torture/execute/20030222-1.c: Likewise.
	* gcc.c-torture/execute/20030316-1.c: Likewise.
	* gcc.c-torture/execute/20030403-1.c: Likewise.
	* gcc.c-torture/execute/20030404-1.c: Likewise.
	* gcc.c-torture/execute/20030501-1.c: Likewise.
	* gcc.c-torture/execute/20030606-1.c: Likewise.
	* gcc.c-torture/execute/20030828-1.c: Likewise.
	* gcc.c-torture/execute/20030828-2.c: Likewise.
	* gcc.c-torture/execute/20030903-1.c: Likewise.
	* gcc.c-torture/execute/20030910-1.c: Likewise.
	* gcc.c-torture/execute/20030913-1.c: Likewise.
	* gcc.c-torture/execute/20030914-1.c: Likewise.
	* gcc.c-torture/execute/20030914-2.c: Likewise.
	* gcc.c-torture/execute/20030916-1.c: Likewise.
	* gcc.c-torture/execute/20030928-1.c: Likewise.
	* gcc.c-torture/execute/20031010-1.c: Likewise.
	* gcc.c-torture/execute/20031201-1.c: Likewise.
	* gcc.c-torture/execute/20031204-1.c: Likewise.
	* gcc.c-torture/execute/20031211-1.c: Likewise.
	* gcc.c-torture/execute/20040208-1.c: Likewise.
	* gcc.c-torture/execute/20040218-1.c: Likewise.
	* gcc.c-torture/execute/20040307-1.c: Likewise.
	* gcc.c-torture/execute/20040319-1.c: Likewise.
	* gcc.c-torture/execute/20040411-1.c: Likewise.
	* gcc.c-torture/execute/20040423-1.c: Likewise.
	* gcc.c-torture/execute/20040625-1.c: Likewise.
	* gcc.c-torture/execute/20040703-1.c: Likewise.
	* gcc.c-torture/execute/20040706-1.c: Likewise.
	* gcc.c-torture/execute/20040707-1.c: Likewise.
	* gcc.c-torture/execute/20040805-1.c: Likewise.
	* gcc.c-torture/execute/20040917-1.c: Likewise.
	* gcc.c-torture/execute/20041011-1.c: Likewise.
	* gcc.c-torture/execute/20041113-1.c: Likewise.
	* gcc.c-torture/execute/20041124-1.c: Likewise.
	* gcc.c-torture/execute/20041210-1.c: Likewise.
	* gcc.c-torture/execute/20041212-1.c: Likewise.
	* gcc.c-torture/execute/20050410-1.c: Likewise.
	* gcc.c-torture/execute/20051113-1.c: Likewise.
	* gcc.c-torture/execute/20070623-1.c: Likewise.
	* gcc.c-torture/execute/20091229-1.c: Likewise.
	* gcc.c-torture/execute/20101025-1.c: Likewise.
	* gcc.c-torture/execute/20120817-1.c: Likewise.
	* gcc.c-torture/execute/20170401-2.c: Likewise.
	* gcc.c-torture/execute/900409-1.c: Likewise.
	* gcc.c-torture/execute/920202-1.c: Likewise.
	* gcc.c-torture/execute/920302-1.c: Likewise.
	* gcc.c-torture/execute/920410-1.c: Likewise.
	* gcc.c-torture/execute/920501-2.c: Likewise.
	* gcc.c-torture/execute/920501-3.c: Likewise.
	* gcc.c-torture/execute/920501-4.c: Likewise.
	* gcc.c-torture/execute/920501-5.c: Likewise.
	* gcc.c-torture/execute/920501-6.c: Likewise.
	* gcc.c-torture/execute/920501-8.c: Likewise.
	* gcc.c-torture/execute/920506-1.c: Likewise.
	* gcc.c-torture/execute/920604-1.c: Likewise.
	* gcc.c-torture/execute/920612-2.c: Likewise.
	* gcc.c-torture/execute/920618-1.c: Likewise.
	* gcc.c-torture/execute/920625-1.c: Likewise.
	* gcc.c-torture/execute/920710-1.c: Likewise.
	* gcc.c-torture/execute/920721-1.c: Likewise.
	* gcc.c-torture/execute/920721-4.c: Likewise.
	* gcc.c-torture/execute/920726-1.c: Likewise.
	* gcc.c-torture/execute/920829-1.c: Likewise.
	* gcc.c-torture/execute/920908-1.c: Likewise.
	* gcc.c-torture/execute/920922-1.c: Likewise.
	* gcc.c-torture/execute/920929-1.c: Likewise.
	* gcc.c-torture/execute/921006-1.c: Likewise.
	* gcc.c-torture/execute/921007-1.c: Likewise.
	* gcc.c-torture/execute/921016-1.c: Likewise.
	* gcc.c-torture/execute/921019-1.c: Likewise.
	* gcc.c-torture/execute/921019-2.c: Likewise.
	* gcc.c-torture/execute/921029-1.c: Likewise.
	* gcc.c-torture/execute/921104-1.c: Likewise.
	* gcc.c-torture/execute/921112-1.c: Likewise.
	* gcc.c-torture/execute/921113-1.c: Likewise.
	* gcc.c-torture/execute/921117-1.c: Likewise.
	* gcc.c-torture/execute/921123-2.c: Likewise.
	* gcc.c-torture/execute/921202-2.c: Likewise.
	* gcc.c-torture/execute/921204-1.c: Likewise.
	* gcc.c-torture/execute/921208-1.c: Likewise.
	* gcc.c-torture/execute/930123-1.c: Likewise.
	* gcc.c-torture/execute/930126-1.c: Likewise.
	* gcc.c-torture/execute/930406-1.c: Likewise.
	* gcc.c-torture/execute/930408-1.c: Likewise.
	* gcc.c-torture/execute/930429-1.c: Likewise.
	* gcc.c-torture/execute/930603-2.c: Likewise.
	* gcc.c-torture/execute/930608-1.c: Likewise.
	* gcc.c-torture/execute/930614-1.c: Likewise.
	* gcc.c-torture/execute/930614-2.c: Likewise.
	* gcc.c-torture/execute/930622-2.c: Likewise.
	* gcc.c-torture/execute/930628-1.c: Likewise.
	* gcc.c-torture/execute/930725-1.c: Likewise.
	* gcc.c-torture/execute/930930-2.c: Likewise.
	* gcc.c-torture/execute/931002-1.c: Likewise.
	* gcc.c-torture/execute/931004-1.c: Likewise.
	* gcc.c-torture/execute/931004-10.c: Likewise.
	* gcc.c-torture/execute/931004-11.c: Likewise.
	* gcc.c-torture/execute/931004-12.c: Likewise.
	* gcc.c-torture/execute/931004-13.c: Likewise.
	* gcc.c-torture/execute/931004-14.c: Likewise.
	* gcc.c-torture/execute/931004-2.c: Likewise.
	* gcc.c-torture/execute/931004-3.c: Likewise.
	* gcc.c-torture/execute/931004-4.c: Likewise.
	* gcc.c-torture/execute/931004-5.c: Likewise.
	* gcc.c-torture/execute/931004-6.c: Likewise.
	* gcc.c-torture/execute/931004-7.c: Likewise.
	* gcc.c-torture/execute/931004-8.c: Likewise.
	* gcc.c-torture/execute/931004-9.c: Likewise.
	* gcc.c-torture/execute/931005-1.c: Likewise.
	* gcc.c-torture/execute/931110-1.c: Likewise.
	* gcc.c-torture/execute/931110-2.c: Likewise.
	* gcc.c-torture/execute/941014-1.c: Likewise.
	* gcc.c-torture/execute/941015-1.c: Likewise.
	* gcc.c-torture/execute/941021-1.c: Likewise.
	* gcc.c-torture/execute/941025-1.c: Likewise.
	* gcc.c-torture/execute/941031-1.c: Likewise.
	* gcc.c-torture/execute/950221-1.c: Likewise.
	* gcc.c-torture/execute/950426-2.c: Likewise.
	* gcc.c-torture/execute/950503-1.c: Likewise.
	* gcc.c-torture/execute/950511-1.c: Likewise.
	* gcc.c-torture/execute/950607-1.c: Likewise.
	* gcc.c-torture/execute/950607-2.c: Likewise.
	* gcc.c-torture/execute/950612-1.c: Likewise.
	* gcc.c-torture/execute/950628-1.c: Likewise.
	* gcc.c-torture/execute/950704-1.c: Likewise.
	* gcc.c-torture/execute/950706-1.c: Likewise.
	* gcc.c-torture/execute/950710-1.c: Likewise.
	* gcc.c-torture/execute/950714-1.c: Likewise.
	* gcc.c-torture/execute/950809-1.c: Likewise.
	* gcc.c-torture/execute/950906-1.c: Likewise.
	* gcc.c-torture/execute/950915-1.c: Likewise.
	* gcc.c-torture/execute/950929-1.c: Likewise.
	* gcc.c-torture/execute/951003-1.c: Likewise.
	* gcc.c-torture/execute/951115-1.c: Likewise.
	* gcc.c-torture/execute/951204-1.c: Likewise.
	* gcc.c-torture/execute/960116-1.c: Likewise.
	* gcc.c-torture/execute/960117-1.c: Likewise.
	* gcc.c-torture/execute/960209-1.c: Likewise.
	* gcc.c-torture/execute/960215-1.c: Likewise.
	* gcc.c-torture/execute/960219-1.c: Likewise.
	* gcc.c-torture/execute/960301-1.c: Likewise.
	* gcc.c-torture/execute/960302-1.c: Likewise.
	* gcc.c-torture/execute/960311-1.c: Likewise.
	* gcc.c-torture/execute/960311-2.c: Likewise.
	* gcc.c-torture/execute/960311-3.c: Likewise.
	* gcc.c-torture/execute/960312-1.c: Likewise.
	* gcc.c-torture/execute/960317-1.c: Likewise.
	* gcc.c-torture/execute/960321-1.c: Likewise.
	* gcc.c-torture/execute/960326-1.c: Likewise.
	* gcc.c-torture/execute/960327-1.c: Likewise.
	* gcc.c-torture/execute/960405-1.c: Likewise.
	* gcc.c-torture/execute/960416-1.c: Likewise.
	* gcc.c-torture/execute/960419-1.c: Likewise.
	* gcc.c-torture/execute/960419-2.c: Likewise.
	* gcc.c-torture/execute/960512-1.c: Likewise.
	* gcc.c-torture/execute/960513-1.c: Likewise.
	* gcc.c-torture/execute/960608-1.c: Likewise.
	* gcc.c-torture/execute/960801-1.c: Likewise.
	* gcc.c-torture/execute/960802-1.c: Likewise.
	* gcc.c-torture/execute/960909-1.c: Likewise.
	* gcc.c-torture/execute/961004-1.c: Likewise.
	* gcc.c-torture/execute/961017-1.c: Likewise.
	* gcc.c-torture/execute/961017-2.c: Likewise.
	* gcc.c-torture/execute/961026-1.c: Likewise.
	* gcc.c-torture/execute/961122-1.c: Likewise.
	* gcc.c-torture/execute/961122-2.c: Likewise.
	* gcc.c-torture/execute/961125-1.c: Likewise.
	* gcc.c-torture/execute/961206-1.c: Likewise.
	* gcc.c-torture/execute/961213-1.c: Likewise.
	* gcc.c-torture/execute/970214-1.c: Likewise.
	* gcc.c-torture/execute/970214-2.c: Likewise.
	* gcc.c-torture/execute/970217-1.c: Likewise.
	* gcc.c-torture/execute/970923-1.c: Likewise.
	* gcc.c-torture/execute/980205.c: Likewise.
	* gcc.c-torture/execute/980223.c: Likewise.
	* gcc.c-torture/execute/980424-1.c: Likewise.
	* gcc.c-torture/execute/980505-1.c: Likewise.
	* gcc.c-torture/execute/980505-2.c: Likewise.
	* gcc.c-torture/execute/980506-1.c: Likewise.
	* gcc.c-torture/execute/980506-2.c: Likewise.
	* gcc.c-torture/execute/980506-3.c: Likewise.
	* gcc.c-torture/execute/980526-1.c: Likewise.
	* gcc.c-torture/execute/980526-2.c: Likewise.
	* gcc.c-torture/execute/980526-3.c: Likewise.
	* gcc.c-torture/execute/980602-1.c: Likewise.
	* gcc.c-torture/execute/980602-2.c: Likewise.
	* gcc.c-torture/execute/980604-1.c: Likewise.
	* gcc.c-torture/execute/980605-1.c: Likewise.
	* gcc.c-torture/execute/980612-1.c: Likewise.
	* gcc.c-torture/execute/980617-1.c: Likewise.
	* gcc.c-torture/execute/980618-1.c: Likewise.
	* gcc.c-torture/execute/980701-1.c: Likewise.
	* gcc.c-torture/execute/980709-1.c: Likewise.
	* gcc.c-torture/execute/980716-1.c: Likewise.
	* gcc.c-torture/execute/980929-1.c: Likewise.
	* gcc.c-torture/execute/981001-1.c: Likewise.
	* gcc.c-torture/execute/981019-1.c: Likewise.
	* gcc.c-torture/execute/981130-1.c: Likewise.
	* gcc.c-torture/execute/981206-1.c: Likewise.
	* gcc.c-torture/execute/990106-2.c: Likewise.
	* gcc.c-torture/execute/990117-1.c: Likewise.
	* gcc.c-torture/execute/990128-1.c: Likewise.
	* gcc.c-torture/execute/990130-1.c: Likewise.
	* gcc.c-torture/execute/990208-1.c: Likewise.
	* gcc.c-torture/execute/990222-1.c: Likewise.
	* gcc.c-torture/execute/990324-1.c: Likewise.
	* gcc.c-torture/execute/990326-1.c: Likewise.
	* gcc.c-torture/execute/990404-1.c: Likewise.
	* gcc.c-torture/execute/990513-1.c: Likewise.
	* gcc.c-torture/execute/990524-1.c: Likewise.
	* gcc.c-torture/execute/990525-1.c: Likewise.
	* gcc.c-torture/execute/990525-2.c: Likewise.
	* gcc.c-torture/execute/990527-1.c: Likewise.
	* gcc.c-torture/execute/990531-1.c: Likewise.
	* gcc.c-torture/execute/990604-1.c: Likewise.
	* gcc.c-torture/execute/990804-1.c: Likewise.
	* gcc.c-torture/execute/990811-1.c: Likewise.
	* gcc.c-torture/execute/990826-0.c: Likewise.
	* gcc.c-torture/execute/990827-1.c: Likewise.
	* gcc.c-torture/execute/990829-1.c: Likewise.
	* gcc.c-torture/execute/990923-1.c: Likewise.
	* gcc.c-torture/execute/991014-1.c: Likewise.
	* gcc.c-torture/execute/991016-1.c: Likewise.
	* gcc.c-torture/execute/991019-1.c: Likewise.
	* gcc.c-torture/execute/991023-1.c: Likewise.
	* gcc.c-torture/execute/991030-1.c: Likewise.
	* gcc.c-torture/execute/991112-1.c: Likewise.
	* gcc.c-torture/execute/991118-1.c: Likewise.
	* gcc.c-torture/execute/991201-1.c: Likewise.
	* gcc.c-torture/execute/991202-1.c: Likewise.
	* gcc.c-torture/execute/991202-2.c: Likewise.
	* gcc.c-torture/execute/991202-3.c: Likewise.
	* gcc.c-torture/execute/991216-1.c: Likewise.
	* gcc.c-torture/execute/991216-2.c: Likewise.
	* gcc.c-torture/execute/991216-4.c: Likewise.
	* gcc.c-torture/execute/991221-1.c: Likewise.
	* gcc.c-torture/execute/991227-1.c: Likewise.
	* gcc.c-torture/execute/991228-1.c: Likewise.
	* gcc.c-torture/execute/align-1.c: Likewise.
	* gcc.c-torture/execute/align-2.c: Likewise.
	* gcc.c-torture/execute/align-3.c: Likewise.
	* gcc.c-torture/execute/alloca-1.c: Likewise.
	* gcc.c-torture/execute/anon-1.c: Likewise.
	* gcc.c-torture/execute/arith-1.c: Likewise.
	* gcc.c-torture/execute/arith-rand-ll.c: Likewise.
	* gcc.c-torture/execute/arith-rand.c: Likewise.
	* gcc.c-torture/execute/bf-layout-1.c: Likewise.
	* gcc.c-torture/execute/bf-pack-1.c: Likewise.
	* gcc.c-torture/execute/bf-sign-1.c: Likewise.
	* gcc.c-torture/execute/bf-sign-2.c: Likewise.
	* gcc.c-torture/execute/bf64-1.c: Likewise.
	* gcc.c-torture/execute/builtin-constant.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-1.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-2.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-3.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-4.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-5.c: Likewise.
	* gcc.c-torture/execute/builtin-prefetch-6.c: Likewise.
	* gcc.c-torture/execute/builtin-types-compatible-p.c: Likewise.
	* gcc.c-torture/execute/cbrt.c: Likewise.
	* gcc.c-torture/execute/complex-1.c: Likewise.
	* gcc.c-torture/execute/complex-2.c: Likewise.
	* gcc.c-torture/execute/complex-3.c: Likewise.
	* gcc.c-torture/execute/complex-4.c: Likewise.
	* gcc.c-torture/execute/complex-5.c: Likewise.
	* gcc.c-torture/execute/compndlit-1.c: Likewise.
	* gcc.c-torture/execute/conversion.c: Likewise.
	* gcc.c-torture/execute/cvt-1.c: Likewise.
	* gcc.c-torture/execute/divconst-1.c: Likewise.
	* gcc.c-torture/execute/divconst-2.c: Likewise.
	* gcc.c-torture/execute/divconst-3.c: Likewise.
	* gcc.c-torture/execute/enum-1.c: Likewise.
	* gcc.c-torture/execute/enum-2.c: Likewise.
	* gcc.c-torture/execute/extzvsi.c: Likewise.
	* gcc.c-torture/execute/frame-address.c: Likewise.
	* gcc.c-torture/execute/func-ptr-1.c: Likewise.
	* gcc.c-torture/execute/gofast.c: Likewise.
	* gcc.c-torture/execute/ieee/20000320-1.c: Likewise.
	* gcc.c-torture/execute/ieee/20001122-1.c: Likewise.
	* gcc.c-torture/execute/ieee/20010226-1.c: Likewise.
	* gcc.c-torture/execute/ieee/20011123-1.c: Likewise.
	* gcc.c-torture/execute/ieee/920518-1.c: Likewise.
	* gcc.c-torture/execute/ieee/920810-1.c: Likewise.
	* gcc.c-torture/execute/ieee/930529-1.c: Likewise.
	* gcc.c-torture/execute/ieee/980619-1.c: Likewise.
	* gcc.c-torture/execute/ieee/acc1.c: Likewise.
	* gcc.c-torture/execute/ieee/acc2.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-1.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-2.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-3.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-4.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-5.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-6.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-8.c: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-9.c: Likewise.
	* gcc.c-torture/execute/ieee/hugeval.c: Likewise.
	* gcc.c-torture/execute/ieee/minuszero.c: Likewise.
	* gcc.c-torture/execute/ieee/mul-subnormal-single-1.c: Likewise.
	* gcc.c-torture/execute/ieee/mzero2.c: Likewise.
	* gcc.c-torture/execute/ieee/mzero3.c: Likewise.
	* gcc.c-torture/execute/ieee/mzero5.c: Likewise.
	* gcc.c-torture/execute/ieee/mzero6.c: Likewise.
	* gcc.c-torture/execute/ieee/pr28634.c: Likewise.
	* gcc.c-torture/execute/ieee/rbug.c: Likewise.
	* gcc.c-torture/execute/index-1.c: Likewise.
	* gcc.c-torture/execute/longlong.c: Likewise.
	* gcc.c-torture/execute/loop-1.c: Likewise.
	* gcc.c-torture/execute/loop-10.c: Likewise.
	* gcc.c-torture/execute/loop-11.c: Likewise.
	* gcc.c-torture/execute/loop-13.c: Likewise.
	* gcc.c-torture/execute/loop-14.c: Likewise.
	* gcc.c-torture/execute/loop-15.c: Likewise.
	* gcc.c-torture/execute/loop-2b.c: Likewise.
	* gcc.c-torture/execute/loop-2e.c: Likewise.
	* gcc.c-torture/execute/loop-4.c: Likewise.
	* gcc.c-torture/execute/loop-4b.c: Likewise.
	* gcc.c-torture/execute/loop-5.c: Likewise.
	* gcc.c-torture/execute/loop-6.c: Likewise.
	* gcc.c-torture/execute/loop-7.c: Likewise.
	* gcc.c-torture/execute/loop-8.c: Likewise.
	* gcc.c-torture/execute/memcpy-1.c: Likewise.
	* gcc.c-torture/execute/memcpy-2.c: Likewise.
	* gcc.c-torture/execute/memcpy-bi.c: Likewise.
	* gcc.c-torture/execute/memset-1.c: Likewise.
	* gcc.c-torture/execute/memset-2.c: Likewise.
	* gcc.c-torture/execute/memset-3.c: Likewise.
	* gcc.c-torture/execute/multdi-1.c: Likewise.
	* gcc.c-torture/execute/multi-ix.c: Likewise.
	* gcc.c-torture/execute/nest-stdar-1.c: Likewise.
	* gcc.c-torture/execute/nestfunc-1.c: Likewise.
	* gcc.c-torture/execute/nestfunc-2.c: Likewise.
	* gcc.c-torture/execute/nestfunc-3.c: Likewise.
	* gcc.c-torture/execute/nestfunc-4.c: Likewise.
	* gcc.c-torture/execute/packed-1.c: Likewise.
	* gcc.c-torture/execute/pending-4.c: Likewise.
	* gcc.c-torture/execute/pr15262-1.c: Likewise.
	* gcc.c-torture/execute/pr15262-2.c: Likewise.
	* gcc.c-torture/execute/pr15262.c: Likewise.
	* gcc.c-torture/execute/pr15296.c: Likewise.
	* gcc.c-torture/execute/pr17252.c: Likewise.
	* gcc.c-torture/execute/pr17377.c: Likewise.
	* gcc.c-torture/execute/pr19606.c: Likewise.
	* gcc.c-torture/execute/pr21964-1.c: Likewise.
	* gcc.c-torture/execute/pr22061-2.c: Likewise.
	* gcc.c-torture/execute/pr22061-3.c: Likewise.
	* gcc.c-torture/execute/pr22061-4.c: Likewise.
	* gcc.c-torture/execute/pr23467.c: Likewise.
	* gcc.c-torture/execute/pr27073.c: Likewise.
	* gcc.c-torture/execute/pr27364.c: Likewise.
	* gcc.c-torture/execute/pr28403.c: Likewise.
	* gcc.c-torture/execute/pr31605.c: Likewise.
	* gcc.c-torture/execute/pr38969.c: Likewise.
	* gcc.c-torture/execute/pr40657.c: Likewise.
	* gcc.c-torture/execute/pr44575.c: Likewise.
	* gcc.c-torture/execute/pr56799.c: Likewise.
	* gcc.c-torture/execute/pr58640.c: Likewise.
	* gcc.c-torture/execute/pr71335.c: Likewise.
	* gcc.c-torture/execute/ptr-arith-1.c: Likewise.
	* gcc.c-torture/execute/regstack-1.c: Likewise.
	* gcc.c-torture/execute/scope-1.c: Likewise.
	* gcc.c-torture/execute/simd-1.c: Likewise.
	* gcc.c-torture/execute/simd-2.c: Likewise.
	* gcc.c-torture/execute/simd-4.c: Likewise.
	* gcc.c-torture/execute/simd-5.c: Likewise.
	* gcc.c-torture/execute/strcmp-1.c: Likewise.
	* gcc.c-torture/execute/strcpy-1.c: Likewise.
	* gcc.c-torture/execute/strct-pack-1.c: Likewise.
	* gcc.c-torture/execute/strct-pack-2.c: Likewise.
	* gcc.c-torture/execute/strct-pack-4.c: Likewise.
	* gcc.c-torture/execute/strct-stdarg-1.c: Likewise.
	* gcc.c-torture/execute/strct-varg-1.c: Likewise.
	* gcc.c-torture/execute/strlen-1.c: Likewise.
	* gcc.c-torture/execute/strncmp-1.c: Likewise.
	* gcc.c-torture/execute/struct-ini-1.c: Likewise.
	* gcc.c-torture/execute/struct-ini-2.c: Likewise.
	* gcc.c-torture/execute/struct-ini-3.c: Likewise.
	* gcc.c-torture/execute/struct-ini-4.c: Likewise.
	* gcc.c-torture/execute/struct-ret-1.c: Likewise.
	* gcc.c-torture/execute/struct-ret-2.c: Likewise.
	* gcc.c-torture/execute/usmul.c: Likewise.
	* gcc.c-torture/execute/va-arg-1.c: Likewise.
	* gcc.c-torture/execute/va-arg-10.c: Likewise.
	* gcc.c-torture/execute/va-arg-11.c: Likewise.
	* gcc.c-torture/execute/va-arg-12.c: Likewise.
	* gcc.c-torture/execute/va-arg-13.c: Likewise.
	* gcc.c-torture/execute/va-arg-14.c: Likewise.
	* gcc.c-torture/execute/va-arg-15.c: Likewise.
	* gcc.c-torture/execute/va-arg-16.c: Likewise.
	* gcc.c-torture/execute/va-arg-17.c: Likewise.
	* gcc.c-torture/execute/va-arg-18.c: Likewise.
	* gcc.c-torture/execute/va-arg-19.c: Likewise.
	* gcc.c-torture/execute/va-arg-2.c: Likewise.
	* gcc.c-torture/execute/va-arg-20.c: Likewise.
	* gcc.c-torture/execute/va-arg-23.c: Likewise.
	* gcc.c-torture/execute/va-arg-26.c: Likewise.
	* gcc.c-torture/execute/va-arg-4.c: Likewise.
	* gcc.c-torture/execute/va-arg-5.c: Likewise.
	* gcc.c-torture/execute/va-arg-6.c: Likewise.
	* gcc.c-torture/execute/va-arg-9.c: Likewise.
	* gcc.c-torture/execute/widechar-1.c: Likewise.
	* gcc.c-torture/execute/widechar-2.c: Likewise.
2023-11-13 08:54:11 +01:00
Florian Weimer
adb562b670 C99 testsuite readiness: Compile more tests with -std=gnu89
gcc/testsuite/

	* gcc.c-torture/compile/386.c: Compile with -std=gnu89.
	* gcc.c-torture/compile/BUG1.c: Likewise.
	* gcc.c-torture/compile/BUG11.c: Likewise.
	* gcc.c-torture/compile/BUG16.c: Likewise.
	* gcc.c-torture/compile/BUG2.c: Likewise.
	* gcc.c-torture/compile/BUG24.c: Likewise.
	* gcc.c-torture/compile/BUG25.c: Likewise.
	* gcc.c-torture/compile/BUG3.c: Likewise.
	* gcc.c-torture/compile/DFcmp.c: Likewise.
	* gcc.c-torture/compile/HIcmp.c: Likewise.
	* gcc.c-torture/compile/HIset.c: Likewise.
	* gcc.c-torture/compile/QIcmp.c: Likewise.
	* gcc.c-torture/compile/QIset.c: Likewise.
	* gcc.c-torture/compile/SFset.c: Likewise.
	* gcc.c-torture/compile/SIcmp.c: Likewise.
	* gcc.c-torture/compile/SIset.c: Likewise.
	* gcc.c-torture/compile/UHIcmp.c: Likewise.
	* gcc.c-torture/compile/UQIcmp.c: Likewise.
	* gcc.c-torture/compile/USIcmp.c: Likewise.
	* gcc.c-torture/compile/a.c: Likewise.
	* gcc.c-torture/compile/a1.c: Likewise.
	* gcc.c-torture/compile/a3.c: Likewise.
	* gcc.c-torture/compile/aa.c: Likewise.
	* gcc.c-torture/compile/aaa.c: Likewise.
	* gcc.c-torture/compile/abs.c: Likewise.
	* gcc.c-torture/compile/ac.c: Likewise.
	* gcc.c-torture/compile/acc.c: Likewise.
	* gcc.c-torture/compile/add.c: Likewise.
	* gcc.c-torture/compile/add386.c: Likewise.
	* gcc.c-torture/compile/addcc.c: Likewise.
	* gcc.c-torture/compile/andm.c: Likewise.
	* gcc.c-torture/compile/andmem.c: Likewise.
	* gcc.c-torture/compile/andn.c: Likewise.
	* gcc.c-torture/compile/andok.c: Likewise.
	* gcc.c-torture/compile/andsi.c: Likewise.
	* gcc.c-torture/compile/andsparc.c: Likewise.
	* gcc.c-torture/compile/aos.c: Likewise.
	* gcc.c-torture/compile/arr.c: Likewise.
	* gcc.c-torture/compile/as.c: Likewise.
	* gcc.c-torture/compile/ase.c: Likewise.
	* gcc.c-torture/compile/band.c: Likewise.
	* gcc.c-torture/compile/bb0.c: Likewise.
	* gcc.c-torture/compile/bb1.c: Likewise.
	* gcc.c-torture/compile/bc.c: Likewise.
	* gcc.c-torture/compile/bcopy.c: Likewise.
	* gcc.c-torture/compile/bfx.c: Likewise.
	* gcc.c-torture/compile/bge.c: Likewise.
	* gcc.c-torture/compile/bit.c: Likewise.
	* gcc.c-torture/compile/bitf.c: Likewise.
	* gcc.c-torture/compile/bitw.c: Likewise.
	* gcc.c-torture/compile/blk.c: Likewise.
	* gcc.c-torture/compile/bt386.c: Likewise.
	* gcc.c-torture/compile/bug.c: Likewise.
	* gcc.c-torture/compile/buns.c: Likewise.
	* gcc.c-torture/compile/c.c: Likewise.
	* gcc.c-torture/compile/c2.c: Likewise.
	* gcc.c-torture/compile/call.c: Likewise.
	* gcc.c-torture/compile/callind.c: Likewise.
	* gcc.c-torture/compile/calls-void.c: Likewise.
	* gcc.c-torture/compile/calls.c: Likewise.
	* gcc.c-torture/compile/cc.c: Likewise.
	* gcc.c-torture/compile/cmb.c: Likewise.
	* gcc.c-torture/compile/cmpsi386.c: Likewise.
	* gcc.c-torture/compile/cmul.c: Likewise.
	* gcc.c-torture/compile/comb.c: Likewise.
	* gcc.c-torture/compile/consec.c: Likewise.
	* gcc.c-torture/compile/const.c: Likewise.
	* gcc.c-torture/compile/conv_tst.c: Likewise.
	* gcc.c-torture/compile/cvt.c: Likewise.
	* gcc.c-torture/compile/dbl_parm.c: Likewise.
	* gcc.c-torture/compile/dblbug.c: Likewise.
	* gcc.c-torture/compile/dead.c: Likewise.
	* gcc.c-torture/compile/delay.c: Likewise.
	* gcc.c-torture/compile/di.c: Likewise.
	* gcc.c-torture/compile/div.c: Likewise.
	* gcc.c-torture/compile/dm.c: Likewise.
	* gcc.c-torture/compile/dshift.c: Likewise.
	* gcc.c-torture/compile/e.c: Likewise.
	* gcc.c-torture/compile/ex.c: Likewise.
	* gcc.c-torture/compile/ext.c: Likewise.
	* gcc.c-torture/compile/flo.c: Likewise.
	* gcc.c-torture/compile/forgetcc.c: Likewise.
	* gcc.c-torture/compile/g.c: Likewise.
	* gcc.c-torture/compile/gen_tst.c: Likewise.
	* gcc.c-torture/compile/gronk.c: Likewise.
	* gcc.c-torture/compile/hi.c: Likewise.
	* gcc.c-torture/compile/i.c: Likewise.
	* gcc.c-torture/compile/icmp.c: Likewise.
	* gcc.c-torture/compile/ifreg.c: Likewise.
	* gcc.c-torture/compile/jumptab.c: Likewise.
	* gcc.c-torture/compile/l.c: Likewise.
	* gcc.c-torture/compile/layout.c: Likewise.
	* gcc.c-torture/compile/lll.c: Likewise.
	* gcc.c-torture/compile/load8.c: Likewise.
	* gcc.c-torture/compile/loadhicc.c: Likewise.
	* gcc.c-torture/compile/log2.c: Likewise.
	* gcc.c-torture/compile/logic.c: Likewise.
	* gcc.c-torture/compile/loop-1.c: Likewise.
	* gcc.c-torture/compile/loop386.c: Likewise.
	* gcc.c-torture/compile/lop.c: Likewise.
	* gcc.c-torture/compile/m1.c: Likewise.
	* gcc.c-torture/compile/m5.c: Likewise.
	* gcc.c-torture/compile/m68.c: Likewise.
	* gcc.c-torture/compile/mbyte.c: Likewise.
	* gcc.c-torture/compile/mcmp.c: Likewise.
	* gcc.c-torture/compile/mm.c: Likewise.
	* gcc.c-torture/compile/mod.c: Likewise.
	* gcc.c-torture/compile/modcc.c: Likewise.
	* gcc.c-torture/compile/move.c: Likewise.
	* gcc.c-torture/compile/move_qhi.c: Likewise.
	* gcc.c-torture/compile/mregtst.c: Likewise.
	* gcc.c-torture/compile/mu.c: Likewise.
	* gcc.c-torture/compile/mword.c: Likewise.
	* gcc.c-torture/compile/n.c: Likewise.
	* gcc.c-torture/compile/n1.c: Likewise.
	* gcc.c-torture/compile/nand.c: Likewise.
	* gcc.c-torture/compile/neg.c: Likewise.
	* gcc.c-torture/compile/o.c: Likewise.
	* gcc.c-torture/compile/omit.c: Likewise.
	* gcc.c-torture/compile/opout.c: Likewise.
	* gcc.c-torture/compile/opt.c: Likewise.
	* gcc.c-torture/compile/or.c: Likewise.
	* gcc.c-torture/compile/or386.c: Likewise.
	* gcc.c-torture/compile/p.c: Likewise.
	* gcc.c-torture/compile/parms.c: Likewise.
	* gcc.c-torture/compile/pass.c: Likewise.
	* gcc.c-torture/compile/pp.c: Likewise.
	* gcc.c-torture/compile/pret-arg.c: Likewise.
	* gcc.c-torture/compile/pyr.c: Likewise.
	* gcc.c-torture/compile/pyr2.c: Likewise.
	* gcc.c-torture/compile/r.c: Likewise.
	* gcc.c-torture/compile/r1.c: Likewise.
	* gcc.c-torture/compile/rmsc.c: Likewise.
	* gcc.c-torture/compile/round.c: Likewise.
	* gcc.c-torture/compile/sc.c: Likewise.
	* gcc.c-torture/compile/scal.c: Likewise.
	* gcc.c-torture/compile/scc.c: Likewise.
	* gcc.c-torture/compile/scond.c: Likewise.
	* gcc.c-torture/compile/seq.c: Likewise.
	* gcc.c-torture/compile/set386.c: Likewise.
	* gcc.c-torture/compile/set88.c: Likewise.
	* gcc.c-torture/compile/sh.c: Likewise.
	* gcc.c-torture/compile/shand.c: Likewise.
	* gcc.c-torture/compile/shft.c: Likewise.
	* gcc.c-torture/compile/shift.c: Likewise.
	* gcc.c-torture/compile/signext.c: Likewise.
	* gcc.c-torture/compile/signext2.c: Likewise.
	* gcc.c-torture/compile/simple.c: Likewise.
	* gcc.c-torture/compile/sparcbug.c: Likewise.
	* gcc.c-torture/compile/stor.c: Likewise.
	* gcc.c-torture/compile/str.c: Likewise.
	* gcc.c-torture/compile/structret.c: Likewise.
	* gcc.c-torture/compile/sub32.c: Likewise.
	* gcc.c-torture/compile/subcc.c: Likewise.
	* gcc.c-torture/compile/subcse.c: Likewise.
	* gcc.c-torture/compile/sym.c: Likewise.
	* gcc.c-torture/compile/symconst.c: Likewise.
	* gcc.c-torture/compile/t.c: Likewise.
	* gcc.c-torture/compile/test-flow.c: Likewise.
	* gcc.c-torture/compile/test-loop.c: Likewise.
	* gcc.c-torture/compile/test.c: Likewise.
	* gcc.c-torture/compile/tmp.c: Likewise.
	* gcc.c-torture/compile/trivial.c: Likewise.
	* gcc.c-torture/compile/trunc.c: Likewise.
	* gcc.c-torture/compile/u.c: Likewise.
	* gcc.c-torture/compile/uns.c: Likewise.
	* gcc.c-torture/compile/uns_tst.c: Likewise.
	* gcc.c-torture/compile/uuarg.c: Likewise.
	* gcc.c-torture/compile/volatile-1.c: Likewise.
	* gcc.c-torture/compile/ww.c: Likewise.
	* gcc.c-torture/compile/x.c: Likewise.
	* gcc.c-torture/compile/xb.c: Likewise.
	* gcc.c-torture/compile/xc.c: Likewise.
	* gcc.c-torture/compile/xdi.c: Likewise.
	* gcc.c-torture/compile/xfoo.c: Likewise.
	* gcc.c-torture/compile/xi.c: Likewise.
	* gcc.c-torture/compile/xlop.c: Likewise.
	* gcc.c-torture/compile/xneg.c: Likewise.
	* gcc.c-torture/compile/xopt.c: Likewise.
	* gcc.c-torture/compile/xor.c: Likewise.
	* gcc.c-torture/compile/xorn.c: Likewise.
	* gcc.c-torture/compile/xp.c: Likewise.
	* gcc.c-torture/compile/xpp.c: Likewise.
	* gcc.c-torture/compile/xs.c: Likewise.
	* gcc.c-torture/compile/xsh.c: Likewise.
	* gcc.c-torture/compile/xzz.c: Likewise.
	* gcc.c-torture/compile/zero-strct-1.c: Likewise.
	* gcc.c-torture/execute/20000717-3.c: Likewise.
	* gcc.c-torture/execute/920409-1.c: Likewise.
	* gcc.c-torture/execute/920411-1.c: Likewise.
	* gcc.c-torture/execute/920415-1.c: Likewise.
	* gcc.c-torture/execute/920428-1.c: Likewise.
	* gcc.c-torture/execute/920428-2.c: Likewise.
	* gcc.c-torture/execute/920429-1.c: Likewise.
	* gcc.c-torture/execute/920501-1.c: Likewise.
	* gcc.c-torture/execute/920501-7.c: Likewise.
	* gcc.c-torture/execute/920501-9.c: Likewise.
	* gcc.c-torture/execute/920520-1.c: Likewise.
	* gcc.c-torture/execute/920603-1.c: Likewise.
	* gcc.c-torture/execute/920721-2.c: Likewise.
	* gcc.c-torture/execute/920721-3.c: Likewise.
	* gcc.c-torture/execute/920728-1.c: Likewise.
	* gcc.c-torture/execute/920730-1.c: Likewise.
	* gcc.c-torture/execute/920731-1.c: Likewise.
	* gcc.c-torture/execute/920812-1.c: Likewise.
	* gcc.c-torture/execute/920909-1.c: Likewise.
	* gcc.c-torture/execute/921013-1.c: Likewise.
	* gcc.c-torture/execute/921017-1.c: Likewise.
	* gcc.c-torture/execute/921123-1.c: Likewise.
	* gcc.c-torture/execute/921124-1.c: Likewise.
	* gcc.c-torture/execute/921202-1.c: Likewise.
	* gcc.c-torture/execute/921207-1.c: Likewise.
	* gcc.c-torture/execute/921208-2.c: Likewise.
	* gcc.c-torture/execute/921215-1.c: Likewise.
	* gcc.c-torture/execute/921218-1.c: Likewise.
	* gcc.c-torture/execute/921218-2.c: Likewise.
	* gcc.c-torture/execute/930106-1.c: Likewise.
	* gcc.c-torture/execute/930429-2.c: Likewise.
	* gcc.c-torture/execute/930513-1.c: Likewise.
	* gcc.c-torture/execute/930513-2.c: Likewise.
	* gcc.c-torture/execute/930518-1.c: Likewise.
	* gcc.c-torture/execute/930527-1.c: Likewise.
	* gcc.c-torture/execute/930603-1.c: Likewise.
	* gcc.c-torture/execute/930603-3.c: Likewise.
	* gcc.c-torture/execute/930621-1.c: Likewise.
	* gcc.c-torture/execute/930622-1.c: Likewise.
	* gcc.c-torture/execute/930630-1.c: Likewise.
	* gcc.c-torture/execute/930713-1.c: Likewise.
	* gcc.c-torture/execute/930718-1.c: Likewise.
	* gcc.c-torture/execute/930719-1.c: Likewise.
	* gcc.c-torture/execute/930916-1.c: Likewise.
	* gcc.c-torture/execute/930921-1.c: Likewise.
	* gcc.c-torture/execute/930929-1.c: Likewise.
	* gcc.c-torture/execute/930930-1.c: Likewise.
	* gcc.c-torture/execute/931009-1.c: Likewise.
	* gcc.c-torture/execute/931012-1.c: Likewise.
	* gcc.c-torture/execute/931031-1.c: Likewise.
	* gcc.c-torture/execute/931102-1.c: Likewise.
	* gcc.c-torture/execute/931102-2.c: Likewise.
	* gcc.c-torture/execute/931228-1.c: Likewise.
	* gcc.c-torture/execute/940115-1.c: Likewise.
	* gcc.c-torture/execute/940122-1.c: Likewise.
	* gcc.c-torture/execute/941202-1.c: Likewise.
	* gcc.c-torture/execute/950605-1.c: Likewise.
	* gcc.c-torture/execute/960830-1.c: Likewise.
	* gcc.c-torture/execute/961112-1.c: Likewise.
	* gcc.c-torture/execute/990106-1.c: Likewise.
	* gcc.c-torture/execute/cmpdi-1.c: Likewise.
	* gcc.c-torture/execute/comp-goto-2.c: Likewise.
	* gcc.c-torture/execute/dbra-1.c: Likewise.
	* gcc.c-torture/execute/inst-check.c: Likewise.
	* gcc.c-torture/execute/int-compare.c: Likewise.
	* gcc.c-torture/execute/loop-2.c: Likewise.
	* gcc.c-torture/execute/loop-2d.c: Likewise.
	* gcc.c-torture/execute/loop-3.c: Likewise.
	* gcc.c-torture/execute/loop-3b.c: Likewise.
	* gcc.c-torture/execute/loop-3c.c: Likewise.
	* gcc.c-torture/execute/mod-1.c: Likewise.
	* gcc.c-torture/execute/strct-pack-3.c: Likewise.
	* gcc.c-torture/execute/tstdi-1.c: Likewise.
2023-11-13 08:54:11 +01:00
Florian Weimer
5c432b0efa C99 testsuite readiness: More unverified testcase un-reductions
gcc/testsuite/

	* gcc.c-torture/compile/BUG17.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/BUG18.c (main): Likewise.  Call
	__builtin_printf instead of printf.
	* gcc.c-torture/compile/BUG21.c (Nase): Add missing void
	types.
	* gcc.c-torture/compile/BUG23.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/BUG5.c (bar): Call
	__builtin_printf instead of printf.
	* gcc.c-torture/compile/BUG6.c (main): Likewise.  Add missing
	int return type and missing void type.
	* gcc.c-torture/compile/b.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/b1.c (main): Likewise.  Call
	__builtin_printf instead of printf.
	* gcc.c-torture/compile/b88.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/bbb.c (flset): Add missing void
	return type and switch to prototype style.
	* gcc.c-torture/compile/bf.c (clr, atoi): Declare.
	(main): Add missing int return type.  Call
	__builtin_printf instead of printf.
	* gcc.c-torture/compile/bt.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/charmtst.c (foo, bar): Declare.
	(c_move_tst): Add missing int return type.
	* gcc.c-torture/compile/cmpdi-1.c (f, g): Add missing int
	return type.
	* gcc.c-torture/compile/cmphi.c (foo): Likewise.
	* gcc.c-torture/compile/conv.c (main): Likewise.  Add missing
	void type.  Call __builtin_printf instead of printf.
	* gcc.c-torture/compile/ddd.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/dilayout.c (str, ll): Add missing
	void return type.
	* gcc.c-torture/compile/dimove.c (foo): Likewise.
	* gcc.c-torture/compile/f2.c (foo): Likewise.
	* gcc.c-torture/compile/flatten.c  (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/fnul.c (main): Likewise.
	Call __builtin_printf instead of printf.
	* gcc.c-torture/compile/fq.c (expand_to_ascii): Add missing
	void return type.
	* gcc.c-torture/compile/funcptr-1.c (g): Call __builtin_printf
	instead of printf.
	(f): Likewise.  Add missing void types.
	* gcc.c-torture/compile/glob.c (foo): Add missing void types.
	* gcc.c-torture/compile/goto-1.c (f): Likewise.
	* gcc.c-torture/compile/i++.c (main): Call __builtin_printf
	instead of printf.
	* gcc.c-torture/compile/ic.c (foo): Add missing int return
	type.
	* gcc.c-torture/compile/iftrap-1.c (bar, baz): Declare.
	(f4, f6): Call __builtin_abort instead of abort.
	* gcc.c-torture/compile/iftrap-2.c (bar): Declare.
	* gcc.c-torture/compile/jmp.c (foo): Add missing int types.
	* gcc.c-torture/compile/labels-1.c (f): Add missing int
	return type and missing void type.  Call __builtin_abort
	instead of abort.
	* gcc.c-torture/compile/labels-2.c (f): Likewise.
	* gcc.c-torture/compile/lbug.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/memtst.c (memtst): Add missing void
	return type.
	(main): Add missing int	return type and missing void type.
	Call __builtin_bzero instead of bzero.
	* gcc.c-torture/compile/miscomp.c (main): Add missing int
	return type and missing void type.  Call __builtin_printf
	instead of printf.
	* gcc.c-torture/compile/msp.c (bar): Declare.
	(foo): Add missing void types.
	* gcc.c-torture/compile/mtst.c (foo): Add missing int return
	type.
	* gcc.c-torture/compile/packed-1.c (f): Add missing void
	types.
	* gcc.c-torture/compile/pr17119.c (func1, func2): Declare.
	* gcc.c-torture/compile/pr18712.c (foo, foo1): Declare.
	* gcc.c-torture/compile/pr20412.c (bar1, bar2, bar3): Declare.
	* gcc.c-torture/compile/pr21532.c (foo): Declare.
	* gcc.c-torture/compile/pr22398.c (main): Call __builtin_exit
	instead of exit.
	* gcc.c-torture/compile/pr24883.c (orec_str_list): Add missing
	void return type.
	* gcc.c-torture/compile/pr25311.c (use): Declare.
	* gcc.c-torture/compile/pr25514.c (foo): Declare.
	* gcc.c-torture/compile/pr26425.c (key_put): Declare.
	* gcc.c-torture/compile/pr27087.c (g): Declare.
	* gcc.c-torture/compile/pr27282.c (colrow_equal): Add missing
	int return type.
	* gcc.c-torture/compile/pr27907.c (fann_run): Add missing
	void return type.
	* gcc.c-torture/compile/pr28489.c (c_compile): Likewise.
	* gcc.c-torture/compile/pr28776-1.c
	(tree_contains_struct_check_failed): Declare.
	* gcc.c-torture/compile/pr29128.c (process_main): Add missing
	void return type.
	* gcc.c-torture/compile/pr29945.c (unget_char): Declare.
	(main) Add missing void return type.
	* gcc.c-torture/compile/pr33382.c (show_configuration): Add
	missing int types.
	* gcc.c-torture/compile/pr36141.c (ffi_prep_closure_loc): Add
	missing return type.
	* gcc.c-torture/compile/pr36988.c (__writel): Declare.
	* gcc.c-torture/compile/pr37026.c (foo): Declare.
	* gcc.c-torture/compile/pr37285.c (_bfd_abort): Declare.
	(_bfd_xcoff_canonicalize_dynamic_reloc): Add missing void
	return type.
	* gcc.c-torture/compile/pr38554.c (applyFunction): Add missing
	void return type.
	* gcc.c-torture/compile/pr42164.c (swp_offset, __BUG_ON):
	Declare.
	* gcc.c-torture/compile/pr44788.c (foo): Declare.
	* gcc.c-torture/compile/pr47364-1.c (arc4_init): Add missing
	void return type.
	* gcc.c-torture/compile/pr48596.c (_nrrdCenter): Declare.
	* gcc.c-torture/compile/rel.c (foo): Add missing int return
	type.
	* gcc.c-torture/compile/run.c (main): Likewise.  Add missing
	void type.
	* gcc.c-torture/compile/sar.c (main): Likewise.
	* gcc.c-torture/compile/selfrec.c (foo): Add missing int
	parameter type.
	* gcc.c-torture/compile/shloop.c (main): Add missing int
	return type and missing void type.
	* gcc.c-torture/compile/shm.c (foo): Add missing int return
	type.
	* gcc.c-torture/compile/sim.c (main): Likewise.  Add missing
	void type.
	* gcc.c-torture/compile/simd-5.c (main): Add missing int
	return type and missing void type.  Call __builtin_printf
	instead of printf.
	* gcc.c-torture/compile/sne.c (foo): Add missing int return
	type.
	* gcc.c-torture/compile/sound.c (write): Declare.
	(main): Add missing int return type and missing void type.
	* gcc.c-torture/compile/speed.c (main): Likewise.
	* gcc.c-torture/compile/store0.c (foo): Add missing void
	return type.
	* gcc.c-torture/compile/storecc.c (foo): Add missing int
	return type.
	* gcc.c-torture/compile/strcpy-1.c (rezero): Add missing
	void types.
	* gcc.c-torture/compile/stru.c (foo): Add missing void return
	type.
	* gcc.c-torture/compile/stuct.c (main): Add missing int return
	type and missing void type.
	* gcc.c-torture/compile/time.c (main): Likewise.
	* gcc.c-torture/compile/unalign-1.c (f): Declare.
	* gcc.c-torture/compile/v.c (main): Add missing int return
	type.
	* gcc.c-torture/compile/xcsebug.c (foo): Add missing void
	types.
	* gcc.c-torture/compile/xmtst.c (p2, p3, p4): Add missing
	int return type.
	* gcc.c-torture/compile/xz.c (foo): Add missing void return
	type.
	* gcc.c-torture/execute/loop-2f.c (f): Add missing void
	return type.
	(main): Return instead of calling exit.  Call __builtin_abort
	instead of abort.
	* gcc.c-torture/execute/loop-2g.c (f): Add missing void
	return type.
	(main): Return instead of calling exit.  Call __builtin_abort
	instead of abort.
	* gcc.dg/20020206-1.c: Build without -w.
	(main): Call __builtin_abort instead of abort and
	__builtin_exit instead of exit.
	* gcc.dg/ipa/20040703-wpa.c (main): Call __builtin_abort
	instead of abort and __builtin_exit instead of exit.
	* gcc.dg/torture/pr84528.c (main): Add missing int and void
	types.  Call __builtin_abort instead of abort, and
	__builtin_exit instead of exit.
	* gcc.dg/tree-ssa/pr68619-2.c (vector_type_mode, real_inf):
	Declare.
	* gcc.dg/tree-ssa/pr68619-3.c (iterative_hash): Declare.
	(e_hash): Call __builtin_abort instead of abort.
	* gcc.dg/tree-ssa/pr68619-4.c (rhs_regno, foop, arf): Declare.
	* gcc.dg/tree-ssa/pr68619-5.c (invert_tree_comparison)
	(vector_type_mode): Declare.
	* gcc.dg/tree-ssa/pr69270-2.c (arf, gimple_debug_bind_p)
	(gimple_bb, gimple_assign_rhs_to_tree)
	(is_gimple_min_invariant, unshare_expr): Declare.
	* gcc.dg/tree-ssa/pr69270-3.c: (end_imm_use_stmt_p)
	(next_imm_use_stmt, arf, boo, update_stmt): Declare.
	* gcc.dg/tree-ssa/ranger-threader-2.c (gimple_call_arg):
	Declare.
	(gimple_op): Call __builtin_abort instead of abort.
	* gcc.dg/tree-ssa/ranger-threader-3.c (expand_binop): Declare.
	* gcc.dg/tree-ssa/ssa-dom-branch-1.c (arf, foo): Declare.
	(try_combine): Add casts to rtx.
	* gcc.dg/tree-ssa/split-path-3.c (vec_heap_o_reserve)
	(VEC_int_base_length, bmp_iter_and_compl_init)
	(bmp_iter_and_compl, bmp_iter_next, VEC_int_heap_free):
	Declare.
	* gcc.dg/tree-ssa/split-path-7.c (linit): Call
	__builtin_strcmp instead of strcmp.
	* gcc.dg/tree-ssa/ssa-dom-thread-12.c (gimple_call_arg):
	Declare.
	(gimple_op): Call __builtin_abort instead of abort.
	* gcc.dg/tree-ssa/ssa-dom-thread-13.c (arf, error): Declare.
	(convert): Call __builtin_abort instead of abort.
	* gcc.dg/tree-ssa/ssa-dom-thread-14.c (exand_binop): Declare.
	* gcc.dg/tree-ssa/ssa-dom-thread-15.c
	(ix86_target_stack_probe, pro_epilogue_adjust_stack)
	(gen_rtx_CONST_INT, fancy_abort): Declare.
	* gcc.dg/tree-ssa/ssa-dse-25.c (foo): Call __builtin_memset
	instead of memset.
	* gcc.target/aarch64/aapcs64/va_arg-17.c
	(init_data): Call __builtin_memset instead of memset.
	* gcc.target/i386/pr69030.c (fn1): Call __builtin_printf instead
	of printf.
2023-11-13 08:54:11 +01:00
Florian Weimer
a3c2b18d01 C99 testsuite readiness: Verified un-reductions
* gcc.c-torture/compile/20080613-1.c (hop_sendmsg): Call
	__builtin_memcpy instead of memcpy.
	* gcc.c-torture/compile/complex-6.c (bar): Declare.
	* gcc.c-torture/compile/pr23445.c (__brelse): Declare.
	* gcc.c-torture/compile/pr23946.c (long2str): Declare.
	(avi_parse_comments): Call __builtin_memset instead of
	memset.  __builtin_malloc instead of malloc.  Call
	__builtin_memcpy instead of memcpy.  Call
	__builtin_free instead of free.
	* gcc.c-torture/compile/pr31953.c (toggle_hexedit_mode):
	Add missing void return type.
	* gcc.c-torture/compile/pr32372.c (MPV_encode_init): Add
	missing void return type.
	* gcc.c-torture/compile/pr32355.c (sigemptyset): Declare.
	(doSignalsSetup): Add missing void return type.
	* gcc.c-torture/compile/pr32453.c (__assert_fail): Declare.
	* gcc.c-torture/compile/pr32571.c (mthca_is_memfree)
	(mthca_arbel_fmr_unmap, mthca_tavor_fmr_unmap)
	(mthca_unmap_fmr): Declare.
	* gcc.c-torture/compile/pr32584.c (sortpin): Add missing
	void types.
	* gcc.c-torture/compile/pr32919.c (read_int, _itoa_word)
	(__strnlen): Declare.
	* gcc.c-torture/compile/pr33173.c (test_dir_format): Add
	missing void return type.  Add missing int types.
	* gcc.c-torture/compile/pr33855.c (cabsl): Declare.
	* gcc.c-torture/compile/pr34334.c (__strsep_1c)
	(__strsep_2c): Add missing void return type.
	* gcc.c-torture/compile/pr35006.c (grub_putchar)
	(cl_set_pos, cl_print, grub_memmove, cl_delete): Declare.
	(grub_cmdline_get): Add missing void return type.
	* gcc.c-torture/compile/pr35595.c (__kernel_sinf):
	Declare.
	* gcc.c-torture/compile/pr35869.c (f): Add missing void
	return type.
	* gcc.c-torture/compile/pr36172.c (FcCharSetFreeze): Add
	missing return value.
	* gcc.c-torture/compile/pr36238.c (lshift_s_s): Declare.
	* gcc.c-torture/compile/pr37207.c (func_81, func_98):
	Declare.
	* gcc.c-torture/compile/pr37258.c (mod_rhs, lshift_s_s)
	(func_112, func_23): Declare.
	* gcc.c-torture/compile/pr37305.c (safe_mod_u_u): Declare.
	* gcc.c-torture/compile/pr37327.c (func_93, func_59)
	(func_124, func_117, safe_add_uint64_t_u_u)
	(safe_mul_int32_t_s_s): Declare.
	* gcc.c-torture/compile/pr37387.c (FuncMakeConsequencesPres):
	Call __builtin_abort instead of ErrorQuit.
	* gcc.c-torture/compile/pr37432.c (print_wkb_bytes): Declare.
	* gcc.c-torture/compile/pr37713.c (sdp_seq_alloc): Declare.
	* gcc.c-torture/compile/pr39886.c (func): Declare.
	* gcc.c-torture/compile/pr39941.c (stop): Declare.
	* gcc.c-torture/compile/pr41016.c (CompareRNAStructures):
	Call __builtin_abort instead of Die.
	* gcc.c-torture/compile/pr42632.c (___pskb_trim): Add
	forward declaration.
	* gcc.c-torture/compile/pr49710.c (baz): Add forward
	declaration and missing void types.
	(bar): Add missing void type.
	* gcc.c-torture/compile/pr52437.c (fn2): Declare.
	* gcc.c-torture/compile/pr57441.c (func_1): Add missing void
	return type.
	* gcc.c-torture/compile/pr87110.c (struct d): Add missing
	semicolon.
	(g, h): Define as int.
	(i): Add missing void types.
	* gcc.c-torture/compile/pr87468.c (a): Define as int.
	(e, f): Declare.
	(b): Add missing void types.
	* gcc.c-torture/execute/pr79043.c (ptr2): Use cast in
	initializer.
	(typepun): Add missing void return type.
	(main): Add missing int return type and missing void type.
	* gcc.dg/pr100349.c (b): Add missing void return type.
	* gcc.dg/pr106189.c (T): Declare.
	* gcc.dg/pr110777.c (_setjmp): Declare
	* gcc.dg/pr45506.c (dynvec, relative_relocp, atexit): Declare.
	(fini_array): Cast result of relative_relocp from int to int *.
	* gcc.dg/pr97359.c: Compile with -Wno-pointer-to-int-cast.
	(b): Cast point to int to avoid int-conversion warning.
	* gcc.dg/uninit-pr78548.c: Call __builtin_printf instead
	of printf.
	* gcc.dg/torture/pr39829.c (f): Declare.
	* gcc.dg/torture/pr44977.c (int329): Cast bar from pointer
	to short.
	* gcc.dg/torture/pr53703.c (ifa_sa_len): Declare.
	(usagi_getifaddrs): Call __builtin_memset instead of memset
	and __builtin_memcmp instead of memcmp.
	* gcc.dg/torture/pr68625.c (z9): Explicitly cast
	pointers to int.
	* gcc.dg/torture/pr55964.c (f): Cast q to the expected type.
	* gcc.dg/torture/pr70623.c (h9): Fix pointer cast in assignment
	of av.
	* gcc.dg/torture/pr81118.c (c): Return zero instead of
	nothing.
	* gcc.dg/torture/pr81510.c (e): Add cast from int to pointer.
	* gcc.dg/torture/pr99694.c (d): Add missing casts between
	pointers and integers.
	* gcc.dg/tree-ssa/pr102563.c: Define as void (*) (void).
	(_bdf_parse_glyphs_p): Define with prototype.
	* gcc.dg/tree-ssa/pr92085-1.c (di): Add cast to initialization
	of fq.
	* gcc.dg/tree-ssa/pr92085-2.c (c1): Add casts to
	initializations of th, lq.
	* gcc.dg/tree-ssa/reassoc-43.c
	(c_parser_next_token_is_keyword, chainon)
	(c_parser_attributes): Declare.
	* gcc.dg/tree-ssa/split-path-4.c (powi_lookup_cost): Declare.
	(powi_cost): Add missing void return type.
	* gcc.dg/tree-ssa/split-path-6.c (strtosichar)
	(ichartosstr, treeinsert, stop, __srget_r): Declare
	(givehelp, oof, lookharder): Convert to prototypes.
	* gcc.target/i386/pr71621-1.c (y8): Cast to expected
	pointer type in assignment of t6.
	* gcc.target/i386/pr79571.c (g): Add missing int type.
	(j): Add missing void types and pointer cast.
	* gcc.target/i386/pr87246.c (s2): Add cast from integer
	to pointer type.
	* gcc.target/i386/pr87759.c (rc): Cast to the expected
	pointer time in initialization of ar.
	* gcc.target/i386/pr99454.c (tg3_start_xmit): Add
	missing cast from int to int *.
2023-11-13 08:54:10 +01:00
Florian Weimer
95753bc4c4 C99 testsuite readiness: -fpermissive tests
These tests use obsolete language constructs, but they are not
clearly targeting C89, either.  So use -fpermissive to keep
future errors as warnings.

The reasons why obsolete constructs are used used vary from
test to test.  Some tests deliberately exercise later stages
of the compiler that only occur with those constructs.  Some
tests have precise expectations about warnings that will become
errors with a future change, but do not specifically test a
particular warning/error (if that is the case, the later changes
tend to duplicate them into warning/error variants).  In a few
cases, use of obsolete constructs is clearly due to test case
reduction, but it was not possible to un-reduce the test due
to its size.

gcc/testsuite/

	* c-c++-common/Wduplicated-branches-11.c: Compile with
	-fpermissive.
	* c-c++-common/Wduplicated-branches-12.c: Likewise.
	* c-c++-common/builtins.c: Likewise.
	* c-c++-common/pointer-to-fn1.c: Likewise.
	* gcc.c-torture/compile/20010320-1.c: Likewise.
	* gcc.c-torture/compile/20050105-1.c: Likewise.
	* gcc.c-torture/compile/20080704-1.c: Likewise.
	* gcc.c-torture/compile/20080910-1.c: Likewise.
	* gcc.c-torture/compile/20090917-1.c: Likewise.
	* gcc.c-torture/compile/20100915-1.c: Likewise.
	* gcc.c-torture/compile/20101216-1.c: Likewise.
	* gcc.c-torture/compile/20121027-1.c: Likewise.
	* gcc.c-torture/compile/20180605-1.c: Likewise.
	* gcc.c-torture/compile/950816-2.c: Likewise.
	* gcc.c-torture/compile/dse.c: Likewise.
	* gcc.c-torture/compile/pr100576.c: Likewise.
	* gcc.c-torture/compile/pr17408.c: Likewise.
	* gcc.c-torture/compile/pr19121.c: Likewise.
	* gcc.c-torture/compile/pr26213.c: Likewise.
	* gcc.c-torture/compile/pr27341-2.c: Likewise.
	* gcc.c-torture/compile/pr28776-2.c: Likewise.
	* gcc.c-torture/compile/pr33133.c: Likewise.
	* gcc.c-torture/compile/pr34091.c: Likewise.
	* gcc.c-torture/compile/pr36154.c: Likewise.
	* gcc.c-torture/compile/pr37381.c: Likewise.
	* gcc.c-torture/compile/pr38360.c: Likewise.
	* gcc.c-torture/compile/pr40291.c: Likewise.
	* gcc.c-torture/compile/pr41182-1.c: Likewise.
	* gcc.c-torture/compile/pr43635.c: Likewise.
	* gcc.c-torture/compile/pr44043.c: Likewise.
	* gcc.c-torture/compile/pr44063.c: Likewise.
	* gcc.c-torture/compile/pr44246.c: Likewise.
	* gcc.c-torture/compile/pr45535.c: Likewise.
	* gcc.c-torture/compile/pr46934.c: Likewise.
	* gcc.c-torture/compile/pr47428.c: Likewise.
	* gcc.c-torture/compile/pr49145.c: Likewise.
	* gcc.c-torture/compile/pr49206.c: Likewise.
	* gcc.c-torture/compile/pr51694.c: Likewise.
	* gcc.c-torture/compile/pr53886.c: Likewise.
	* gcc.c-torture/compile/pr65241.c: Likewise.
	* gcc.c-torture/compile/pr72802.c: Likewise.
	* gcc.c-torture/compile/pr81360.c: Likewise.
	* gcc.c-torture/compile/pr82052.c: Likewise.
	* gcc.c-torture/compile/pr90275-2.c: Likewise.
	* gcc.c-torture/compile/pr90275.c: Likewise.
	* gcc.c-torture/compile/pr96796.c: Likewise.
	* gcc.c-torture/compile/regs-arg-size.c: Likewise.
	* gcc.c-torture/compile/udivmod4.c: Likewise.
	* gcc.c-torture/compile/widechar-1.c: Likewise.
	* gcc.c-torture/execute/20000412-3.c: Likewise.
	* gcc.c-torture/execute/20010605-2.c: Likewise.
	* gcc.c-torture/execute/20020314-1.c: Likewise.
	* gcc.c-torture/execute/20020819-1.c: Likewise.
	* gcc.c-torture/execute/20031211-2.c: Likewise.
	* gcc.c-torture/execute/20040223-1.c: Likewise.
	* gcc.c-torture/execute/20041019-1.c: Likewise.
	* gcc.c-torture/execute/20120427-1.c: Likewise.
	* gcc.c-torture/execute/20120427-2.c: Likewise.
	* gcc.c-torture/execute/920908-2.c: Likewise.
	* gcc.c-torture/execute/921110-1.c: Likewise.
	* gcc.c-torture/execute/930111-1.c: Likewise.
	* gcc.c-torture/execute/930208-1.c: Likewise.
	* gcc.c-torture/execute/930702-1.c: Likewise.
	* gcc.c-torture/execute/930818-1.c: Likewise.
	* gcc.c-torture/execute/931017-1.c: Likewise.
	* gcc.c-torture/execute/931018-1.c: Likewise.
	* gcc.c-torture/execute/931208-1.c: Likewise.
	* gcc.c-torture/execute/941101-1.c: Likewise.
	* gcc.c-torture/execute/941110-1.c: Likewise.
	* gcc.c-torture/execute/950322-1.c: Likewise.
	* gcc.c-torture/execute/950426-1.c: Likewise.
	* gcc.c-torture/execute/950512-1.c: Likewise.
	* gcc.c-torture/execute/950621-1.c: Likewise.
	* gcc.c-torture/execute/960218-1.c: Likewise.
	* gcc.c-torture/execute/960402-1.c: Likewise.
	* gcc.c-torture/execute/cmpsf-1.c: Likewise.
	* gcc.c-torture/execute/cmpsi-1.c: Likewise.
	* gcc.c-torture/execute/cmpsi-2.c: Likewise.
	* gcc.c-torture/execute/divmod-1.c: Likewise.
	* gcc.c-torture/execute/pr22061-1.c: Likewise.
	* gcc.c-torture/execute/pr55875.c: Likewise.
	* gcc.dg/20050629-1.c: Likewise.
	* gcc.dg/20080615-1.c: Likewise.
	* gcc.dg/Walloca-14.c: Likewise.
	* gcc.dg/Wbuiltin-declaration-mismatch-3.c: Likewise.
	* gcc.dg/Wbuiltin-declaration-mismatch-9.c: Likewise.
	* gcc.dg/Wdouble-promotion.c: Likewise.
	* gcc.dg/Wrestrict-5.c: Likewise.
	* gcc.dg/Wstringop-overflow-13.c: Likewise.
	* gcc.dg/analyzer/fd-bind-pr107783.c: Likewise.
	* gcc.dg/array-5.c: Likewise.
	* gcc.dg/asan/pr56417.c: Likewise.
	* gcc.dg/attr-access-read-only.c: Likewise.
	* gcc.dg/attr-access-read-write.c: Likewise.
	* gcc.dg/attr-access-write-only.c: Likewise.
	* gcc.dg/bitint-36.c: Likewise.
	* gcc.dg/builtin-bswap-10.c: Likewise.
	* gcc.dg/cleanup-1.c: Likewise.
	* gcc.dg/cpp/pr60014-1.c: Likewise.
	* gcc.dg/cpp/pr60014-2.c: Likewise.
	* gcc.dg/cpp/pr60014-3.c: Likewise.
	* gcc.dg/ipa/ipa-bit-cp-1.c: Likewise.
	* gcc.dg/ipa/ipa-bit-cp-2.c: Likewise.
	* gcc.dg/ipa/ipa-bit-cp.c: Likewise.
	* gcc.dg/ipa/pr105639.c: Likewise.
	* gcc.dg/ipa/pr71981.c: Likewise.
	* gcc.dg/lto/20081109_0.c: Likewise.
	* gcc.dg/lto/pr54702_1.c: Likewise.
	* gcc.dg/lto/pr55525_0.c: Likewise.
	* gcc.dg/noncompile/20020213-1.c:: Likewise.
	* gcc.dg/noncompile/pr71426.c: Likewise.
	* gcc.dg/noncompile/undeclared-1.c: Likewise.
	* gcc.dg/overflow-warn-2.c: Likewise.
	* gcc.dg/pr100142.c: Likewise.
	* gcc.dg/pr100790.c: Likewise.
	* gcc.dg/pr100791.c: Likewise.
	* gcc.dg/pr103093.c: Likewise.
	* gcc.dg/pr105140.c: Likewise.
	* gcc.dg/pr105250.c: Likewise.
	* gcc.dg/pr105853.c: Likewise.
	* gcc.dg/pr105856.c: Likewise.
	* gcc.dg/pr26865.c: Likewise.
	* gcc.dg/pr40989.c: Likewise.
	* gcc.dg/pr42715.c: Likewise.
	* gcc.dg/pr44971.c: Likewise.
	* gcc.dg/pr46571.c: Likewise.
	* gcc.dg/pr54363.c: Likewise.
	* gcc.dg/pr56724-2.c: Likewise.
	* gcc.dg/pr59630.c: Likewise.
	* gcc.dg/pr67043.c: Likewise.
	* gcc.dg/pr67730-1.c: Likewise.
	* gcc.dg/pr67730-2.c: Likewise.
	* gcc.dg/pr68320.c: Likewise.
	* gcc.dg/pr69156.c: Likewise.
	* gcc.dg/pr69824.c: Likewise.
	* gcc.dg/pr70174.c: Likewise.
	* gcc.dg/pr70281.c: Likewise.
	* gcc.dg/pr77862.c: Likewise.
	* gcc.dg/pr82765.c: Likewise.
	* gcc.dg/pr83852.c: Likewise.
	* gcc.dg/pr84206.c: Likewise.
	* gcc.dg/pr85164-1.c: Likewise.
	* gcc.dg/pr85955.c: Likewise.
	* gcc.dg/pr86271.c: Likewise.
	* gcc.dg/pr86928.c: Likewise.
	* gcc.dg/pr99122-1.c: Likewise.
	* gcc.dg/pr99136.c: Likewise.
	* gcc.dg/redecl-19.c: Likewise.
	* gcc.dg/redecl-24.c: Likewise.
	* gcc.dg/torture/pr39204.c: Likewise.
	* gcc.dg/torture/pr57676.c: Likewise.
	* gcc.dg/torture/pr67222.c: Likewise.
	* gcc.dg/torture/pr77677-2.c: Likewise.
	* gcc.dg/torture/pr79125.c: Likewise.
	* gcc.dg/torture/pr94479.c: Likewise.
	* gcc.dg/tree-ssa/20070815.c:  Likewise.
	* gcc.dg/tree-ssa/builtin-sprintf-29.c: Likewise.
	* gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Likewise.
	* gcc.dg/tree-ssa/pr22051-2.c: Likewise.
	* gcc.dg/tree-ssa/ssa-dse-10.c: Likewise.
	* gcc.target/aarch64/pr60697.c: Likewise.
	* gcc.target/aarch64/pr87305.c: Likewise.
	* gcc.target/aarch64/sve/pr96357.c: Likewise.
	* gcc.target/i386/attr-nocf-check-1a.c: Likewise.
	* gcc.target/i386/attr-nocf-check-3a.c: Likewise.
	* gcc.target/i386/avx512bf16-pr108881.c: Likewise.
	* gcc.target/i386/cet-notrack-2a.c: Likewise.
	* gcc.target/i386/cet-notrack-2b.c: Likewise.
	* gcc.target/i386/cet-notrack-5b.c: Likewise.
	* gcc.target/i386/cet-notrack-6a.c: Likewise.
	* gcc.target/i386/cet-notrack-6b.c: Likewise.
	* gcc.target/i386/pr70325.c: Likewise.
	* gcc.target/i386/pr70858.c: Likewise.
	* gcc.target/i386/pr83488.c: Likewise.
	* gcc.target/i386/pr85511.c: Likewise.
	* gcc.target/i386/pr87572.c: Likewise.
	* gcc.target/i386/pr88195.c: Likewise.
2023-11-13 08:54:10 +01:00
Xi Ruoyao
7ba7529ee3
Fix (fcopysign x, NEGATIVE_CONST) -> (fneg (fabs x)) simplification [PR112483]
(fcopysign x, NEGATIVE_CONST) can be simplified to (fneg (fabs x)), but
a logic error in the code caused it mistakenly simplified to (fneg x)
instead.

gcc/ChangeLog:

	PR rtl-optimization/112483
	* simplify-rtx.cc (simplify_binary_operation_1) <case COPYSIGN>:
	Fix the simplification of (fcopysign x, NEGATIVE_CONST).
2023-11-13 15:51:14 +08:00
Jakub Jelinek
5a0c302d2d gimple-range-cache: Fix ICEs when dumping details [PR111967]
The following testcase ICEs when dumping details.
When m_ssa_ranges vector is created, it is safe_grow_cleared (num_ssa_names),
but when when some new SSA_NAME is added, we strangely grow it to
num_ssa_names + 1 instead and later on the 3 argument dump method
iterates from 1 to m_ssa_ranges.length () - 1 and uses ssa_name (x)
on each; but because set_bb_range grew it one too much, ssa_name
(m_ssa_ranges.length () - 1) might be after the end of the ssanames
vector and ICE.

The fix grows the vector consistently only to num_ssa_names,
doesn't waste time checking m_ssa_ranges[0] because there is no
ssa_names (0), it is always NULL, before using ssa_name (x) checks
if we'll need it at all (we check later if m_ssa_ranges[x] is non-NULL,
so we might check it earlier as well) and also in the last loop
iterates until m_ssa_ranges.length () rather than num_ssa_names, I don't
see a reason for the inconsistency and in theory some SSA_NAME could be
added without set_bb_range called for it and the vector could be shorter
than the ssanames vector.

To actually fix the ICE, either the first hunk or the last 2 hunks
would be enough, but I think it doesn't hurt to change all the spots.

2023-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/111967
	* gimple-range-cache.cc (block_range_cache::set_bb_range): Grow
	m_ssa_ranges to num_ssa_names rather than num_ssa_names + 1.
	(block_range_cache::dump): Iterate from 1 rather than 0.  Don't use
	ssa_name (x) unless m_ssa_ranges[x] is non-NULL.  Iterate to
	m_ssa_ranges.length () rather than num_ssa_names.

	* gcc.dg/tree-ssa/pr111967.c: New test.
2023-11-13 08:47:41 +01:00
Xi Ruoyao
2e0a1f778c
LoongArch: Optimize single-used address with -mexplicit-relocs=auto for fld/fst
fld and fst have same address mode as ld.w and st.w, so the same
optimization as r14-4851 should be applied for them too.

gcc/ChangeLog:

	* config/loongarch/loongarch.md (LD_AT_LEAST_32_BIT): New mode
	iterator.
	(ST_ANY): New mode iterator.
	(define_peephole2): Use LD_AT_LEAST_32_BIT instead of GPR and
	ST_ANY instead of QHWD for applicable patterns.
2023-11-13 14:15:07 +08:00
Xi Ruoyao
b88500e0bc
LoongArch: Use simplify_gen_subreg instead of gen_rtx_SUBREG in loongarch_expand_vec_cond_mask_expr [PR112476]
GCC internal says:

    'subreg's of 'subreg's are not supported.  Using
    'simplify_gen_subreg' is the recommended way to avoid this problem.

Unfortunately loongarch_expand_vec_cond_mask_expr might create nested
subreg under certain circumstances, causing an ICE.

Use simplify_gen_subreg as the internal document suggests.

gcc/ChangeLog:

	PR target/112476
	* config/loongarch/loongarch.cc
	(loongarch_expand_vec_cond_mask_expr): Call simplify_gen_subreg
	instead of gen_rtx_SUBREG.

gcc/testsuite/ChangeLog:

	PR target/112476
	* gcc.target/loongarch/pr112476-1.c: New test.
	* gcc.target/loongarch/pr112476-2.c: New test.
2023-11-13 14:15:06 +08:00
Pan Li
401dc18184 RISC-V: Fix RVV dynamic frm tests failure
The hancement of mode-switching performs some optimization when
emit the frm backup insn, some redudant fsrm insns are removed
for the following test cases.

This patch would like to adjust the asm check for above optimization.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c: Adjust
	the asm checker.
	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-57.c: Ditto.
	* gcc.target/riscv/rvv/base/float-point-dynamic-frm-58.c: Ditto.

Signed-off-by: Pan Li <pan2.li@intel.com>
2023-11-13 11:13:06 +08:00
Pan Li
5dfa501d2f RISC-V: Support FP l/ll round and rint HF mode autovec
This patch would like to support the FP below API auto vectorization
with different type size

+------------+-----------+----------+
| API        | RV64      | RV32     |
+------------+-----------+----------+
| lrintf16   | HF => DI  | HF => SI |
| llrintf16  | HF => DI  | HF => DI |
| lroundf16  | HF => DI  | HF => SI |
| llroundf16 | HF => DI  | HF => DI |
+------------+-----------+----------+

Given below code:
void
test_lrintf16 (long *out, _Float16 *in, int count)
{
  for (unsigned i = 0; i < count; i++)
    out[i] = __builtin_lrintf16 (in[i]);
}

Before this patch:
.L3:
  lhu     a5,0(s0)
  addi    s0,s0,2
  addi    s1,s1,8
  fmv.s.x fa0,a5
  call    lrintf16
  sd      a0,-8(s1)
  bne     s0,s2,.L3

After this patch:
.L3:
  vsetvli a5,a2,e16,mf4,ta,ma
  vle16.v v1,0(a1)
  vfwcvt.f.f.v    v2,v1
  vsetvli zero,zero,e32,mf2,ta,ma
  vfwcvt.x.f.v    v1,v2
  vse64.v v1,0(a0)
  slli    a4,a5,1
  add     a1,a1,a4
  slli    a4,a5,3
  add     a0,a0,a4
  sub     a2,a2,a5
  bne     a2,zero,.L3

gcc/ChangeLog:

	* config/riscv/autovec.md: Add bridge mode to lrint and lround
	pattern.
	* config/riscv/riscv-protos.h (expand_vec_lrint): Add new arg
	bridge machine mode.
	(expand_vec_lround): Ditto.
	* config/riscv/riscv-v.cc (emit_vec_widden_cvt_f_f): New helper
	func impl to emit vfwcvt.f.f.
	(emit_vec_rounding_to_integer): Handle the HF to DI rounding
	with the bridge mode.
	(expand_vec_lrint): Reorder the args.
	(expand_vec_lround): Ditto.
	(expand_vec_lceil): Ditto.
	(expand_vec_lfloor): Ditto.
	* config/riscv/vector-iterators.md: Add vector HFmode and bridge
	mode for converting to DI.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/unop/math-llrintf16-0.c: New test.
	* gcc.target/riscv/rvv/autovec/unop/math-llroundf16-0.c: New test.
	* gcc.target/riscv/rvv/autovec/unop/math-lrintf16-rv32-0.c: New test.
	* gcc.target/riscv/rvv/autovec/unop/math-lrintf16-rv64-0.c: New test.
	* gcc.target/riscv/rvv/autovec/unop/math-lroundf16-rv32-0.c: New test.
	* gcc.target/riscv/rvv/autovec/unop/math-lroundf16-rv64-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-llrintf16-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-llroundf16-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-lrintf16-rv32-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-lrintf16-rv64-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv32-0.c: New test.
	* gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv64-0.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2023-11-13 09:36:14 +08:00
Jeff Law
93e92b2e5d Revert "[PATCH v2] In the pipeline, USE or CLOBBER should delay execution if it starts a new live range."
This reverts commit 85b49ad863.
2023-11-12 11:00:12 -07:00
Uros Bizjak
4b754091be i386: Remove *stack_protect_set_4s_<mode>_di alternative that will never match
The relevant peephole2 will never generate alternative (=m,=&a,0,m) because
operand 1 is not dead before the peephole2 pattern.

gcc/ChangeLog:

	* config/i386/i386.md (*stack_protect_set_4s_<mode>_di):
	Remove alternative 0.
2023-11-12 18:18:19 +01:00
Georg-Johann Lay
3a5a30792f LibF7: Use paper-pencil method for sqrt instead of Newton-Raphson iteration.
libgcc/config/avr/libf7/
	* libf7-asm.sx (sqrt_approx): Rewrite.
	* libf7.c (f7_sqrt): Use it instead of sqrt_worker.
	(sqrt_worker): Remove.
2023-11-12 15:58:02 +01:00
Eric Botcazou
e0787da263 Handle addresses of more constants in IPA-CP
IPA-CP can handle addresses of scalar constants (CONST_DECL) so this extends
that to addresses of constants in the pool (DECL_IN_CONSTANT_POOL).  Again
this is helpful for so-called fat pointers in Ada, i.e. objects that are
semantically pointers but represented by structures made up of two pointers.

This also moves the unused function print_ipcp_constant_value from ipa-cp.cc
to ipa-prop.cc and renames it.

gcc/
	* ipa-cp.cc (print_ipcp_constant_value): Move to...
	(values_equal_for_ipcp_p): Deal with VAR_DECLs from the
	constant pool.
	* ipa-prop.cc (ipa_print_constant_value): ...here.  Likewise.
	(ipa_print_node_jump_functions_for_edge): Call the function
	ipa_print_constant_value to print IPA_JF_CONST elements.
2023-11-11 23:36:44 +01:00
Jin Ma
85b49ad863 [PATCH v2] In the pipeline, USE or CLOBBER should delay execution if it starts a new live range.
CLOBBER and USE does not represent real instructions, but in the
process of pipeline optimization, they will wait for transmission
in ready list like other insns, without considering resource
conflicts and cycles. This results in a multi-issue CPU architecture
that can be issued at any time if other regular insns have resource
conflicts or cannot be launched for other reasons. As a result,
its position is advanced in the generated insns sequence, which
will affect register allocation and often lead to more redundant
mov instructions.

A simple example:
https://github.com/majin2020/gcc-test/blob/master/test.c
This is a function in the dhrystone benchmark.

0b08c1a13d/test.c.299r.sched1
This is a log of the pass 'sched1' When -mtune=rocket but issue_rate == 2.

The pipeline is:
;; | insn | prio |
;; |  17  |  3   | r142=a0 alu
;; |  14  |  0   | clobber r136 nothing
;; |  13  |  0   | clobber a0 nothing
;; |  18  |  2   | r143=a1 alu
...
;; |  12  |  0   | a0=r136 alu
;; |  15  |  0   | use a0 nothing

In this log, insn 13 and 14 are much ahead of schedule, which risks generating
redundant mov instructions, which seems unreasonable.

Therefore, I submit patch again on the basis of the last review
opinions to try to solve this problem.

efcb43e336 (diff-805031b1be5092a2322852a248d0b0f92eef7cad5784a8209f4dfc6221407457L189)
This is the diff log of shed1 after patch is added.

The new pipeline is:
;; | insn | prio |
;; |  17  |  3   | r142=a0 alu
...
;; |  10  |  0   | [r144]=r141 alu
;; |  13  |  0   | clobber a0 nothing
;; |  14  |  0   | clobber r136 nothing
;; |  12  |  0   | a0=r136 alu
;; |  15  |  0   | use a0 nothing

gcc/ChangeLog:
	* haifa-sched.cc (use_or_clobber_starts_range_p): New.
	(prune_ready_list): USE or CLOBBER should delay execution
	if it starts a new live range.
2023-11-11 13:11:45 -07:00