The address calculation for the offset assumes that you can calculate the offset by multiplying the index by the store size of the element. But that only works if the element'ss store size is exactly its real size since we store vectors tightly packed in memory. There are improvements we could make to this like special casing extracting element 0. I think we could also handle cases where the extracted VT is byte sized and the index is aligned with the extract element count.
Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/test/CodeGen/X86/avx512-extract-subvector-load-store.ll | ||
---|---|---|
624 | I think this is because we're now hitting scalarizing code in the type legalizer. |
I think this is because we're now hitting scalarizing code in the type legalizer.