<div dir="ltr"><div><div>AFAIK, the first use of "splat" in this vector instruction sense comes from PowerPC's Altivec extension:<br><a href="https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.cbcpx01/bif_vec_splat.htm">https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.cbcpx01/bif_vec_splat.htm</a><br><br></div>It's possible there were other instruction sets that used the term before this, but that's my first sighting of vector splat. Given that PPC was an early (first?) LLVM backend, it makes sense that the code here adopted that terminology. In x86 AVX, it's called a "broadcast" instruction, but we still mostly use "splat".<br><br></div>Splat is derived from "splatter". For vector functionality, we're visualizing a scalar object being thrown into a vector register and breaking into identical pieces for each element of the vector. Disregard conservation of mass, etc. :)<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, May 7, 2017 at 8:09 AM, Perry E. Metzger via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.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 Sat, 6 May 2017 20:11:17 -0700 Kyle Butt via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> Splat means to take a single value and build a vector out of<br>
> identical copies of that value. 4 ->  [4,4,4,4]<br>
><br>
> I'm not sure where the term came from.<br>
<br>
</span>I was wondering this myself.<br>
<br>
Would it be possible (in the spirit of the other discussion) to put<br>
a clean explanation of this into <a href="http://llvm.org/docs/Lexicon.html" rel="noreferrer" target="_blank">http://llvm.org/docs/Lexicon.<wbr>html</a> ?<br>
(That was where I first looked for an answer.)<br>
<br>
Perry<br>
<span class="HOEnZb"><font color="#888888">--<br>
Perry E. Metzger                <a href="mailto:perry@piermont.com">perry@piermont.com</a><br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>