Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM. The only comment I have is an observation that odd-length vectors generally don't fit well into fewerElements at the moment but that's not for this patch
lib/CodeGen/GlobalISel/LegalizerHelper.cpp | ||
---|---|---|
1171 | We don't need to deal with it for this patch but: It occurs to me that extractParts can never change an odd-length vector into an even-length one. The effect of this is that most odd-length vectors can only unmerge into scalars (there's a few exceptions like 9 into 3 but only a few within the normal range of vector lengths) yet it would be more efficient to fewerElements a 5-element vector into a 4-element and a 1-element vector so that we can still use vectors for the majority of it. |
Comment Actions
- Replaced buildMerge with buildBuildVector/buildConcatVectors.
- Updated the test to avoid generating G_CONCAT_VECTORS as it's not legal for v4s32/v2s64.
We don't need to deal with it for this patch but: It occurs to me that extractParts can never change an odd-length vector into an even-length one. The effect of this is that most odd-length vectors can only unmerge into scalars (there's a few exceptions like 9 into 3 but only a few within the normal range of vector lengths) yet it would be more efficient to fewerElements a 5-element vector into a 4-element and a 1-element vector so that we can still use vectors for the majority of it.