From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 111646 invoked by alias); 23 Oct 2015 13:30:28 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 111550 invoked by uid 48); 23 Oct 2015 13:30:23 -0000 From: "ienkovich at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/68062] [4.9/5/6 Regression] ICE when comparing vectors Date: Fri, 23 Oct 2015 13:30:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 5.2.0 X-Bugzilla-Keywords: accepts-invalid, ice-on-invalid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: ienkovich at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.9.4 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-10/txt/msg01953.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68062 --- Comment #4 from Ilya Enkovich --- (In reply to Ilya Enkovich from comment #3) > (In reply to Richard Biener from comment #1) > > I suppose that is Iljas fault (only happens on trunk). > > Yes, -funsigned-char seems to be my fault. I'll have look. It appears to be introduced by r229173. We now try to lower vector comparison using optab which doesn't actually exist. This patch fixes it: diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 2005383..9c59402 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -1533,7 +1533,8 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi) && TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (srhs1))) { op = optab_for_tree_code (code, TREE_TYPE (type), optab_scalar); - if (optab_handler (op, TYPE_MODE (TREE_TYPE (type))) != CODE_FOR_nothing) + if (op != unknown_optab + && optab_handler (op, TYPE_MODE (TREE_TYPE (type))) != CODE_FOR_nothing) { tree slhs = make_ssa_name (TREE_TYPE (srhs1)); gimple *repl = gimple_build_assign (slhs, code, srhs1, srhs2);