[all-commits] [llvm/llvm-project] fd8a4b: [X86] combineAndnp - fold ANDN(SEXT(SETCC()), X) ->...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Mon Oct 14 06:54:38 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fd8a4b007330c214fc9cc6e2c255cc18fc3c6b0c
      https://github.com/llvm/llvm-project/commit/fd8a4b007330c214fc9cc6e2c255cc18fc3c6b0c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll

  Log Message:
  -----------
  [X86] combineAndnp - fold ANDN(SEXT(SETCC()),X) -> SELECT(NOT(SETCC()),X,0) on AVX512 targets

Reverse the generic foldVSelectToSignBitSplatMask fold on AVX512 targets where we can use the SETCC result directly in predicated moves/instructions.

Fixes #109272


  Commit: d81c2f16a3c0ee951147d150f32068eee959b885
      https://github.com/llvm/llvm-project/commit/d81c2f16a3c0ee951147d150f32068eee959b885
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-10-14 (Mon, 14 Oct 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll

  Log Message:
  -----------
  [X86] canCreateUndefOrPoisonForTargetNode - X86ISD::VPERMV3 shuffles don't create undef/poison

The operands might contain an undef/poison element, but the shuffle node itself will not create one by itself.

Improves test case from #109272


Compare: https://github.com/llvm/llvm-project/compare/c765b5eda778...d81c2f16a3c0

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