]> granicus.if.org Git - llvm/commit
Merging r311071:
authorHans Wennborg <hans@hanshq.net>
Mon, 21 Aug 2017 23:28:04 +0000 (23:28 +0000)
committerHans Wennborg <hans@hanshq.net>
Mon, 21 Aug 2017 23:28:04 +0000 (23:28 +0000)
commit94bd5ab1242b8157216400350f9d8dd55fa7dd72
tree0e4b5f3cd8e6aed53bce7a84f4ce7ed33f12645d
parentef21e43d69b7dae3cff0f0524f53bf6821951dd6
Merging r311071:
------------------------------------------------------------------------
r311071 | eladcohen | 2017-08-17 01:06:36 -0700 (Thu, 17 Aug 2017) | 13 lines

[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/branches/release_50@311409 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]