[all-commits] [llvm/llvm-project] aa754f: [IR] llvm::createMinMaxOp - create integer min/max...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Apr 13 08:41:15 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: aa754f7e0fddcc6c4d6737c71baf357825b09a3e
      https://github.com/llvm/llvm-project/commit/aa754f7e0fddcc6c4d6737c71baf357825b09a3e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-04-13 (Thu, 13 Apr 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/CodeGen/Generic/expand-experimental-reductions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/scalable-reductions.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll

  Log Message:
  -----------
  [IR] llvm::createMinMaxOp - create integer min/max intrinsics instead of icmp/sel

Based off D148215, when expanding a min/max reduction we should be creating min/max intrinsics directly instead of relying on instcombine to fold them back together.

This patch handles integer min/max cases. Hopefully we can add floating point support soon (at least for fastmath/nnan cases) - but we're missing some of the plumbing to pass the correct FMF to the intrinsic at the moment.

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




More information about the All-commits mailing list