[all-commits] [llvm/llvm-project] 9ebf02: Add intrinsic to mask off aliasing vector lanes

Sam Tebbs via All-commits all-commits at lists.llvm.org
Mon Nov 25 01:53:20 PST 2024


  Branch: refs/heads/users/SamTebbs33/alias-intrinsic
  Home:   https://github.com/llvm/llvm-project
  Commit: 9ebf022a2fbdd38e5b2d15d11e92f31671c5896f
      https://github.com/llvm/llvm-project/commit/9ebf022a2fbdd38e5b2d15d11e92f31671c5896f
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-11-15 (Fri, 15 Nov 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/Intrinsics.td

  Log Message:
  -----------
  Add intrinsic to mask off aliasing vector lanes

It can be unsafe to load a vector from an address and write a vector to
an address if those two addresses have overlapping lanes within a
vectorised loop iteration.

This PR adds an intrinsic designed to create a mask with lanes disabled
if they overlap between the two pointer arguments, so that only safe
lanes are loaded, operated on and stored.

Along with the two pointer parameters, the intrinsic also takes an
immediate i32 that represents the size in bytes of the vector element
types, as well as an immediate i1 that is true if there is a write
after-read-hazard or false if there is a read-after-write hazard.

This will be used by #100579 which will also implement default lowering
in SelectionDAG.


  Commit: 9bfb63a46e75433034b74d4615cebb138b9aa1fb
      https://github.com/llvm/llvm-project/commit/9bfb63a46e75433034b74d4615cebb138b9aa1fb
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-11-15 (Fri, 15 Nov 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  Log Message:
  -----------
  Lower in selectiondag


  Commit: d3e07beaf383f9cbe93232d56020db1c4e77e6b2
      https://github.com/llvm/llvm-project/commit/d3e07beaf383f9cbe93232d56020db1c4e77e6b2
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-11-18 (Mon, 18 Nov 2024)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  wip


Compare: https://github.com/llvm/llvm-project/compare/9ebf022a2fbd%5E...d3e07beaf383

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list