From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2063.outbound.protection.outlook.com [40.107.94.63]) by sourceware.org (Postfix) with ESMTPS id 17C5D3856DE7 for ; Fri, 6 May 2022 14:09:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 17C5D3856DE7 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=fail; b=e8GXZzdGNYPgtQHNxDD9AiTqYtXJFKfbOctJeeTVOBs61ylzmuPhNd93jh58LbvyvJQUoRkvBScDPRHtOSqUV4RiXqguRda1U1ygDpebzzN+c6WmCsiwoBpRqWHlAj4Sj3YZgUfkFvVHvl92Zf0BC580F5ZsQ76bIIFFqQF+rZD27EQktqwCy7UctRvvRuL6AycAzNlBcHPMGhgTi1NA1JSZHjVWzqJfgujTxw5TAVkZ74KGyZ0QfbUbw9gbLBqFIrxuTX6YK/RJwLdwsV7OOo7qed6RGaAe5l4zoDl/VZS4YTXW4SATUnxaX+twMprSpH0OqQRuF8WdCOQzaG0b4Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4RfJX/66ebA26liqq4296CcthlenTJE+a5aG3IAb6Gk=; b=lQ8v7qLzOa/EotmXRemChojGbu4zPxlrbIok5wBBNZkmzDCPAo+nBODl5PyPx3VKaa+v7OCQDhb5e6eCOgGNCcN+e3lTIiwKWF5osFonkxuNMoNAp5Ev+PkK8bv++WaSY5C2V803SOa83vk0Mt6IyeGwsGSZLbHl2c21Nqt2RsMes/fHLJsNrP23b6Yi6rUnkphdTGJtCJgydjiOJO+MSd0YXlbmccJ7+xGwYi5yIc7qxmAic06dpnIiWlrLjp5mra01/f0ys4cjs7CtoC77XYHF36L4GbEGh1wCNfOeWAfLt9TnsuSHjg0bkiMyrz6w0U1QvGpQHOYU5O7/K+c7QA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 20.83.241.18) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=fail (48) Received: from MW4PR04CA0271.namprd04.prod.outlook.com (2603:10b6:303:89::6) by BL0PR12MB4724.namprd12.prod.outlook.com (2603:10b6:208:87::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.23; Fri, 6 May 2022 14:09:23 +0000 Received: from CO1NAM11FT041.eop-nam11.prod.protection.outlook.com (2603:10b6:303:89:cafe::f7) by MW4PR04CA0271.outlook.office365.com (2603:10b6:303:89::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24 via Frontend Transport; Fri, 6 May 2022 14:09:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.83.241.18) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 20.83.241.18 as permitted sender) receiver=protection.outlook.com; client-ip=20.83.241.18; helo=mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net; Received: from mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net (20.83.241.18) by CO1NAM11FT041.mail.protection.outlook.com (10.13.174.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.15 via Frontend Transport; Fri, 6 May 2022 14:09:23 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net (Postfix) with ESMTPS id EFE203F030; Fri, 6 May 2022 14:09:22 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UiStbqxtc3jlD83pXGW1gurXkBH3UhZ9Y9fSPL4m0OERo7il/rx4S+bAuLzqHofHPwBXMW3QsiHPBt8kB1q7jpVldpP4GIKbUAxwc+owlyKcAfUkvoJyWjROb11W9HRCE/JqkVQSpi2pSnVKsBtCcsAXxU1dXaIKfSMp1ZfPrxTvR9qlwGRVdc1r48UrZVd3/pydcnmRUQm403XOHLF5ZHi8ohf2+Btqy2CvjItBLZGe/16juVb3tCpp6r6xgfl4lEg4q9c81jrKhLu6ev29sfawHEcwyShW1VelE1O4OwV/d7zSQ0xIaNsITvcfBiWpy/Q7yCkkBYB8L5/1EjBjAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4RfJX/66ebA26liqq4296CcthlenTJE+a5aG3IAb6Gk=; b=KE+sPiWJ5ScxZuOl4UYVB1PO5MLWdqaIDczDMPPXfnbaBn+D5I/pHAFul7eCV0dWnvIQK04lvIlHnPAsxbEGNUmuT4TA2+AuLMrCE/DZCcDnMlCAFpOo6VOz1PrRmAHeqeatQ5gTTcqOv8Jv6G5msJ+5Px/o1nySQsg6PDmgtFK0AwkM/3W+Wf9KgPzrbSVZKByvDZ8wTtIdsx6tUzrTRoq7o7cHjBFROmcG1W95zgt2Tjq6D6RLDGYP2yAQCydTu/O1uiocUcJiA7mJLktp3cvZA5ZFf6slBUGNxxuPD2A78aU7+9Bg0Y5cYN/FrkzJVfiQ5aWLpXbDKO+YD3Az+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=xilinx.com; dmarc=pass action=none header.from=xilinx.com; dkim=pass header.d=xilinx.com; arc=none Received: from SA1PR02MB8573.namprd02.prod.outlook.com (2603:10b6:806:1f9::6) by BN7PR02MB5027.namprd02.prod.outlook.com (2603:10b6:408:2c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.20; Fri, 6 May 2022 14:09:21 +0000 Received: from SA1PR02MB8573.namprd02.prod.outlook.com ([fe80::c49e:581f:82a7:793e]) by SA1PR02MB8573.namprd02.prod.outlook.com ([fe80::c49e:581f:82a7:793e%5]) with mapi id 15.20.5206.025; Fri, 6 May 2022 14:09:21 +0000 From: Matthias Gehre To: "gcc@gcc.gnu.org" Subject: =?iso-8859-1?Q?[RFC]_Adding_division/modulo_on_arbitrary_precision=A0inte?= =?iso-8859-1?Q?gers=A0to=A0libgcc?= Thread-Topic: =?iso-8859-1?Q?[RFC]_Adding_division/modulo_on_arbitrary_precision=A0inte?= =?iso-8859-1?Q?gers=A0to=A0libgcc?= Thread-Index: AQHYYU4a9FkoAhn8nEqcH9kllQqdeA== Date: Fri, 6 May 2022 14:09:21 +0000 Message-ID: Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: X-MS-Office365-Filtering-Correlation-Id: 82e80ba3-7e1e-4080-c2d7-08da2f6a0580 x-ms-traffictypediagnostic: BN7PR02MB5027:EE_|CO1NAM11FT041:EE_|BL0PR12MB4724:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 7uuX04GTjm54kllv7ZFC33c8UAoafwiYv1DMOnnhbi8shSf3CeNVuirOYCN5zhmaf2MMgoxj/liuTm3HRmUvsJSorFRtwlLi4tGSfrs5iq/Rriz00z5AS/TN3SuIhc3nMkVvziDMQilKxXsRMcTRHQ740zAzVHp0cjsedHwxdGu5zn0UgoSSJJZwlNnNx2Et2ip38HJrTeQouaAQ6W7IgwWioaIn5AU5X+A/OCwVyX9Cdkll/JyoHzG41Pu4DvxRLq7Jaw83F4VeNKirU5khSDf4hXqpU7sj1PIur6T7H8hDRE/sAAyWImF1lZ5lQkDRNC4DOFUZRRmNYFmJ756Uv2yEA3CLZcE8UxSMYrMxLw4kwXkfujo9Zp9jIFTOe+0UHVlvqhsWDZ6ubowM0G6t5Qhe/jo28GwkFQ8+7Uay2KvTTnczj/fB1q3DBD5miRkhc6JFJuEpQ95UjdXaFFsjgr1l/u0takmCnB+qAjTsShEjYSl23NY2o6QYv9wcFUMHzYx8354dHLFkrHV+XLJan/3BU4qceSVPXm0uYZTv2JG/PNbUxQ6OTO9LBNIv0OHjUrKQVOpDjnTzfEIKcwnCWDvOXKl2pxZBdao1Cow5PkrwtQRW85WdNlAQ08yMjIUszn2kteGfpEcuoJq7TSigr1d0NQGRnTyz4XZRYuXHzrXR9mIO03dDQ4UXkl52iqemEhupefz+6ZD7Wc8yHvjq2wVd+sXSQL6n9K3xIWXXA7jGNZ/4wpd5zRW/ycj/jlDDGEVesBegJ0mag4sp0s1cyRcXoDA+NK+zy2nSNqCE0Lc= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR02MB8573.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(55016003)(5660300002)(508600001)(966005)(122000001)(71200400001)(8936002)(52536014)(33656002)(186003)(83380400001)(7696005)(38100700002)(38070700005)(2906002)(26005)(86362001)(6506007)(9686003)(6916009)(4326008)(66476007)(66946007)(66556008)(66446008)(91956017)(64756008)(76116006)(316002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR02MB5027 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: CO1NAM11FT041.eop-nam11.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2bf68f64-fcec-495c-a2fd-08da2f6a0451 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zFku9aCpq5DtbRQzSvsTACodwAYZTPoE9SjP1YXvKhkVZU8nsv/Zq5kj7PRt5O2gYcLZQDML5DEB2QjmTY5NxMB8TDXIHODHxtD1LM5rHnfy96uJPimr+XyGcAql1r1Qb1qOb9xdkFBcuebSTB6KkInbzyugb81f5j7muh+XmHVp+z0j9k31OwrepwJoYFC/WS97v9DVOz3L9cMB/1jqI6Iu2ya6ReCdIoATDiFQn8wdOD61RXi4hUFHVy5GRH1CD/UElaCLfKUUm+4aIZclek8R/ZVawM1bFFbOJMcw/x10vvP8IZIMmnHy+of6slfwSjvrpraSLNp7M2YeFmvvfZoYiqMSHyZbWEJlgPgrqC35S7dpR/T47ZuBj/xEY0gdd+uILQhjln2ip7X1AyRT0sXV+FXrJsQPJVes402Mnmoy++sxXvPXwCgwhtN6iDk8vAHVJ3N1/zWjoxKF4F9JnWrnlCVXFXD8xZLZvb41DxhXcrtBvsSzBpKM1Tlxy4nePThjm5KltrYFCNSBz8cAMFxGiTlLGifitiA8oDincHrtgF2juQyoLUnL0MY6F7ENTAIT2me5gm0r1bCzyKTrzgkQeo81nLlZ+Fzt6e1WgyGBF2OgNKczLa4GLiNGJ4Gs98Vk664rQllZ/aP5syG806T36V8dC8M1adydE8c4PKHY2uQe65Qui0XXZWhNzMA6r920j877p13rHPDXXmp247WOV1CICXpWMZc3haR2N7ifpE6VQYoXIIhe+JRvpDhVVZ7k5/QkXL6eEzMZ6wXGi/K2WoraBLMUmSYmTdiumfo= X-Forefront-Antispam-Report: CIP:20.83.241.18; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(4326008)(82310400005)(6916009)(81166007)(966005)(5660300002)(44832011)(316002)(83380400001)(70206006)(86362001)(52536014)(8936002)(40460700003)(36860700001)(47076005)(26005)(336012)(9686003)(33656002)(186003)(2906002)(55016003)(356005)(508600001)(7696005)(6506007)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2022 14:09:23.1397 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82e80ba3-7e1e-4080-c2d7-08da2f6a0580 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[20.83.241.18]; Helo=[mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-CO1NAM11FT041.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4724 X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_ASCII_DIVIDERS, LIKELY_SPAM_BODY, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2022 14:09:28 -0000 Hello!=0A= =0A= We would like to add support for=A0division/modulo on large arbitrary preci= sion=A0integers=A0to=A0libgcc/compiler-rt=0A= as required by C23's _BitInt type [0].=0A= =0A= >From what I know, gcc doesn't yet support C23 _BitInt, but we would still= =0A= like to ensure that libgcc and compiler-rt can stay compatible in the futur= e.=0A= =0A= We created a prototype in compiler-rt [1], which uses the following declara= tions:=0A= =0A= /// Computes the unsigned division of a / b for two large integers=0A= /// composed of n significant words.=0A= /// Writes the quotient to quo and the remainder to rem.=0A= ///=0A= /// \param quo The quotient represented by n words. Must be non-null.=0A= /// \param rem The remainder represented by n words. Must be non-null.=0A= /// \param a The dividend represented by n + 1 words. Must be non-null.=0A= /// \param b The divisor represented by n words. Must be non-null.=0A= =0A= /// \note The word order is in host endianness.=0A= /// \note Might modify a and b.=0A= /// \note The storage of 'a' needs to hold n + 1 elements because some=0A= /// implementations need extra scratch space in the most significant = word.=0A= /// The value of that word is ignored.=0A= void __udivmodei5(uint32_t *quo, uint32_t *rem, uint32_t *a,=0A= uint32_t *b, unsigned n);=0A= =0A= /// Computes the signed division of a / b.=0A= /// See __udivmodei5 for details.=0A= void __divmodei5(uint32_t *quo, uint32_t *rem, uint32_t *a, uint32_t *b,=0A= unsigned n);=0A= =0A= The current prototype requires the compiler backend to first promote large = integers to a multiple of 32 bits.=0A= The extra word of storage in argument `a` is required to allow implementati= ons to use Knuth's=0A= algorithm efficiently.=0A= =0A= We are not fixed on the current function prototypes, and would like=0A= to take your feedback.=0A= E.g. is the naming of the functions in line with the scheme used by libgcc?= =0A= =0A= Best wishes,=0A= Matthias=0A= =0A= CC'ing=A0Martin Liska as recommended by MaskRay on the PR=0A= =0A= [0]=A0https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf=0A= [1]=A0https://reviews.llvm.org/D120327#change-mseSeWmhjTZf=0A= =0A= =A0=0A= Dr. Matthias Gehre=A0=0A= SMTS Software Development Engineer=A0|=A0=A0AMD=0A= Adaptive Computing Tools=A0=0A= ---------------------------------------------------------------------------= -------------------------------------------------------=A0=0A= 2485 Augustine Drive, Santa Clara, CA 95054=A0=0A= Facebook=A0|=A0=A0Twitter=A0|=A0=A0amd.com=