From 6c75160b875799a9303879e11022edf4ba44c3f9 Mon Sep 17 00:00:00 2001 From: Hal Finkel Date: Mon, 8 Jul 2013 14:40:04 +0000 Subject: [PATCH] Improve the comment from r185794 (re: PromoteIntRes_BUILD_VECTOR) In response to Duncan's review, I believe that the original comment was not as clear as it could be. Hopefully, this is better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185824 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp b/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp index df388981aed..76c028d078e 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp @@ -2931,8 +2931,10 @@ SDValue DAGTypeLegalizer::PromoteIntRes_BUILD_VECTOR(SDNode *N) { Ops.reserve(NumElems); for (unsigned i = 0; i != NumElems; ++i) { SDValue Op; - // It is possible for the operands to be larger than the result, for example, - // when the operands are promoted booleans and the result was an i1 vector. + // BUILD_VECTOR integer operand types are allowed to be larger than the + // result's element type. This may still be true after the promotion. For + // example, we might be promoting ( = BV , , ...) to + // (v?i16 = BV , , ...), and we can't any_extend to . if (N->getOperand(i).getValueType().bitsLT(NOutVTElem)) Op = DAG.getNode(ISD::ANY_EXTEND, dl, NOutVTElem, N->getOperand(i)); else