From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id ABF393858406; Tue, 8 Nov 2022 12:24:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ABF393858406 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667910297; bh=nyK/qCrBpM3T+hfbIPP24XHtvnN+9c36aQnfg7yV12g=; h=From:To:Subject:Date:In-Reply-To:References:From; b=vKiC0OIJD2z8feo0O7y1KmanhjuvBZZpCuVzEcSLk2/PZDMh6bpoon/q/AiMKkZ1W FZzqAyIclq1M03mB0DdpvA5yr04JJ+bBesnhznxqm90pDOjpMD+I0h540JXEdgTttw eOGgKfoFBXvyULuPD1STaz5nmlGAEdP8GGWZ0yuM= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/107547] [13 Regression] ICE in get_no_error_domain, at tree-call-cdce.cc:769 since r13-3568-g7f940822816917fe Date: Tue, 08 Nov 2022 12:24:56 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107547 --- Comment #2 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:970dcd567449ec510477a043bbff70a0b960bd7f commit r13-3804-g970dcd567449ec510477a043bbff70a0b960bd7f Author: Jakub Jelinek Date: Tue Nov 8 13:24:02 2022 +0100 cdce: Fix up get_no_error_domain for new f{16,32,64,128} builtins [PR107547] I've missed that this function needs to handle all the builtins that are handled in can_test_argument_range. The following patch does that. For many of the builtins (like acos, or log) it is the same range regardless of the floating point type, but for some (cosh, sinh, exp{,m1,2}) it is different for each format, so I had to compute those ranges. Note, seems the existing ranges were in some cases (e.g. for exp2) the smallest in absolute value which results infinite result, in others the largest which still results in finite result (but consistently so for the IEEE single vs. double). I've followed that for IEEE half and quad cases too, just am not sure why it was like that. I think get_domain with true, false is open interval rather than closed and the comments indicate that too, conservatively that is certainly correct. OT, with frange, perhaps we could DCE the calls unconditionally if frange can prove we are in the domain range. 2022-11-08 Jakub Jelinek PR tree-optimization/107547 * tree-call-cdce.cc (get_no_error_domain): Handle CASE_FLT_FN_FLOATN_NX of BUILT_IN_{ACOS,ASIN,ACOSH,ATANH,LOG,LOG2,LOG10,LOG1P}. Hand= le BUILT_IN_{COSH,SINH,EXP,EXPM1,EXP2}F{16,32,64,128}. * gcc.dg/pr107547.c: New test.=