<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;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 24, 2014, at 11:38 AM, Nadav Rotem <<a href="mailto:nrotem@apple.com" class="">nrotem@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span 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; float: none; display: inline !important;" class="">I agree with the approach of adding target-independent masked memory intrinsics. One reason is that I would like to keep the vectorizers target independent (and use the target transform info to query the backends). I oppose adding new first-level instructions because we would need to teach all of the existing optimizations about the new instructions, and considering the limited usefulness of masked operations it is not worth the effort. </span></div></blockquote>I agree with this. They should be target independent.</div><div><br class=""></div><div>However, what types should be supported here? I haven’t looked in detail, but from memory I believe AVX-512 masks 32-bit values, and not bytes. Are we going to have an intrinsic which can handle any vector type, or just <n x 32-bit> vectors, even at first?</div><div><br class=""></div><div>Also, given that the types of the vectors matter, it seems like we’re going to need TTI anyway whenever we want to generate one of these, or else we’ll end up generating an illegal version which has to be scalarised in the backend.</div><div><br class=""></div><div>Thanks,</div><div>Pete</div><br class=""></body></html>