I'm not sure why the FIXME was there, since the ABI size of the vector
shouldn't matter for the element offset.
Fixes bug 42304.
Differential D63509
DAG: Use getStoreSize when expanding dynamic vector indexing arsenm on Jun 18 2019, 12:25 PM. Authored by
Details
Diff Detail Event Timeline
|
Aren't vectors (of non-bytesized elements) packed when stored to memory?
I know that there is code that assumes a packed layout, but also code that does not assume a packed layout. So I don't think that LLVM is consistent.
Most of the time my impression is that vector elements with irregular sizes isn't handled well (when it comes to loads/stores/bitcast) and vectorizers try to avoid creating such vectors (in combination with load/store/bitcast). Without having looked at the details here, I figure that the extractelement is lowered into doing the extract by first storing the vector to memory and then doing a read using the dynamic index. So basically extract/insert element with a dynamic index results in store of the vector, so such operations does not work well for irregular types either.