public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
@ 2022-02-24 10:24 zsojka at seznam dot cz
  2022-02-24 10:29 ` [Bug rtl-optimization/104675] " jakub at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: zsojka at seznam dot cz @ 2022-02-24 10:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

            Bug ID: 104675
           Summary: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at
                    expr.cc:9773 at -O with __real__ + __imag__ extraction
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 52506
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52506&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnu-gcc -O testcase.c
during RTL pass: expand
In function 'bar',
    inlined from 'foo' at testcase.c:13:3:
testcase.c:6:5: internal compiler error: in expand_expr_real_2, at expr.cc:9773
    6 |   c -= s;
      |   ~~^~~~
0x6ca3fa expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
        /repo/gcc-trunk/gcc/expr.cc:9773
0xe6a0d8 expand_gimple_stmt_1
        /repo/gcc-trunk/gcc/cfgexpand.cc:3967
0xe6a0d8 expand_gimple_stmt
        /repo/gcc-trunk/gcc/cfgexpand.cc:4028
0xe70186 expand_gimple_basic_block
        /repo/gcc-trunk/gcc/cfgexpand.cc:6069
0xe71d67 execute
        /repo/gcc-trunk/gcc/cfgexpand.cc:6795
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r12-7366-20220224090510-gffb2c671707-checking-yes-rtl-df-extra-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
--with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r12-7366-20220224090510-gffb2c671707-checking-yes-rtl-df-extra-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.1 20220224 (experimental) (GCC)

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

* [Bug rtl-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
@ 2022-02-24 10:29 ` jakub at gcc dot gnu.org
  2022-02-24 10:32 ` pinskia at gcc dot gnu.org
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-24 10:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |9.5
           Priority|P3                          |P2
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-02-24
             Status|UNCONFIRMED                 |NEW
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r6-779-gbc4315fbb0075e29d9a246bf73ff4c56ccf8fa6b

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

* [Bug rtl-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
  2022-02-24 10:29 ` [Bug rtl-optimization/104675] " jakub at gcc dot gnu.org
@ 2022-02-24 10:32 ` pinskia at gcc dot gnu.org
  2022-02-24 10:52 ` jakub at gcc dot gnu.org
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-02-24 10:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It was this part:
(-1 - A -> ~A): Remove unnecessary condition.

Which caused the issue.

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

