aacff36
From e14024659e0fc2af3df6ec56ce39a8e93b75722d Mon Sep 17 00:00:00 2001
aacff36
From: Colin Samples <colin.samples+git@gmail.com>
aacff36
Date: Sun, 8 Dec 2019 19:25:02 -0500
aacff36
Subject: [PATCH] Fix libdav1d compilation on clang ppc
aacff36
aacff36
---
aacff36
 src/ppc/dav1d_types.h | 15 +++++++++++++++
aacff36
 1 file changed, 15 insertions(+)
aacff36
aacff36
Index: chromium-120.0.6099.71/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
aacff36
===================================================================
aacff36
--- chromium-120.0.6099.71.orig/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
aacff36
+++ chromium-120.0.6099.71/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
aacff36
@@ -51,4 +51,19 @@
aacff36
 #define u16l_to_i32(v) ((i32x4) vec_mergel((u16x8) v, vec_splat_u16(0)))
aacff36
 #define i16l_to_i32(v) ((i32x4) vec_unpackl((i16x8)v))
aacff36
 
aacff36
+#if defined(__clang__)
aacff36
+#undef vec_splats
aacff36
+#define vec_splats(N)                     \
aacff36
+    _Generic((N),                         \
aacff36
+        unsigned char:      ((u8x16)(N)), \
aacff36
+        signed char:        ((i8x16)(N)), \
aacff36
+        unsigned short:     ((u16x8)(N)), \
aacff36
+        signed short:       ((i16x8)(N)), \
aacff36
+        unsigned int:       ((u32x4)(N)), \
aacff36
+        signed int:         ((i32x4)(N)), \
aacff36
+        unsigned long long: ((u64x2)(N)), \
aacff36
+        signed long long:   ((i64x2)(N))  \
aacff36
+    )
aacff36
+#endif
aacff36
+
aacff36
 #endif /* DAV1D_SRC_PPC_TYPES_H */