From patchwork Tue Jun 11 14:40:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liu, Hongtao" X-Patchwork-Id: 1946387 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Lw95DPi+; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VzBDG1WzBz1ydW for ; Wed, 12 Jun 2024 00:40:30 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 061C6385DDF9 for ; Tue, 11 Jun 2024 14:40:27 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by sourceware.org (Postfix) with ESMTPS id 3A7833858C5F for ; Tue, 11 Jun 2024 14:40:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A7833858C5F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A7833858C5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.7 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718116806; cv=none; b=o9NOeguPtXetn0M5mziBsc6lfL1ViqUqsqU3BsGGI23HJ8EFg/dnhkZ1/crok1drKiEne6INRrr6Xf4uZkVtrRtB1h5wiMnwnmXn2+JhwwPzqZ3yNzNaGc14aU2gtF+yWhfH09ovt/K7z6N1r/engvg5IYVBrOA7FDc6w/nTIso= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718116806; c=relaxed/simple; bh=Oa00HBgUh4WVRfGFejN5F7Zgk0Y4wMthmhaRR7u8+Yk=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=fJkPho9qiKps+6AZb8333D/7rYm/lP0BvrXOLybpZtB/Vd+RR8Ya5Zu+gDjQGOg4YJ8L70LIjnsAkQ6vobGi/UYKqac8esQseUQ4iGSjkwzAGcAsQm48FWCPFauCsqb1C39LL4X31R/LMH1LjyTQQANQcZm3GvhnQvHfIqPUMSY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1718116804; x=1749652804; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Oa00HBgUh4WVRfGFejN5F7Zgk0Y4wMthmhaRR7u8+Yk=; b=Lw95DPi+BvCvGS9lkeWOyV+UckJtnF++peqATXo0/UYiGznd/4uo+apf 1ISSKQphF8jffwj6bSmhek0F1LsE1iqKOBnwpvb9la8z5KGXOectJzLhm sHLDrv+PY8G/LGP/X8EVSAW3oBfkYJEDw4gPi58CUrQzyEh2C58/FibyT KWKWRQvn1W8yoGDOkIMAfQaABll3FBBRal/ItTGJEyrBCqjfmFHJwgLqN fzqXf+QJeheWIgr85EWzz95+km+ItXKzG+xG2iCtOs/U9xRus3GZr6qz3 6KEPrHxhXJBz8V1yY7nQ0/folszC561vH7HzgKYp2uAiR5udV0keAM2Ci A==; X-CSE-ConnectionGUID: md/6PKzQQwWPdqKR6RY54w== X-CSE-MsgGUID: 9A3gYJJBS5CGy6EmHLKZVw== X-IronPort-AV: E=McAfee;i="6600,9927,11100"; a="40231562" X-IronPort-AV: E=Sophos;i="6.08,230,1712646000"; d="scan'208";a="40231562" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2024 07:40:03 -0700 X-CSE-ConnectionGUID: LGv3bIOmSgaLDwjfsAu/hA== X-CSE-MsgGUID: 7EfxOcTXSE2JcIhSnpJU0A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,230,1712646000"; d="scan'208";a="43855068" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by fmviesa003.fm.intel.com with ESMTP; 11 Jun 2024 07:40:02 -0700 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 533EE1007379; Tue, 11 Jun 2024 22:40:01 +0800 (CST) From: liuhongt To: gcc-patches@gcc.gnu.org Cc: jakub@redhat.com Subject: [PATCH V2] Fix ICE in rtl check due to CONST_WIDE_INT in CONST_VECTOR_DUPLICATE_P Date: Tue, 11 Jun 2024 22:40:01 +0800 Message-Id: <20240611144001.2744558-1-hongtao.liu@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org > > I think if you only handle CONST_INT_P, you should check just for that, and > in both places where you check for CONST_VECTOR_DUPLICATE_P (there is one > spot 2 lines above this). > So add > && CONST_INT_P (XVECEXP (XEXP (op0, 1), 0, 0)) > and > && CONST_INT_P (XVECEXP (op1, 0, 0)) > tests right below those && CONST_VECTOR_DUPLICATE_P (something) tests. Changed. The patch add extra check to make sure the component of CONST_VECTOR is CONST_INT_P. Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}. Ok for trunk? gcc/ChangeLog: PR target/115384 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Only do the simplification of (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) when the component of const_vector is CONST_INT_P. gcc/testsuite/ChangeLog: * gcc.target/i386/pr115384.c: New test. --- gcc/simplify-rtx.cc | 6 ++++-- gcc/testsuite/gcc.target/i386/pr115384.c | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr115384.c diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 9bc3ef9ad9f..3ee95f74d3d 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -4072,9 +4072,11 @@ simplify_context::simplify_binary_operation_1 (rtx_code code, if (VECTOR_MODE_P (mode) && GET_CODE (op0) == ASHIFTRT && (CONST_INT_P (XEXP (op0, 1)) || (GET_CODE (XEXP (op0, 1)) == CONST_VECTOR - && CONST_VECTOR_DUPLICATE_P (XEXP (op0, 1)))) + && CONST_VECTOR_DUPLICATE_P (XEXP (op0, 1)) + && CONST_INT_P (XVECEXP (XEXP (op0, 1), 0, 0)))) && GET_CODE (op1) == CONST_VECTOR - && CONST_VECTOR_DUPLICATE_P (op1)) + && CONST_VECTOR_DUPLICATE_P (op1) + && CONST_INT_P (XVECEXP (op1, 0, 0))) { unsigned HOST_WIDE_INT shift_count = (CONST_INT_P (XEXP (op0, 1)) diff --git a/gcc/testsuite/gcc.target/i386/pr115384.c b/gcc/testsuite/gcc.target/i386/pr115384.c new file mode 100644 index 00000000000..3ba7a0b8115 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr115384.c @@ -0,0 +1,12 @@ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O" } */ + +typedef __attribute__((__vector_size__(sizeof(__int128)))) __int128 W; + +W w; + +void +foo() +{ + w = w >> 4 & 18446744073709551600llu; +}