public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166
@ 2023-06-07  8:26 jakub at gcc dot gnu.org
  2023-06-07  8:26 ` [Bug target/110152] " jakub at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-06-07  8:26 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110152
           Summary: [14 Regression] ICE on 3dnow-1.c since r14-1166
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

Starting with r14-1166-gaffee7dcfa1ee272d43ac7cb I'm seeing
+FAIL: gcc.target/i386/3dnow-1.c (internal compiler error: Segmentation fault
signal terminated program cc1)
+FAIL: gcc.target/i386/3dnow-1.c (test for excess errors)
+FAIL: gcc.target/i386/3dnow-2.c (internal compiler error: Segmentation fault
signal terminated program cc1)
+FAIL: gcc.target/i386/3dnow-2.c (test for excess errors)
+FAIL: gcc.target/i386/mmx-1.c (internal compiler error: Segmentation fault
signal terminated program cc1)
+FAIL: gcc.target/i386/mmx-1.c (test for excess errors)
+FAIL: gcc.target/i386/mmx-2.c (internal compiler error: Segmentation fault
signal terminated program cc1)
+FAIL: gcc.target/i386/mmx-2.c (test for excess errors)
on i686-linux.  When the testcase is compiled with -m32 -m3dnow -mno-sse, I see
ix86_expand_vector_init_general (true, E_V4HImode, ..., ...) call, which since
the
above change recurses into
ix86_expand_vector_init_general (false, E_V2SImode, ..., ...) but as mmx_ok is
false
in that case, it will not handle V2SImode using ix86_expand_vector_init_concat,
but recurses endlessly calling itself with (false, E_V2SImode, ..., ...).

I think we should pass mmx_ok instead of false in the nwords == 2 case.

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

* [Bug target/110152] [14 Regression] ICE on 3dnow-1.c since r14-1166
  2023-06-07  8:26 [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166 jakub at gcc dot gnu.org
@ 2023-06-07  8:26 ` jakub at gcc dot gnu.org
  2023-06-07  8:34 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-06-07  8:26 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.0
           Priority|P3                          |P1

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

* [Bug target/110152] [14 Regression] ICE on 3dnow-1.c since r14-1166
  2023-06-07  8:26 [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166 jakub at gcc dot gnu.org
  2023-06-07  8:26 ` [Bug target/110152] " jakub at gcc dot gnu.org
@ 2023-06-07  8:34 ` jakub at gcc dot gnu.org
  2023-06-08  8:12 ` cvs-commit at gcc dot gnu.org
  2023-06-08  9:08 ` jakub at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-06-07  8:34 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2023-06-07

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
2023-06-07  Jakub Jelinek  <jakub@redhat.com>

        PR target/110152
        * config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
        n_words == 2 recurse with mmx_ok as first argument rather than false.

--- gcc/config/i386/i386-expand.cc.jj   2023-06-03 15:32:04.489410367 +0200
+++ gcc/config/i386/i386-expand.cc      2023-06-07 10:31:34.715981752 +0200
@@ -16371,7 +16371,7 @@ quarter:
          machine_mode concat_mode = tmp_mode == DImode ? V2DImode : V2SImode;
          rtx tmp = gen_reg_rtx (concat_mode);
          vals = gen_rtx_PARALLEL (concat_mode, gen_rtvec_v (2, words));
-         ix86_expand_vector_init_general (false, concat_mode, tmp, vals);
+         ix86_expand_vector_init_general (mmx_ok, concat_mode, tmp, vals);
          emit_move_insn (target, gen_lowpart (mode, tmp));
        }
       else if (n_words == 4)

seems to fix it.

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

* [Bug target/110152] [14 Regression] ICE on 3dnow-1.c since r14-1166
  2023-06-07  8:26 [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166 jakub at gcc dot gnu.org
  2023-06-07  8:26 ` [Bug target/110152] " jakub at gcc dot gnu.org
  2023-06-07  8:34 ` jakub at gcc dot gnu.org
@ 2023-06-08  8:12 ` cvs-commit at gcc dot gnu.org
  2023-06-08  9:08 ` jakub at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-08  8:12 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 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:2b2bf793d3fb8980cb2b83e9e2a8c236ad2434f5

commit r14-1630-g2b2bf793d3fb8980cb2b83e9e2a8c236ad2434f5
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jun 8 10:11:25 2023 +0200

    i386: Fix endless recursion in ix86_expand_vector_init_general with MMX
[PR110152]

    I'm getting
    +FAIL: gcc.target/i386/3dnow-1.c (internal compiler error: Segmentation
fault signal terminated program cc1)
    +FAIL: gcc.target/i386/3dnow-1.c (test for excess errors)
    +FAIL: gcc.target/i386/3dnow-2.c (internal compiler error: Segmentation
fault signal terminated program cc1)
    +FAIL: gcc.target/i386/3dnow-2.c (test for excess errors)
    +FAIL: gcc.target/i386/mmx-1.c (internal compiler error: Segmentation fault
signal terminated program cc1)
    +FAIL: gcc.target/i386/mmx-1.c (test for excess errors)
    +FAIL: gcc.target/i386/mmx-2.c (internal compiler error: Segmentation fault
signal terminated program cc1)
    +FAIL: gcc.target/i386/mmx-2.c (test for excess errors)
    regressions on i686-linux since r14-1166.  The problem is when
    ix86_expand_vector_init_general is called with mmx_ok = true and
    mode = V4HImode, it newly recurses with mmx_ok = false and mode = V2SImode,
    but as mmx_ok is false and !TARGET_SSE, we recurse again with the same
    arguments (ok, fresh new tmp and vals) infinitely.
    The following patch fixes that by passing mmx_ok to that recursive call.
    For n_words == 4 it isn't needed, because we only care about mmx_ok for
    V2SImode or V2SFmode and no other modes.

    2023-06-08  Jakub Jelinek  <jakub@redhat.com>

            PR target/110152
            * config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
            n_words == 2 recurse with mmx_ok as first argument rather than
false.

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

* [Bug target/110152] [14 Regression] ICE on 3dnow-1.c since r14-1166
  2023-06-07  8:26 [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166 jakub at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-06-08  8:12 ` cvs-commit at gcc dot gnu.org
@ 2023-06-08  9:08 ` jakub at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-06-08  9:08 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

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

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

end of thread, other threads:[~2023-06-08  9:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-07  8:26 [Bug target/110152] New: [14 Regression] ICE on 3dnow-1.c since r14-1166 jakub at gcc dot gnu.org
2023-06-07  8:26 ` [Bug target/110152] " jakub at gcc dot gnu.org
2023-06-07  8:34 ` jakub at gcc dot gnu.org
2023-06-08  8:12 ` cvs-commit at gcc dot gnu.org
2023-06-08  9:08 ` 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).