<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Same here – it looks mostly neutral.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I don’t think we see anything that’s significantly above or below noise.<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Quentin Colombet [mailto:qcolombet@apple.com]
<br>
<b>Sent:</b> Tuesday, January 27, 2015 22:58<br>
<b>To:</b> Chandler Carruth<br>
<b>Cc:</b> Andrea Di Biagio; Simon Pilgrim; Sanjay Patel; LLVM Developers Mailing List; Kuperstein, Michael M<br>
<b>Subject:</b> Re: RFB: Would like to flip the vector shuffle legality flag<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Chandler,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I ran the new flag through some of our internal benchmarks and overall this is neutral, so slightly better.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I observed a couple of improvements, but also a couple of regressions.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I am working on tracking those down to produce reduced test cases. No sure I would have time to do that by the end of this week though.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-Quentin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Jan 25, 2015, at 2:15 PM, Sanjay Patel <<a href="mailto:spatel@rotateright.com">spatel@rotateright.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">I ran the benchmarking subset of test-suite on a btver2 machine and optimizing for btver2 (so enabling AVX codegen).<br>
<br>
I don't see anything outside of the noise with x86-experimental-vector-shuffle-legality=1.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Fri, Jan 23, 2015 at 5:19 AM, Andrea Di Biagio <<a href="mailto:andrea.dibiagio@gmail.com" target="_blank">andrea.dibiagio@gmail.com</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal">Hi Chandler,<br>
<br>
On Fri, Jan 23, 2015 at 8:15 AM, Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:<br>
> Greetings LLVM hackers and x86 vector shufflers!<br>
><br>
> I would like to flip on another chunk of the new vector shuffling,<br>
> specifically the logic to mark ~all shuffles as "legal".<br>
><br>
> This can be tested today with the flag<br>
> "-x86-experimental-vector-shuffle-legality". I would essentially like to<br>
> make this the default (by removing the "false" path). Doing this will allow<br>
> me to completely delete the old vector shuffle lowering.<br>
><br>
> I've got the patches prepped and ready to go, but it will likely have a<br>
> significant impact on performance. Notably, a bunch of the remaining domain<br>
> crossing bugs I'm seeing are due to this. The key thing to realize is that<br>
> vector shuffle combining is *much* more powerful when we think all of these<br>
> are legal, and so we combine away bad shuffles that would trigger domain<br>
> crosses.<br>
<br>
That's good news!<br>
Also, I really like your idea of making all shuffles legal by default.<br>
I remember I did some experiments disabling the checks for legal<br>
shuffles in the DAGCombiner to see how well the new shuffle lowering<br>
coped with 'overly' aggressive shuffle combining. I was surprised to<br>
see that from eyeballing the generated code it looked much cleaner<br>
(although I didn't test it extensively). Our target is btver2, so I<br>
also didn't look at what could have been codegen for targets with no<br>
AVX/SSE4.1 where there might be fewer opportunities to match a shuffle<br>
with a single target instruction during legalization.<br>
<br>
><br>
> All of my benchmarks have come back performance neutral overall with a few<br>
> benchmarks improving. However, there may be some regressions that folks want<br>
> to track down first. I'd really like to get those reported and prioritize<br>
> among the vector shuffle work so we can nuke several *thousand* lines of<br>
> code from X86ISelLowering.cpp. =D<br>
<br>
I'll see if I can get some numbers from our internal codebase and help<br>
with reporting potential regressions.<br>
<br>
Thanks,<br>
Andrea<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
><br>
> Thanks!<br>
> -Chandler<br>
><br>
><br>
> PS: If you're feeling adventurous, the next big mode flip flag I want to see<br>
> changed is -x86-experimental-vector-widening-legalization, but this is a<br>
> much more deep change to the entire vector legalization strategy, so I want<br>
> to do it second and separately.<o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p>---------------------------------------------------------------------<br>
Intel Israel (74) Limited</p>

<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</p></body>
</html>