-
Enhancement
-
Resolution: Unresolved
-
P4
-
24
In the following example:
for (int i = 0; i < SIZE; i++) {
shorts[i] = (short)ints[i];
}
Currently, we cannot vectorize this loop because there is a LoadI->StoreC chain, which results in the packs being discarded at the profitability step due to the velt size difference. However, we have existing vector cast nodes (VectorCastI2X, VectorCastS2X, VectorCastB2X) that could be generated to change the shape of the graph when a size conflict is detected, rather than discarding the packs entirely.
for (int i = 0; i < SIZE; i++) {
shorts[i] = (short)ints[i];
}
Currently, we cannot vectorize this loop because there is a LoadI->StoreC chain, which results in the packs being discarded at the profitability step due to the velt size difference. However, we have existing vector cast nodes (VectorCastI2X, VectorCastS2X, VectorCastB2X) that could be generated to change the shape of the graph when a size conflict is detected, rather than discarding the packs entirely.