[all-commits] [llvm/llvm-project] 019f02: [AArch64][SVE] Fold gather/scatter with 32bits whe...

CarolineConcatto via All-commits all-commits at lists.llvm.org
Thu Feb 3 11:00:25 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 019f0221d52dc14829b6011b5bccd9ba4c3849d8
      https://github.com/llvm/llvm-project/commit/019f0221d52dc14829b6011b5bccd9ba4c3849d8
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2022-02-03 (Thu, 03 Feb 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve-gather-scatter-addr-opts.ll

  Log Message:
  -----------
  [AArch64][SVE] Fold gather/scatter with 32bits when possible

In AArch64ISelLowering.cpp this patch implements this fold:

GEP (%ptr, (splat(%offset) + stepvector(A)))
into GEP ((%ptr + %offset), stepvector(A))

The above transform simplifies the index operand so that it can be expressed
as i32 elements.
This allows using only one gather/scatter assembly instruction instead of two.

Patch by Paul Walker (@paulwalker-arm).

Depends on D118459

Differential Revision: https://reviews.llvm.org/D117900




More information about the All-commits mailing list