From owner-freebsd-current@freebsd.org Mon Feb 15 23:27:18 2021 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F30A753E5C6 for ; Mon, 15 Feb 2021 23:27:18 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic314-20.consmr.mail.gq1.yahoo.com (sonic314-20.consmr.mail.gq1.yahoo.com [98.137.69.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DfgHT31YMz3qxr for ; Mon, 15 Feb 2021 23:27:17 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1613431635; bh=h/ougimM0HB4WeVZ4UOhJNDWcmnuUzRPJwgDDbgY3Zo=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=BMhZB26a6V/Y8vmejzTMpUw87emlFpBEcLe/GNgIkSFJqLw0XsdlCIlGOsvKC4ZEEFNNJyzcWG7lHs2qltx9Gk6iFZY5CnmdF6+JtINpXNRmnbotJFtjX3OT2dU+/uturyTZb4j1WD8QtbuSX2kUT1ZMIE29YAVfVde5/XcYZsiTBQ+mSRXEfMXy7g57sDpwHkRY5XR/VkjTQit6nXJWyzQfqviixNt4o27+WsRXTNRAovArxNnG9iMBEk02Z0pQRunCUHXiX29YwVelY26Dl8W1s5yAhWOppkwrriddCz3CRhwvmPbvofQj6MGFu3Qc7keXiIBVUQ/kIU8SKzlrrA== X-YMail-OSG: _2KRPi8VM1lo6KoHJuwkGBzmRjmYow_fji8EAT37WySeC1ihGCLCNXIl2yMHDBs FcH230QFBLLQytAa8sttgAorQeD5n6VNu9oUuxufnd5Mix5avpk3kbAQXkfNg8lzyKCB1eLHk8Wg .PP_WFd20koqXyJh43udOxQycqtmLdMzbi9dU0wUE7Z0JmHzv4QboFQwALH8JcUY.GMaZhoP.Cc4 a3hSfS4lb3EugNoGqiv5sqwaL6H3H7y5Di0jGhgBfNdOXa1.DtMupTOtb9W3rnllUuZ6A7b5gb6s FnD1wJYX4x1qc6lqmzVoefYatr_51IZKn8pShzjENU35gPYmyq5fqWZVnS7z04uYsyxYwCc_UAko xU5BnvKt4whElroZ7KMOFbTLy3nLXTEQgvWzyiLPIObM4KsdTjTRR0H0hnWXBUSKTjBbJ.39ahco 4zVvM_4B5eqd41KAWITvteoVslYAKcE5GrdGoOe0hE_WvMnp4Tc92T2YnLR0LpZXMEkY2Mo3xvyN GmGnuFEczpaiuM_Vec0cg74PwKu2mN00Q2MgTLbKa.GCv2TDuXMIxGL0NZjyP6k.EPUAcYfw5oz4 neDwoS4BHLUSP3qLwuCBCYi0ZiAdLc913z56Uo9vk12AxXbswsqSg4llCvzgqetkJDdflnjQ07oj dCxq2XKT7N0f2VzjqlLPqqDCPHYToWUo7sn.zqLYBMVB6t8WZN0Ivu2qOit5hT6bLebfCX1cDYkH YfHDEOdRX_iQOoNU9F0iIDIS5OrzPV5L8qn0iBfEnj0fnz2MXmHpRntnBCsaJTnlaunIwSd9mAT0 X5EkPbqh5dvmxJiz45dHgcodPy5llXxlgyi6e0YAgj57DmM0lWrgjNku5oVYgrJ24aYmaOnKogDy IAh6aDnQkWH0M0HBhX3XpxX2hrVEdZI7IxrJ08.L6yk21XO03idAnq0FpFumeVwkZjw0cvg01jSG CShJfyThPO4yKOsIjb313JRB05NmMhgqwcdXdbwDlbqAtS8YMKSTSFhaTS6mDW.6BIr4E42Itfo4 7OZfsA30DJ2A0SxzcAIPdAQ_Vw7yi30z7e9Qmxtw5GSELP8K5v7Ti6WRl82Y91ykSDDSUlrwpSet rGQVgbK2vd1XBvBpRCK3_9dPe6zMXVPm14VdtmmeKRCuEP0vVkaxz_uetNozFJ7gPs7SxRbUpQt4 jbm63ulwEb7NWqOotzYRs4YDrqomyo1H2hgHKc8HL6Smiuwt6hgqQVAv1NRtXh50JzK3Oklxbyv0 O67O6iAIPKRL8_n9iWb9Yt8w4LaC6kjfz5w9nn5Z0CkbWTMmLGnpUWRfkftD1zJZhYmixojzg4ZY 8IXHGpm7WOxKT.rvmLLMKgChCcK9omNiJWeOT9m4ppcVcUZOdy4XHZ9Bv9BVJlG_Ohf84YZnS6vU R_D18DlFr5ajUfmt3GjYtHvx8Ns26dtUm692LY.4zpNThwSUiVus5isDOnV.0WuQWCrH8PJ1s3BW REchti1fUI_44y5GZaE_miIbKQ14ReQuxHuhlJorAU81EMxMZELeeyNPq6NjwlPh4b5NIPYmSWxB Gt_S_4DIF2seZ.YrxfkwD_SDcEPrhplvVs6fXvqT4HvG8yvTlW0wzqDPDL2Z4562iMqAWaN8XljX SYNkQSWzHWnyzOeW1YrJ2kgvMH9Hm7SdDj.WlfUnl3aCVZzjMiO2Mmj2y9OjhPaFuSTV4Qg_eDpw wnb57HBMn8IEwG4IY0iika_vxqYlHL0rXHH_TkdXW5VCOtAGYg88JdTAAHU43ao9.xwedb41o_hA hX9_TI4TG0XIhiGNzfyn6Bj5tZB0CNUPjpV0c6udK9xZq5L0hanv3Jpc1VjcKrRFJSc_AMsiDSeO erHUsrFwAbD8IXl5X4xssWZZ23v.2P3uYBaXuk57x3_lSJFZgk8ZaQFpdCfK5iOiYL_ZgIiV_FKK QAp00xRgi1WxEDBR9QIQGFMfxjrWSoyodMnkbkGatu4HL9su_lzxONE3AEt0B3Jcw5G4S03xuYE3 4uh_w7xVKvAF4UM.rsfH0oN.g4D2CFMVo0PIq3BK8CsOyJirxrERGr29fv5RfJ5MczoyqO2yjIQ6 oIR_EOj5QSMyHgrxdy6ruSRNeEwF5qerlNcdGeQUs1RTiY.D5xQiOfLOO60SgiPZY27jNcRSGph3 Q1OtNGaIh4Kki7Xek_AjHxoHYrA0v61.zsuYoImazu7waJcl07Vot_8hTbYIajMDR2oEzqoKEk_E e_84dW1KDxroj0q35DfIFWTbstcUi9XbKBoVVFCy7xDyXEpom0NAmJmhipHzhYMs7VCnHxWgR9n1 pW1iiaFO34_kfeXH6ZRPsBO1QUsHV7Yd2PiuTOUqQNR8dFRvGsjQaSEAOEmWlhcKovwT.yeHAgrU Nrt51_YhU20TtrMuSYhUetd.e2QzAcBsJ.HCOGN_.6Nbf5kKZkq6.eyGOMoskLFyI37zukcAA2Ou k5UjzEyuvlLiNp6ZVgzVuUrkhEtIsmUmn X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Mon, 15 Feb 2021 23:27:15 +0000 Received: by smtp410.mail.gq1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 32be4417d9a0f6dc0010479b3c35abf3; Mon, 15 Feb 2021 23:27:10 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Subject: Re: HEADSUP: math is broken with clang and optimization Message-Id: <3FD4762E-8C74-4210-8DA9-9FB30E609205@yahoo.com> Date: Mon, 15 Feb 2021 15:27:08 -0800 To: Steve Kargl , freebsd-current X-Mailer: Apple Mail (2.3654.60.0.2.21) References: <3FD4762E-8C74-4210-8DA9-9FB30E609205.ref@yahoo.com> X-Rspamd-Queue-Id: 4DfgHT31YMz3qxr X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.50 / 15.00]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RBL_DBL_DONT_QUERY_IPS(0.00)[98.137.69.83:from]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; SPAMHAUS_ZRD(0.00)[98.137.69.83:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.83:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.83:from]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[freebsd-current] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2021 23:27:19 -0000 > On Mon, Feb 15, 2021 at 01:03:36PM -0800, Steve Kargl wrote: > > On Mon, Feb 15, 2021 at 12:49:13PM -0800, Steve Kargl wrote: > > > On Sun, Feb 14, 2021 at 01:59:58PM -0800, Steve Kargl wrote: > > > > Just a headsup for anyone doing numerical work with > > > > FreeBSD-current. clang with optimization of -O1 or > > > > higher produces wrong results. Testing 1 million=20 > > > > complex values of ccoshf and limiting |z| < 20, > > > > shows > > > >=20 > > >=20 > > > This is either an in-ling bug or discarding a cast issue. > > > With everything in the same file so clang has dp_ccosh > > > available to it when compiling main. > > >=20 > >=20 > > Code builds and works as expected with gcc 10.2and > > gcc 11.0.0. > >=20 >=20 > Can't find a list of options that is equivalent to -O1, > so cannot test various optimizations. >=20 > Notice that -march=3Di686 gives the wrong results and > -march=3Dcore2 gives the correct result. Trying -march=3Di686 > -msse -msse2 gives the correct result. It seems that > clang does not understand how the x87 (on i585-freebsd). I tried looking around some and got the following that might be contributing: variations in __FLT_EVAL_METHOD__ used . . . # cc -target i386-unknown-freebsd14.0 -march=3Di686 -O2 -x c /dev/null = -dM -E | egrep "(FLT_EVAL_METHOD|ILP32|LP64)" #define _ILP32 1 #define __FLT_EVAL_METHOD__ 2 #define __ILP32__ 1 # cc -target i386-unknown-freebsd14.0 -march=3Dcore2 -O2 -x c /dev/null = -dM -E | egrep "(FLT_EVAL_METHOD|ILP32|LP64)" #define _ILP32 1 #define __FLT_EVAL_METHOD__ 0 #define __ILP32__ 1 # cc -target x86_64-unknown-freebsd14.0 -march=3Dcore2 -O2 -x c = /dev/null -dM -E | egrep "(FLT_EVAL_METHOD|ILP32|LP64)" #define _LP64 1 #define __FLT_EVAL_METHOD__ 0 #define __LP64__ 1 FYI: It does not look like FreeBSD's /usr/include/x86/float.h matches all the detail: #if __ISO_C_VISIBLE >=3D 1999 #ifdef __LP64__ #define FLT_EVAL_METHOD 0 /* no promotions */ #else #define FLT_EVAL_METHOD (-1) /* i387 semantics = are...interesting */ #endif . . . #endif For reference: # cc -target i386-unknown-freebsd14.0 -O2 -x c /dev/null -dM -E | egrep = "(FLT_EVAL_METHOD|ILP32|LP64)" #define _ILP32 1 #define __FLT_EVAL_METHOD__ 2 #define __ILP32__ 1 # cc -target x86_64-unknown-freebsd14.0 -O2 -x c /dev/null -dM -E | = egrep "(FLT_EVAL_METHOD|ILP32|LP64)" #define _LP64 1 #define __FLT_EVAL_METHOD__ 0 #define __LP64__ 1 # cc -target x86_64-unknown-freebsd14.0 -march=3Di686 -O2 -x c /dev/null = -dM -E | grep FLT_EVAL_METHOD | sort error: unknown target CPU 'i686' note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, = silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, = westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, = core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, = cooperlake, cannonlake, icelake-client, icelake-server, tigerlake, knl, = knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, = opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, = bdver3, bdver4, znver1, znver2, x86-64 # cc -v FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git = llvmorg-11.0.1-0-g43ff75f2c3fe) Target: x86_64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)