From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BF1223938803; Mon, 1 Mar 2021 19:06:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BF1223938803 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/99321] [11 Regression] ICE: in extract_constrain_insn, at recog.c:2670: insn does not satisfy its constraints: {*uminv16qi3} since r11-7121-g37876976b0511ec9 Date: Mon, 01 Mar 2021 19:06:03 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2021 19:06:03 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99321 --- Comment #2 from Jakub Jelinek --- I'm afraid we have multiple problems with -mavx512vl -mno-avx512bw (are the= re any CPUs with that combination of ISA sets though?). In r7-618-g9bdf001b7a2232753e4a92582218bb4f24c8d809 I've fixed the 16-byte vp{min,max}ub to not allow v constraints when not AVX512BW. But clearly many other patterns need something like that and don't have tha= t. E.g. vp{add,sub,{min,max},{u,s}}{b,w}, both 16-byte and 32-byte. The result of that aren't ICEs, but code silently using AVX512BW features w= hen AVX512VL is enabled but AVX512BW is not. Similarly, vpmullq needs AVX512DQ. And, another thing is that the: (define_peephole2 [(set (match_operand 0 "sse_reg_operand") (match_operand 1 "sse_reg_operand")) (set (match_dup 0) (match_operator 3 "commutative_operator" [(match_dup 0) (match_operand 2 "memory_operand")]))] "REGNO (operands[0]) !=3D REGNO (operands[1])" [(set (match_dup 0) (match_dup 2)) (set (match_dup 0) (match_op_dup 3 [(match_dup 0) (match_dup 1)]))]) peephole2 doesn't work and results in ICEs if the patterns are correct (as = is the case of *uminv16qi3) if one is unlucky and operands[1] is [xy]mm16 or higher register and operands[0] is not.=