re PR target/43067 (ICE: SIGSEGV with -fschedule-insns -mxop)
authorUros Bizjak <ubizjak@gmail.com>
Sat, 20 Feb 2010 22:11:32 +0000 (23:11 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 20 Feb 2010 22:11:32 +0000 (23:11 +0100)
PR target/43067
* 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.

From-SVN: r156929

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

index 61e595e82d4d5b49fe50507c47ddb1cfb0dd4d26..105023b0f6eb04571ca7f4ea5674f7dccfd263eb 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 5f0aa3b36ecaac92bb93e3dcc0eec3eb561766b9..671dcd4737102cbe44d41eb25655228cfe3780d2 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 5555898d80f87db9d364d8b57d3504b5c0fad6bb..a010e8f4ea8a0cd1378fcb71f80b9bcd0111e705 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];
+}