mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[X86] Update SelectionDAGDumper to print the extension type and expanding flag for masked loads. Add truncating and compressing for masked stores.
llvm-svn: 352029
This commit is contained in:
parent
1eb392d57a
commit
84ecca068e
@ -651,6 +651,36 @@ void SDNode::print_details(raw_ostream &OS, const SelectionDAG *G) const {
|
||||
if (*AM)
|
||||
OS << ", " << AM;
|
||||
|
||||
OS << ">";
|
||||
} else if (const MaskedLoadSDNode *MLd = dyn_cast<MaskedLoadSDNode>(this)) {
|
||||
OS << "<";
|
||||
|
||||
printMemOperand(OS, *MLd->getMemOperand(), G);
|
||||
|
||||
bool doExt = true;
|
||||
switch (MLd->getExtensionType()) {
|
||||
default: doExt = false; break;
|
||||
case ISD::EXTLOAD: OS << ", anyext"; break;
|
||||
case ISD::SEXTLOAD: OS << ", sext"; break;
|
||||
case ISD::ZEXTLOAD: OS << ", zext"; break;
|
||||
}
|
||||
if (doExt)
|
||||
OS << " from " << MLd->getMemoryVT().getEVTString();
|
||||
|
||||
if (MLd->isExpandingLoad())
|
||||
OS << ", expanding";
|
||||
|
||||
OS << ">";
|
||||
} else if (const MaskedStoreSDNode *MSt = dyn_cast<MaskedStoreSDNode>(this)) {
|
||||
OS << "<";
|
||||
printMemOperand(OS, *MSt->getMemOperand(), G);
|
||||
|
||||
if (MSt->isTruncatingStore())
|
||||
OS << ", trunc to " << MSt->getMemoryVT().getEVTString();
|
||||
|
||||
if (MSt->isCompressingStore())
|
||||
OS << ", compressing";
|
||||
|
||||
OS << ">";
|
||||
} else if (const MemSDNode* M = dyn_cast<MemSDNode>(this)) {
|
||||
OS << "<";
|
||||
|
Loading…
Reference in New Issue
Block a user