i386-expand.c (ix86_expand_vector_init_one_nonzero): Use vector_set path for TARGET_M...
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 14 Aug 2019 18:43:16 +0000 (20:43 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 14 Aug 2019 18:43:16 +0000 (20:43 +0200)
* config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
<case E_V8QImode>: Use vector_set path for
TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
(ix86_expand_vector_init_one_nonzero) <case E_V8QImode>:
Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.

From-SVN: r274490

gcc/ChangeLog
gcc/config/i386/i386-expand.c

index 9f52514667c7739d84cf79af8a806954eeebc50d..8e98678a2aec1e568c2c7ae8b30eccbc7599483d 100644 (file)
@@ -1,3 +1,11 @@
+2019-08-14  Uroš Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
+       <case E_V8QImode>: Use vector_set path for
+       TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
+       (ix86_expand_vector_init_one_nonzero) <case E_V8QImode>:
+       Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
+
 2019-08-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
        * varasm.c (default_section_type_flags): Add support for "noinit"
        section.
        (default_elf_select_section): Add support for "noinit" attribute.
-       * config/msp430/msp430.c (msp430_attribute_table): Remove "noinit" entry.
+       * config/msp430/msp430.c (msp430_attribute_table): Remove
+       "noinit" entry.
 
 2019-08-14  Richard Biener  <rguenther@suse.de>
-       Uroš Bizjak  <ubizjak@gmail.com>
+           Uroš Bizjak  <ubizjak@gmail.com>
 
        PR target/91154
        * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
 
 2019-08-13  Uroš Bizjak  <ubizjak@gmail.com>
 
-       * config/i386/i386.md (ix86_expand_vector_extract) <case E_V2SImode>:
-       Use vec_extr path for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
+       * config/i386/i386-expand.c (ix86_expand_vector_extract)
+       <case E_V2SImode>: Use vec_extr path for
+       TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
        <case E_V8QImode>: Ditto.
        * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
        Use SWI48 mode iterator.  Use %k to output operand 0.
 
 2019-08-13  Uroš Bizjak  <ubizjak@gmail.com>
 
-       * config/i386/i386.md (ix86_expand_vector_set) <case E_V2SImode>:
-       Use vec_merge path for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
+       * config/i386/i386-expand.c (ix86_expand_vector_set)
+       <case E_V2SImode>: Use vec_merge path for
+       TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
        <case E_V8QImode>: Ditto.
        * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
        (*mmx_pinsrb): Ditto.
index d1d5a9435f132b6929284546834b58fa0f52da74..b6a2dbf402a196a3bf19d31a353918f9056a2bb8 100644 (file)
@@ -13383,6 +13383,9 @@ ix86_expand_vector_init_one_nonzero (bool mmx_ok, machine_mode mode,
     case E_V8HImode:
       use_vector_set = TARGET_SSE2;
       break;
+    case E_V8QImode:
+      use_vector_set = TARGET_MMX_WITH_SSE && TARGET_SSE4_1;
+      break;
     case E_V4HImode:
       use_vector_set = TARGET_SSE || TARGET_3DNOW_A;
       break;
@@ -13590,6 +13593,8 @@ ix86_expand_vector_init_one_var (bool mmx_ok, machine_mode mode,
       wmode = V8HImode;
       goto widen;
     case E_V8QImode:
+      if (TARGET_MMX_WITH_SSE && TARGET_SSE4_1)
+       break;
       wmode = V4HImode;
       goto widen;
     widen: