Merge "Use __builtin_shufflevector when building with Clang"
diff --git a/BUILD.gn b/BUILD.gn
index af9ae11..14f0c18 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -56,6 +56,9 @@
     "-Wno-unused-const-variable",
     "-Wno-unused-local-typedef",
     "-Wno-unused-function",
+    # Release builds in Fuchsia define -ffunction-sections, which causes
+    # the link of the combined cairo/pixman library to fail on x86_64.
+    "-fno-function-sections",
   ]
 
   if (current_cpu == "arm64") {
@@ -128,6 +131,7 @@
     "pixman/pixman-timer.c",
     "pixman/pixman-trap.c",
     "pixman/pixman-utils.c",
+    "pixman/pixman-x86.c",
     "pixman/pixman.c",
   ]
 
@@ -138,7 +142,6 @@
 
   if (current_cpu == "x64") {
     sources += [
-      "pixman/pixman-x86.c",
       "pixman/pixman-sse2.c",
     ]
 
diff --git a/config.h.fuchsia b/config.h.fuchsia
index 5b8dc84..9434249 100644
--- a/config.h.fuchsia
+++ b/config.h.fuchsia
@@ -146,12 +146,16 @@
 /* use OpenMP in the test suite */
 /* #undef USE_OPENMP */
 
+#if defined(_M_X64) || defined(__x86_64__) || defined(_M_IX86) || defined(__i386__)
+
 /* use SSE2 compiler intrinsics */
 #define USE_SSE2 1
 
 /* use SSSE3 compiler intrinsics */
 #define USE_SSSE3 1
 
+#endif
+
 /* use VMX compiler intrinsics */
 /* #undef USE_VMX */