On 12/11/14 17:10, James Greenhalgh wrote:
Hi, This final patch clears up the remaining data structures which we no longer have any use for... * "_QUALIFIERS" macros which do not name a distinct pattern of arguments/return types. * The neon_builtin_type_mode enum is not needed, we can map directly to the machine_mode. * The neon_itype enum is not needed, the builtin expand functions can be rewritten to use the "qualifiers" data. This gives us reasonable parity between the builtin infrastructure for the ARM and AArch64 targets. We could go further and start sharing some of the logic between the two back-ends (and after that the builtin definitions, and some of arm_neon.h, etc.), but I haven't done that here as the immediate benefit is minimal. Bootstrapped and regression tested with no issues. OK?
OK. Ramana
Thanks, James --- gcc/ 2014-11-12 James Greenhalgh <james.greenha...@arm.com> * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete. (COPYSIGNF_QUALIFIERS): Likewise. (CREATE_QUALIFIERS): Likewise. (DUP_QUALIFIERS): Likewise. (FLOAT_WIDEN_QUALIFIERS): Likewise. (FLOAT_NARROW_QUALIFIERS): Likewise. (REINTERP_QUALIFIERS): Likewise. (RINT_QUALIFIERS): Likewise. (SPLIT_QUALIFIERS): Likewise. (FIXCONV_QUALIFIERS): Likewise. (SCALARMUL_QUALIFIERS): Likewise. (SCALARMULL_QUALIFIERS): Likewise. (SCALARMULH_QUALIFIERS): Likewise. (SELECT_QUALIFIERS): Likewise. (VTBX_QUALIFIERS): Likewise. (SHIFTIMM_QUALIFIERS): Likewise. (SCALARMAC_QUALIFIERS): Likewise. (LANEMUL_QUALIFIERS): Likewise. (LANEMULH_QUALIFIERS): Likewise. (LANEMULL_QUALIFIERS): Likewise. (SHIFTACC_QUALIFIERS): Likewise. (SHIFTINSERT_QUALIFIERS): Likewise. (VTBL_QUALIFIERS): Likewise. (LOADSTRUCT_QUALIFIERS): Likewise. (LOADSTRUCTLANE_QUALIFIERS): Likewise. (STORESTRUCT_QUALIFIERS): Likewise. (STORESTRUCTLANE_QUALIFIERS): Likewise. (neon_builtin_type_mode): Delete. (v8qi_UP): Map to V8QImode. (v8qi_UP): Map to V8QImode. (v4hi_UP): Map to V4HImode. (v4hf_UP): Map to V4HFmode. (v2si_UP): Map to V2SImode. (v2sf_UP): Map to V2SFmode. (di_UP): Map to DImode. (v16qi_UP): Map to V16QImode. (v8hi_UP): Map to V8HImode. (v4si_UP): Map to V4SImode. (v4sf_UP): Map to V4SFmode. (v2di_UP): Map to V2DImode. (ti_UP): Map to TImode. (ei_UP): Map to EImode. (oi_UP): Map to OImode. (neon_itype): Delete. (neon_builtin_datum): Remove itype, make mode a machine_mode. (VAR1): Update accordingly. (arm_init_neon_builtins): Use machine_mode directly. (neon_dereference_pointer): Likewise. (arm_expand_neon_args): Use qualifiers to decide operand types. (arm_expand_neon_builtin): Likewise. * config/arm/arm_neon_builtins.def: Remap operation type for many builtins.