[all-commits] [llvm/llvm-project] 9fc347: [DAG] PromoteIntRes_BUILD_VECTOR - extend constant...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Wed Jul 20 02:49:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9fc347aa4e819d43c87e43ae4a6388a58d387b20
      https://github.com/llvm/llvm-project/commit/9fc347aa4e819d43c87e43ae4a6388a58d387b20
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2022-07-20 (Wed, 20 Jul 2022)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/test/CodeGen/AArch64/arm64-vshuffle.ll
    M llvm/test/CodeGen/ARM/select_xform.ll
    M llvm/test/CodeGen/PowerPC/pr25080.ll
    M llvm/test/CodeGen/PowerPC/vec-select.ll
    M llvm/test/CodeGen/X86/bitcast-setcc-128.ll
    M llvm/test/CodeGen/X86/promote-cmp.ll

  Log Message:
  -----------
  [DAG] PromoteIntRes_BUILD_VECTOR - extend constant boolean vectors according to target BooleanContents

PromoteIntRes_BUILD_VECTOR currently always ANY_EXTENDs build vector operands, but if this is a constant boolean vector we're losing the useful ability to keep the vector matching the BooleanContents mode used by the target.

This patch extends constant boolean vectors according to target BooleanContents, allowing a number of additional all-bits folds (notable XOR -> NOT conversions) to occur.

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




More information about the All-commits mailing list