[all-commits] [llvm/llvm-project] 233def: [DAGCombiner] Prevent unfoldMaskedMerge from creat...

Craig Topper via All-commits all-commits at lists.llvm.org
Mon Nov 15 17:27:39 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 233def40f7adfc92db4492e7d612e6ff1d85931f
      https://github.com/llvm/llvm-project/commit/233def40f7adfc92db4492e7d612e6ff1d85931f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-11-15 (Mon, 15 Nov 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/unfold-masked-merge-scalar-variablemask.ll

  Log Message:
  -----------
  [DAGCombiner] Prevent unfoldMaskedMerge from creating an AND with two inverted inputs.

It's possible that the mask is already a NOT. At least if InstCombine
hasn't canonicalized the input. In that case we will form an ANDN with
X instead of with Y. So we don't need to worry about Y being a constant.

We might need to check that X isn't a constant instead, but we don't
have a test case for that yet.

This fixes a size regression found when trying to enable this combine
for RISCV in D113937.

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




More information about the All-commits mailing list