------- Comment #3 from drow at gcc dot gnu dot org  2010-02-22 21:14 -------
Subject: Re:  vld4 and vst4 intrinsics are not handled
 correctly

On Fri, Feb 19, 2010 at 11:08:18AM -0000, rguenth at gcc dot gnu dot org wrote:
> Likely because of the union in
> 
> __extension__ static __inline void __attribute__ ((__always_inline__))
> vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
> {
>   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
>   __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
> }
> 
> which does copy-initialization of __bu.

Right.  FYI, my best idea to date of how to fix this is to convert the
multiple-vector types (like uint8x8x4_t) to builtin types.  At that
point we can use the neon_reinterpret patterns to do the necessary
type punning without involving __builtin_neon_oi and the union.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118

Reply via email to