From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 1DFAA38754A5 for ; Wed, 10 Apr 2024 16:31:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1DFAA38754A5 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1DFAA38754A5 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712766721; cv=none; b=UnfkbHyyJddfnWGLE0xfGrEV66vSXGemsKNXeT6c1+YiBFazV4uz0LiXqX1M+u0UUOyQeaRzn8DZqxm+GGu/y7O46sB9yMaQb5ASXKS7asSr+4sdJqF7pg2gKTw0ETeoSZfpiMgvbU9cuh0litV8LrNpLdt257ggFXXHFqbD7Ec= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712766721; c=relaxed/simple; bh=pf6R9cOnpKzmAnkn6fq5+tK+KDNKik99Xr4RfHG49nI=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date: From:To:Subject:MIME-Version:Message-Id; b=B9caIX7H1KDQxJMvnkeVcmjcJiCPPrNqsWZLK05Oc/JXPBEvGATMr6fNiH/nN5TRWAt5gneENESJ59egDR2nnOuyKMjSE18nWKNlc+H3sfSv0lX2/EEFLWiCCgr8f00Rtio+IL2NgNb9kGKpijm+ZZAjT3CHkRmLVA+rWP9u1jY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E2CFD338B8 for ; Wed, 10 Apr 2024 16:31:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1712766708; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=G6h0+yqgrPaAoDbrgxhHv/yMBCbBx6SErhr/0zG06bA=; b=zI7Z7TE3EJnBB7kbaTH6VZ1GqBhjMq7JN5dwT0WuHm23Di3QOif1or7xL6QOWM00yyakWo xDmfhvXi7VshJbB9245ilyVEOxQhipBZjw8djKpOV2UlV3YySapBQhoU6ifI900RPC6FvN vrjCMNTdWmplkVK/aJzAJhWLWaynfNU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1712766708; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=G6h0+yqgrPaAoDbrgxhHv/yMBCbBx6SErhr/0zG06bA=; b=QmCcU2sJZ41rzOdAXeAbfYrj4Y9jzIITd6DhKJeZoAZxDbIiweuKbw6ybsnd/fPOUO8wTU RWdxNEp8Yd90nZDA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=UWmrghCg; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="+5NYGGa/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1712766707; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=G6h0+yqgrPaAoDbrgxhHv/yMBCbBx6SErhr/0zG06bA=; b=UWmrghCgyw9u3G9aBm5SUjvs7vyTF+QV51aPPMpHDnA5+7GhJX2tgxqQK7WZhclHTJfHS6 ZZJntVnJva4f6yxY3MAP0WhRHudAaUoJoKbv3PvxHnUUtigZJ+VL+Wn5mP2Tv1/Mqvj9wd yh/u/kn2rs5nmORaLESujs8sDnH4/xA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1712766707; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=G6h0+yqgrPaAoDbrgxhHv/yMBCbBx6SErhr/0zG06bA=; b=+5NYGGa/C+Ti1AzfRxQyVZEEJZ76+5Vi+Bxj44oYFYo1tzXBSfwQDYBbdg0PxXOdGSLekp Rn3z+uPdKAA5CoCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id CB4D713942 for ; Wed, 10 Apr 2024 16:31:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id vScWMPO+FmYnRwAAD6G6ig (envelope-from ) for ; Wed, 10 Apr 2024 16:31:47 +0000 Date: Wed, 10 Apr 2024 18:31:47 +0200 (CEST) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] tree-optimization/114672 - WIDEN_MULT_PLUS_EXPR type mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Message-Id: <20240410163147.CB4D713942@imap1.dmz-prg2.suse.org> X-Spam-Score: -5.05 X-Rspamd-Action: no action X-Rspamd-Queue-Id: E2CFD338B8 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-5.05 / 50.00]; BAYES_HAM(-2.54)[97.96%]; DWL_DNSWL_LOW(-1.00)[suse.de:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_TLS_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; MISSING_XM_UA(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.de:dkim]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gcc-patches@gcc.gnu.org]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The following makes sure to restrict WIDEN_MULT*_EXPR to a mode precision final compute type as the mode is used to find the optab and type checking chokes when seeing bit-precisions later which would likely also not properly expanded to RTL. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/114672 * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only allow mode-precision results. * gcc.dg/torture/pr114672.c: New testcase. --- gcc/testsuite/gcc.dg/torture/pr114672.c | 14 ++++++++++++++ gcc/tree-ssa-math-opts.cc | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/torture/pr114672.c diff --git a/gcc/testsuite/gcc.dg/torture/pr114672.c b/gcc/testsuite/gcc.dg/torture/pr114672.c new file mode 100644 index 00000000000..b69511fe8db --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr114672.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ + +struct { + __INT64_TYPE__ m : 60; +} s; + +short a; +short b; + +void +foo () +{ + s.m += a * b; +} diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc index a8d25c2de48..705f4a4695a 100644 --- a/gcc/tree-ssa-math-opts.cc +++ b/gcc/tree-ssa-math-opts.cc @@ -2918,8 +2918,9 @@ convert_plusminus_to_widen (gimple_stmt_iterator *gsi, gimple *stmt, lhs = gimple_assign_lhs (stmt); type = TREE_TYPE (lhs); - if (TREE_CODE (type) != INTEGER_TYPE - && TREE_CODE (type) != FIXED_POINT_TYPE) + if ((TREE_CODE (type) != INTEGER_TYPE + && TREE_CODE (type) != FIXED_POINT_TYPE) + || !type_has_mode_precision_p (type)) return false; if (code == MINUS_EXPR) -- 2.35.3