<div dir="ltr">They are starting to look complicated. The patch linked is interesting, perhaps v1 vectors are special cased. It shouldn't be too 
onerous to work out what one or two in tree back ends do by 
experimentation.<br><br>Thanks again, it's great to have context beyond the source.<br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 15, 2017 at 9:41 PM, Friedman, Eli <span dir="ltr"><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 9/15/2017 12:10 PM, Jon Chesterfield wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
OK, I'm clear on scalars. Data races are thankfully OK in this context.<br>
<br>
Densely packing vectors sounds efficient and is clear in the case where lanes * width is a multiple of 8 bits. I don't think I understand how it works in other cases.<br>
<br>
If we could take store <4 x i8> truncating to <4 x i7> as an example. This can be converted into four scalar i8 -> i7 stores with corresponding increments to the address, in which case the final layout in memory is 0b0111111101111111011111110<wbr>1111111. Or it can be written as a packed vector which I think would resemble 0b0000111111111111111<wbr>1111111111111.<br>
<br>
This would mean the memory layout changes depending on how/whether the legaliser breaks large vectors down into smaller types. Is this the case? For example, <4xi32> => <4 x i31> converts to two <2 x i32> => <2 x i31> stores on a target with <2 x i32> legal but would not be split if <4 x i32> were declared legal.<br>
</blockquote>
<br></span>
Vectors get complicated; I don't recall all the details of what the code generator currently does/is supposed to do.  See also <a href="https://bugs.llvm.org/show_bug.cgi?id=31265" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug<wbr>.cgi?id=31265</a> .<div class="HOEnZb"><div class="h5"><br>
<br>
-Eli<br>
<br>
-- <br>
Employee of Qualcomm Innovation Center, Inc.<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<br>
<br>
</div></div></blockquote></div><br></div></div>