OSDN Git Service

2005-12-06 Jan Beulich <jbeulich@novell.com>
authorjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Dec 2005 09:07:23 +0000 (09:07 +0000)
committerjbeulich <jbeulich@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Dec 2005 09:07:23 +0000 (09:07 +0000)
* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
__builtin_ia32_paddq and __builtin_ia32_subq.
(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
__builtin_ia32_pshufw.
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108106 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/mmx.md

index 7edad6f..0022d62 100644 (file)
@@ -1,3 +1,11 @@
+2005-12-06  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
+       __builtin_ia32_paddq and __builtin_ia32_subq.
+       (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
+       __builtin_ia32_pshufw.
+       * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
+
 2005-12-05  James E Wilson  <wilson@specifix.com>
 
        PR target/24934
index c7f9e21..476b47f 100644 (file)
@@ -13988,11 +13988,11 @@ static const struct builtin_description bdesc_2arg[] =
   { MASK_MMX, CODE_FOR_mmx_addv8qi3, "__builtin_ia32_paddb", IX86_BUILTIN_PADDB, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_addv4hi3, "__builtin_ia32_paddw", IX86_BUILTIN_PADDW, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_addv2si3, "__builtin_ia32_paddd", IX86_BUILTIN_PADDD, 0, 0 },
-  { MASK_MMX, CODE_FOR_mmx_adddi3, "__builtin_ia32_paddq", IX86_BUILTIN_PADDQ, 0, 0 },
+  { MASK_SSE2, CODE_FOR_mmx_adddi3, "__builtin_ia32_paddq", IX86_BUILTIN_PADDQ, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_subv8qi3, "__builtin_ia32_psubb", IX86_BUILTIN_PSUBB, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_subv4hi3, "__builtin_ia32_psubw", IX86_BUILTIN_PSUBW, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_subv2si3, "__builtin_ia32_psubd", IX86_BUILTIN_PSUBD, 0, 0 },
-  { MASK_MMX, CODE_FOR_mmx_subdi3, "__builtin_ia32_psubq", IX86_BUILTIN_PSUBQ, 0, 0 },
+  { MASK_SSE2, CODE_FOR_mmx_subdi3, "__builtin_ia32_psubq", IX86_BUILTIN_PSUBQ, 0, 0 },
 
   { MASK_MMX, CODE_FOR_mmx_ssaddv8qi3, "__builtin_ia32_paddsb", IX86_BUILTIN_PADDSB, 0, 0 },
   { MASK_MMX, CODE_FOR_mmx_ssaddv4hi3, "__builtin_ia32_paddsw", IX86_BUILTIN_PADDSW, 0, 0 },
@@ -14632,7 +14632,7 @@ ix86_init_mmx_sse_builtins (void)
   def_builtin (MASK_MMX, "__builtin_ia32_psraw", v4hi_ftype_v4hi_di, IX86_BUILTIN_PSRAW);
   def_builtin (MASK_MMX, "__builtin_ia32_psrad", v2si_ftype_v2si_di, IX86_BUILTIN_PSRAD);
 
-  def_builtin (MASK_MMX, "__builtin_ia32_pshufw", v4hi_ftype_v4hi_int, IX86_BUILTIN_PSHUFW);
+  def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_pshufw", v4hi_ftype_v4hi_int, IX86_BUILTIN_PSHUFW);
   def_builtin (MASK_MMX, "__builtin_ia32_pmaddwd", v2si_ftype_v4hi_v4hi, IX86_BUILTIN_PMADDWD);
 
   /* comi/ucomi insns.  */
index e9bfb65..4f0ab2c 100644 (file)
         [(plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0")
                   (match_operand:DI 2 "nonimmediate_operand" "ym"))]
         UNSPEC_NOP))]
-  "TARGET_MMX && ix86_binary_operator_ok (PLUS, DImode, operands)"
+  "TARGET_SSE2 && ix86_binary_operator_ok (PLUS, DImode, operands)"
   "paddq\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxadd")
    (set_attr "mode" "DI")])
         [(minus:DI (match_operand:DI 1 "register_operand" "0")
                    (match_operand:DI 2 "nonimmediate_operand" "ym"))]
         UNSPEC_NOP))]
-  "TARGET_MMX"
+  "TARGET_SSE2"
   "psubq\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxadd")
    (set_attr "mode" "DI")])