On Wed, Aug 26, 2015 at 02:46:53PM +0100, Alan Lawrence wrote:
> aarch64_st<VSTRUCT:nregs><VDC:mode> and
> aarch64_ld<VSTRUCT:nregs><VDC:mode> expanders back onto 12 insns
> aarch64_{ld,st}{2,3,4}<mode>_dreg (for VD and DX modes), using the
> VSTRUCT_DREG iterator over TI/EI/OI modes to represent the block of memory
> transferred. Instead, use BLKmode for all memory transfers, explicitly setting
> mem_size.OK. Thanks, James > Bootstrapped and check-gcc on aarch64-none-linux-gnu. > > gcc/ChangeLog: > > * config/aarch64/aarch64-simd.md > (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ): > Change all TImode operands to BLKmode. > (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX): > Change all EImode operands to BLKmode. > (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX): > Change all OImode operands to BLKmode. > > (aarch64_ld<VSTRUCT:nregs><VDC:mode>, > aarch64_st<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode > and call set_mem_size. > > * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
