i386.c (expand_vec_perm_movs): Enable V4SFmode for TARGET_SSE.
authorUros Bizjak <ubizjak@gmail.com>
Wed, 15 Aug 2018 19:34:26 +0000 (21:34 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 15 Aug 2018 19:34:26 +0000 (21:34 +0200)
* config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode
for TARGET_SSE.

From-SVN: r263567

gcc/ChangeLog
gcc/config/i386/emmintrin.h
gcc/config/i386/i386.c

index 8ea97839c67357c1da42e150b49ccbcebdbcf969..d922dee87b3df44ae689137e3c5e097e49fd7f3f 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode
+       for TARGET_SSE.
+
 2018-08-15  David Malcolm  <dmalcolm@redhat.com>
 
        * common.opt (fdiagnostics-show-labels): New option.
index 6501638f619a3af030a4e5733367325d9bef681b..7a6ff80f68ae181b91a427cf611ef10274e527dd 100644 (file)
@@ -113,7 +113,7 @@ _mm_setzero_pd (void)
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_move_sd (__m128d __A, __m128d __B)
 {
-  return __extension__ (__m128d) __builtin_shuffle((__v2df)__A, (__v2df)__B, (__v2di){2, 1});
+  return __extension__ (__m128d) __builtin_shuffle ((__v2df)__A, (__v2df)__B, (__v2di){2, 1});
 }
 
 /* Load two DPFP values from P.  The address must be 16-byte aligned.  */
index 15a3caa94c354aa92616edf1e3a647b0c73f454b..dad91c1dcf78689c393d61a17c5534bd4d0bf869 100644 (file)
@@ -46157,9 +46157,8 @@ expand_vec_perm_movs (struct expand_vec_perm_d *d)
   if (d->one_operand_p)
     return false;
 
-  if (TARGET_SSE2 && (vmode == V2DFmode || vmode == V4SFmode))
-    ;
-  else
+  if (!(TARGET_SSE && vmode == V4SFmode)
+      && !(TARGET_SSE2 && vmode == V2DFmode))
     return false;
 
   /* Only the first element is changed.  */