[Mesa-dev] [PATCH 07/13] i965: Use standard SSE intrinsics instead of gcc built-ins.

Frank Henigman fjhenigman at google.com
Sun Jun 15 14:02:07 PDT 2014


On Sun, Jun 15, 2014 at 1:18 PM, Matt Turner <mattst88 at gmail.com> wrote:
> ---
>  src/mesa/drivers/dri/i965/intel_tex_subimage.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_tex_subimage.c b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> index 5d79750..fe909e4 100644
> --- a/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> +++ b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> @@ -42,6 +42,10 @@
>  #include "intel_mipmap_tree.h"
>  #include "intel_blit.h"
>
> +#ifdef __SSSE3__
> +#include <tmmintrin.h>
> +#endif
> +
>  #define FILE_DEBUG_FLAG DEBUG_TEXTURE
>
>  #define ALIGN_DOWN(a, b) ROUND_DOWN_TO(a, b)
> @@ -174,13 +178,11 @@ err:
>  static const uint8_t rgba8_permutation[16] =
>     { 2,1,0,3, 6,5,4,7, 10,9,8,11, 14,13,12,15 };
>
> -typedef char v16 __attribute__((vector_size(16)));
> -
>  /* NOTE: dst must be 16 byte aligned */
>  #define rgba8_copy_16(dst, src)                     \
> -   *(v16*)(dst) = __builtin_ia32_pshufb128(         \
> -       (v16) __builtin_ia32_loadups((float*)(src)), \
> -      *(v16*) rgba8_permutation                     \
> +   *(__m128i *)(dst) = _mm_shuffle_epi8(            \
> +       (__m128i) _mm_loadu_ps((float*)(src)),       \
> +      *(__m128i *) rgba8_permutation                \
>     )
>  #endif
>
> --
> 1.8.3.2
>

Reviewed-by: Frank Henigman <fjhenigman at google.com>


More information about the mesa-dev mailing list