llvm.org GIT mirror llvm / 09ec1b0
Allow target constants to be illegal types. The target should know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41388 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 13 years ago
2 changed file(s) with 13 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
456456 // If this is an illegal scalar, expand it into its two component
457457 // pieces.
458458 SDOperand X, Y;
459 if (Op.getOpcode() == ISD::TargetConstant)
460 break; // Allow illegal target nodes.
459461 ExpandOp(Op, X, Y);
460462 } else if (MVT::getVectorNumElements(VT) == 1) {
461463 // If this is an illegal single element vector, convert it to a
643645 /// is legal, recursively ensuring that the operands' operations remain
644646 /// legal.
645647 SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
648 if (Op.getOpcode() == ISD::TargetConstant) // Allow illegal target nodes.
649 return Op;
650
646651 assert(isTypeLegal(Op.getValueType()) &&
647652 "Caller should expand or promote operands that are not legal!");
648653 SDNode *Node = Op.Val;
0 ; RUN: llvm-as < %s | llc | grep 68719476738
1
2 define void @test() {
3 entry:
4 tail call void asm sideeffect "/* result: ${0:c} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 )
5 ret void
6 }
7