When trying to unify the vector_vector_composition variants I noticed that there are even more alignment checks than when I last looked ;)
I think we would need to store at least the "punning type" as well as the element type in ls_data. The computed alignment_support_scheme as well as the misalignment are also used for costing later. Can we defer that "plastic surgery" to later? I don't think there is anything to be gained in terms of legibility if I transplant parts of it into a helper function that is called from get_load_store_type. And I think it would increase the scope of the current patch too much. I can try as a follow up of course. I think the largest remaining problem is the load permutations and how to properly filter the ones I have in mind. Computing the alignment twice can be avoided if we either store a fallback vectype (that's how I did it locally) or don't bother with a fallback at all. Regarding ls.pun_vectype, would you want to get rid of that entirely and "replace" vectype? (Or just in get_load_store_type?) I thought replacing isn't possible as we have done analysis based on the old vectype already. -- Regards Robin