Skip to content
Snippets Groups Projects
Commit e87bc7dc authored by Alexandre Oliva's avatar Alexandre Oliva Committed by Alexandre Oliva
Browse files

testsuite: check for and use -mno-strict-align where needed

Various tests fail on powerpc if the toolchain is configured to enable
-mstrict-align by default.  This patch introduces -mno-strict-align on
tests found to fail that way, when the target supports this option.

I suppose !non_strict_align could be used to skip tests, instead of or
in addition to this tweak, and that might be desirable if they still
fail on targets that do no support -mno-strict-align, but I haven't
observed such scenarios.


The p9-vec-length tests expect vectorization on loop bodies and
epilogues that reference arrays that are not known to be more aligned
than their small element types.

Though VSX vectors work best with 32- or 64-bit alignment, unaligned
vector loads and stores are expected by the tests.  However, with
-mstrict-align by default, vector loads and stores not known to be
aligned end up open coded, which doesn't match the asm output
expectations coded in the tests.



for  gcc/ChangeLog

	* doc/sourcebuild.texi (opt_mstrict_align): New target.

for  gcc/testsuite/ChangeLog

	* lib/target-supports.exp
	(check_effective_target_opt_mstrict_align): New.
	* gcc.dg/strlenopt-80.c: Add -mno-strict-align if supported.
	* gcc.target/powerpc/prefix-ds-dq.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-1.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-2.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-3.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-4.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-5.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-6.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-7.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-8.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-1.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-2.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-3.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-4.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-5.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-6.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-7.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-epil-run-8.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-1.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-2.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-3.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-4.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-5.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-6.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-7.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-8.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-1.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-2.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-3.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-4.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-5.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-6.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-7.c: Likewise.
	* gcc.target/powerpc/p9-vec-length-full-run-8.c: Likewise.
parent 74b35716
No related branches found
No related tags found
Loading
Showing
with 43 additions and 0 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment