[all-commits] [llvm/llvm-project] 362c52: [InstCombine] Bubble vector.reverse of compare ope...

paulwalker-arm via All-commits all-commits at lists.llvm.org
Wed Dec 21 08:01:31 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 362c52ad5a90d4f1c2fb01f3f5989ca4dc13855f
      https://github.com/llvm/llvm-project/commit/362c52ad5a90d4f1c2fb01f3f5989ca4dc13855f
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll

  Log Message:
  -----------
  [InstCombine] Bubble vector.reverse of compare operands to their result.

This mirrors a similar shufflevector transformation so the same
effect is obtained for scalable vectors. The transformation is
only performed when it can be proven the number of resulting
reversals is not increased. By bubbling the reversals from operand
to result this should typically be the case and ideally leads to
back-back shuffles that can be elimitated entirely.

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


  Commit: 87c494b8975332123fb6321a2ab7bf490dc7d29c
      https://github.com/llvm/llvm-project/commit/87c494b8975332123fb6321a2ab7bf490dc7d29c
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/vector-reverse.ll

  Log Message:
  -----------
  [InstCombine] Bubble vector.reverse of select operands to their result.

This mirrors a similar shufflevector transformation so the same
effect is obtained for scalable vectors. The transformation is
only performed when it can be proven the number of resulting
reversals is not increased. By bubbling the reversals from operand
to result this should typically be the case and ideally leads to
back-back shuffles that can be elimitated entirely.

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


  Commit: 0bca44680ab9dc83a372a6bf932d42dfb24fbf4d
      https://github.com/llvm/llvm-project/commit/0bca44680ab9dc83a372a6bf932d42dfb24fbf4d
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll

  Log Message:
  -----------
  [InstCombine] Bubble vector.reverse of binop operands to their result.

This mirrors a similar shufflevector transformation so the same
effect is obtained for scalable vectors. The transformation is
only performed when it can be proven the number of resulting
reversals is not increased. By bubbling the reversals from operand
to result this should typically be the case and ideally leads to
back-back shuffles that can be elimitated entirely.

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


Compare: https://github.com/llvm/llvm-project/compare/d8fb46ee5555...0bca44680ab9


More information about the All-commits mailing list