]> 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:16:27 +0000 (17:16 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 23 Oct 2011 15:16:27 +0000 (17:16 +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: r180338

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

index cfb812edf4b73c1915632f939c4b83877d859779..68cf82f330661ead389aae9f14c0ca6f6d8a3504 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 e1c671bd835e0d4d55ee8a56143ac3c0f97c73d2..007844015a4fe7772424bc2ef6c6f180961d380c 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 b408e258443f7d330b0afd834596256d93a363eb..75458699ea83a8132d6259816b2009ac526a4317 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);
+}