Bug 48454 - gfortran.dg/char_result_13.f90 fails with -O3 -funroll-loops -mvectorize-with-neon-quad
Summary: gfortran.dg/char_result_13.f90 fails with -O3 -funroll-loops -mvectorize-with...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: 4.6.1
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-05 08:41 UTC by Ira Rosen
Modified: 2011-07-08 14:52 UTC (History)
1 user (show)

See Also:
Host: arm-linux-gnueabi
Target: arm-linux-gnueabi
Build: arm-linux-gnueabi
Known to work: 4.5.4, 4.7.0
Known to fail: 4.6.1
Last reconfirmed: 2011-06-10 14:37:07


Attachments
char_result_13.s (11.92 KB, application/octet-stream)
2011-04-06 06:15 UTC, Ira Rosen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ira Rosen 2011-04-05 08:41:51 UTC
The error message:

/tmp/ccJ4gZxY.s: Assembler messages:
/tmp/ccJ4gZxY.s:635: Error: invalid constant (40c) after fixup


There is no failure with doubleword vectors or without -funroll-loops.
Comment 1 Ramana Radhakrishnan 2011-04-05 16:22:30 UTC
Can you show the assembler generated here ? I don't see the same error that you get here with a cross-compiler. 

Ramana
Comment 2 Ira Rosen 2011-04-06 06:15:10 UTC
Created attachment 23894 [details]
char_result_13.s
Comment 3 Ramana Radhakrishnan 2011-05-06 16:36:08 UTC
I am unable to replicate this with a recent version of trunk though the assembler source attached appears to be broken. 

Ramana
Comment 4 Ira Rosen 2011-05-08 07:52:19 UTC
I don't see it with with trunk or 4.5 either. However, it is still there with 4.6. 

Ira
Comment 5 Ramana Radhakrishnan 2011-06-10 14:37:07 UTC
Ah found it finally - this should fix it. Latent on trunk and 4.6 branch. Lengths are wrong in the backend for a vmovn pattern. 

cheers
Ramana
Comment 6 Ramana Radhakrishnan 2011-06-13 09:09:19 UTC
Author: ramana
Date: Mon Jun 13 09:09:14 2011
New Revision: 174984

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174984
Log:

PR target/48454

Fix vmovn lengths.

2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/48454
	* config/arm/neon.md (vec_pack_trunc<mode>): Set the lengths
	correctly for the case with Quad vectors.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/neon.md
Comment 7 Ramana Radhakrishnan 2011-06-20 11:14:54 UTC
Author: ramana
Date: Mon Jun 20 11:14:50 2011
New Revision: 175205

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175205
Log:


2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	Backport from mainline.
        2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/48454
	* config/arm/neon.md (vec_pack_trunc): Set the lengths
	correctly for the case with Quad vectors.



Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/config/arm/neon.md
Comment 8 Ramana Radhakrishnan 2011-07-08 14:52:17 UTC
This was fixed in 4.6.1 . 

Ramana