This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Missing patch. On Wed, May 28, 2014 at 3:02 PM, bin.cheng <bin.cheng@arm.com> wrote: > Hi, > I was surprised that GCC didn't support addressing modes like > [REG+OFF]/[REG_REG] for instructions ldr/str in vectorization scenarios. > The generated assembly is bad since all address expressions have to be > computed outside of memory reference. The root cause is because aarch64 > effectively rejects reg-indexing (and const-offset) addressing modes in > aarch64_classify_address and miscellaneous simd patterns. > > By fixing this issue, performance of fp benchmarks can be obviously > improved. It can also help vectorized int cases. > > The patch passes bootstrap and regression test on aarch64/little-endian. It > also passes regression test on aarch64/big-endian except for case > "gcc.target/aarch64/vect-mull.c". I analyzed the failed case and now > believe it reveals a latent bug in vectorizer on aarch64/big-endian. The > analysis report is posted at > https://gcc.gnu.org/ml/gcc-patches/2014-05/msg00182.html. > > So is it OK? > > Thanks, > bin > > > 2014-05-28 Bin Cheng <bin.cheng@arm.com> > > * config/aarch64/aarch64.c (aarch64_classify_address) > (aarch64_legitimize_reload_address): Support full addressing modes > for vector modes. > * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>) > (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax > predicates. > > > -- Best Regards.
Attachment:
fp-loadstore-addressing-mode-20140520.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |