public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
@ 2022-12-10  4:02 zsojka at seznam dot cz
  2022-12-10  8:08 ` [Bug target/108044] " jakub at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: zsojka at seznam dot cz @ 2022-12-10  4:02 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 108044
           Summary: [13 Regression] ICE: in extract_constrain_insn, at
                    recog.cc:2692 (insn does not satisfy its constraints)
                    at -O
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          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 54059
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54059&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnu-gcc -O testcase.c 
testcase.c: In function 'foo':
testcase.c:9:1: error: insn does not satisfy its constraints:
    9 | }
      | ^
(insn 20 19 18 2 (set (mem/c:DI (plus:DI (reg/f:DI 7 sp)
                (const_int -16 [0xfffffffffffffff0])) [2 %sfp+-8 S8 A64])
        (const_int -9223372036854775808 [0x8000000000000000]))
"testcase.c":8:49 82 {*movdi_internal}
     (nil))
during RTL pass: cprop_hardreg
testcase.c:9:1: internal compiler error: in extract_constrain_insn, at
recog.cc:2692
0x77a82b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /repo/gcc-trunk/gcc/rtl-error.cc:108
0x77a8b1 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /repo/gcc-trunk/gcc/rtl-error.cc:118
0x769601 extract_constrain_insn(rtx_insn*)
        /repo/gcc-trunk/gcc/recog.cc:2692
0x12ff6b3 copyprop_hardreg_forward_1
        /repo/gcc-trunk/gcc/regcprop.cc:826
0x1300b9f execute
        /repo/gcc-trunk/gcc/regcprop.cc:1408
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-r13-4583-20221209191939-g71b31d13757-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/13.0.0/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
--disable-bootstrap --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-r13-4583-20221209191939-g71b31d13757-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.0.0 20221209 (experimental) (GCC)

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

* [Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
  2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
@ 2022-12-10  8:08 ` jakub at gcc dot gnu.org
  2022-12-12  9:48 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-12-10  8:08 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
   Target Milestone|---                         |13.0
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-12-10
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
           Priority|P3                          |P1

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

* [Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
  2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
  2022-12-10  8:08 ` [Bug target/108044] " jakub at gcc dot gnu.org
@ 2022-12-12  9:48 ` jakub at gcc dot gnu.org
  2022-12-12 13:20 ` marxin at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-12-12  9:48 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 54068
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54068&action=edit
gcc13-pr108044.patch

Untested fix.

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

* [Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
  2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
  2022-12-10  8:08 ` [Bug target/108044] " jakub at gcc dot gnu.org
  2022-12-12  9:48 ` jakub at gcc dot gnu.org
@ 2022-12-12 13:20 ` marxin at gcc dot gnu.org
  2022-12-13 21:17 ` cvs-commit at gcc dot gnu.org
  2022-12-13 21:18 ` jakub at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-12-12 13:20 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Btw. started with r13-4558-g1dc49df4eeaec311.

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

* [Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
  2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2022-12-12 13:20 ` marxin at gcc dot gnu.org
@ 2022-12-13 21:17 ` cvs-commit at gcc dot gnu.org
  2022-12-13 21:18 ` jakub at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-12-13 21:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 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:37c2d99f3f569350ebc0de43c10374b90086b832

commit r13-4683-g37c2d99f3f569350ebc0de43c10374b90086b832
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Dec 13 22:16:34 2022 +0100

    i386: Fix up *concat*_{5,6,7} patterns [PR108044]

    The following patch fixes 2 issues with the *concat<half><mode>3_5 and
    *concat<mode><dwi>3_{6,7} patterns.
    One is that if the destination is memory rather than register, then
    we can't use movabsq and so can't support all the possible immediates.
    I see 3 possibilities to fix that.  One would be to use
    x86_64_hilo_int_operand predicate instead of const_scalar_int_operand
    and thus not match it at all during combine in such cases, but that
    unnecessarily pessimizes also the case when it is loaded into register
    where we can use movabsq.
    Another one is what is implemented in the patch, use Wd constraint
    for the integer on 64-bit if destination is memory and n otherwise.
    Yet another option would be to add match_scratch to the pattern and use
    it with =X constraints except for the =o case for 64-bit non-Wd where it
    would give a single DImode register (rather than 2).

    Another thing is that if one half of the constant is
    ix86_endbr_immediate_operand, then for -fcf-protection=branch we
    force those constants into memory and that might not work properly
    with -fpic.  So we should refuse to match with such constants.
    OT, seems for movabsq we don't check that and happily allow the endbr
    pattern in the immediate.

    2022-12-13  Jakub Jelinek  <jakub@redhat.com>

            PR target/108044
            * config/i386/i386.md (*concat<half><mode>3_5,
*concat<mode><dwi>3_6,
            *concat<mode><dwi>3_7): Split alternative with =ro output
constraint
            into =r,o,o and use Wd input constraint for the last alternative
which
            is enabled for TARGET_64BIT.  Reject ix86_endbr_immediate_operand
            in the input constant.

            * gcc.target/i386/pr108044-1.c: New test.
            * gcc.target/i386/pr108044-2.c: New test.
            * gcc.target/i386/pr108044-3.c: New test.
            * gcc.target/i386/pr108044-4.c: New test.

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

* [Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
  2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2022-12-13 21:17 ` cvs-commit at gcc dot gnu.org
@ 2022-12-13 21:18 ` jakub at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-12-13 21:18 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

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

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

end of thread, other threads:[~2022-12-13 21:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-10  4:02 [Bug target/108044] New: [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O zsojka at seznam dot cz
2022-12-10  8:08 ` [Bug target/108044] " jakub at gcc dot gnu.org
2022-12-12  9:48 ` jakub at gcc dot gnu.org
2022-12-12 13:20 ` marxin at gcc dot gnu.org
2022-12-13 21:17 ` cvs-commit at gcc dot gnu.org
2022-12-13 21:18 ` 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).