<div dir="ltr">FWIW, memcpy() vs a for() loop has different semantics with respect to address alignment. I don't know how much it will matter, but last time I was reading assembly output, copying int[] via for() loop didn't produce a codepath for 16-byte aligned addresses (allowing for SSE streaming) while memcpy() has a lot of such logic. This won't matter much unless you have lots to copy, and of course, compiler optimizations can change, so maybe this situation has changed.<div>
<br></div><div>Patrick</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 20, 2014 at 8:11 PM, Michel Dänzer <span dir="ltr"><<a href="mailto:michel@daenzer.net" target="_blank">michel@daenzer.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Don, 2014-02-20 at 10:21 -0800, Tom Stellard wrote:<br>
><br>
> diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c<br>
> index 54270cd..9b04e6b 100644<br>
> --- a/src/gallium/drivers/radeonsi/si_shader.c<br>
> +++ b/src/gallium/drivers/radeonsi/si_shader.c<br>
> @@ -2335,7 +2335,7 @@ int si_compile_llvm(struct si_context *sctx, struct si_pipe_shader *shader,<br>
>       ptr = (uint32_t*)sctx->b.ws->buffer_map(shader->bo->cs_buf, sctx->b.rings.gfx.cs, PIPE_TRANSFER_WRITE);<br>
>       if (0 /*SI_BIG_ENDIAN*/) {<br>
>               for (i = 0; i < binary.code_size / 4; ++i) {<br>
> -                     ptr[i] = util_bswap32(*(uint32_t*)(binary.code + i*4));<br>
> +                     ptr[i] = util_cpu_to_le32((*(uint32_t*)(binary.code + i*4)));<br>
>               }<br>
>       } else {<br>
>               memcpy(ptr, binary.code, binary.code_size);<br>
<br>
We could get rid of the separate *_ENDIAN paths using util_cpu_to_le*().<br>
<br>
Either way, the non-clover patches are<br>
<br>
Reviewed-by: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com">michel.daenzer@amd.com</a>><br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Earthling Michel Dänzer            |                  <a href="http://www.amd.com" target="_blank">http://www.amd.com</a><br>
Libre software enthusiast          |                Mesa and X developer<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>