Closed Quuxplusone closed 7 years ago
Attached stress_fail_illegal_BUILD_VECTOR.ll
(742 bytes, text/plain): reduced llvm-stress test case
ping.
any idea anyone?
The arguments to the BUILD_VECTOR are i32 but BUILD_VECTOR (and SCALAR_TO_VECTOR) implicitly truncates integer arguments. The assertion looks like it's too strict here. Making it less strict fixes the crash but I didn't check the output itself.
Other backends have had this error in the past but the bugs I've looked at all appear to be working now. It's not clear to me if this is deliberate or just incidental.
I think the problem here is just that the constant folding for SIGN_EXTEND_INREG in SelectionDAG::getNode() is producing constants with illegal types. Probably need to preserve the type of the operands to the BUILD_VECTOR.
rL299540
stress_fail_illegal_BUILD_VECTOR.ll
(742 bytes, text/plain)