Re: Ping: Some remodelling of the ARM vld and vst patterns

2011-04-12 Thread Nick Clifton

Hi Richard,

> gcc/
>* config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
>size of a '%A' memory reference.
>(T_DREG, T_QREG): New neon_builtin_type_bits.
>(arm_init_neon_builtins): Assert that the load and store operands
>are neon_struct_operands.
>(locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
>(NEON_ARG_MEMORY): New builtin_arg.
>(neon_dereference_pointer): New function.
>(arm_expand_neon_args): Add a neon_builtin_type_bits argument.
>Handle NEON_ARG_MEMORY.
>(arm_expand_neon_builtin): Update after above interface changes.
>Use NEON_ARG_MEMORY for loads and stores.
>* config/arm/predicates.md (neon_struct_operand): New predicate.
>* config/arm/iterators.md (V_two_elem): Tweak formatting.
>(V_three_elem): Use BLKmode for accesses that have no associated mode.
>(V_four_elem): Tweak formatting.
>* config/arm/neon.md (neon_vld1, neon_vld1_dup)
>(neon_vst1_lane, neon_vst1, neon_vld2)
>(neon_vld2_lane, neon_vld2_dup, neon_vst2)
>(neon_vst2_lane, neon_vld3, neon_vld3_lane)
>(neon_vld3_dup, neon_vst3, neon_vst3_lane)
>(neon_vld4, neon_vld4_lane, neon_vld4_dup)
>(neon_vst4): Replace pointer operand with a memory operand.
>Use %A in the output template.
>(neon_vld3qa, neon_vld3qb, neon_vst3qa)
>(neon_vst3qb, neon_vld4qa, neon_vld4qb)
>(neon_vst4qa, neon_vst4qb): Likewise, but halve
>the width of the memory access.  Remove post-increment.
>* config/arm/neon-testgen.ml: Allow addresses to have an alignment.
>
> gcc/testsuite/
>* gcc.target/arm/neon-vld3-1.c: New test.
>* gcc.target/arm/neon-vst3-1.c: New test.
>* gcc.target/arm/neon/v*.c: Regenerate.

Approved - please apply.

Cheers
  Nick


Ping: Some remodelling of the ARM vld and vst patterns

2011-04-12 Thread Richard Sandiford
Ping for this change to the NEON vldN and vstN patterns:

http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01996.html

Thanks,
Richard