public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
@ 2011-10-19  4:45 zsojka at seznam dot cz
  2011-10-19  8:12 ` [Bug rtl-optimization/50788] " rguenth at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: zsojka at seznam dot cz @ 2011-10-19  4:45 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

             Bug #: 50788
           Summary: [4.7 Regression] ICE: in merge_overlapping_regs, at
                    regrename.c:318 with -mavx -fpeel-loops
                    -fstack-protector-all and __builtin_ia32_maskloadpd256
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: zsojka@seznam.cz
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu


Created attachment 25552
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25552
reduced testcase

Compiler output:
$ gcc -O2 -mavx -fpeel-loops -fstack-protector-all testcase.c
testcase.c: In function 'foo':
testcase.c:7:1: internal compiler error: in merge_overlapping_regs, at
regrename.c:318
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

A bit different testcase with __builtin_ia32_maskloadd() crashes with -mavx2
the same way, with the same backtrace.

(gdb) bt
#0  fancy_abort (file=0x1271d38 "/mnt/svn/gcc-trunk/gcc/regrename.c", line=318,
function=0x12724e0 "merge_overlapping_regs")
    at /mnt/svn/gcc-trunk/gcc/diagnostic.c:898
#1  0x0000000000929419 in merge_overlapping_regs () at
/mnt/svn/gcc-trunk/gcc/regrename.c:318
#2  rename_chains () at /mnt/svn/gcc-trunk/gcc/regrename.c:447
#3  regrename_optimize () at /mnt/svn/gcc-trunk/gcc/regrename.c:1783
#4  0x00000000008e5748 in execute_one_pass (pass=0x17a20e0) at
/mnt/svn/gcc-trunk/gcc/passes.c:2064
#5  0x00000000008e5ab5 in execute_pass_list (pass=0x17a20e0) at
/mnt/svn/gcc-trunk/gcc/passes.c:2119
#6  0x00000000008e5ac7 in execute_pass_list (pass=0x17a1840) at
/mnt/svn/gcc-trunk/gcc/passes.c:2120
#7  0x00000000008e5ac7 in execute_pass_list (pass=0x17a18a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:2120
#8  0x0000000000a3cebe in tree_rest_of_compilation (fndecl=0x7ffff56b1f00) at
/mnt/svn/gcc-trunk/gcc/tree-optimize.c:420
#9  0x000000000069433a in cgraph_expand_function (node=0x7ffff55886c0) at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1804
#10 0x000000000069628c in cgraph_expand_all_functions () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1871
#11 cgraph_optimize () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:2148
#12 0x000000000069667a in cgraph_finalize_compilation_unit () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1312
#13 0x000000000057914b in c_write_global_declarations () at
/mnt/svn/gcc-trunk/gcc/c-decl.c:9940
#14 0x00000000009dab04 in compile_file (argc=16, argv=0x7fffffffdaa8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:581
#15 do_compile (argc=16, argv=0x7fffffffdaa8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1930
#16 toplev_main (argc=16, argv=0x7fffffffdaa8) at
/mnt/svn/gcc-trunk/gcc/toplev.c:2006
#17 0x00007ffff6178d2d in __libc_start_main () from /lib64/libc.so.6
#18 0x000000000055ccc9 in _start ()


Tested revisions:
r180174 - crash
r179959 - crash
r178498 - OK
4.6 r177922 - OK


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug rtl-optimization/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
@ 2011-10-19  8:12 ` rguenth at gcc dot gnu.org
  2011-10-21 15:05 ` ebotcazou at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-10-19  8:12 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |rtl-optimization
   Target Milestone|---                         |4.7.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug rtl-optimization/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
  2011-10-19  8:12 ` [Bug rtl-optimization/50788] " rguenth at gcc dot gnu.org
@ 2011-10-21 15:05 ` ebotcazou at gcc dot gnu.org
  2011-10-21 15:08 ` ebotcazou at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2011-10-21 15:05 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|x86_64-pc-linux-gnu         |i?86-*-* x86_64-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011-10-21
                 CC|                            |ebotcazou at gcc dot
                   |                            |gnu.org
               Host|x86_64-pc-linux-gnu         |
     Ever Confirmed|0                           |1

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-10-21 15:04:41 UTC ---
I can reproduce on x86.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug rtl-optimization/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
  2011-10-19  8:12 ` [Bug rtl-optimization/50788] " rguenth at gcc dot gnu.org
  2011-10-21 15:05 ` ebotcazou at gcc dot gnu.org
@ 2011-10-21 15:08 ` ebotcazou at gcc dot gnu.org
  2011-10-22 20:42 ` [Bug target/50788] " ebotcazou at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2011-10-21 15:08 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|ebotcazou at gcc dot        |
                   |gnu.org                     |
         AssignedTo|unassigned at gcc dot       |ebotcazou at gcc dot
                   |gnu.org                     |gnu.org

--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-10-21 15:08:02 UTC ---
Investigating.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2011-10-21 15:08 ` ebotcazou at gcc dot gnu.org
@ 2011-10-22 20:42 ` ebotcazou at gcc dot gnu.org
  2011-10-23  8:20 ` ubizjak at gmail dot com
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2011-10-22 20:42 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW
                 CC|                            |ebotcazou at gcc dot
                   |                            |gnu.org, uros at gcc dot
                   |                            |gnu.org
          Component|rtl-optimization            |target
         AssignedTo|ebotcazou at gcc dot        |unassigned at gcc dot
                   |gnu.org                     |gnu.org

--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-10-22 20:41:53 UTC ---
This appears to be a problem in the AVX maskmov patterns: operand 0 is seen as
a double output operand.  The solution is either to use a match_operand for the
input with constraint 0 or to use '+' instead of '=' in the constraint.  The
former is the preferred approach in this case though:

Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md  (revision 180235)
+++ config/i386/sse.md  (working copy)
@@ -12298,7 +12298,7 @@ (define_insn "*avx2_maskmov<ssemodesuffi
        (unspec:VI48_AVX2
          [(match_operand:<sseintvecmode> 1 "register_operand" "x,x")
           (match_operand:VI48_AVX2 2 "nonimmediate_operand" "m,x")
-          (match_dup 0)]
+          (match_operand:VI48_AVX2 3 "nonimmediate_operand" "0,0")]
          UNSPEC_MASKMOV))]
   "TARGET_AVX2
    && (REG_P (operands[0]) == MEM_P (operands[2]))"
@@ -12313,7 +12313,7 @@ (define_insn "*avx_maskmov<ssemodesuffix
        (unspec:VF
          [(match_operand:<sseintvecmode> 1 "register_operand" "x,x")
           (match_operand:VF 2 "nonimmediate_operand" "m,x")
-          (match_dup 0)]
+          (match_operand:VF 3 "nonimmediate_operand" "0,0")]
          UNSPEC_MASKMOV))]
   "TARGET_AVX
    && (REG_P (operands[0]) == MEM_P (operands[2]))"

but the expanders have match_dup.  Uros, would you mind taking it over?  TIA.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2011-10-22 20:42 ` [Bug target/50788] " ebotcazou at gcc dot gnu.org
@ 2011-10-23  8:20 ` ubizjak at gmail dot com
  2011-10-23 11:00 ` ubizjak at gmail dot com
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23  8:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|uros at gcc dot gnu.org     |
         AssignedTo|unassigned at gcc dot       |ubizjak at gmail dot com
                   |gnu.org                     |

--- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 08:19:52 UTC ---
Looking into it.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2011-10-23  8:20 ` ubizjak at gmail dot com
@ 2011-10-23 11:00 ` ubizjak at gmail dot com
  2011-10-23 11:28 ` ebotcazou at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23 11:00 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 10:59:21 UTC ---
(In reply to comment #3)

> but the expanders have match_dup.  Uros, would you mind taking it over?  TIA.

It is OK for expanders to have match_dup. We just don't want to have
post-reload passes to trip on double-output to the same register.

BTW: There is another spot with similar problem:

@@ -8011,7 +8011,8 @@
   [(set (mem:V16QI (match_operand:P 0 "register_operand" "D"))
     (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "x")
                (match_operand:V16QI 2 "register_operand" "x")
-               (mem:V16QI (match_dup 0))]
+               (mem:V16QI
+             (match_operand:P 3 "register_operand" "0"))]
               UNSPEC_MASKMOV))]
   "TARGET_SSE2"
   "%vmaskmovdqu\t{%2, %1|%1, %2}"

While compilation won't break here, IMO we should tell the reload that we have
matching constraint.

BTW: This fun is all due to conditional maskmov store. We can't just set the
memory, since preceding stores to the same location will be simply deleted.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2011-10-23 11:00 ` ubizjak at gmail dot com
@ 2011-10-23 11:28 ` ebotcazou at gcc dot gnu.org
  2011-10-23 11:46 ` ubizjak at gmail dot com
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2011-10-23 11:28 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-10-23 11:27:22 UTC ---
> It is OK for expanders to have match_dup. We just don't want to have
> post-reload passes to trip on double-output to the same register.