* [Bug rtl-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
  2022-02-24 10:29 ` [Bug rtl-optimization/104675] " jakub at gcc dot gnu.org
  2022-02-24 10:32 ` pinskia at gcc dot gnu.org
@ 2022-02-24 10:52 ` jakub at gcc dot gnu.org
  2022-02-24 11:00 ` [Bug tree-optimization/104675] " pinskia at gcc dot gnu.org
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-24 10:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|10.3.1, 11.2.1, 12.0,       |
                   |6.5.0, 7.5.0, 8.5.0, 9.4.1  |

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It isn't just that match.pd change though, consider:
_Complex int foo (_Complex int a) { return (-1 + -1i) - a; }
_Complex int bar (_Complex int a) { return - a - (1 + 1i); }
_Complex int baz (_Complex int a) { _Complex int b = -1 + -1i; return b - a; }
_Complex int qux (_Complex int a) { _Complex int b = 1 + 1i; return - a - b; }

I think both:
  /* -A - 1 -> ~A */
  (simplify
   (minus (convert? (negate @0)) integer_each_onep)
   (if (!TYPE_OVERFLOW_TRAPS (type)
        && tree_nop_conversion_p (type, TREE_TYPE (@0)))
    (bit_not (convert @0))))

  /* -1 - A -> ~A */
  (simplify
   (minus integer_all_onesp @0)
   (bit_not @0))
needs to punt for COMPLEX_TYPE.

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2022-02-24 10:52 ` jakub at gcc dot gnu.org
@ 2022-02-24 11:00 ` pinskia at gcc dot gnu.org
  2022-02-24 11:13 ` jakub at gcc dot gnu.org
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-02-24 11:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #3)
> 
> I think both:
>   /* -A - 1 -> ~A */
>   (simplify
>    (minus (convert? (negate @0)) integer_each_onep)
>    (if (!TYPE_OVERFLOW_TRAPS (type)
>         && tree_nop_conversion_p (type, TREE_TYPE (@0)))
>     (bit_not (convert @0))))
> 
>   /* -1 - A -> ~A */
>   (simplify
>    (minus integer_all_onesp @0)
>    (bit_not @0))
> needs to punt for COMPLEX_TYPE.

Yes agreed. In fact that is basically what I wrote to the original patch on the
mailing list a few minutes ago.

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2022-02-24 11:00 ` [Bug tree-optimization/104675] " pinskia at gcc dot gnu.org
@ 2022-02-24 11:13 ` jakub at gcc dot gnu.org
  2022-02-24 14:28 ` glisse at gcc dot gnu.org
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-24 11:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 52507
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52507&action=edit
gcc12-pr104675.patch

Full untested patch.

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2022-02-24 11:13 ` jakub at gcc dot gnu.org
@ 2022-02-24 14:28 ` glisse at gcc dot gnu.org
  2022-02-25  9:56 ` cvs-commit at gcc dot gnu.org
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: glisse at gcc dot gnu.org @ 2022-02-24 14:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #6 from Marc Glisse <glisse at gcc dot gnu.org> ---
I am only learning now that bit ops don't exist for complex numbers :-/
I don't really see why not, but that's a different question. Thanks for fixing
this.
Looking to see if I could quickly find other similar issues, I only noticed 2
ICEs

typedef _Complex unsigned T;
T f(T x){
  return (x/2)*2;
}
T g(T x){
  return (x*2)/2;
}

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2022-02-24 14:28 ` glisse at gcc dot gnu.org
@ 2022-02-25  9:56 ` cvs-commit at gcc dot gnu.org
  2022-02-25 10:53 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-25  9:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:758671b88b78d7629376b118ec6ca6bcfbabbd36

commit r12-7385-g758671b88b78d7629376b118ec6ca6bcfbabbd36
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 10:55:17 2022 +0100

    match.pd: Don't create BIT_NOT_EXPRs for COMPLEX_TYPE [PR104675]

    We don't support BIT_{AND,IOR,XOR,NOT}_EXPR on complex types,
    &/|/^ are just rejected for them, and ~ is parsed as CONJ_EXPR.
    So, we should avoid simplifications which turn valid complex type
    expressions into something that will ICE during expansion.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/104675
            * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
            COMPLEX_TYPE.

            * gcc.dg/pr104675-1.c: New test.
            * gcc.dg/pr104675-2.c: New test.

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2022-02-25  9:56 ` cvs-commit at gcc dot gnu.org
@ 2022-02-25 10:53 ` jakub at gcc dot gnu.org
  2022-02-25 20:25 ` cvs-commit at gcc dot gnu.org
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-25 10:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 52512
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52512&action=edit
gcc12-pr104675-2.patch

Untested fix for the issue Marc mentioned above.
In theory we could handle also integral vectors if uniform_vector_cst_p, but
let's defer that to GCC 13.

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

* [Bug tree-optimization/104675] [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (7 preceding siblings ...)
  2022-02-25 10:53 ` jakub at gcc dot gnu.org
@ 2022-02-25 20:25 ` cvs-commit at gcc dot gnu.org
  2022-02-25 20:27 ` [Bug tree-optimization/104675] [9/10/11 " jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-25 20:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:f62115c9b770a66c5378f78a2d5866243d560573

commit r12-7394-gf62115c9b770a66c5378f78a2d5866243d560573
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 21:25:12 2022 +0100

    match.pd: Further complex simplification fixes [PR104675]

    Mark mentioned in the PR further 2 simplifications that also ICE
    with complex types.
    For these, eventually (but IMO GCC 13 materials) we could support it
    for vector types if it would be uniform vector constants.
    Currently integer_pow2p is true only for INTEGER_CSTs and COMPLEX_CSTs
    and we can't use bit_and etc. for complex type.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>
                Marc Glisse  <marc.glisse@inria.fr>

            PR tree-optimization/104675
            * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
            Restrict simplifications to INTEGRAL_TYPE_P.

            * gcc.dg/pr104675-3.c : New test.

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

* [Bug tree-optimization/104675] [9/10/11 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (8 preceding siblings ...)
  2022-02-25 20:25 ` cvs-commit at gcc dot gnu.org
@ 2022-02-25 20:27 ` jakub at gcc dot gnu.org
  2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-25 20:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[9/10/11/12 Regression]     |[9/10/11 Regression] ICE:
                   |ICE: in expand_expr_real_2, |in expand_expr_real_2, at
                   |at expr.cc:9773 at -O with  |expr.cc:9773 at -O with
                   |__real__ + __imag__         |__real__ + __imag__
                   |extraction                  |extraction

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.

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

* [Bug tree-optimization/104675] [9/10/11 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (9 preceding siblings ...)
  2022-02-25 20:27 ` [Bug tree-optimization/104675] [9/10/11 " jakub at gcc dot gnu.org
@ 2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
  2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-03-29  5:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:1305c28bc0665504643ff364595b7d6bb222745d

commit r11-9719-g1305c28bc0665504643ff364595b7d6bb222745d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 10:55:17 2022 +0100

    match.pd: Don't create BIT_NOT_EXPRs for COMPLEX_TYPE [PR104675]

    We don't support BIT_{AND,IOR,XOR,NOT}_EXPR on complex types,
    &/|/^ are just rejected for them, and ~ is parsed as CONJ_EXPR.
    So, we should avoid simplifications which turn valid complex type
    expressions into something that will ICE during expansion.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/104675
            * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
            COMPLEX_TYPE.

            * gcc.dg/pr104675-1.c: New test.
            * gcc.dg/pr104675-2.c: New test.

    (cherry picked from commit 758671b88b78d7629376b118ec6ca6bcfbabbd36)

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

* [Bug tree-optimization/104675] [9/10/11 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (10 preceding siblings ...)
  2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
@ 2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
  2022-03-30  8:15 ` [Bug tree-optimization/104675] [9/10 " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-03-29  5:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:1a2772a3fe41bc0c33c4620540dae0103dcf7289

commit r11-9722-g1a2772a3fe41bc0c33c4620540dae0103dcf7289
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 21:25:12 2022 +0100

    match.pd: Further complex simplification fixes [PR104675]

    Mark mentioned in the PR further 2 simplifications that also ICE
    with complex types.
    For these, eventually (but IMO GCC 13 materials) we could support it
    for vector types if it would be uniform vector constants.
    Currently integer_pow2p is true only for INTEGER_CSTs and COMPLEX_CSTs
    and we can't use bit_and etc. for complex type.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>
                Marc Glisse  <marc.glisse@inria.fr>

            PR tree-optimization/104675
            * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
            Restrict simplifications to INTEGRAL_TYPE_P.

            * gcc.dg/pr104675-3.c : New test.

    (cherry picked from commit f62115c9b770a66c5378f78a2d5866243d560573)

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (11 preceding siblings ...)
  2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
@ 2022-03-30  8:15 ` jakub at gcc dot gnu.org
  2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-03-30  8:15 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[9/10/11 Regression] ICE:   |[9/10 Regression] ICE: in
                   |in expand_expr_real_2, at   |expand_expr_real_2, at
                   |expr.cc:9773 at -O with     |expr.cc:9773 at -O with
                   |__real__ + __imag__         |__real__ + __imag__
                   |extraction                  |extraction

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 11.3 too.

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (12 preceding siblings ...)
  2022-03-30  8:15 ` [Bug tree-optimization/104675] [9/10 " jakub at gcc dot gnu.org
@ 2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
  2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-10  8:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:1a8b7fb748f95646f314d5dd7a5af48542c3e925

commit r10-10688-g1a8b7fb748f95646f314d5dd7a5af48542c3e925
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 10:55:17 2022 +0100

    match.pd: Don't create BIT_NOT_EXPRs for COMPLEX_TYPE [PR104675]

    We don't support BIT_{AND,IOR,XOR,NOT}_EXPR on complex types,
    &/|/^ are just rejected for them, and ~ is parsed as CONJ_EXPR.
    So, we should avoid simplifications which turn valid complex type
    expressions into something that will ICE during expansion.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/104675
            * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
            COMPLEX_TYPE.

            * gcc.dg/pr104675-1.c: New test.
            * gcc.dg/pr104675-2.c: New test.

    (cherry picked from commit 758671b88b78d7629376b118ec6ca6bcfbabbd36)

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (13 preceding siblings ...)
  2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
@ 2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
  2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-10  8:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:3749dcd31f55ac72a162ecf83a40fa3278d3b086

commit r10-10690-g3749dcd31f55ac72a162ecf83a40fa3278d3b086
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 21:25:12 2022 +0100

    match.pd: Further complex simplification fixes [PR104675]

    Mark mentioned in the PR further 2 simplifications that also ICE
    with complex types.
    For these, eventually (but IMO GCC 13 materials) we could support it
    for vector types if it would be uniform vector constants.
    Currently integer_pow2p is true only for INTEGER_CSTs and COMPLEX_CSTs
    and we can't use bit_and etc. for complex type.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>
                Marc Glisse  <marc.glisse@inria.fr>

            PR tree-optimization/104675
            * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
            Restrict simplifications to INTEGRAL_TYPE_P.

            * gcc.dg/pr104675-3.c : New test.

    (cherry picked from commit f62115c9b770a66c5378f78a2d5866243d560573)

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (14 preceding siblings ...)
  2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
@ 2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
  2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
  2022-05-11  6:36 ` jakub at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-11  6:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:ff9fe8ef031ed29247b283201f6cfcf729502e11

commit r9-10134-gff9fe8ef031ed29247b283201f6cfcf729502e11
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 10:55:17 2022 +0100

    match.pd: Don't create BIT_NOT_EXPRs for COMPLEX_TYPE [PR104675]

    We don't support BIT_{AND,IOR,XOR,NOT}_EXPR on complex types,
    &/|/^ are just rejected for them, and ~ is parsed as CONJ_EXPR.
    So, we should avoid simplifications which turn valid complex type
    expressions into something that will ICE during expansion.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/104675
            * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
            COMPLEX_TYPE.

            * gcc.dg/pr104675-1.c: New test.
            * gcc.dg/pr104675-2.c: New test.

    (cherry picked from commit 758671b88b78d7629376b118ec6ca6bcfbabbd36)

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (15 preceding siblings ...)
  2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
@ 2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
  2022-05-11  6:36 ` jakub at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-11  6:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

--- Comment #17 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:870a9a8e82269a4213660459eabf0744d583e0c3

commit r9-10136-g870a9a8e82269a4213660459eabf0744d583e0c3
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 25 21:25:12 2022 +0100

    match.pd: Further complex simplification fixes [PR104675]

    Mark mentioned in the PR further 2 simplifications that also ICE
    with complex types.
    For these, eventually (but IMO GCC 13 materials) we could support it
    for vector types if it would be uniform vector constants.
    Currently integer_pow2p is true only for INTEGER_CSTs and COMPLEX_CSTs
    and we can't use bit_and etc. for complex type.

    2022-02-25  Jakub Jelinek  <jakub@redhat.com>
                Marc Glisse  <marc.glisse@inria.fr>

            PR tree-optimization/104675
            * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
            Restrict simplifications to INTEGRAL_TYPE_P.

            * gcc.dg/pr104675-3.c : New test.

    (cherry picked from commit f62115c9b770a66c5378f78a2d5866243d560573)

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

* [Bug tree-optimization/104675] [9/10 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction
  2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
                   ` (16 preceding siblings ...)
  2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
@ 2022-05-11  6:36 ` jakub at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-05-11  6:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.

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

end of thread, other threads:[~2022-05-11  6:36 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-24 10:24 [Bug rtl-optimization/104675] New: [9/10/11/12 Regression] ICE: in expand_expr_real_2, at expr.cc:9773 at -O with __real__ + __imag__ extraction zsojka at seznam dot cz
2022-02-24 10:29 ` [Bug rtl-optimization/104675] " jakub at gcc dot gnu.org
2022-02-24 10:32 ` pinskia at gcc dot gnu.org
2022-02-24 10:52 ` jakub at gcc dot gnu.org
2022-02-24 11:00 ` [Bug tree-optimization/104675] " pinskia at gcc dot gnu.org
2022-02-24 11:13 ` jakub at gcc dot gnu.org
2022-02-24 14:28 ` glisse at gcc dot gnu.org
2022-02-25  9:56 ` cvs-commit at gcc dot gnu.org
2022-02-25 10:53 ` jakub at gcc dot gnu.org
2022-02-25 20:25 ` cvs-commit at gcc dot gnu.org
2022-02-25 20:27 ` [Bug tree-optimization/104675] [9/10/11 " jakub at gcc dot gnu.org
2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
2022-03-29  5:53 ` cvs-commit at gcc dot gnu.org
2022-03-30  8:15 ` [Bug tree-optimization/104675] [9/10 " jakub at gcc dot gnu.org
2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
2022-05-10  8:24 ` cvs-commit at gcc dot gnu.org
2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
2022-05-11  6:25 ` cvs-commit at gcc dot gnu.org
2022-05-11  6:36 ` jakub at gcc dot gnu.org

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).