OSDN Git Service

2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / i386.md
index 86351e1..b98bce3 100644 (file)
 \f
 ;; Processor type.
 (define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,atom,
-                   generic64,amdfam10"
+                   generic64,amdfam10,bdver1"
   (const (symbol_ref "ix86_schedule")))
 
 ;; A basic instruction type.  Refinements due to arguments to be
        case MODE_V4SF:
          return "%vxorps\t%0, %d0";
        case MODE_V2DF:
-         return "%vxorpd\t%0, %d0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vxorps\t%0, %d0";
+         else
+           return "%vxorpd\t%0, %d0";
        case MODE_TI:
-         return "%vpxor\t%0, %d0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vxorps\t%0, %d0";
+         else
+           return "%vpxor\t%0, %d0";
        default:
          gcc_unreachable ();
        }
        case MODE_V4SF:
          return "%vmovaps\t{%1, %0|%0, %1}";
        case MODE_V2DF:
-         return "%vmovapd\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vmovaps\t{%1, %0|%0, %1}";
+         else
+           return "%vmovapd\t{%1, %0|%0, %1}";
        case MODE_TI:
-         return "%vmovdqa\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vmovaps\t{%1, %0|%0, %1}";
+         else
+           return "%vmovdqa\t{%1, %0|%0, %1}";
        case MODE_DI:
          return "%vmovq\t{%1, %0|%0, %1}";
        case MODE_DF:
        case MODE_V4SF:
          return "%vxorps\t%0, %d0";
        case MODE_V2DF:
-         return "%vxorpd\t%0, %d0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vxorps\t%0, %d0";
+         else
+           return "%vxorpd\t%0, %d0";
        case MODE_TI:
-         return "%vpxor\t%0, %d0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vxorps\t%0, %d0";
+         else
+           return "%vpxor\t%0, %d0";
        default:
          gcc_unreachable ();
        }
        case MODE_V4SF:
          return "%vmovaps\t{%1, %0|%0, %1}";
        case MODE_V2DF:
-         return "%vmovapd\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vmovaps\t{%1, %0|%0, %1}";
+         else
+           return "%vmovapd\t{%1, %0|%0, %1}";
        case MODE_TI:
-         return "%vmovdqa\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "%vmovaps\t{%1, %0|%0, %1}";
+         else
+           return "%vmovdqa\t{%1, %0|%0, %1}";
        case MODE_DI:
          return "%vmovq\t{%1, %0|%0, %1}";
        case MODE_DF:
        case MODE_V4SF:
          return "xorps\t%0, %0";
        case MODE_V2DF:
-         return "xorpd\t%0, %0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "xorps\t%0, %0";
+         else
+           return "xorpd\t%0, %0";
        case MODE_TI:
-         return "pxor\t%0, %0";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "xorps\t%0, %0";
+         else
+           return "pxor\t%0, %0";
        default:
          gcc_unreachable ();
        }
        case MODE_V4SF:
          return "movaps\t{%1, %0|%0, %1}";
        case MODE_V2DF:
-         return "movapd\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "movaps\t{%1, %0|%0, %1}";
+         else
+           return "movapd\t{%1, %0|%0, %1}";
        case MODE_TI:
-         return "movdqa\t{%1, %0|%0, %1}";
+         if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+           return "movaps\t{%1, %0|%0, %1}";
+         else
+           return "movdqa\t{%1, %0|%0, %1}";
        case MODE_DI:
          return "movq\t{%1, %0|%0, %1}";
        case MODE_DF: