public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
@ 2021-05-13 7:39 marxin at gcc dot gnu.org
2021-05-13 8:00 ` [Bug target/100581] " acoplan at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-05-13 7:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
Bug ID: 100581
Summary: [12 Regression] ICE in extract_insn, at recog.c:2770
since r12-731-gb1f7fd8a2a5558da
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: marxin at gcc dot gnu.org
CC: ubizjak at gmail dot com
Target Milestone: ---
Host: x86_64-linux-gnu
The following fails:
$ cat ice.C
typedef float __attribute__((__vector_size__(8))) v64f32;
v64f32 af, bf, ff_a, ff_b;
v64f32 f() { return ff_a > ff_b ? af : bf; }
$ g++ ice.C -c -mxop
ice.C: In function ‘v64f32 f()’:
ice.C:3:44: error: unrecognizable insn:
3 | v64f32 f() { return ff_a > ff_b ? af : bf; }
| ^
(insn 10 9 13 2 (set (reg:V2SF 86 [ _7 ])
(if_then_else:V2SF (reg:V2SF 86 [ _7 ])
(reg:V2SF 84 [ af.2_4 ])
(reg:V2SF 85 [ bf.3_5 ]))) "ice.C":3:40 -1
(nil))
during RTL pass: vregs
ice.C:3:44: internal compiler error: in extract_insn, at recog.c:2770
0x7fd7bb _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:108
0x7fd7dd _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
/home/marxin/Programming/gcc/gcc/rtl-error.c:116
0x7fb9b1 extract_insn(rtx_insn*)
/home/marxin/Programming/gcc/gcc/recog.c:2770
0xe62989 instantiate_virtual_regs_in_insn
/home/marxin/Programming/gcc/gcc/function.c:1609
0xe62989 instantiate_virtual_regs
/home/marxin/Programming/gcc/gcc/function.c:1983
0xe62989 execute
/home/marxin/Programming/gcc/gcc/function.c:2032
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
@ 2021-05-13 8:00 ` acoplan at gcc dot gnu.org
2021-05-13 8:04 ` ubizjak at gmail dot com
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-05-13 8:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
Alex Coplan <acoplan at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |acoplan at gcc dot gnu.org
--- Comment #1 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Is it valid to create a vector type with total size less than the element size?
Shouldn't this be rejected?
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
2021-05-13 8:00 ` [Bug target/100581] " acoplan at gcc dot gnu.org
@ 2021-05-13 8:04 ` ubizjak at gmail dot com
2021-05-13 8:15 ` ubizjak at gmail dot com
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: ubizjak at gmail dot com @ 2021-05-13 8:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com
Version|11.0 |12.0
Last reconfirmed| |2021-05-13
Target Milestone|--- |12.0
CC|ubizjak at gmail dot com |
Ever confirmed|0 |1
Status|UNCONFIRMED |ASSIGNED
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
I have a patch - thanks for the testcase, I'll add it to the patch.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
2021-05-13 8:00 ` [Bug target/100581] " acoplan at gcc dot gnu.org
2021-05-13 8:04 ` ubizjak at gmail dot com
@ 2021-05-13 8:15 ` ubizjak at gmail dot com
2021-05-13 8:19 ` acoplan at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: ubizjak at gmail dot com @ 2021-05-13 8:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Alex Coplan from comment #1)
> Is it valid to create a vector type with total size less than the element
> size? Shouldn't this be rejected?
No, the generated code is:
vmovq ff_b(%rip), %xmm0
vmovq ff_a(%rip), %xmm1
vmovq bf(%rip), %xmm2
vcmpltps %xmm1, %xmm0, %xmm1
vmovq af(%rip), %xmm0
vpcmov %xmm1, %xmm2, %xmm0, %xmm0
ret
Using vmovq ensures that zero is loaded to the top two elements of xmm reg.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
` (2 preceding siblings ...)
2021-05-13 8:15 ` ubizjak at gmail dot com
@ 2021-05-13 8:19 ` acoplan at gcc dot gnu.org
2021-05-13 8:22 ` acoplan at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-05-13 8:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
When describing the vector_size attribute,
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html says:
> Only sizes that are positive power-of-two multiples of the base type size are currently allowed.
Is the documentation out of date?
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
` (3 preceding siblings ...)
2021-05-13 8:19 ` acoplan at gcc dot gnu.org
@ 2021-05-13 8:22 ` acoplan at gcc dot gnu.org
2021-05-13 9:11 ` cvs-commit at gcc dot gnu.org
2021-05-13 9:17 ` ubizjak at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: acoplan at gcc dot gnu.org @ 2021-05-13 8:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
--- Comment #5 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Agh, I just remembered that the size is in bytes rather than bits, sorry for
the noise.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
` (4 preceding siblings ...)
2021-05-13 8:22 ` acoplan at gcc dot gnu.org
@ 2021-05-13 9:11 ` cvs-commit at gcc dot gnu.org
2021-05-13 9:17 ` ubizjak at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-05-13 9:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Uros Bizjak <uros@gcc.gnu.org>:
https://gcc.gnu.org/g:f1693741cb2b2db519bb82155a3c0880fd820ea3
commit r12-768-gf1693741cb2b2db519bb82155a3c0880fd820ea3
Author: Uros Bizjak <ubizjak@gmail.com>
Date: Thu May 13 11:09:53 2021 +0200
i386: Fix up V2SFmode vcond* with -mxop [PR100581]
ix86_expand_sse_movcc has special TARGET_XOP handling and the recent
addition of support of v*cond* patterns for V2SFmode results in
ICEs because the expected pattern doesn't exist. We can handle it
using 128-bit vpcmov (if we ignore the upper 64 bits like we ignore in
other TARGET_MMX_WITH_SSE support).
2021-05-13 Uroš Bizjak <ubizjak@gmail.com>
gcc/
PR target/100581
* config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
sizes < 16 to a register when constructing vpcmov pattern.
* config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
gcc/testsuite/
PR target/100581
* g++.target/i386/pr100581.C: New test.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/100581] [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
` (5 preceding siblings ...)
2021-05-13 9:11 ` cvs-commit at gcc dot gnu.org
@ 2021-05-13 9:17 ` ubizjak at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: ubizjak at gmail dot com @ 2021-05-13 9:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100581
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
Fixed.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-05-13 9:17 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-13 7:39 [Bug target/100581] New: [12 Regression] ICE in extract_insn, at recog.c:2770 since r12-731-gb1f7fd8a2a5558da marxin at gcc dot gnu.org
2021-05-13 8:00 ` [Bug target/100581] " acoplan at gcc dot gnu.org
2021-05-13 8:04 ` ubizjak at gmail dot com
2021-05-13 8:15 ` ubizjak at gmail dot com
2021-05-13 8:19 ` acoplan at gcc dot gnu.org
2021-05-13 8:22 ` acoplan at gcc dot gnu.org
2021-05-13 9:11 ` cvs-commit at gcc dot gnu.org
2021-05-13 9:17 ` ubizjak at gmail 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).