[all-commits] [llvm/llvm-project] 86c17e: [AArch64][SVE] Expose flags result of predicate-as...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Thu Jun 25 02:43:11 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 86c17ecd4cc558769be4ab87bf5c89061ea99f5d
      https://github.com/llvm/llvm-project/commit/86c17ecd4cc558769be4ab87bf5c89061ea99f5d
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td

  Log Message:
  -----------
  [AArch64][SVE] Expose flags result of predicate-as-counter whiles (NFC) (#202976)

For predicate-as-counter there is not "ptest" instruction. So unlike for
the SVE1 while instructions, we can't fold
`extract_vector_elt(pext(whilelo, 0), 0)` to PTEST_FIRST_ACTIVE, then
rely on the ptest elimination to remove redundant tests.

This patch instead adds new ISD nodes for predicate-as-counter while
instructions that return both the predicate and the status flags. This
will allow us to DAG combine `extract_vector_elt(pext(whilelo, 0), 0)`
to `CSET (whilelo, first)`. A further DAG combine could also fold the
`CSET` into a BR_CC (if it has one use).



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