r266139 - in /trunk/gcc/testsuite: ChangeLog gc...

wilco@gcc.gnu.org wilco@gcc.gnu.org
Wed Nov 14 12:35:00 GMT 2018


Author: wilco
Date: Wed Nov 14 12:35:36 2018
New Revision: 266139

URL: https://gcc.gnu.org/viewcvs?rev=266139&root=gcc&view=rev
Log:
[AArch64] Fix PR62178 testcase failures

The testcase for PR62178 has been failing for a while due to the pass
conditions being too tight, resulting in failures with -mcmodel=tiny:

	ldr	q2, [x0], 124
	ld1r	{v1.4s}, [x1], 4
	cmp	x0, x2
	mla	v0.4s, v2.4s, v1.4s
	bne	.L7

-mcmodel=small generates the slightly different:

	ldr	q1, [x0], 124
	ldr	s2, [x1, 4]!
	cmp	x0, x2
	mla	v0.4s, v1.4s, v2.s[0]
	bne	.L7

This is due to Combine merging a DUP instruction with either a load
or MLA - we can't force it to prefer one over the other.  However the
generated vector loop is fast either way since it generates MLA and
merges the DUP either with a load or MLA.  So relax the conditions
slightly and check we still generate MLA and there is no DUP or FMOV.

The testcase now passes - committed as obvious.

    testsuite/
	* gcc.target/aarch64/pr62178.c: Relax scan-assembler checks.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/aarch64/pr62178.c



More information about the Gcc-cvs mailing list