[all-commits] [llvm/llvm-project] 6261ad: [InstCombine] Fold more intrinsics over selects

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri Mar 31 07:32:39 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6261adfa51f2d93c8258e7b2d9811d607f3e50a5
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/intrinsic-select.ll

  Log Message:
  [InstCombine] Fold more intrinsics over selects

Move this handling to a centralized place and extend it to handle
saturating add/sub intrinsics.

I originally wanted to make this fully generic rather than
whitelist based, because this is legal and likely profitable for all
speculatable intrinsics. The caveat is that for vector selects,
the intrinsic can't perform cross-lane operations like a shuffle
or reduction, which we don't really expose as a generic property
right now. So for now I'm just extending the list.

More information about the All-commits mailing list