OSDN Git Service

[SelectionDAG][X86] Reorder the operands the MaskedStoreSDNode to put the value first.
authorCraig Topper <craig.topper@intel.com>
Sat, 25 Aug 2018 17:48:17 +0000 (17:48 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 25 Aug 2018 17:48:17 +0000 (17:48 +0000)
commit16d64ea7be7484e6bc9931b495f8ed9d38e6f98c
treead1585536853d1d3a2f8c36d007307c4f0b33273
parente44ba0057c5bc42a51412c9a128a0c84e3ba362f
[SelectionDAG][X86] Reorder the operands the MaskedStoreSDNode to put the value first.

Summary:
Previously the value being stored is the last operand in SDNode. This causes the type legalizer to visit the mask operand before the value operand. The type legalizer was more complicated because of this since we want the type of the value to drive the decisions.

This patch moves the value to be the first operand so we visit it first during type legalization. It also simplifies the type legalization code accordingly.

X86 is currently the only in tree target that uses this SDNode. Not sure if there are any users out of tree.

Reviewers: RKSimon, delena, hfinkel, eli.friedman

Reviewed By: RKSimon

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340689 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/Target/TargetSelectionDAG.td
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrSSE.td