From patchwork Fri Jan 15 11:47:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Yukhin X-Patchwork-Id: 568039 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 5AD3A140C08 for ; Fri, 15 Jan 2016 22:47:58 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=Ui5yz41c; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=NShn6OS71m5yxsPPj/z7BdVS/k3oK/WNWVPJM5mnYUu0lbcv1N 6FracON44YNdbkTM3n/U1bEZZkU1Y30mzVIXJhkW8rC1D4bFJTCvk4/WoVl2RdE8 op4Gqs3UdiTQdJYu3NByHWVFh3Fh9YPCXn5K4rC/AJuh7dMqs1h0miGa8= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=dPWs7AtQJY9ZZCxSJZEIsBqw1os=; b=Ui5yz41c2WIdiZxZe2Xg FLL5l63aCvs5S1hXFOqf06OH3Ge7T22rDjSNLe4IKWpCtWCFGMcpLkhP9KAU3ZHU 1c9k6gSb3MrFXq4Oiu+STAPH4XXN0LD9syzAWj5q73rF8deHOb2pBcTO/admBO5I ouUMDHeBN6LiDE10srv3c5E= Received: (qmail 34559 invoked by alias); 15 Jan 2016 11:47:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 34504 invoked by uid 89); 15 Jan 2016 11:47:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1723 X-HELO: mail-qg0-f41.google.com Received: from mail-qg0-f41.google.com (HELO mail-qg0-f41.google.com) (209.85.192.41) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 15 Jan 2016 11:47:39 +0000 Received: by mail-qg0-f41.google.com with SMTP id 6so426636904qgy.1 for ; Fri, 15 Jan 2016 03:47:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-type:content-disposition:user-agent; bh=Bx9Go7FJZcVAj61qlEnQPqFjTM89+rsA60w/HuQtFAs=; b=Q5u236QlVK1JyCzXKMCL2fPp1iYli0mg2kgpomqDvcFtVa7W+Zh6Ci8eRSaXVjqSPF Ok4OKIpfIEw2+mu6YXcfhmKQJCkHLQk/A+YGQh/xorC7aSHuK/GAsljivb1g8+W/pXfA 9kSFYHQmjT47Ya+xYwkdKjNBCzdMAmGu1xS8ZxUAz+fyhcEuP0HmPNqIyvWnwg5ezQBn A0TnpFASi3XfQGhIYk5CaFAKIx0c9P0uk0rlkBJQoYMbuBQ49CieSYY1MksfuniVbSM8 3d4T9PgOeIZhUK+dOaRxCv3XXzes4WEDZ/Pf/e1awunscnd394BSrrEZRc44x5xsKnLC kFHA== X-Gm-Message-State: ALoCoQkhvjIH5Q8My69wOllVKnuPVF7yaaJXvqVqfjxij7eNeMZbliDGpCPlGzERoIRt9RBhDn9llok2QKGaker46Qfhe1a1LQ== X-Received: by 10.140.161.9 with SMTP id h9mr13161537qhh.82.1452858457633; Fri, 15 Jan 2016 03:47:37 -0800 (PST) Received: from msticlxl57.ims.intel.com (irdmzpr01-ext.ir.intel.com. [192.198.151.36]) by smtp.gmail.com with ESMTPSA id h19sm4347734qgd.37.2016.01.15.03.47.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Jan 2016 03:47:36 -0800 (PST) Date: Fri, 15 Jan 2016 14:47:01 +0300 From: Kirill Yukhin To: Richard Biener , Jakub Jelinek Cc: GCC Patches Subject: [PATCH] Fix ICE in vectorizable_store (). Message-ID: <20160115114658.GB12414@msticlxl57.ims.intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes Hello, Thet patch in the bottom adds check if rhs is "useless_type_conversion_p" in vectorizable_store () to avoid subsequent gcc_assert. This change is very similar to [1]. Bootstrapped & regtest in progress. Is it ok for main trunk if regtest pass? gcc/ * tree-vect-stmts.c (vectorizable_store): Check rhs vectype. [1] - https://gcc.gnu.org/ml/gcc-patches/2015-11/msg01551.html --- Thanks, K commit 4383b8f528f0b5e2ea3366b51c4c76d29cf7a416 Author: Kirill Yukhin Date: Fri Jan 15 14:07:59 2016 +0300 Fix ICE in vectorizable_store (). diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 872fa07..7e44601 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -5282,7 +5282,7 @@ vectorizable_store (gimple *stmt, gimple_stmt_iterator *gsi, gimple **vec_stmt, gcc_assert (gimple_assign_single_p (stmt)); - tree vectype = STMT_VINFO_VECTYPE (stmt_info); + tree vectype = STMT_VINFO_VECTYPE (stmt_info), rhs_vectype = NULL_TREE; unsigned int nunits = TYPE_VECTOR_SUBPARTS (vectype); if (loop_vinfo) @@ -5308,7 +5308,8 @@ vectorizable_store (gimple *stmt, gimple_stmt_iterator *gsi, gimple **vec_stmt, } op = gimple_assign_rhs1 (stmt); - if (!vect_is_simple_use (op, vinfo, &def_stmt, &dt)) + + if (!vect_is_simple_use (op, vinfo, &def_stmt, &dt, &rhs_vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -5316,6 +5317,9 @@ vectorizable_store (gimple *stmt, gimple_stmt_iterator *gsi, gimple **vec_stmt, return false; } + if (!rhs_vectype || !useless_type_conversion_p (vectype, rhs_vectype)) + return false; + elem_type = TREE_TYPE (vectype); vec_mode = TYPE_MODE (vectype);