From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91575 invoked by alias); 17 Aug 2016 15:43:13 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 91552 invoked by uid 89); 17 Aug 2016 15:43:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,SPF_PASS autolearn=no version=3.3.2 spammy=1,15 X-HELO: eu-smtp-delivery-143.mimecast.com Received: from eu-smtp-delivery-143.mimecast.com (HELO eu-smtp-delivery-143.mimecast.com) (146.101.78.143) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Aug 2016 15:43:02 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp0149.outbound.protection.outlook.com [213.199.180.149]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-41-XIJx64DeOnWlg1TsRfkiwA-1; Wed, 17 Aug 2016 16:42:57 +0100 Received: from DB4PR08CA0017.eurprd08.prod.outlook.com (10.161.12.27) by VI1PR0802MB2462.eurprd08.prod.outlook.com (10.175.26.17) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.557.21; Wed, 17 Aug 2016 15:42:55 +0000 Received: from DB3FFO11FD033.protection.gbl (2a01:111:f400:7e04::159) by DB4PR08CA0017.outlook.office365.com (2a01:111:e400:9853::27) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.557.21 via Frontend Transport; Wed, 17 Aug 2016 15:42:55 +0000 Received: from nebula.arm.com (217.140.96.140) by DB3FFO11FD033.mail.protection.outlook.com (10.47.217.64) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.567.7 via Frontend Transport; Wed, 17 Aug 2016 15:42:50 +0000 Received: from arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Wed, 17 Aug 2016 16:42:44 +0100 Date: Wed, 17 Aug 2016 15:43:00 -0000 From: James Greenhalgh To: Joseph Myers CC: , , , , , , , , , , , Subject: Re: Implement C _FloatN, _FloatNx types [version 5] Message-ID: <20160817154244.GA39270@arm.com> References: MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(448002)(24454002)(189002)(199003)(77096005)(626004)(97756001)(33656002)(19580395003)(1076002)(104016004)(4001350100001)(23726003)(2906002)(11100500001)(47776003)(4326007)(76176999)(83506001)(54356999)(246002)(305945005)(106466001)(93886004)(85326001)(586003)(50986999)(2950100001)(8936002)(46406003)(8676002)(26826002)(92566002)(50466002)(87936001)(86362001)(7846002)(356003)(36756003)(110136002)(189998001)(7696003)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2462;H:nebula.arm.com;FPR:;SPF:PermError;PTR:fw-tnat.cambridge.arm.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD033;1:YDy0OQMZdy0Ub2GW34oZDA67LcqZX3NFVFGSHrw2p6WD5W2TFVW/cGlMOaOEPsryNr9b8qnkSZm2E1sommLRu0FJ2WU7qIVF7JuBhH//j/0aDckssWAxfS7pq0soxgwvWV9XTuhk2+keYmFxch+3tbWr2tD6f2yvgI9+WCodBIdgS7XnBy2BxZkmw9xOwUEkgGizlOVPBJN1v5iE53eEZsp95BfxMPM89TYpLluv/NUOJ+fkNN+BKNC8TAANZxy71I2g8HK2+mmo7jJIEGvJBjKlPfXi9uEWjXzNPd68bZHiTPAX8kSjA/2yelzBaFGb5YpP4wMX9cZ1mImEs6Z27b7sfBeSgT/r3+9wCGxqBzuY8EsjwEySFPD8aCowfFFPMROiG/fT6VTTvh5wSPXVdACGqDjCBxYBUAbGeR9aGcDhHXViUoibG9hfiHMR43OitubFT4T9JZvb9LVl8Pw1AssW7iG8vz3X8QvTkHEKGF/AxH2Au8k28A96LbkosXMqY1btVoAKwyEAEgHCK4GTi9W0IlvfmPoB03k2KH9WAnJzOZP5wpTQCBx2JaGZwH+2AECDTHPXqnZXu76F5sCj9CXp6ou9CVeXiOvQ7MpIO04= X-MS-Office365-Filtering-Correlation-Id: 39304a8f-f59b-4535-b86a-08d3c6b5275d X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;2:v5tXkVvqaF0y1iJjYvuL4c3T7xJaHVQXJSAZG3Y1gaSaoGzK1jEDnJBc27qRbCr9E1TDgQLrl7rz6Fmyh5HKpHLVoSI6wCtF86bF8xL/8MKZjAQuPy9t0lHnDwbXf59H8uRlbX1ubdG8sC8sQqrKWMMmfSJeslXHn4e0X8J2uXKcHEazpp2xoLrKEmmAcyJv;3:g0OF8cTWAkpycrg1gugBt68eHtYPLVI81ePcxyaeu6eKY+2pyhaDDis0UZSFdL4KDHVMNsTz7+7uogcX2nk27eHPsf/JaLHNiztPPZ4DZKs91hWrSu4/nJlrMGDU0gtSpwA2b3FzpQIkRi25OTpZjl3WdHMN8OqOhKxb9v6zAmvCRYF7jc+6D9eVCqDpfXAx3o3QJnhLiz3H5shXo0Jkm2MaXU75v7GVJ2kxGcNkrxs= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0802MB2462; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;25:ZAS8mh2brzcDq9FEVo3/JqYBaQCsMwSMbgOTjl7nBK3uDPZHzNGgnT3wFI3G7+KdxB/07LJAQpFq/BGlpW9OMmZB6zBCkKH1G22GUwjGArBjK2lLbO40YC8LzfrmFwGJBGWh866jUjeU1cQeNro3kb2VG52YuESTIZH1WmtjjU/LIaP7d2QdzqaX0iKqrg//tHSv+dzi0UQtc/ZqZwL4oNiSm5RfeTeS452CkfTpcwc2W5aRR2zaACDQuKqVcUvKks5TVUDS4tkwSMx+dKXHQJBNLMM5Bpkysj0dDSO/ExnBjM1eSpg6W0BPQthL7guJf7lBIX5jWci9tjX8H98W37d928zIgc838Z8m08sQh77wBLOzZVRnjJXS5I6G7bdHEVP7cqlOA1Xbqn6ZTlSB9EzhzG+P2EiZ4x/UjQ6dqWgrxnrhe4e1OciJhaP7AMo9o5R+DfIA8yVHNKTImILVvIAxDrH/0MDpsdKDcQvyNEi9PQAUdVglnjFHbWsY+8ubTUVl0xzB0mOtKvf6qLinw18bCjr6Am+64Nz1iuR/BoyqzaEMt3wa3sONf4+qBk43moQ3XgylWkN4nFuWsKJcB2xIlkr+4ouT4BXVM3WpQeuVouQXRKCTEzjo7e+VPtmORzHNChchP2y4l7FEe6rH93u8v/EOSe1GoGNQQp+2GDsnKeIV1olYM7WArD8bXGC03rJ7sGamZkvnx6khfrATLKuYl4/RGMdRG+PwQwLP7oNwq1RCfPwSlCLKrY9ZgLTo++xpifWOIZqH1CTUisgqfg== X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;31:bqNZ3vxvdWWqCdpqDg/YjG3jtxdIszKVYUlz2cgnUMOxRbPZecSzXxnKXeen2/yBN/tAmHbM8nKg4viuKFzPxPA6qL+nl4Vm37YCNcbCVkIfGxzQFwmKBvLLGaYn7eJ8ByLdHBTd4dnwZR/mw4wBLkpjb2Y3C2q3lDOPSeeAJHsRfdLhCwbszbpjjDFW/NXUhsOjcyszm2dQhovhUpJ1Vx3LbPzjtBnWb4Ocd51nqNM=;20:I/BrGosdkQd02FEVk9IL35vcX4gF6tgsdZkTzVlnFLrJSJbMlC5uIXcmwrbygVO4Bqsl6lnzrTKSdYGUnXhBOfZvNmnv5NDb7VFw0nR/BJSapoLMii37rO0t9xD4FyxbRSrUkZ8yfZCQZaKQQ5+xrS6CrNlXZk8H6ItXR0bnWkrc0UaKOWwCg4zdJuu6lgybi2WMhh6bdMk5pGBV9t5CpUzc9TJOM7pbHBYnPt0wHockupiwH2MT5ByHmnZCCa3s NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13013025)(13023025)(13024025)(8121501046)(13020025)(5005006)(3002001)(10201501046)(6055026);SRVR:VI1PR0802MB2462;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0802MB2462; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;4:H4it3/p3FNQN+RY4we5t6sUn0BL5BAk1bCLRe5VMHZZ95X/r/69WdXqODQ3pWFNGFxnyYgadYVS0ueVBB40EOyT2hDSrSNF2R7YmPYrZi8a3atMRMVBvpj4uBT7tCye+mQcezBXg/jMBqXVtZ751BwSPCGzANgoLUwRiKaTJK8TuGYWSvm5q52HG0i/FGeM51y0TpJG+O6fJlf1+YIVtXVL9EUPcxFy6dqDyWA6+dKIhts0uXhirK7AGncBYJXDUMbIkEsPWGq+oskMnPU5L50Nchq8Yxugt2jWPb0J5h/rgzyLf7Ro2jWwvB42wOskI+7m9sAYG6oNa3Jd6OqSEylkeqXzXSmRxs5Uex2x57PpyYkOoho6E+cBR5iSnxxP2j0qT4OgtduDqvMOqEgzf22N6VOHvFOMsxbsJngYlervfkLxvxzAIwKqT3L/tqxNmDmoaD2r1fkgsTPtx9+6aIeFLO0tXgr6HYxPCEOKNitM= X-Forefront-PRVS: 0037FD6480 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2462;23:pRMNNewyBGpEYbCxA+nAHCQk2GfqFXj6NdafmHr?= =?us-ascii?Q?hQc3j+whbDqgKdodW3cNeTu4u3OUp+uyaHG2XGl3V6HX6/Gc9wUPwGyu0HWu?= =?us-ascii?Q?NUroNKNKW0vHzdvtHQjUvsAj99o0ilWv6/JaivYghH1U/OE3dmguG2i0Hmpr?= =?us-ascii?Q?xZ0EiMvfkWUOZzkGIAv0TyK/qlBQLfvs5D8sHtXXOjVDTYwdeV5Z8iUsExYp?= =?us-ascii?Q?0u9xYBaeJXJ2PS0MqjB476HFD31WeQig9U1yeWXHu2sXyouza5tzI2bpytwK?= =?us-ascii?Q?4sIasbb45Z4bszagz9yVVupzosFTtgkyvpar/qFrsJNrKge67FwalA0uDDHT?= =?us-ascii?Q?Bte0iRQXvvlvdNP4ReoraBuWlXcYKhtQ7ZnOWBUPMSB0nSSttQr81XumHs+h?= =?us-ascii?Q?p6D1k8wkBznrOutPHRkuR4O5s2i/pvkSAQzUQLf9Vjt72vzDLxhK63FfrNxY?= =?us-ascii?Q?lQMX49DvhuH+MWyg1wPLkCsNl9PTesXYe/qe9zOsSdD5cWvmxSqTTpCjO0rg?= =?us-ascii?Q?3ESDjeyYUO4IMhuIC0Rk8sk3xtkl1uRKKnf9XEdUN4ETRLnR7vQeRzc0jcUI?= =?us-ascii?Q?H4atGryBG4mF55hXVltR7RPsG+PuthSwonQYGHN2LiIuJfaspyQrMhOFIkfh?= =?us-ascii?Q?nPq4K7N8CxHFJk+o/2VCFTb3//UC27EvGOvXP64EhxSCsx0ooP8+RxOqe57U?= =?us-ascii?Q?ZQ/5eo7WrEJ4IW68ObpwXKvg8Sowt8ZnCbZS2rltIAaYQuh53Au92hxyoiFb?= =?us-ascii?Q?OKpWeGIFZ/fQKprTPBIX8TaaHhZvs5bhUxbSnJv4UaXSG2drfoNJSSFd37TW?= =?us-ascii?Q?FxsmXd2Ub/QM2UbkeniKOzL51aoV4yMUgjYmBn39cFuPaPEHsOo2wbPtcJy1?= =?us-ascii?Q?8pkOtQjxeUrk19c+N8ZYAer1cv5feQkCsv3EuVqCbJZmTnOVDHdeQtEONmk6?= =?us-ascii?Q?NTLIM5Hf+ohvlYEx1yBHLVxDPsfJ1pzwrTeKutuw+Jm2ugffm4DXx4tDuvsc?= =?us-ascii?Q?PuQVwHyjJxxxgmg1V1EhGmbTBp7ie8q44k/SJD8N8GnrcWMVz90E96JIuP/O?= =?us-ascii?Q?oDbthPyrDP3wNzVdL7VswfMQPy3laGXd1brVs58r8/vrqhHYp7Yz794Jj9rC?= =?us-ascii?Q?b8PIyB6X8Qo2jV3Y6psjCaL62UZdA43qH?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;6:8YLtwTlhYGYvdykQTh15dTyJWbpyKBX4ER5YIiygWZKX0PYStRt3gCMkJGpxTJgu+Tcosky7IkbnhYtHTI8icTudGORrp2TCwYp+eMAQm+Rqu5Iaqet2+tRGyRJWlUI3YDvKsviR0OL3u4gvlmgvCquwKmwSgyPwL9maXD16BJsX2A0S17+7ogNdZ4xMn2+gFQm2/7eDX9iSTwk/JVn5oh/NnH3rk1IfwYGNEBj3xu+rgMuKWeR9V8dwhinHFadVcyVSAK++tUU9AmHkOkH/oMuztEVQgez5p4x0SbbAwZv+imE/YX/7J725meE08buPZzR9cbMrI/N8YwdrFbHcyA==;5:gB4xhnV+XnyfIY70jqeusuQstVAoqDitEzl3vw+TyXJvfwEhMq8Zs9C2PsVbAAJv6BDUJ2NeSOkTgSY+EoDFc/VQ9j6eBMbMPym/6Io9rwYkdpiAHEGLYtyM7nhiJPmWaZtFxfzLUEaT8u14aTXFPg==;24:4wpePSJMiaQ/U3nNWEu4r94gL0q5pul2yN+tQbq3E6CVSy78xDlDvfE/CN+rdcnU20x4zjQqnu6nwCeUBKuYMIytzsEwqHNhE/NdpgkgN3w=;7:eeajYDueTPDDjT2z9+xkNPrR4TCgexR43jm0Hv78mDLeRVeYvGusCngRaERXyiM0bQ4ddZI/BeOoro4fX/4Vz6Hl3feEB9N8mhKHRUl4CF11qQa7tSTSgjAfIcqEIa6k+UVZAOGSgvgOdajQ7l3TJSlX7E9T3SYg6ybnXh1QEL/kVhliV9oy2Rzjz/2oQtcI/APwgO6r/xCsZTYgeWpxfMqq8wLQ3WHvsJGBgWeQBRz8Cubf7fbKz7V0wVDA6DwP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2462;20:kafxs0roweFXtlS+Cj2RFmPJUoxXCc4UN9OIIYA67DChT7RRf3VuGGxNPrnobHF/lmj9i07vPfH4iqvSDak7QRHk/88HEEDh4U6NsFtBbB8G1UEVxVkxVnOemEcIqI8w0u6t53E6rOnmV1VcwcOD7M0VXZC8yO3ik0afWEjdwTk= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2016 15:42:50.8757 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2462 X-MC-Unique: XIJx64DeOnWlg1TsRfkiwA-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-SW-Source: 2016-08/txt/msg00079.txt.bz2 On Fri, Jul 22, 2016 at 09:59:33PM +0000, Joseph Myers wrote: > Index: gcc/testsuite/gcc.dg/torture/fp-int-convert-float16-timode.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/testsuite/gcc.dg/torture/fp-int-convert-float16-timode.c (nonexis= tent) > +++ gcc/testsuite/gcc.dg/torture/fp-int-convert-float16-timode.c (working= copy) > @@ -0,0 +1,15 @@ > +/* Test floating-point conversions. _Float16 type with TImode. */ > +/* { dg-do run } */ > +/* { dg-require-effective-target float16 } */ > +/* { dg-options "" } */ > + > +#define __STDC_WANT_IEC_60559_TYPES_EXT__ > +#include > +#include "fp-int-convert.h" > + > +int > +main (void) > +{ > + TEST_I_F(TItype, UTItype, _Float16, FLT16_MANT_DIG); > + exit (0); > +} > Index: gcc/testsuite/gcc.dg/torture/fp-int-convert-float16.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/testsuite/gcc.dg/torture/fp-int-convert-float16.c (nonexistent) > +++ gcc/testsuite/gcc.dg/torture/fp-int-convert-float16.c (working copy) > @@ -0,0 +1,19 @@ > +/* Test floating-point conversions. Standard types and _Float16. */ > +/* { dg-do run } */ > +/* { dg-require-effective-target float16 } */ > +/* { dg-options "" } */ > + > +#define __STDC_WANT_IEC_60559_TYPES_EXT__ > +#include > +#include "fp-int-convert.h" > + > +int > +main (void) > +{ > + TEST_I_F(signed char, unsigned char, _Float16, FLT16_MANT_DIG); > + TEST_I_F(signed short, unsigned short, _Float16, FLT16_MANT_DIG); > + TEST_I_F(signed int, unsigned int, _Float16, FLT16_MANT_DIG); > + TEST_I_F(signed long, unsigned long, _Float16, FLT16_MANT_DIG); > + TEST_I_F(signed long long, unsigned long long, _Float16, FLT16_MANT_DI= G); > + exit (0); > +} Hi Joseph, These tests will fail for _Float16 implementations. One of the tests in fp-int-convert.h tries to convert to and from 0x8..0 in the width of the unsigned integer mode. But 0x8..0 is not representable in a 16-bit float for any of unsigned int, unsigned long, unsigned long long, or UTItype so the check that conversion to and from 16-bit float returns the input value will fail. The relevant line in testsuite/gcc.dg/torture/fp-int-convert.h is: TEST_I_F_VAL (U, F, (U)~(((U)~(U)0) >> 1), 1); The reduced, preprocessed test below should show the issue I am referring to clearly: extern void abort(void); extern void exit(int); typedef int int128_t __attribute__((mode(TI))); typedef unsigned int uint128_t __attribute__((mode(TI))); int main (int argc, char** argv) { static volatile uint128_t ivin, ivout; static volatile _Float16 fv1, fv2; ivin =3D ~((~(uint128_t)0) >> 1); fv1 =3D ~((~(uint128_t)0) >> 1); fv2 =3D ivin; ivout =3D fv2; if (ivout !=3D ivin) abort (); } This test will always abort for a _Float16 implementation. The obvious fix would be this modification to fp-int-convert.h: - TEST_I_F_VAL (U, F, (U)~(((U)~(U)0) >> 1), 1); \ + TEST_I_F_VAL (U, F, (U)~(((U)~(U)0) >> 1), P_OK1 (P, U)); \ Thanks, James