No disagreement.  I just wanted to state the argument for the + approach, but
the manual clearly points to the match_operand approach here instead.

> BTW: There is another spot with similar problem:
> 
> @@ -8011,7 +8011,8 @@
>    [(set (mem:V16QI (match_operand:P 0 "register_operand" "D"))
>      (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "x")
>                 (match_operand:V16QI 2 "register_operand" "x")
> -               (mem:V16QI (match_dup 0))]
> +               (mem:V16QI
> +             (match_operand:P 3 "register_operand" "0"))]
>                UNSPEC_MASKMOV))]
>    "TARGET_SSE2"
>    "%vmaskmovdqu\t{%2, %1|%1, %2}"
> 
> While compilation won't break here, IMO we should tell the reload that we have
> matching constraint.

Indeed.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2011-10-23 11:28 ` ebotcazou at gcc dot gnu.org
@ 2011-10-23 11:46 ` ubizjak at gmail dot com
  2011-10-23 13:06 ` ubizjak at gmail dot com
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23 11:46 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #7 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 11:45:32 UTC ---
(In reply to comment #6)
> > It is OK for expanders to have match_dup. We just don't want to have
> > post-reload passes to trip on double-output to the same register.
> 
> No disagreement.  I just wanted to state the argument for the + approach, but
> the manual clearly points to the match_operand approach here instead.

cprop_hardreg of 4-6 branch is even more confused:

(insn 30 5 10 2 (set (reg:V4DF 22 xmm1 [63])
        (const_vector:V4DF [
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
            ])) pr50788.c:6 1120 {*avx_movv4df_internal}
     (expr_list:REG_EQUAL (const_vector:V4DF [
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
                (const_double:DF 0.0 [0x0.0p+0])
            ])
        (nil)))

(insn 10 30 16 2 (set (reg:V4DF 22 xmm1 [63])
        (unspec:V4DF [
                (mem:V4DF (reg/v/f:DI 5 di [orig:61 __P ] [61]) [0 S32 A8])
                (reg/v:V4DI 21 xmm0 [orig:62 __M ] [62])
                (reg:V4DF 21 xmm0 [63])
            ] UNSPEC_MASKLOAD)) pr50788.c:6 2086 {avx_maskloadpd256}
     (expr_list:REG_DEAD (reg/v:V4DI 21 xmm0 [orig:62 __M ] [62])
        (expr_list:REG_DEAD (reg/v/f:DI 5 di [orig:61 __P ] [61])
            (nil))))

See how in (insn 10) pseudo [63] gets allocated xmm1 _and_ xmm0. Following DCE
is more than happy to throw everything out of instruction stream.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (7 preceding siblings ...)
  2011-10-23 11:46 ` ubizjak at gmail dot com
@ 2011-10-23 13:06 ` ubizjak at gmail dot com
  2011-10-23 13:44 ` ubizjak at gmail dot com
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23 13:06 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #8 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 13:05:43 UTC ---
Looking a bit deeper into the problem - maskload pattern is simply wrong. There
is no dependency on the previous value in the register, vmaskmov insn puts zero
when value is not moved into the destination register.

So,

(define_insn "*avx_maskload<ssemodesuffix><avxsizesuffix>"
  [(set (match_operand:VF 0 "register_operand" "=x")
    (unspec:VF
      [(match_operand:<sseintvecmode> 1 "register_operand" "x")
       (match_operand:VF 2 "memory_operand" "m")]
      UNSPEC_MASKMOV))]
  "TARGET_AVX"
  "vmaskmov<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
  [(set_attr "type" "sselog1")
   (set_attr "prefix_extra" "1")
   (set_attr "prefix" "vex")
   (set_attr "mode" "<MODE>")])


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (8 preceding siblings ...)
  2011-10-23 13:06 ` ubizjak at gmail dot com
@ 2011-10-23 13:44 ` ubizjak at gmail dot com
  2011-10-23 14:18 ` uros at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23 13:44 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
      Known to work|4.6.2                       |
   Target Milestone|4.7.0                       |4.4.7

--- Comment #9 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 13:43:41 UTC ---
Patch at [1].

[1] http://gcc.gnu.org/ml/gcc-patches/2011-10/msg02094.html


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (9 preceding siblings ...)
  2011-10-23 13:44 ` ubizjak at gmail dot com
@ 2011-10-23 14:18 ` uros at gcc dot gnu.org
  2011-10-23 15:16 ` uros at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: uros at gcc dot gnu.org @ 2011-10-23 14:18 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #10 from uros at gcc dot gnu.org 2011-10-23 14:18:13 UTC ---
Author: uros
Date: Sun Oct 23 14:18:08 2011
New Revision: 180335

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180335
Log:
    PR target/50788
    * config/i386/sse.md (avx2_maskload<ssemodesuffix><avxsizesuffix>):
    Remove (match_dup 0).
    (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
    (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
    (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
    (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
    (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
    (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.

testsuite/ChangeLog:

2011-10-23  Uros Bizjak  <ubizjak@gmail.com>

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


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/sse.md
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (10 preceding siblings ...)
  2011-10-23 14:18 ` uros at gcc dot gnu.org
@ 2011-10-23 15:16 ` uros at gcc dot gnu.org
  2011-10-23 15:17 ` uros at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: uros at gcc dot gnu.org @ 2011-10-23 15:16 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #11 from uros at gcc dot gnu.org 2011-10-23 15:15:02 UTC ---
Author: uros
Date: Sun Oct 23 15:14:58 2011
New Revision: 180337

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180337
Log:
    PR target/50788
    * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
    Remove (match_dup 0).

testuite/ChangeLog:

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


Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/config/i386/sse.md
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (11 preceding siblings ...)
  2011-10-23 15:16 ` uros at gcc dot gnu.org
@ 2011-10-23 15:17 ` uros at gcc dot gnu.org
  2011-10-23 15:19 ` uros at gcc dot gnu.org
  2011-10-23 15:20 ` ubizjak at gmail dot com
  14 siblings, 0 replies; 16+ messages in thread
From: uros at gcc dot gnu.org @ 2011-10-23 15:17 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #12 from uros at gcc dot gnu.org 2011-10-23 15:16:30 UTC ---
Author: uros
Date: Sun Oct 23 15:16:27 2011
New Revision: 180338

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180338
Log:
    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.


Added:
    branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
    branches/gcc-4_5-branch/gcc/ChangeLog
    branches/gcc-4_5-branch/gcc/config/i386/sse.md
    branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (12 preceding siblings ...)
  2011-10-23 15:17 ` uros at gcc dot gnu.org
@ 2011-10-23 15:19 ` uros at gcc dot gnu.org
  2011-10-23 15:20 ` ubizjak at gmail dot com
  14 siblings, 0 replies; 16+ messages in thread
From: uros at gcc dot gnu.org @ 2011-10-23 15:19 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #13 from uros at gcc dot gnu.org 2011-10-23 15:19:11 UTC ---
Author: uros
Date: Sun Oct 23 15:19:06 2011
New Revision: 180339

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180339
Log:
    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.


Added:
    branches/gcc-4_4-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/config/i386/sse.md
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256
  2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
                   ` (13 preceding siblings ...)
  2011-10-23 15:19 ` uros at gcc dot gnu.org
@ 2011-10-23 15:20 ` ubizjak at gmail dot com
  14 siblings, 0 replies; 16+ messages in thread
From: ubizjak at gmail dot com @ 2011-10-23 15:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                URL|                            |http://gcc.gnu.org/ml/gcc-p
                   |                            |atches/2011-10/msg02094.htm
                   |                            |l
         Resolution|                            |FIXED
      Known to fail|                            |4.6.1

--- Comment #14 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-23 15:20:36 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-10-23 15:20 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-19  4:45 [Bug target/50788] New: [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256 zsojka at seznam dot cz
2011-10-19  8:12 ` [Bug rtl-optimization/50788] " rguenth at gcc dot gnu.org
2011-10-21 15:05 ` ebotcazou at gcc dot gnu.org
2011-10-21 15:08 ` ebotcazou at gcc dot gnu.org
2011-10-22 20:42 ` [Bug target/50788] " ebotcazou at gcc dot gnu.org
2011-10-23  8:20 ` ubizjak at gmail dot com
2011-10-23 11:00 ` ubizjak at gmail dot com
2011-10-23 11:28 ` ebotcazou at gcc dot gnu.org
2011-10-23 11:46 ` ubizjak at gmail dot com
2011-10-23 13:06 ` ubizjak at gmail dot com
2011-10-23 13:44 ` ubizjak at gmail dot com
2011-10-23 14:18 ` uros at gcc dot gnu.org
2011-10-23 15:16 ` uros at gcc dot gnu.org
2011-10-23 15:17 ` uros at gcc dot gnu.org
2011-10-23 15:19 ` uros at gcc dot gnu.org
2011-10-23 15:20 ` ubizjak at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).