https://llvm.org/bugs/show_bug.cgi?id=30715
Bug ID: 30715 Summary: Legalization code assumes only integer typed ops may need expanding Product: libraries Version: 3.9 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Common Code Generator Code Assignee: unassignedb...@nondot.org Reporter: nemanja.i....@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified Created attachment 17456 --> https://llvm.org/bugs/attachment.cgi?id=17456&action=edit Test case that causes the failure When a floating point type needs to be legalized by expanding, the code in DAGTypeLegalizer::ExpandOp_BITCAST causes an assert in DAGTypeLegalizer::IntegerToVector to trip because it assumes that the input operand is integral. But there is a type that may need to be legalized by expanding (namely ppcf128 is a pair of doubles). To reproduce: llc < legalize-bug.ll .text .abiversion 2 .file "<stdin>" llc: /home/nemanjai/llvm/llvm-clean/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp:321: void llvm::DAGTypeLegalizer::IntegerToVector(llvm::SDValue, unsigned int, llvm::SmallVectorImpl<llvm::SDValue>&, llvm::EVT): Assertion `Op.getValueType().isInteger()' failed. <... rest of stack trace omitted for brevity ...> -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs