From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by sourceware.org (Postfix) with ESMTPS id 59D783858D1E for ; Mon, 14 Nov 2022 13:34:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 59D783858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9276C1FFC2 for ; Mon, 14 Nov 2022 13:34:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1668432898; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=tR4gBZpDKDjbKDDlsVjedqcwZQGQWVEc+Sf2Q+/IgGs=; b=fCOdObNIDwwKrlfc7cdOWH3CLRgvYsZR5mM6KuhlsAMEFNmJOqJ69QU3er3j65cYukBann 9w4bSK5slZawgqU0N0YiFdt1Sy+Mkmgf9M8Y1vWb2R8qiE7XlrUX4Mrui/mwA3FO2szqy2 pBPDLTNi93g6KTWf67/UbQ/IfwZ2KCs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1668432898; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=tR4gBZpDKDjbKDDlsVjedqcwZQGQWVEc+Sf2Q+/IgGs=; b=iDKRop08wGmVCZojKu0hNzAAbTlgsGh+2CC+lzQx76egKmB+hNWo1cycM9eMA4niSzgOuv qUliVXH9s7rNZXDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7A9F413A8C for ; Mon, 14 Nov 2022 13:34:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +ceVHAJEcmNiTAAAMHmgww (envelope-from ) for ; Mon, 14 Nov 2022 13:34:58 +0000 Date: Mon, 14 Nov 2022 14:34:57 +0100 (CET) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] remove duplicate match.pd patterns MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Message-Id: <20221114133458.7A9F413A8C@imap2.suse-dmz.suse.de> X-Spam-Status: No, score=-11.8 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 merges match.pd patterns that cause genmatch complaints about duplicates when in-order isn't enforced (you have to edit genmatch.cc to do a full duplicate check). Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. * match.pd: Remove duplicates. --- gcc/match.pd | 63 +++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/gcc/match.pd b/gcc/match.pd index 194ba8f5188..4d0898ccdcb 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1285,8 +1285,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* ~x | x -> -1 */ /* ~x ^ x -> -1 */ -/* ~x + x -> -1 */ -(for op (bit_ior bit_xor plus) +(for op (bit_ior bit_xor) (simplify (op:c (convert? @0) (convert? (bit_not @0))) (convert { build_all_ones_cst (TREE_TYPE (@0)); }))) @@ -2939,9 +2938,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* ~A + A -> -1 */ (simplify - (plus:c (bit_not @0) @0) + (plus:c (convert? (bit_not @0)) (convert? @0)) (if (!TYPE_OVERFLOW_TRAPS (type)) - { build_all_ones_cst (type); })) + (convert { build_all_ones_cst (TREE_TYPE (@0)); }))) /* ~A + 1 -> -A */ (simplify @@ -5103,34 +5102,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (scmp @0 (bit_not @1))))) (for cmp (simple_comparison) - /* Fold (double)float1 CMP (double)float2 into float1 CMP float2. */ - (simplify - (cmp (convert@2 @0) (convert? @1)) - (if (FLOAT_TYPE_P (TREE_TYPE (@0)) - && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@2)) - == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@0))) - && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@2)) - == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@1)))) - (with - { - tree type1 = TREE_TYPE (@1); - if (TREE_CODE (@1) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1)) - { - REAL_VALUE_TYPE orig = TREE_REAL_CST (@1); - if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node) - && exact_real_truncate (TYPE_MODE (float_type_node), &orig)) - type1 = float_type_node; - if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node) - && exact_real_truncate (TYPE_MODE (double_type_node), &orig)) - type1 = double_type_node; - } - tree newtype - = (TYPE_PRECISION (TREE_TYPE (@0)) > TYPE_PRECISION (type1) - ? TREE_TYPE (@0) : type1); - } - (if (TYPE_PRECISION (TREE_TYPE (@2)) > TYPE_PRECISION (newtype)) - (cmp (convert:newtype @0) (convert:newtype @1)))))) - (simplify (cmp @0 REAL_CST@1) /* IEEE doesn't distinguish +0 and -0 in comparisons. */ @@ -5683,7 +5654,33 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (if (cmp == LT_EXPR || cmp == LE_EXPR) { constant_boolean_node (above ? true : false, type); } (if (cmp == GT_EXPR || cmp == GE_EXPR) - { constant_boolean_node (above ? false : true, type); })))))))))))) + { constant_boolean_node (above ? false : true, type); }))))))))) + /* Fold (double)float1 CMP (double)float2 into float1 CMP float2. */ + (if (FLOAT_TYPE_P (TREE_TYPE (@00)) + && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@0)) + == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@00))) + && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@0)) + == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (@10)))) + (with + { + tree type1 = TREE_TYPE (@10); + if (TREE_CODE (@10) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1)) + { + REAL_VALUE_TYPE orig = TREE_REAL_CST (@10); + if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node) + && exact_real_truncate (TYPE_MODE (float_type_node), &orig)) + type1 = float_type_node; + if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node) + && exact_real_truncate (TYPE_MODE (double_type_node), &orig)) + type1 = double_type_node; + } + tree newtype + = (TYPE_PRECISION (TREE_TYPE (@00)) > TYPE_PRECISION (type1) + ? TREE_TYPE (@00) : type1); + } + (if (TYPE_PRECISION (TREE_TYPE (@0)) > TYPE_PRECISION (newtype)) + (cmp (convert:newtype @00) (convert:newtype @10)))))))) + (for cmp (eq ne) (simplify -- 2.35.3