This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Does neon_vset_lane<mode> expand wrong code when BYTES_BIG_ENDIAN?


From: Joseph Myers [mailto:joseph@codesourcery.com]
> On Wed, 4 Jan 2012, Xinyu Qi wrote:
> 
> > It seems these two parts of the code dealing with BYTE_BIG_ENDIAN will
> > cancel each other, and result in the original imm op unchanged.
> 
> Yes, that's correct.  Lane numbers for NEON intrinsics are the same as
> those used in assembly instructions, but for big-endian they are different
> from those used in the target-independent semantics of the RTL
> intermediate representation.
> 
> > Is there something wrong with these code?
> 
> No, see <http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00409.html> where I
> explain this at greater length.

I see.
Would you mind to take a look at the test case neon-vset_lanes8.c under gcc.target/arm/
If BYTE_BIG_ENDIAN, would the x be {1,2,3,4,16,6,7,8} after vset_lane_s8 (16,x,3) is called?
And if so, it is obviously not equal to y and test fails.

Does this case not suitable for BYTE_BIG_ENDIAN test?

Thanks,
Xinyu


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]