OSDN Git Service

PR target/43067
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Feb 2010 22:11:32 +0000 (22:11 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Feb 2010 22:11:32 +0000 (22:11 +0000)
* config/i386/sse.md (xop_mulv2div2di3_low): Change type
attribute to ssemul.
(xop_mulv2div2di3_high): Ditto.

testsuite/ChangeLog:

PR target/43067
* gcc.target/i386/pr43067.c: New test.

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

gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr43067.c [new file with mode: 0644]

index 61e595e..105023b 100644 (file)
@@ -1,3 +1,10 @@
+2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/43067
+       * config/i386/sse.md (xop_mulv2div2di3_low): Change type
+       attribute to ssemul.
+       (xop_mulv2div2di3_high): Ditto.
+
 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR c++/35669
@@ -7,7 +14,7 @@
 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        * common.opt (Wlarger-than-): Add Undocumented.
-       
+
 2010-02-19  Mike Stump  <mikestump@comcast.net>
 
        * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
index 5f0aa3b..671dcd4 100644 (file)
 {
   operands[3] = CONST0_RTX (V2DImode);
 }
-  [(set_attr "type" "ssemuladd")
+  [(set_attr "type" "ssemul")
    (set_attr "mode" "TI")])
 
 (define_insn "xop_pmacsdqh"
 {
   operands[3] = CONST0_RTX (V2DImode);
 }
-  [(set_attr "type" "ssemuladd")
+  [(set_attr "type" "ssemul")
    (set_attr "mode" "TI")])
 
 ;; XOP parallel integer multiply/add instructions for the intrinisics
index 5555898..a010e8f 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/43067
+       * gcc.target/i386/pr43067.c: New test.
+
 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR c++/35669
@@ -23,7 +28,7 @@
 
        PR 43128
        * c-c++-common/pr41779.c: Fix broken testcase.
-       
+
 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR 36513
diff --git a/gcc/testsuite/gcc.target/i386/pr43067.c b/gcc/testsuite/gcc.target/i386/pr43067.c
new file mode 100644 (file)
index 0000000..7abb002
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -mxop -ftree-vectorize -fschedule-insns" } */
+
+union {
+  int i32[10240];
+  long long i64[10240];
+} a, b, c;
+
+void imul32_to_64 (void)
+{
+  int i;
+
+  for (i = 0; i < 10240; i++)
+    a.i64[i] = (long long) b.i32[i] * c.i32[i];
+}