<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="">Le 29 sept. 2015 à 12:43, Peter Maersk-Moller <<a href="mailto:pmaersk@gmail.com" class="">pmaersk@gmail.com</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Hi Jérôme.<br class=""></div><br class=""><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 28, 2015 at 6:39 PM, Jérôme Laheurte <span dir="ltr" class=""><<a href="mailto:jerome-bugzilla@jeromelaheurte.net" target="_blank" class="">jerome-bugzilla@jeromelaheurte.net</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Unless something has drastically changed since the last time I wrote Orc code, that is not possible; source and destination pointers are incremented by the « register » size, which must be a power of 2 up to eight, I think; three is out of the question.<br class=""></blockquote><div class=""><br class=""></div><div class="">So operating on an array of 3 bytes per pixels such as the RGB/BGR layout with the byte array layout RGBRGBRGB... is really difficult or near impossible?<br class=""><br class=""></div><div class="">And if that is the case, if one wants to use orc, the array needs to be conerted into something like RGB.RGB.RGB. etc. with an extra byte? And such a conversion can't really be done much faster than with a loop like this<br class=""><br class=""><div style="margin-left:40px" class="">for (int i=0 ; i < N ; i++) {<br class="">  *dst++ = *src++;<br class="">  *dst++ = *src++;<br class="">  *dst++ = *src++;<br class="">  *dst++ = 255;<br class="">};<br class=""></div><br class=""></div><div class="">which to begin with was what I wanted orc to substitute using SIMDs commands.<br class=""><br class=""></div><div class="">Is that more or less the conclusion?<br class=""></div></div></div></div></div></blockquote></div><br class=""><div class="">Exactly. Directly using SIMD code like MMX/SSE2/etc in raw assembly allows you to do this kind of stuff by mixing SIMD and regular instructions and doing various tricks that are not possible in the purely vector-oriented Orc world, but of course you’d loose the portability advantage.</div><div class=""><br class=""></div><div class="">Best regards</div><div class="">Jérôme Laheurte</div><div class=""><br class=""></div></body></html>