diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp index f8adfba7fb028a..ceca4aaf4188f1 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp @@ -1842,29 +1842,25 @@ SDValue DAGTypeLegalizer::PromoteIntOp_STORE(StoreSDNode *N, unsigned OpNo){ SDValue DAGTypeLegalizer::PromoteIntOp_MSTORE(MaskedStoreSDNode *N, unsigned OpNo) { - SDValue DataOp = N->getValue(); - EVT DataVT = DataOp.getValueType(); SDValue Mask = N->getMask(); - SDLoc dl(N); - bool TruncateStore = false; if (OpNo == 4) { + // The Mask. Update in place. + EVT DataVT = DataOp.getValueType(); Mask = PromoteTargetBoolean(Mask, DataVT); - // Update in place. SmallVector NewOps(N->op_begin(), N->op_end()); NewOps[4] = Mask; return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0); - } else { // Data operand - assert(OpNo == 1 && "Unexpected operand for promotion"); - DataOp = GetPromotedInteger(DataOp); - TruncateStore = true; } - return DAG.getMaskedStore(N->getChain(), dl, DataOp, N->getBasePtr(), + assert(OpNo == 1 && "Unexpected operand for promotion"); + DataOp = GetPromotedInteger(DataOp); + + return DAG.getMaskedStore(N->getChain(), SDLoc(N), DataOp, N->getBasePtr(), N->getOffset(), Mask, N->getMemoryVT(), N->getMemOperand(), N->getAddressingMode(), - TruncateStore, N->isCompressingStore()); + /*IsTruncating*/ true, N->isCompressingStore()); } SDValue DAGTypeLegalizer::PromoteIntOp_MLOAD(MaskedLoadSDNode *N,