]> granicus.if.org Git - llvm/commit
[SelectionDAG] Teach the vector-types operand scalarizer about SETCC
authorElad Cohen <elad2.cohen@intel.com>
Thu, 17 Aug 2017 08:06:36 +0000 (08:06 +0000)
committerElad Cohen <elad2.cohen@intel.com>
Thu, 17 Aug 2017 08:06:36 +0000 (08:06 +0000)
commit605e60b1d2d91f1ec8699eb7347c4ca5c15eee7c
treeb70b582f8246dae69dad9c7532787763cc0a11d6
parent69e291b2824abbaea2a2008fa0925511395251f4
[SelectionDAG] Teach the vector-types operand scalarizer about SETCC

When v1i1 is legal (e.g. AVX512) the legalizer can reach
a case where a v1i1 SETCC with an illgeal vector type operand
wasn't scalarized (since v1i1 is legal) but its operands does
have to be scalarized. This used to assert because SETCC was
missing from the vector operand scalarizer.

This patch attemps to teach the legalizer to handle these cases
by scalazring the operands, converting the node into a scalar
SETCC node.

Differential revision: https://reviews.llvm.org/D36651

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311071 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeTypes.h
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
test/CodeGen/X86/pr34177.ll [new file with mode: 0644]