aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2010-02-20 23:11:32 +0100
committerUros Bizjak <uros@gcc.gnu.org>2010-02-20 23:11:32 +0100
commit78c201a40b85b6ac15cfd707c162c0a90c12ec4c (patch)
tree5891e4de80a20766df3ca2a73dcb53ffcea6e6f6 /gcc
parent17251338deebd6575ef2a9e2c99c3f976561dc93 (diff)
downloadgcc-78c201a40b85b6ac15cfd707c162c0a90c12ec4c.zip
gcc-78c201a40b85b6ac15cfd707c162c0a90c12ec4c.tar.gz
gcc-78c201a40b85b6ac15cfd707c162c0a90c12ec4c.tar.bz2
re PR target/43067 (ICE: SIGSEGV with -fschedule-insns -mxop)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/sse.md4
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.target/i386/pr43067.c15
4 files changed, 31 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61e595e..105023b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 5f0aa3b..671dcd4 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -10422,7 +10422,7 @@
{
operands[3] = CONST0_RTX (V2DImode);
}
- [(set_attr "type" "ssemuladd")
+ [(set_attr "type" "ssemul")
(set_attr "mode" "TI")])
(define_insn "xop_pmacsdqh"
@@ -10484,7 +10484,7 @@
{
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
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5555898..a010e8f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..7abb002
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr43067.c
@@ -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];
+}