Commit b757ddb1629d524cd92eb9b39ce298e0dffd57fd

suzuki toshiya 2017-09-13T22:17:03

[sfnt] lowest gcc for vectors ( e1d0249e ) is changed to 4.7. __builtin_shuffle() was introduced in gcc-4.7. The lowest gcc to enable vector operation is delayed from 4.6 to 4.7. * src/sfnt/pngshim.c (premultiply_data): Fix cpp-macro to enable the vector operation, to change the lowest gcc version from 4.6 to 4.7.

diff --git a/ChangeLog b/ChangeLog
index 62618f8..4708ba5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2017-09-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
+	[sfnt] lowest gcc for vectors ( e1d0249e ) is changed to 4.7.
+
+	__builtin_shuffle() was introduced in gcc-4.7.  The lowest
+	gcc to enable vector operation is delayed from 4.6 to 4.7.
+
+	* src/sfnt/pngshim.c (premultiply_data): Fix cpp-macro to
+	enable the vector operation, to change the lowest gcc version
+	from 4.6 to 4.7.
+
+2017-09-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
 	[cache] Fix a possible overflow by signed integer comparison.
 
 	Improve the code by 5d3ff05615dda6d1325ed612381a17a0df04c975 ,
diff --git a/src/sfnt/pngshim.c b/src/sfnt/pngshim.c
index b05c6de..7dc3435 100644
--- a/src/sfnt/pngshim.c
+++ b/src/sfnt/pngshim.c
@@ -59,10 +59,11 @@
 
     /* the `vector_size' attribute was introduced in gcc 3.1, which */
     /* predates clang; the `__BYTE_ORDER__' preprocessor symbol was */
-    /* introduced in gcc 4.6 and clang 3.2, respectively            */
+    /* introduced in gcc 4.6 and clang 3.2, respectively.           */
+    /* __builtin_shuffle() for gcc was introduced in gcc 4.7.0.     */
 #if ( ( defined( __GNUC__ )                                &&             \
         ( ( __GNUC__ >= 5 )                              ||               \
-        ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 6 ) ) ) )         ||   \
+        ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 7 ) ) ) )         ||   \
       ( defined( __clang__ )                                       &&     \
         ( ( __clang_major__ >= 4 )                               ||       \
         ( ( __clang_major__ == 3 ) && ( __clang_minor__ >= 2 ) ) ) ) ) && \