public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
@ 2020-08-10 17:08 asolokha at gmx dot com
  2020-08-11  4:50 ` [Bug target/96558] " asolokha at gmx dot com
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: asolokha at gmx dot com @ 2020-08-10 17:08 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 96558
           Summary: [11 Regression] ICE in extract_constrain_insn, at
                    recog.c:2195 (error: insn does not satisfy its
                    constraints)
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-unknown-linux-gnu-gcc

gcc-11.0.0-alpha20200809 snapshot (g:71197a5d13d0b540a9b5efe7ae2512d76386e9d1)
ICEs when compiling the following testcase w/ -O2 -fno-expensive-optimizations
-fno-gcse:

int ky;
long int h1;
__int128 f1;

int
sd (void);

int __attribute__ ((simd))
i8 (void)
{
  __int128 vh;

  if (sd () == 0)
    h1 = 0;

  do
    {
      long int lf = h1;
      long int w1 = f1;

      if (w1 == 0)
        lf = 0;
      else
        lf = lf && w1;

      ky += lf;

      vh = lf | f1;
      f1 = 1;
    }
  while (vh < (f1 ^ 2));

  return 0;
}

% x86_64-unknown-linux-gnu-gcc-11.0.0 -O2 -fno-expensive-optimizations
-fno-gcse -c yocbyzz3.c
yocbyzz3.c: In function 'i8.simdclone.6':
yocbyzz3.c:34:1: error: insn does not satisfy its constraints:
   34 | }
      | ^
(insn 157 14 158 3 (parallel [
            (set (reg:DI 20 xmm0 [orig:121 _53 ] [121])
                (const_int 0 [0]))
            (clobber (reg:CC 17 flags))
        ]) "yocbyzz3.c":13:6 68 {*movdi_xor}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
during RTL pass: cprop_hardreg
yocbyzz3.c:34:1: internal compiler error: in extract_constrain_insn, at
recog.c:2195
0x68e957 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/rtl-error.c:108
0x68e97d _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/rtl-error.c:118
0x68cfb5 extract_constrain_insn(rtx_insn*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/recog.c:2195
0xcf76fb copyprop_hardreg_forward_1
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/regcprop.c:802
0xcf864e execute
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/regcprop.c:1367

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
@ 2020-08-11  4:50 ` asolokha at gmx dot com
  2020-08-11  7:47 ` ubizjak at gmail dot com
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: asolokha at gmx dot com @ 2020-08-11  4:50 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Arseny Solokha <asolokha at gmx dot com> ---
The internal loop can be simplified a bit:

  do
    {
      long int lf = (long int) f1 ? h1 : 0;

      ky += lf;
      vh = lf | f1;
      f1 = 1;
    }
  while (vh < (f1 ^ 2));

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
  2020-08-11  4:50 ` [Bug target/96558] " asolokha at gmx dot com
@ 2020-08-11  7:47 ` ubizjak at gmail dot com
  2020-08-12 10:43 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: ubizjak at gmail dot com @ 2020-08-11  7:47 UTC (permalink / raw)
  To: gcc-bugs

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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sayle at gcc dot gnu.org
     Ever confirmed|0                           |1
   Target Milestone|---                         |11.0
   Last reconfirmed|                            |2020-08-11
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Confirmed, introduced by g:c072fd236dc08f990bfcffd98b27f211a39bb404 that adds 
too broad peephole2 match.

Should be fixed by:

--cut here--
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 4e916bf3c32..8836552bc17 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -18938,7 +18938,7 @@
 ;; i.e. prefer "xorl %eax,%eax; test/cmp" over "test/cmp; movl $0, %eax".
 (define_peephole2
   [(set (reg FLAGS_REG) (match_operand 0))
-   (set (match_operand:SWI 1 "register_operand") (const_int 0))]
+   (set (match_operand:SWI 1 "general_reg_operand") (const_int 0))]
   "peep2_regno_dead_p (0, FLAGS_REG)
    && !reg_overlap_mentioned_p (operands[1], operands[0])"
    [(set (match_dup 2) (match_dup 0))]
--cut here--

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
  2020-08-11  4:50 ` [Bug target/96558] " asolokha at gmx dot com
  2020-08-11  7:47 ` ubizjak at gmail dot com
@ 2020-08-12 10:43 ` jakub at gcc dot gnu.org
  2020-08-12 21:35 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-08-12 10:43 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zsojka at seznam dot cz

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
*** Bug 96587 has been marked as a duplicate of this bug. ***

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
                   ` (2 preceding siblings ...)
  2020-08-12 10:43 ` jakub at gcc dot gnu.org
@ 2020-08-12 21:35 ` cvs-commit at gcc dot gnu.org
  2020-08-13  1:45 ` asolokha at gmx dot com
  2020-08-18 14:00 ` roger at nextmovesoftware dot com
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-08-12 21:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Roger Sayle <sayle@gcc.gnu.org>:

https://gcc.gnu.org/g:32c69a56981bd72a52b7d234a2936020f97909d1

commit r11-2679-g32c69a56981bd72a52b7d234a2936020f97909d1
Author: Roger Sayle <roger@nextmovesoftware.com>
Date:   Wed Aug 12 22:34:29 2020 +0100

    PR target/96558: Only call ix86_expand_clear with GENERAL_REGS.

    The following patch tightens the predicates of the peephole2 from my recent
    "Integer min/max improvements patch" to only hoist clearing a register when
    that register is a general register.  Calling ix86_expand_clear with regs
    other than GENERAL_REGS is not supported.

    2020-08-12  Roger Sayle  <roger@nextmovesoftware.com>
                Uroš Bizjak  <ubizjak@gmail.com>

    gcc/ChangeLog
            PR target/96558
            * config/i386/i386.md (peephole2): Only reorder register clearing
            instructions to allow use of xor for general registers.

    gcc/testsuite/ChangeLog
            PR target/96558
            * gcc.dg/pr96558.c: New test.

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
                   ` (3 preceding siblings ...)
  2020-08-12 21:35 ` cvs-commit at gcc dot gnu.org
@ 2020-08-13  1:45 ` asolokha at gmx dot com
  2020-08-18 14:00 ` roger at nextmovesoftware dot com
  5 siblings, 0 replies; 7+ messages in thread
From: asolokha at gmx dot com @ 2020-08-13  1:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Arseny Solokha <asolokha at gmx dot com> ---
Should this PR be closed now?

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

* [Bug target/96558] [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints)
  2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
                   ` (4 preceding siblings ...)
  2020-08-13  1:45 ` asolokha at gmx dot com
@ 2020-08-18 14:00 ` roger at nextmovesoftware dot com
  5 siblings, 0 replies; 7+ messages in thread
From: roger at nextmovesoftware dot com @ 2020-08-18 14:00 UTC (permalink / raw)
  To: gcc-bugs

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

Roger Sayle <roger at nextmovesoftware dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |roger at nextmovesoftware dot com
         Resolution|---                         |FIXED

--- Comment #6 from Roger Sayle <roger at nextmovesoftware dot com> ---
Fixed.  Thanks for everyone's help.  Sorry again.

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

end of thread, other threads:[~2020-08-18 14:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-10 17:08 [Bug target/96558] New: [11 Regression] ICE in extract_constrain_insn, at recog.c:2195 (error: insn does not satisfy its constraints) asolokha at gmx dot com
2020-08-11  4:50 ` [Bug target/96558] " asolokha at gmx dot com
2020-08-11  7:47 ` ubizjak at gmail dot com
2020-08-12 10:43 ` jakub at gcc dot gnu.org
2020-08-12 21:35 ` cvs-commit at gcc dot gnu.org
2020-08-13  1:45 ` asolokha at gmx dot com
2020-08-18 14:00 ` roger at nextmovesoftware 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).