Hi, This patch re-implements vreinterpret intrinsics to directly call a cast. The aim is to forward as much information to front-end as possible. This patch had a full LE and BE regression run with no regressions. Is patch good to commit to stage-1? Kind regards, Alex gcc/ 2014-02-13 Alex Velenko * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed. * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed. (vreinterpret_p8_s8): Likewise. * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast. (vreinterpret_p8_s16): Likewise. (vreinterpret_p8_s32): Likewise. (vreinterpret_p8_s64): Likewise. (vreinterpret_p8_f32): Likewise. (vreinterpret_p8_u8): Likewise. (vreinterpret_p8_u16): Likewise. (vreinterpret_p8_u32): Likewise. (vreinterpret_p8_u64): Likewise. (vreinterpret_p8_p16): Likewise. (vreinterpretq_p8_s8): Likewise. (vreinterpretq_p8_s16): Likewise. (vreinterpretq_p8_s32): Likewise. (vreinterpretq_p8_s64): Likewise. (vreinterpretq_p8_f32): Likewise. (vreinterpretq_p8_u8): Likewise. (vreinterpretq_p8_u16): Likewise. (vreinterpretq_p8_u32): Likewise. (vreinterpretq_p8_u64): Likewise. (vreinterpretq_p8_p16): Likewise. (vreinterpret_p16_s8): Likewise. (vreinterpret_p16_s16): Likewise. (vreinterpret_p16_s32): Likewise. (vreinterpret_p16_s64): Likewise. (vreinterpret_p16_f32): Likewise. (vreinterpret_p16_u8): Likewise. (vreinterpret_p16_u16): Likewise. (vreinterpret_p16_u32): Likewise. (vreinterpret_p16_u64): Likewise. (vreinterpret_p16_p8): Likewise. (vreinterpretq_p16_s8): Likewise. (vreinterpretq_p16_s16): Likewise. (vreinterpretq_p16_s32): Likewise. (vreinterpretq_p16_s64): Likewise. (vreinterpretq_p16_f32): Likewise. (vreinterpretq_p16_u8): Likewise. (vreinterpretq_p16_u16): Likewise. (vreinterpretq_p16_u32): Likewise. (vreinterpretq_p16_u64): Likewise. (vreinterpretq_p16_p8): Likewise. (vreinterpret_f32_s8): Likewise. (vreinterpret_f32_s16): Likewise. (vreinterpret_f32_s32): Likewise. (vreinterpret_f32_s64): Likewise. (vreinterpret_f32_u8): Likewise. (vreinterpret_f32_u16): Likewise. (vreinterpret_f32_u32): Likewise. (vreinterpret_f32_u64): Likewise. (vreinterpret_f32_p8): Likewise. (vreinterpret_f32_p16): Likewise. (vreinterpretq_f32_s8): Likewise. (vreinterpretq_f32_s16): Likewise. (vreinterpretq_f32_s32): Likewise. (vreinterpretq_f32_s64): Likewise. (vreinterpretq_f32_u8): Likewise. (vreinterpretq_f32_u16): Likewise. (vreinterpretq_f32_u32): Likewise. (vreinterpretq_f32_u64): Likewise. (vreinterpretq_f32_p8): Likewise. (vreinterpretq_f32_p16): Likewise. (vreinterpret_s64_s8): Likewise. (vreinterpret_s64_s16): Likewise. (vreinterpret_s64_s32): Likewise. (vreinterpret_s64_f32): Likewise. (vreinterpret_s64_u8): Likewise. (vreinterpret_s64_u16): Likewise. (vreinterpret_s64_u32): Likewise. (vreinterpret_s64_u64): Likewise. (vreinterpret_s64_p8): Likewise. (vreinterpret_s64_p16): Likewise. (vreinterpretq_s64_s8): Likewise. (vreinterpretq_s64_s16): Likewise. (vreinterpretq_s64_s32): Likewise. (vreinterpretq_s64_f32): Likewise. (vreinterpretq_s64_u8): Likewise. (vreinterpretq_s64_u16): Likewise. (vreinterpretq_s64_u32): Likewise. (vreinterpretq_s64_u64): Likewise. (vreinterpretq_s64_p8): Likewise. (vreinterpretq_s64_p16): Likewise. (vreinterpret_u64_s8): Likewise. (vreinterpret_u64_s16): Likewise. (vreinterpret_u64_s32): Likewise. (vreinterpret_u64_s64): Likewise. (vreinterpret_u64_f32): Likewise. (vreinterpret_u64_u8): Likewise. (vreinterpret_u64_u16): Likewise. (vreinterpret_u64_u32): Likewise. (vreinterpret_u64_p8): Likewise. (vreinterpret_u64_p16): Likewise. (vreinterpretq_u64_s8): Likewise. (vreinterpretq_u64_s16): Likewise. (vreinterpretq_u64_s32): Likewise. (vreinterpretq_u64_s64): Likewise. (vreinterpretq_u64_f32): Likewise. (vreinterpretq_u64_u8): Likewise. (vreinterpretq_u64_u16): Likewise. (vreinterpretq_u64_u32): Likewise. (vreinterpretq_u64_p8): Likewise. (vreinterpretq_u64_p16): Likewise. (vreinterpret_s8_s16): Likewise. (vreinterpret_s8_s32): Likewise. (vreinterpret_s8_s64): Likewise. (vreinterpret_s8_f32): Likewise. (vreinterpret_s8_u8): Likewise. (vreinterpret_s8_u16): Likewise. (vreinterpret_s8_u32): Likewise. (vreinterpret_s8_u64): Likewise. (vreinterpret_s8_p8): Likewise. (vreinterpret_s8_p16): Likewise. (vreinterpretq_s8_s16): Likewise. (vreinterpretq_s8_s32): Likewise. (vreinterpretq_s8_s64): Likewise. (vreinterpretq_s8_f32): Likewise. (vreinterpretq_s8_u8): Likewise. (vreinterpretq_s8_u16): Likewise. (vreinterpretq_s8_u32): Likewise. (vreinterpretq_s8_u64): Likewise. (vreinterpretq_s8_p8): Likewise. (vreinterpretq_s8_p16): Likewise. (vreinterpret_s16_s8): Likewise. (vreinterpret_s16_s32): Likewise. (vreinterpret_s16_s64): Likewise. (vreinterpret_s16_f32): Likewise. (vreinterpret_s16_u8): Likewise. (vreinterpret_s16_u16): Likewise. (vreinterpret_s16_u32): Likewise. (vreinterpret_s16_u64): Likewise. (vreinterpret_s16_p8): Likewise. (vreinterpret_s16_p16): Likewise. (vreinterpretq_s16_s8): Likewise. (vreinterpretq_s16_s32): Likewise. (vreinterpretq_s16_s64): Likewise. (vreinterpretq_s16_f32): Likewise. (vreinterpretq_s16_u8): Likewise. (vreinterpretq_s16_u16): Likewise. (vreinterpretq_s16_u32): Likewise. (vreinterpretq_s16_u64): Likewise. (vreinterpretq_s16_p8): Likewise. (vreinterpretq_s16_p16): Likewise. (vreinterpret_s32_s8): Likewise. (vreinterpret_s32_s16): Likewise. (vreinterpret_s32_s64): Likewise. (vreinterpret_s32_f32): Likewise. (vreinterpret_s32_u8): Likewise. (vreinterpret_s32_u16): Likewise. (vreinterpret_s32_u32): Likewise. (vreinterpret_s32_u64): Likewise. (vreinterpret_s32_p8): Likewise. (vreinterpret_s32_p16): Likewise. (vreinterpretq_s32_s8): Likewise. (vreinterpretq_s32_s16): Likewise. (vreinterpretq_s32_s64): Likewise. (vreinterpretq_s32_f32): Likewise. (vreinterpretq_s32_u8): Likewise. (vreinterpretq_s32_u16): Likewise. (vreinterpretq_s32_u32): Likewise. (vreinterpretq_s32_u64): Likewise. (vreinterpretq_s32_p8): Likewise. (vreinterpretq_s32_p16): Likewise. (vreinterpret_u8_s8): Likewise. (vreinterpret_u8_s16): Likewise. (vreinterpret_u8_s32): Likewise. (vreinterpret_u8_s64): Likewise. (vreinterpret_u8_f32): Likewise. (vreinterpret_u8_u16): Likewise. (vreinterpret_u8_u32): Likewise. (vreinterpret_u8_u64): Likewise. (vreinterpret_u8_p8): Likewise. (vreinterpret_u8_p16): Likewise. (vreinterpretq_u8_s8): Likewise. (vreinterpretq_u8_s16): Likewise. (vreinterpretq_u8_s32): Likewise. (vreinterpretq_u8_s64): Likewise. (vreinterpretq_u8_f32): Likewise. (vreinterpretq_u8_u16): Likewise. (vreinterpretq_u8_u32): Likewise. (vreinterpretq_u8_u64): Likewise. (vreinterpretq_u8_p8): Likewise. (vreinterpretq_u8_p16): Likewise. (vreinterpret_u16_s8): Likewise. (vreinterpret_u16_s16): Likewise. (vreinterpret_u16_s32): Likewise. (vreinterpret_u16_s64): Likewise. (vreinterpret_u16_f32): Likewise. (vreinterpret_u16_u8): Likewise. (vreinterpret_u16_u32): Likewise. (vreinterpret_u16_u64): Likewise. (vreinterpret_u16_p8): Likewise. (vreinterpret_u16_p16): Likewise. (vreinterpretq_u16_s8): Likewise. (vreinterpretq_u16_s16): Likewise. (vreinterpretq_u16_s32): Likewise. (vreinterpretq_u16_s64): Likewise. (vreinterpretq_u16_f32): Likewise. (vreinterpretq_u16_u8): Likewise. (vreinterpretq_u16_u32): Likewise. (vreinterpretq_u16_u64): Likewise. (vreinterpretq_u16_p8): Likewise. (vreinterpretq_u16_p16): Likewise. (vreinterpret_u32_s8): Likewise. (vreinterpret_u32_s16): Likewise. (vreinterpret_u32_s32): Likewise. (vreinterpret_u32_s64): Likewise. (vreinterpret_u32_f32): Likewise. (vreinterpret_u32_u8): Likewise. (vreinterpret_u32_u16): Likewise. (vreinterpret_u32_u64): Likewise. (vreinterpret_u32_p8): Likewise. (vreinterpret_u32_p16): Likewise. (vreinterpretq_u32_s8): Likewise. (vreinterpretq_u32_s16): Likewise. (vreinterpretq_u32_s32): Likewise. (vreinterpretq_u32_s64): Likewise. (vreinterpretq_u32_f32): Likewise. (vreinterpretq_u32_u8): Likewise. (vreinterpretq_u32_u16): Likewise. (vreinterpretq_u32_u64): Likewise. (vreinterpretq_u32_p8): Likewise. (vreinterpretq_u32_p16): Likewise.