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.

Reply via email to