<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 9, 2015, at 10:03 AM, Simon Pilgrim <<a href="mailto:llvm-dev@redking.me.uk" class="">llvm-dev@redking.me.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">In <a href="http://reviews.llvm.org/D7492#120487" class="">http://reviews.llvm.org/D7492#120487</a>, @mkuper wrote:<br class=""><br class=""><blockquote type="cite" class="">What bothers me a bit is that all of the pre-existing broadcast instructions have TB_NO_REVERSE, and the new ones don't.<br class=""> Unfortunately I can't remember *why* they have TB_NO_REVERSE.<br class=""></blockquote><br class=""><br class="">I believe its because the VBROADCASTS{SD}rr register instructions were an AVX2 addition while the VBROADCASTS{SD}rm memory instructions were available from AVX1 - so it prevents unfolding from introducing an illegal instruction on AVX1 targets. The VPBROADCAST instructions are all AVX2 instructions so don't need an equivalent limitation.</div></blockquote><div><br class=""></div><div>Oh yea, that’s right. Thanks Simon! AVX1 only has broadcast from memory, and the in-register broadcasts were added later.   It sounds like the right reason. I bet that if we remove NO_REVERSE flags the test suite will fail due to this reason. </div><br class=""><blockquote type="cite" class=""><div class=""><br class="">Nadav might be able to confirm?<br class=""></div></blockquote><div><br class=""></div><div>I don’t remember making this change but svn claims I did (together with Michael Kuperstein) here:  <a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=160230" class="">http://llvm.org/viewvc/llvm-project?view=revision&revision=160230</a></div></div><div><br class=""></div><div><blockquote type="cite" class=""><div class=""><br class=""><br class="">REPOSITORY<br class="">  rL LLVM<br class=""><br class=""><a href="http://reviews.llvm.org/D7492" class="">http://reviews.llvm.org/D7492</a><br class=""><br class="">EMAIL PREFERENCES<br class="">  http://reviews.llvm.org/settings/panel/emailpreferences/<br class=""><br class=""><br class=""></div></blockquote></div><br class=""></body></html>