This patch series allows the gather/scatter to support 64-bit offsets,
in addition to the 32-bit offsets already supported.

64-bit offsets are not natively supported by the hardware instructions,
but the vector of addresses can be precomputed, so we can make it work.
If the middle-end can use SImode offsets then that would be generally
better, but allowing DImode is better than allowing the vectorizers to
simply fail when it encounters complex access patterns.

When combined with vect_partial_vector_usage=1, this patch gives a good
speed-up on the SPEC HPC lbm benchmark.

Andrew Stubbs (3):
  amdgcn: add more insn patterns using vec_duplicate
  amdgcn: Add ashlvNm, mulvNm macros
  amdgcn: add DImode offsets for gather/scatter

 gcc/config/gcn/gcn-valu.md | 262 ++++++++++++++++++++++++++++++++++++-
 gcc/config/gcn/gcn.cc      | 106 +++++++++------
 2 files changed, 323 insertions(+), 45 deletions(-)

-- 
2.50.0

Reply via email to