From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [81.169.146.220]) by sourceware.org (Postfix) with ESMTPS id B082D3836406 for ; Sat, 1 Jun 2024 08:53:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B082D3836406 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gjlay.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=gjlay.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B082D3836406 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=81.169.146.220 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717232026; cv=pass; b=icRQS680io0BSl1WFq5WCmL+48FvltqjmUUk3+pFG0D7qFQJBMxYn09CEwQvFS/14vJrwMMTHhbeqEDZvbpLne8n/TGDz8pTvGuKaHu/ki22WX2LY4B+lFnZ8kjSZdg/qp5o0E6PR1xaLtenYJejHS/p13nteD2WhpKZXRN0sc0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717232026; c=relaxed/simple; bh=KO/edgf3Mqsfpi1oLilPZjUuk5BTByFOefJ99iRuqUc=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version:From: To:Subject; b=BC5if8HJBuh0mEduHCpWJNzataX0fii/+QA9B0L2/Yp8RQzUlpz6MgGnI51lPnovrjOAWMzL9qFoEbj+o1+YkigrayIv9Mu09UccpyPfnIPKTDzLOPCZ3UIEz5Kq+rlBrfvytTYRrr73Y67YMHQMC4CSemzwVqLpJXDZULR34Uo= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1717232022; cv=none; d=strato.com; s=strato-dkim-0002; b=MqVQRE4MQhZbJl/jCx7TEYewiDzd+BFFP+aPE8e9/sRTBpw7D2IOQUN6YuHglFqzHy klCYpZYnembmIpjIiYyNb7GrFfLLF28bq1e39qtTwDDeuDq5O9jMRjkd0ONsHeqF4mME Ox2oE5/0I++3yJZj/zj3Mt51JUhve+q6n7U3FYnI/UIE+CVz4GPNpGBvXH1vLbkFGRU1 nT71aN/esAcL5rYJeSExO/Id1UoNovy5I6vYxyeQFqXRV40nkKIYjQKg60DHCsbYPmvW WcGE4upKbTQK1sHDeiAmotstKGCT/3gRSTUGwSkFD2JbLYfPv31PrpL4oITYxvRstWYp 4wxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1717232022; s=strato-dkim-0002; d=strato.com; h=Subject:To:From:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=u64NwUEICfs8diMmzjSjeNIxCplgu6mh1UonHlJO4Zs=; b=kto2orwMlXA5T0lZLIebf6CLbP73q5zokrVNDIAPX4IJ2ZIJLfhuHG+37XNHPgw/Pc t3XB63TmIDxBnrjF/c+kBFo1f720BdVVhcsCtD8NuNeGeQqXskcb+upG4sAEuYZbR/Lj 8haxY+WKBuVIR0m8zGhqVDrTyL9y8h+gR5gi6JeYfGAUBMwgEwe7HcTCI37zp3X9YZJf HMQwIDu87E5b0Az3PR0+IKMMe5zkICfxgw1rq8JpIH5RfwoR2v/FbbgtR1carBy5DQPx MdupM99wGx/eEUSHPmaCZ/ulP9ZGUIyc4kXBHiHTzLmKPj0pbwUM7UVMM9meTArIh0yd 4DCA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1717232022; s=strato-dkim-0002; d=gjlay.de; h=Subject:To:From:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=u64NwUEICfs8diMmzjSjeNIxCplgu6mh1UonHlJO4Zs=; b=dutnHyuqT8qUW7UI3P9sH/jrkX67ejCRrVzqWb3ptq4P07u7I0rs07V/lWR8ocfLGq v00u6c6CvXSFJaN4m8habpP2es0y7mQjWnM6eoNboDuND6Sd9uXBkKAEe7xsfYZi9qyf VqOpbCML5nu6et2pQwIxQd4zEo4pi6Q+DhLubBAe0GPo2wgODPOwtdjkKtnBHdiu1ZAt AAaLAn3ZWLsGA6FgRTIGW8QaAj+ODFx9SQLkxHd/R6DzvJUoEoHezntwAJ7/wjDgWGFe Ir92HdEDvpJLRT90aw3XESNhmaUPe8xwbvngxt1Y+NhTRQPH3iKXGuqq4IgNWGSg9OQJ ra8A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1717232022; s=strato-dkim-0003; d=gjlay.de; h=Subject:To:From:Date:Message-ID:Cc:Date:From:Subject:Sender; bh=u64NwUEICfs8diMmzjSjeNIxCplgu6mh1UonHlJO4Zs=; b=IwaD1IQrq8V47782256BQzgT22uR9Uz6QFxVPDBbGk/kma906aFWntIRz1MgTud5SP iirbfJrqqrnUuP++BFDQ== X-RZG-AUTH: ":LXoWVUeid/7A29J/hMvvT3koxZnKT7Qq0xotTetVnKkbjtK7q2y9L+qNvyhO" Received: from [192.168.2.102] by smtp.strato.de (RZmta 50.5.0 DYNA|AUTH) with ESMTPSA id xcdf440518rgRXF (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate) for ; Sat, 1 Jun 2024 10:53:42 +0200 (CEST) Message-ID: <1edabd72-65cc-41dd-b5cc-f01dc7e2d6a2@gjlay.de> Date: Sat, 1 Jun 2024 10:53:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Georg-Johann Lay Content-Language: en-US To: "gcc-patches@gcc.gnu.org" Subject: [patch,avr,applied] Work around PR115307 early expanders generate bloat for isinf Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,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 List-Id: Applied this patch as proposed by Richard. Johann -- AVR: tree-optimization/115307 - Work around isinf bloat from early passes. PR tree-optimization/115307 gcc/ * config/avr/avr.md (SFDF): New mode iterator. (isinf2) [sf, df]: New expanders. gcc/testsuite/ * gcc.target/avr/torture/pr115307-isinf.c: New test. diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index d4fcff46123..75d35d5e14b 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -292,6 +292,8 @@ (define_mode_iterator ORDERED234 [HI SI PSI (define_mode_iterator SPLIT34 [SI SF PSI SQ USQ SA USA]) +(define_mode_iterator SFDF [SF DF]) + ;; Where the most significant bit is located. (define_mode_attr MSB [(QI "7") (QQ "7") (UQQ "7") (HI "15") (HQ "15") (UHQ "15") (HA "15") (UHA "15") @@ -10047,6 +10049,20 @@ (define_insn_and_split "*extract.subreg.bit" (const_int 1) (match_dup 2)))]) + +;; Work around PR115307: Early passes expand isinf/f/l to a bloat. +;; These passes do not consider costs, and there is no way to +;; hook in or otherwise disable the generated bloat. + +;; isinfsf2 isinfdf2 +(define_expand "isinf2" + [(parallel [(match_operand:HI 0) + (match_operand:SFDF 1)])] + "" + { + FAIL; + }) + ^L ;; Fixed-point instructions (include "avr-fixed.md") diff --git a/gcc/testsuite/gcc.target/avr/torture/pr115307-isinf.c b/gcc/testsuite/gcc.target/avr/torture/pr115307-isinf.c new file mode 100644 index 00000000000..6368bd205c5 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/pr115307-isinf.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ + +int call_isinff (float f) +{ + int isinff (float); + return isinff (f); +} + +int call_isinf (double f) +{ + int isinf (double); + return isinf (f); +} + +int call_isinfl (long double f) +{ + int isinfl (long double); + return isinfl (f); +} + +/* { dg-final { scan-assembler-not "unord" } } */