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