]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/50788 (ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx...
authorUros Bizjak <ubizjak@gmail.com>
Sun, 23 Oct 2011 15:19:06 +0000 (17:19 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 23 Oct 2011 15:19:06 +0000 (17:19 +0200)
PR target/50788
* config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
Remove (match_dup 0).

testsuite/ChangeLog:

PR target/50788
* gcc.target/i386/pr50788.c: New test.

From-SVN: r180339

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

index 2a55007f2b1fef49c101e35c6280b01e3ceb3a4a..21cb741228ed8afc12907658853f031513cb6a1a 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50788
+       * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
+       Remove (match_dup 0).
+
 2011-10-18  Uros Bizjak  <ubizjak@gmail.com>
            Eric Botcazou  <ebotcazou@adacore.com>
 
index d6c5c4b45c784c28f8e7c458269522a9e211cd0c..afe2b700a1643559dd1cccf508771aef43853eba 100644 (file)
   [(set (match_operand:AVXMODEF2P 0 "register_operand" "=x")
        (unspec:AVXMODEF2P
          [(match_operand:AVXMODEF2P 1 "memory_operand" "m")
-          (match_operand:<avxpermvecmode> 2 "register_operand" "x")
-          (match_dup 0)]
+          (match_operand:<avxpermvecmode> 2 "register_operand" "x")]
          UNSPEC_MASKLOAD))]
   "TARGET_AVX"
   "vmaskmovp<avxmodesuffixf2c>\t{%1, %2, %0|%0, %2, %1}"
index c1a4ebeca8661f62526ad85525bec80fbfa2d48e..0c59d5ccb4d4af1467d4e309e1815daded1ad431 100644 (file)
@@ -1,3 +1,8 @@
+2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50788
+       * gcc.target/i386/pr50788.c: New test.
+
 2011-10-19  Jason Merrill  <jason@redhat.com>
 
        PR c++/50793
diff --git a/gcc/testsuite/gcc.target/i386/pr50788.c b/gcc/testsuite/gcc.target/i386/pr50788.c
new file mode 100644 (file)
index 0000000..29a1963
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mavx -fpeel-loops -fstack-protector-all" } */
+
+typedef long long __m256i __attribute__ ((__vector_size__ (32)));
+typedef double __m256d __attribute__ ((__vector_size__ (32)));
+
+__m256d foo (__m256d *__P, __m256i __M)
+{
+  return __builtin_ia32_maskloadpd256 ( __P, __M);
+}