For some reason, the ARM backend thinks it needs it's own BUILDVECTOR. This adds a small fold for extract (ARM_BUILD_VECTOR) to fold to the original node. This can help simplify the resulting codegen in some cases.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
For some reason, the ARM backend thinks it needs it's own BUILDVECTOR
I think the issue here is that ISD::BUILD_VECTOR has funny interactions with legalization, so you can't just mark it "Legal". So we transform to ARMISD::BUILD_VECTOR to indicate "yes, this is actually a legal operation".
llvm/lib/Target/ARM/ARMISelLowering.cpp | ||
---|---|---|
14575 | Missing check that the constant is in range. |
Missing check that the constant is in range.