From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 291323858285 for ; Mon, 20 Nov 2023 12:20:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 291323858285 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=foss.arm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=foss.arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 291323858285 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700482852; cv=none; b=rAW4+gLZXetp4B0Sv2sDfd+S6mFF5VxASntypinPgt/UcfRegjTMyKUKTbhbNUvkrdkKnyagtf55KRJxjnV+khRJpKxjUfoeMydemx8eGNbHi3H+UxXroDtrGMmeQmoakMTrZUkjWSPQ0a8hnuMYVFy+940DMmYMFCoA7mWNu8Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700482852; c=relaxed/simple; bh=hRVy9Z7eb2tNHaZgpFZQzXIU7bHQrwOd9UqCC1xBEpQ=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=q31bcdDAf/DLlmQN1ORF4snmohCq1V1mRsBbv9s8+Wv8EDQ+cv9zNZkdMAkDVpqybq5F1hqOxRJry20rUXyxHqHnbcYY4mcHDeZYo7wnqL+28HSFI7e+N2B2+OOASotE0MZZLlblgjX8W6YZmit8g0TMyJZsDKvpaHjI5ZlMeKw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 14A49FEC; Mon, 20 Nov 2023 04:21:37 -0800 (PST) Received: from [10.57.38.109] (unknown [10.57.38.109]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 313403F6C4; Mon, 20 Nov 2023 04:20:50 -0800 (PST) Message-ID: <7450fdb2-3098-4bba-9764-913f8620aa94@foss.arm.com> Date: Mon, 20 Nov 2023 12:20:48 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [committed 02/22] arm: testsuite: correctly detect hard_float To: Christophe Lyon , Richard Earnshaw Cc: "gcc-patches@gcc.gnu.org" References: <20231113142658.69039-1-rearnsha@arm.com> <20231113142658.69039-3-rearnsha@arm.com> Content-Language: en-GB From: Richard Earnshaw In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3487.6 required=5.0 tests=BAYES_00,BODY_8BITS,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 20/11/2023 10:41, Christophe Lyon wrote: > Hi Richard, > > > On Mon, 13 Nov 2023 at 15:27, Richard Earnshaw wrote: >> >> >> Add an arm-specific test to check_effective_target_hard_float for >> Arm to handle cases where we only have single-precision FP in hardware. >> >> gcc/testsuite: >> >>         * lib/target-supports.exp (check_effective_target_hard_float): Add >>         arm-specific test. >> --- >>  gcc/testsuite/lib/target-supports.exp | 11 +++++++++++ >>  1 file changed, 11 insertions(+) >> > > Our CI has detected a problem when testing this patch for cortex-m33: > with > -mthumb/-march=armv8-m.main+dsp+fp/-mtune=cortex-m33/-mfloat-abi=hard/-mfpu=auto > and GCC configured with --disable-multilib --with-mode=thumb > --with-cpu=cortex-m33 --with-float=hard > > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O0  execution test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O1  execution test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O2  execution test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O2 -flto -fno-use-linker-plugin -flto-partition=none  execution > test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  execution test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -O3 -g  execution test > FAIL: > gcc:gcc.dg/torture/dg-torture.exp=gcc.dg/torture/fp-double-convert-float-1.c >   -Os  execution test > I think this technically is a real bug in the port. This test changes the rounding modes, but cortex-m33 only has a single-precision FP unit, so single-precision is handled in HW, while double-precision is handled in SW. The soft-float functions don't support changing the rounding mode, and certainly not through fesetround(), so we don't get the expected results. I think the test would always have failed, but we didn't run it in the past as the default test for HW fp only checked for double precision HW. Fixing the real problem is not trivial though, especially in a mixed hard/soft environment. > We use qemu for testing. Do these tests pass in your configuration? > > Thanks, > > Christophe R.