<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 12/12/2017 7:26 AM, Sean Silva via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAHnXoakxA7AU+8ZAR9PiW9H18tR8hORW=rKs8SMBwfNtJ0Rhyg@mail.gmail.com">
<div dir="auto">
<div><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Dec 11, 2017 6:54 PM, "Sean
Silva" <<a href="mailto:chisophugis@gmail.com"
moz-do-not-send="true">chisophugis@gmail.com</a>>
wrote:<br type="attribution">
<blockquote class="quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>It looks like in various places in SelectionDAG
and related machinery we appear to implicitly or
explicitly assume that TypeExpandInteger only
applies to scalars.<br>
</div>
<div><br>
Does anybody know why that is?</div>
<div><br>
</div>
<div>For our target (Pixel Visual Core: <a
href="https://www.blog.google/products/pixel/pixel-visual-core-image-processing-and-machine-learning-pixel-2/"
target="_blank" moz-do-not-send="true">https://www.blog.google/<wbr>products/pixel/pixel-visual-<wbr>core-image-processing-and-<wbr>machine-learning-pixel-2/</a>)
expanding a N-bit vector op into two (N/2)-bit
vector ops</div>
</div>
</blockquote>
</div>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">To be clear: the vector ops are all of the same
number of elements. Just the bit width of the element type
changes.</div>
</div>
</blockquote>
<br>
I think it just hasn't been a priority for any in-tree target; most
code doesn't use illegal vector types much, and the default strategy
generates decent code in most cases. (You might have an easier time
just adding a few target-specific DAGCombines for specific
operations which lead to low-quality code.)<br>
<br>
-Eli<br>
<pre class="moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
</body>
</html>