[all-commits] [llvm/llvm-project] 1febf4: [AArch64][SVE][InstCombine] Combine contiguous gat...

Peter Waller via All-commits all-commits at lists.llvm.org
Wed Nov 3 04:03:38 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1febf42f03f664ec84aedf0ece3b29f92b10dce9
      https://github.com/llvm/llvm-project/commit/1febf42f03f664ec84aedf0ece3b29f92b10dce9
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2021-11-03 (Wed, 03 Nov 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    A llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-gatherscatter.ll

  Log Message:
  -----------
  [AArch64][SVE][InstCombine] Combine contiguous gather/scatter to load/store

Contiguous gather => masked load:

  (sve.ld1.gather.index Mask BasePtr (sve.index IndexBase 1))
  => (masked.load (gep BasePtr IndexBase) Align Mask undef)

Contiguous scatter => masked store:

  (sve.ld1.scatter.index Value Mask BasePtr (sve.index IndexBase 1))
  => (masked.store Value (gep BasePtr IndexBase) Align Mask)

Tests with <vscale x 2 x double>:

[Gather, Scatter] for each [Positive test (index=1), Negative test (index=2), Alignment propagation].

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




More information about the All-commits mailing list