1 https://gitlab.freedesktop.org/pixman/pixman/-/issues/41
3 diff --git a/gfx/cairo/libpixman/src/pixman-mmx.c b/gfx/cairo/libpixman/src/pixman-mmx.c
4 --- a/gfx/cairo/libpixman/src/pixman-mmx.c
5 +++ b/gfx/cairo/libpixman/src/pixman-mmx.c
6 @@ -132,23 +132,23 @@ extern __inline __m64 __attribute__((__g
7 /* If __m64 is defined as a struct or union, then define M64_MEMBER to be
8 * the name of the member used to access the data.
9 * If __m64 requires using mm_cvt* intrinsics functions to convert between
10 * uint64_t and __m64 values, then define USE_CVT_INTRINSICS.
11 * If __m64 and uint64_t values can just be cast to each other directly,
12 * then define USE_M64_CASTS.
13 * If __m64 is a double datatype, then define USE_M64_DOUBLE.
16 +#if defined(_MSC_VER) && !defined(__clang__)
17 # define M64_MEMBER m64_u64
19 # define USE_CVT_INTRINSICS
20 #elif defined(USE_LOONGSON_MMI)
21 # define USE_M64_DOUBLE
22 -#elif defined(__GNUC__)
23 +#elif defined(__GNUC__) || defined(__clang__)
24 # define USE_M64_CASTS
25 #elif defined(__SUNPRO_C)
26 # if (__SUNPRO_C >= 0x5120) && !defined(__NOVECTORSIZE__)
27 /* Solaris Studio 12.3 (Sun C 5.12) introduces __attribute__(__vector_size__)
28 * support, and defaults to using it to define __m64, unless __NOVECTORSIZE__
29 * is defined. If it is used, then the mm_cvt* intrinsics must be used.
31 # define USE_CVT_INTRINSICS