From owner-freebsd-toolchain@freebsd.org Wed Mar 13 17:40:42 2019 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24161153B0BB; Wed, 13 Mar 2019 17:40:42 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f171.google.com (mail-it1-f171.google.com [209.85.166.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 494DD8B865; Wed, 13 Mar 2019 17:40:41 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f171.google.com with SMTP id h9so219312itl.1; Wed, 13 Mar 2019 10:40:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=QXm80K82s/MMlZ5c23ttFg7MBDmKAlUau6b+lOSB0Ns=; b=W2e3SR4riGs5lyq2weh3ARMuYmr8BZfsPid2zGQvkxxY6pQ9uWiBVXirE1Lo4C48+s OXpcbnHbnRIDRSBveWIRr6Zw2fL/Humg/lY0q0m/rLpGVpVyol07y5zxMHnDG5BDYt78 3z26qvvxViqN5nTlfEIpUBYcgt7os95QCblPW0RW8uB94jlQqdV9kp3aHWm3ZXSRftJF usnPANPzOeHc2A5fQ1m7t32I7yjGmIrHvxYrGL7xAzFvT0d/a2qtKzt+WJ3RsNeBLe3C YxVDK1Az5NvGE5lMdX/Kp3eViQ6//zAoWtG0W2ieFqHqQTdkK5T46xW05nKs2QnqIXpy mLQw== X-Gm-Message-State: APjAAAViiQ5gfxDNX1tGbJsJmtclR+Uej9cUTAy9VdHy6nvCHZ2WqZrQ xnwK1hXBU/9hyY3kIaZMkgzcHz++ X-Google-Smtp-Source: APXvYqyPzgFbytf0kzDF/7QVGz2ECOukGPpB6x1yQjMAaPoRr06NQ67WUhaEmfHP/zIjZdfL5OAPfg== X-Received: by 2002:a02:9101:: with SMTP id a1mr12194104jag.50.1552498839718; Wed, 13 Mar 2019 10:40:39 -0700 (PDT) Received: from mail-io1-f43.google.com (mail-io1-f43.google.com. [209.85.166.43]) by smtp.gmail.com with ESMTPSA id t62sm1442353ita.35.2019.03.13.10.40.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Mar 2019 10:40:39 -0700 (PDT) Received: by mail-io1-f43.google.com with SMTP id f6so2471496iop.3; Wed, 13 Mar 2019 10:40:39 -0700 (PDT) X-Received: by 2002:a6b:6007:: with SMTP id r7mr23431791iog.124.1552498839214; Wed, 13 Mar 2019 10:40:39 -0700 (PDT) MIME-Version: 1.0 References: <20190313024506.GA31746@troutmask.apl.washington.edu> <20190313151635.GA34757@troutmask.apl.washington.edu> <20190313164039.GA35340@troutmask.apl.washington.edu> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 13 Mar 2019 10:40:28 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Optimization bug with floating-point? To: John Baldwin Cc: "freebsd-toolchain@FreeBSD.org" , freebsd-current Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 494DD8B865 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.171 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-4.62 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.89)[-0.888,0]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com]; TAGGED_FROM(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; SUBJECT_ENDS_QUESTION(1.00)[]; RCVD_IN_DNSWL_NONE(0.00)[171.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.73)[ip: (-7.60), ipnet: 209.85.128.0/17(-3.88), asn: 15169(-2.08), country: US(-0.07)] X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Mar 2019 17:40:42 -0000 Hi John, On Wed, Mar 13, 2019 at 10:17 AM John Baldwin wrote: > One issue I'm aware of is that clang does not have any support for the > special arrangement FreeBSD/i386 uses where it uses different precision > for registers vs in-memory for some of the floating point types (GCC has > a special hack that is only used on FreeBSD for this but isn't used on > any other OS's). I wonder if that could be a factor? Volatile probably > forces a round trip between memory which might explain why this is the > case. > > I wonder what your test program does on i386 Linux with GCC? $ uname -sr Linux 4.20.4 $ gcc --version gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6) ... $ rpm -qf /usr/lib/libm-2.27.so glibc-2.27-37.fc28.i686 $ gcc -m32 -fno-builtin -o z kargl.c -lm && ./z Max ULP: 1.959975 Count: 0 $ gcc -O -m32 -fno-builtin -o z kargl.c -lm && ./z Max ULP: 1.959975 Count: 0 $ gcc -O1 -m32 -fno-builtin -o z kargl.c -lm && ./z Max ULP: 1.959975 Count: 0 $ gcc -O2 -m32 -fno-builtin -o z kargl.c -lm && ./z Max ULP: nan Count: 0 $ gcc -O3 -m32 -fno-builtin -o z kargl.c -lm && ./z Max ULP: nan Count: 0 Uh. kargl.c: In function =E2=80=98main=E2=80=99: kargl.c:80:10: warning: =E2=80=98u=E2=80=99 may be used uninitialized in th= is function [-Wmaybe-uninitialized] if (ur > u) u =3D ur; ^ If I initialize 'u' (to, e.g., -1e52), I get: Max ULP: 1.959975 Count: 0 at -O2 and -O3 as well. Best, Conrad