Re: [PATCH ARM iWMMXt 3/5] built in define and expand

2012-06-06 Thread Ramana Radhakrishnan
On 29 May 2012 05:13, Matt Turner  wrote:
> From: Xinyu Qi 
>
>        gcc/
>        * config/arm/arm.c (enum arm_builtins): Revise built-in fcode.
>        (IWMMXT2_BUILTIN): New define.
>        (IWMMXT2_BUILTIN2): Likewise.
>        (iwmmx2_mbuiltin): Likewise.
>        (builtin_description bdesc_2arg): Revise built in declaration.
>        (builtin_description bdesc_1arg): Likewise.
>        (arm_init_iwmmxt_builtins): Revise built in initialization.
>        (arm_expand_builtin): Revise built in expansion.
> ---
>  gcc/config/arm/arm.c |  620 
> +-
>  1 files changed, 559 insertions(+), 61 deletions(-)
>
> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
> index b0680ab..51eed40 100644
> --- a/gcc/config/arm/arm.c
> +++ b/gcc/config/arm/arm.c
> @@ -19637,8 +19637,15 @@ static neon_builtin_datum neon_builtin_data[] =
>    FIXME?  */
>  enum arm_builtins
>  {
> -  ARM_BUILTIN_GETWCX,
> -  ARM_BUILTIN_SETWCX,
> +  ARM_BUILTIN_GETWCGR0,
> +  ARM_BUILTIN_GETWCGR1,
> +  ARM_BUILTIN_GETWCGR2,
> +  ARM_BUILTIN_GETWCGR3,
> +
> +  ARM_BUILTIN_SETWCGR0,
> +  ARM_BUILTIN_SETWCGR1,
> +  ARM_BUILTIN_SETWCGR2,
> +  ARM_BUILTIN_SETWCGR3,
>
>   ARM_BUILTIN_WZERO,
>
> @@ -19661,7 +19668,11 @@ enum arm_builtins
>   ARM_BUILTIN_WSADH,
>   ARM_BUILTIN_WSADHZ,
>
> -  ARM_BUILTIN_WALIGN,
> +  ARM_BUILTIN_WALIGNI,
> +  ARM_BUILTIN_WALIGNR0,
> +  ARM_BUILTIN_WALIGNR1,
> +  ARM_BUILTIN_WALIGNR2,
> +  ARM_BUILTIN_WALIGNR3,
>
>   ARM_BUILTIN_TMIA,
>   ARM_BUILTIN_TMIAPH,
> @@ -19797,6 +19808,81 @@ enum arm_builtins
>   ARM_BUILTIN_WUNPCKELUH,
>   ARM_BUILTIN_WUNPCKELUW,
>
> +  ARM_BUILTIN_WABSB,
> +  ARM_BUILTIN_WABSH,
> +  ARM_BUILTIN_WABSW,
> +
> +  ARM_BUILTIN_WADDSUBHX,
> +  ARM_BUILTIN_WSUBADDHX,
> +
> +  ARM_BUILTIN_WABSDIFFB,
> +  ARM_BUILTIN_WABSDIFFH,
> +  ARM_BUILTIN_WABSDIFFW,
> +
> +  ARM_BUILTIN_WADDCH,
> +  ARM_BUILTIN_WADDCW,
> +
> +  ARM_BUILTIN_WAVG4,
> +  ARM_BUILTIN_WAVG4R,
> +
> +  ARM_BUILTIN_WMADDSX,
> +  ARM_BUILTIN_WMADDUX,
> +
> +  ARM_BUILTIN_WMADDSN,
> +  ARM_BUILTIN_WMADDUN,
> +
> +  ARM_BUILTIN_WMULWSM,
> +  ARM_BUILTIN_WMULWUM,
> +
> +  ARM_BUILTIN_WMULWSMR,
> +  ARM_BUILTIN_WMULWUMR,
> +
> +  ARM_BUILTIN_WMULWL,
> +
> +  ARM_BUILTIN_WMULSMR,
> +  ARM_BUILTIN_WMULUMR,
> +
> +  ARM_BUILTIN_WQMULM,
> +  ARM_BUILTIN_WQMULMR,
> +
> +  ARM_BUILTIN_WQMULWM,
> +  ARM_BUILTIN_WQMULWMR,
> +
> +  ARM_BUILTIN_WADDBHUSM,
> +  ARM_BUILTIN_WADDBHUSL,
> +
> +  ARM_BUILTIN_WQMIABB,
> +  ARM_BUILTIN_WQMIABT,
> +  ARM_BUILTIN_WQMIATB,
> +  ARM_BUILTIN_WQMIATT,
> +
> +  ARM_BUILTIN_WQMIABBN,
> +  ARM_BUILTIN_WQMIABTN,
> +  ARM_BUILTIN_WQMIATBN,
> +  ARM_BUILTIN_WQMIATTN,
> +
> +  ARM_BUILTIN_WMIABB,
> +  ARM_BUILTIN_WMIABT,
> +  ARM_BUILTIN_WMIATB,
> +  ARM_BUILTIN_WMIATT,
> +
> +  ARM_BUILTIN_WMIABBN,
> +  ARM_BUILTIN_WMIABTN,
> +  ARM_BUILTIN_WMIATBN,
> +  ARM_BUILTIN_WMIATTN,
> +
> +  ARM_BUILTIN_WMIAWBB,
> +  ARM_BUILTIN_WMIAWBT,
> +  ARM_BUILTIN_WMIAWTB,
> +  ARM_BUILTIN_WMIAWTT,
> +
> +  ARM_BUILTIN_WMIAWBBN,
> +  ARM_BUILTIN_WMIAWBTN,
> +  ARM_BUILTIN_WMIAWTBN,
> +  ARM_BUILTIN_WMIAWTTN,
> +
> +  ARM_BUILTIN_WMERGE,
> +
>   ARM_BUILTIN_THREAD_POINTER,
>
>   ARM_BUILTIN_NEON_BASE,
> @@ -20329,6 +20415,10 @@ static const struct builtin_description bdesc_2arg[] 
> =
>   { FL_IWMMXT, CODE_FOR_##code, "__builtin_arm_" string, \
>     ARM_BUILTIN_##builtin, UNKNOWN, 0 },
>
> +#define IWMMXT2_BUILTIN(code, string, builtin) \
> +  { FL_IWMMXT2, CODE_FOR_##code, "__builtin_arm_" string, \
> +    ARM_BUILTIN_##builtin, UNKNOWN, 0 },
> +
>   IWMMXT_BUILTIN (addv8qi3, "waddb", WADDB)
>   IWMMXT_BUILTIN (addv4hi3, "waddh", WADDH)
>   IWMMXT_BUILTIN (addv2si3, "waddw", WADDW)
> @@ -20385,44 +20475,45 @@ static const struct builtin_description 
> bdesc_2arg[] =
>   IWMMXT_BUILTIN (iwmmxt_wunpckihb, "wunpckihb", WUNPCKIHB)
>   IWMMXT_BUILTIN (iwmmxt_wunpckihh, "wunpckihh", WUNPCKIHH)
>   IWMMXT_BUILTIN (iwmmxt_wunpckihw, "wunpckihw", WUNPCKIHW)
> -  IWMMXT_BUILTIN (iwmmxt_wmadds, "wmadds", WMADDS)
> -  IWMMXT_BUILTIN (iwmmxt_wmaddu, "wmaddu", WMADDU)
> +  IWMMXT2_BUILTIN (iwmmxt_waddsubhx, "waddsubhx", WADDSUBHX)
> +  IWMMXT2_BUILTIN (iwmmxt_wsubaddhx, "wsubaddhx", WSUBADDHX)
> +  IWMMXT2_BUILTIN (iwmmxt_wabsdiffb, "wabsdiffb", WABSDIFFB)
> +  IWMMXT2_BUILTIN (iwmmxt_wabsdiffh, "wabsdiffh", WABSDIFFH)
> +  IWMMXT2_BUILTIN (iwmmxt_wabsdiffw, "wabsdiffw", WABSDIFFW)
> +  IWMMXT2_BUILTIN (iwmmxt_avg4, "wavg4", WAVG4)
> +  IWMMXT2_BUILTIN (iwmmxt_avg4r, "wavg4r", WAVG4R)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulwsm, "wmulwsm", WMULWSM)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulwum, "wmulwum", WMULWUM)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulwsmr, "wmulwsmr", WMULWSMR)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulwumr, "wmulwumr", WMULWUMR)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulwl, "wmulwl", WMULWL)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulsmr, "wmulsmr", WMULSMR)
> +  IWMMXT2_BUILTIN (iwmmxt_wmulumr, "wmulumr", WMULUMR)
> +  IWMMXT2_BUILTIN (iwmmxt_wqmulm, "wqmulm", WQMULM)
> +  IWMMXT2_BUILTIN (iwmmxt_wqmulmr, "wqmulmr", W

RE: [PATCH, ARM, iWMMXt][3/5]: built in define and expand

2011-07-14 Thread Xinyu Qi
> Hi,
> 
> It is the third part of iWMMXt maintenance.
> 

*config/arm/arm.c (enum arm_builtins): Built-in fcode.
 (builtin_description bdesc_2arg): Built in declare.
 (builtin_description bdesc_1arg): Ditto.
 (arm_init_iwmmxt_builtins): Built in initialize.
 (arm_expand_builtin): Built in expand.


Thanks,
Xinyu


3_arm_c.diff
Description: 3_arm_c.diff