<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Sep 9, 2014, at 3:35 PM, Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr"><div class="gmail_extra">First off, thanks for the *fantastic* testing and investigation. =]</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 9, 2014 at 3:01 PM, Quentin Colombet<span class="Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:qcolombet@apple.com" target="_blank">qcolombet@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;">Hi Chandler,<div><br></div><div>Here is a test case for the biggest offender (oourafft.c).</div><div>To reproduce:</div><div>llc <span style="font-family: Menlo; font-size: 11px;">-mcpu=core-avx-i<span class="Apple-converted-space"> </span></span><span style="font-family: Menlo; font-size: 11px;">-x86-experimental-vector-shuffle-lowering=true repro.ll</span></div><div>llc <span style="font-family: Menlo; font-size: 11px;">-mcpu=core-avx-i </span><span style="font-family: Menlo; font-size: 11px;">-x86-experimental-vector-shuffle-lowering=false repro.ll</span></div><div><span style="font-family: Menlo; font-size: 11px;"><br></span></div><div>The main problem is that we miss:</div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">   </span>vmovsd<span style="white-space: pre-wrap;">        </span>(%rdi,%rcx,8), %xmm2</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">       </span>vmovlhps<span style="white-space: pre-wrap;">      </span>%xmm2, %xmm2, %xmm2 ## xmm2 = xmm2[0,0]</div></div><div>=></div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;"> </span>vmovddup<span style="white-space: pre-wrap;">      </span>(%rdi,%rcx,8), %xmm2</div></div><div><br></div><div>I do not know how problematic is that (it seems we catch up on the performance with just the previous transformation),</div></div></blockquote><div><br></div><div>Actually, this is awesome, because this was also the main problem I saw. I already wrote the fix, and just need to fix up test case fixes and submit it. =]</div></div></div></div></div></blockquote><div><br></div><div>Great!</div><br><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>I think blendps is the other big missing piece as mentioned.</div><div> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;"><div style="word-wrap: break-word;"><div>but we also miss:</div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">   </span>vsubpd<span style="white-space: pre-wrap;">        </span>%xmm1, %xmm0, %xmm2</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">        </span>vaddpd<span style="white-space: pre-wrap;">        </span>%xmm1, %xmm0, %xmm0</div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">        </span>vshufpd<span style="white-space: pre-wrap;">       </span>$2, %xmm0, %xmm2, %xmm0 ## xmm0 = xmm2[0],xmm0[1]</div></div><div>=></div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="white-space: pre-wrap;">       </span>vaddsubpd<span style="white-space: pre-wrap;">     </span>%xmm1, %xmm0, %xmm0</div></div><div><br></div><div>I’ll look into the other regressions.</div></div></blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Maybe wait until i can land the duplicate move support and the blendps support? I'd rather see what the results are after that.</div><div class="gmail_extra"><br></div><div class="gmail_extra">There is also some AVX specific stuff that I've left FIXMEs fore that I could probably address to pull it up a bit.</div><div class="gmail_extra"><br></div><div class="gmail_extra">FWIW, I've got the main test-suite reproducing your results for x86, but I don't currently have a nice reproduction for SPEC, so digging into those would help somewhat more.</div></div></div></blockquote></div><br><div>Understood.</div><div><br></div><div>I’ll wait for the patches to support the duplicate move before doing that :).</div><div><br></div><div>Shot me an email when they land, just to be sure ;).</div><div><br></div><div>Thanks,</div><div>-Quentin</div></body></html>