From patchwork Thu Sep 21 16:34:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 1837660 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=Rp8Dksyb; dkim=pass (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=Rp8Dksyb; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Rs1G40FKXz1yhR for ; Fri, 22 Sep 2023 02:34:52 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 010393858005 for ; Thu, 21 Sep 2023 16:34:50 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2077.outbound.protection.outlook.com [40.107.15.77]) by sourceware.org (Postfix) with ESMTPS id 7CABF3858D39 for ; Thu, 21 Sep 2023 16:34:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7CABF3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZP/tXh0m4tsJuxQwDu27IWHWOCZhNJIRa5OwyVYpmO4=; b=Rp8DksybwlsWxjWjTL5G5RPIMPlzkbMCfk/GH3zeUmBKWd94e/ffd6tNdAjgKXGmtRy06Z8RmGWJH7ZL3X9W8cT91v9+429ZrNCq4SlRyurLdngdKFM2mt5zW1+9V3k8TvVeV+PE4Er8hYP19b5gMgFdF20gQYn2gMWWbWRyXlE= Received: from DUZPR01CA0049.eurprd01.prod.exchangelabs.com (2603:10a6:10:469::9) by DU0PR08MB9653.eurprd08.prod.outlook.com (2603:10a6:10:449::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Thu, 21 Sep 2023 16:34:27 +0000 Received: from DBAEUR03FT012.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:469:cafe::f2) by DUZPR01CA0049.outlook.office365.com (2603:10a6:10:469::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.29 via Frontend Transport; Thu, 21 Sep 2023 16:34:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT012.mail.protection.outlook.com (100.127.142.126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20 via Frontend Transport; Thu, 21 Sep 2023 16:34:27 +0000 Received: ("Tessian outbound d084e965c4eb:v175"); Thu, 21 Sep 2023 16:34:27 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 503aa85646811f01 X-CR-MTA-TID: 64aa7808 Received: from 92dae27ae736.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8C65E74A-E3DE-4132-8C20-4D4280897DB9.1; Thu, 21 Sep 2023 16:34:17 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 92dae27ae736.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 21 Sep 2023 16:34:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bvZCLDrPm0RSoJ4xRiIAOxDpHeBD+78zh5GkxRUgAH4GUFrDnGx3c6c958HMRY9APrp2y72s4rhe5gqgYsZADWEsFQygm1trbZPXBhijYoMmReBb/OsS06y4QrjxfcNBjWmW2pP+rc9AfGEsWpT9VTRNGiYP6C4IqOxV+h2xQg5ijemwq4CEpy376jEj6CW/AbdQgPbKKzVHpICKdqnAbXdbOI6eRlttCfyB/rWCVq6MLitD++Bc7xETolR8v881BiigaOZ8S/YIda8F2/s0KXv/lY6cK0V/APA3DO+Mddc0Sx5xMQz6/BR+zIIA526QPLCnd4a2KWNxaaURICjFRA== 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=ZP/tXh0m4tsJuxQwDu27IWHWOCZhNJIRa5OwyVYpmO4=; b=kkY/Jr3h5Ae4422HfvOrNMyrL15W9Epx5b+lfgMcWBcrOiw7g0pxtBKh8zhqQkYQkRXFqs90SymcWRXSJYp7OoTsl17NEFJJcdzpLR2tctvO+7TfNezniuP9jMxwLUUjEnazv8g1x/vJkLQR+YNQsAzTcWEB/OXcGbwR7X+AJkR5Ld3AEQx1sSwIJXwvxUwgywH9dqvs3Qp+2bz2P48RS3L/Xwtv9XpGot/YQWsHu8aTb5/Jub7dp8kpm64s8fbZo5MtVoWKlWSYgf0AHCq63Ja7UPwBxUhYkymoWzO2XLRY/oziGOAMfmJmfQTG5quSO/MNBNg/JzZ7PY+Y6Zih+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZP/tXh0m4tsJuxQwDu27IWHWOCZhNJIRa5OwyVYpmO4=; b=Rp8DksybwlsWxjWjTL5G5RPIMPlzkbMCfk/GH3zeUmBKWd94e/ffd6tNdAjgKXGmtRy06Z8RmGWJH7ZL3X9W8cT91v9+429ZrNCq4SlRyurLdngdKFM2mt5zW1+9V3k8TvVeV+PE4Er8hYP19b5gMgFdF20gQYn2gMWWbWRyXlE= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by AS2PR08MB10349.eurprd08.prod.outlook.com (2603:10a6:20b:57b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Thu, 21 Sep 2023 16:34:15 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::ff3d:6e95:9971:a7e]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::ff3d:6e95:9971:a7e%5]) with mapi id 15.20.6813.017; Thu, 21 Sep 2023 16:34:15 +0000 From: Wilco Dijkstra To: 'GNU C Library' CC: Szabolcs Nagy Subject: [PATCH] AArch64: Remove -0.0 check from vector sin Thread-Topic: [PATCH] AArch64: Remove -0.0 check from vector sin Thread-Index: AQHZ7KlBtlfdSpZ0ZUuz317bJdCDHQ== Date: Thu, 21 Sep 2023 16:34:14 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|AS2PR08MB10349:EE_|DBAEUR03FT012:EE_|DU0PR08MB9653:EE_ X-MS-Office365-Filtering-Correlation-Id: cc9124a1-279e-4d7d-1bbf-08dbbac09f9a x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: /FF4TwxMc1iskLGlOMVsnBqfD1C+DNnDuPH4g7h8vMjbrZcgFTK41AlxxwqFqAi/n5K/SXCYke7ZHXzoP5Sq0rASgDsZvu86ndBM6s/fMNc/vUld2EnugjTRlyHO6Zw1gLSOi356n1eCG7HZNXRkHOf9i6IJ7+YnJ1ktBPl5JYRDUZhosz5pjMLLzzHdjoNFuT27sd0YZOGVmFF2F+FCJ+NTQFPYtefWooPbHgdNZdVkplwPjecjLZfTDzTtOF793g/2GkRugMDkBq+IyccKieGhTm/gnEUV8GOhOeFP4+I2/jqHFUfAYHoac17yxPPV3Cgk46GLa9oyJJ01B5yrl7YbL2zVvM4vdFONUCrbwgBD+x2cOe+SEEfMBFPvJqk3+tfbRNg3TBcN/BsJ4aglSfAVzkkD38IMXmr5RqBeu4vCEdDxEHrAWeJ17BuIMQJNVPfLn3o9g5Vm+lPBH+pyehUZwP7SB0mHkQnmDWTKC3cPSdDGvyHFN9uuFoha3rzi7/8IMAtJtzYtzlX4UDfD+syGfVk0+64QCAqX6tViKsRhj8+oyMKLMwblAbFZunO0HsuC9tp9JXQTdVecaAMnjqezemvFneRN8tB+qNBAABJ5lUkAS2/CL6WYUtBujG0U X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(396003)(376002)(39860400002)(136003)(186009)(1800799009)(451199024)(26005)(8936002)(52536014)(122000001)(8676002)(4326008)(2906002)(33656002)(83380400001)(55016003)(5660300002)(86362001)(6506007)(7696005)(478600001)(71200400001)(64756008)(6916009)(9686003)(76116006)(66446008)(38070700005)(66556008)(66476007)(91956017)(66946007)(41300700001)(316002)(38100700002); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10349 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT012.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 31224ec3-c2d6-4c3d-c252-08dbbac097de X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KROQADpvq9IBCLc5g7nG23QKbdBMlEPetvTBPHOrsEw+XHdOA7PiCH8byF46rtWInMrTV8fKY0evLMjqyr59Gvaeb5KTvesC8TlDV99ZDSxG/jbQgAtkgHnKZFBc33e4ELhvUYXe1WDqh967UPtxYUw6/VhOGO5NPYWVFsNNRLBZEqcZ5mbrYgBdmB0DXXbo3ZBwOVatI7KUuBYRsfkA/lz2Vs+vUi0nTxZyOQJf1VUYzNkT6NCruyP5868BdYVjouslBWK8WybAUNth+OZB4I13fnAofAPIGUFrEeKmFjI5phuQ8JGClpWbDPX+OstJGYydH5bfhVTnZMAI6U6H2/dODsV30K1zLiyYXE48Onw20+sLrhzHAeC/istoVmYxSe1iJAHuBfn1418Eyt1OhvrpdPLFfLfAyzAYcCCafMhJRG+LEJi3eN6hc291A58IqsuZq91CPSv5VxKmJtiwzIALs3H79SX5tvJNAkhOb4RT6o4saLoVZyf2fvYLIEsYX+mqPvQlHqpLzEUHJ+ZpFbrLqdUUFWBAq7n+FaTrzasnceOeE4naftPGWhu8MZWL64MvWM8ZEyYuhYvVbzLsnEMG8K4/ROYdyUvFteBA8KJZgt+nSwyc7A5kcC5JC/0TKSnGB7/yFVmJQaxqFC0fWvb/Hk91PfXIfSc5vmSxpqoKgdmVkjrxrkexNbNqs/B7SgtAZrRFxPxQUyKFyjwVSbVgJyaztMX8wlnR4Vf1zYDL0rzr1ztPr75yXhsdM+x3 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(4636009)(136003)(39860400002)(396003)(376002)(346002)(1800799009)(186009)(451199024)(82310400011)(36840700001)(46966006)(40470700004)(40480700001)(82740400003)(81166007)(356005)(33656002)(86362001)(55016003)(40460700003)(2906002)(478600001)(6506007)(7696005)(70206006)(8936002)(70586007)(52536014)(8676002)(4326008)(9686003)(36860700001)(83380400001)(336012)(5660300002)(6916009)(316002)(41300700001)(47076005)(26005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2023 16:34:27.7065 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc9124a1-279e-4d7d-1bbf-08dbbac09f9a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT012.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9653 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Remove the unnecessary extra checks for sin (-0.0) from vector sin/sinf, improving performance. Passes regress, OK for commit? Reviewed-by: Szabolcs Nagy diff --git a/sysdeps/aarch64/fpu/sin_advsimd.c b/sysdeps/aarch64/fpu/sin_advsimd.c index ddc41425990f3d3d5fa422f09271e62d2958a094..0389b334cc79fadad495a35a1acb3122860cdbcd 100644 --- a/sysdeps/aarch64/fpu/sin_advsimd.c +++ b/sysdeps/aarch64/fpu/sin_advsimd.c @@ -56,7 +56,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sin) (float64x2_t x) { const struct data *d = ptr_barrier (&data); float64x2_t n, r, r2, r3, r4, y, t1, t2, t3; - uint64x2_t odd, cmp, eqz; + uint64x2_t odd, cmp; #if WANT_SIMD_EXCEPT /* Detect |x| <= TinyBound or |x| >= RangeVal. If fenv exceptions are to be @@ -70,7 +70,6 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sin) (float64x2_t x) cmp = vcageq_f64 (d->range_val, x); cmp = vceqzq_u64 (cmp); /* cmp = ~cmp. */ #endif - eqz = vceqzq_f64 (x); /* n = rint(|x|/pi). */ n = vfmaq_f64 (d->shift, d->inv_pi, r); @@ -96,10 +95,6 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sin) (float64x2_t x) y = vfmaq_f64 (t3, y, r4); y = vfmaq_f64 (r, y, r3); - /* Sign of 0 is discarded by polynomial, so copy it back here. */ - if (__glibc_unlikely (v_any_u64 (eqz))) - y = vbslq_f64 (eqz, x, y); - if (__glibc_unlikely (v_any_u64 (cmp))) return special_case (x, y, odd, cmp); return vreinterpretq_f64_u64 (veorq_u64 (vreinterpretq_u64_f64 (y), odd)); diff --git a/sysdeps/aarch64/fpu/sinf_advsimd.c b/sysdeps/aarch64/fpu/sinf_advsimd.c index b67d37f2fde745f717d6eb85a9ef7f20cf5cb271..0e78cf55f03cc2836de49ed8aba50befacdc10cb 100644 --- a/sysdeps/aarch64/fpu/sinf_advsimd.c +++ b/sysdeps/aarch64/fpu/sinf_advsimd.c @@ -56,7 +56,7 @@ float32x4_t VPCS_ATTR V_NAME_F1 (sin) (float32x4_t x) { const struct data *d = ptr_barrier (&data); float32x4_t n, r, r2, y; - uint32x4_t odd, cmp, eqz; + uint32x4_t odd, cmp; #if WANT_SIMD_EXCEPT uint32x4_t ir = vreinterpretq_u32_f32 (vabsq_f32 (x)); @@ -70,7 +70,6 @@ float32x4_t VPCS_ATTR V_NAME_F1 (sin) (float32x4_t x) cmp = vcageq_f32 (d->range_val, x); cmp = vceqzq_u32 (cmp); /* cmp = ~cmp. */ #endif - eqz = vceqzq_f32 (x); /* n = rint(|x|/pi) */ n = vfmaq_f32 (d->shift, d->inv_pi, r); @@ -89,10 +88,6 @@ float32x4_t VPCS_ATTR V_NAME_F1 (sin) (float32x4_t x) y = vfmaq_f32 (C (0), y, r2); y = vfmaq_f32 (r, vmulq_f32 (y, r2), r); - /* Sign of 0 is discarded by polynomial, so copy it back here. */ - if (__glibc_unlikely (v_any_u32 (eqz))) - y = vbslq_f32 (eqz, x, y); - if (__glibc_unlikely (v_any_u32 (cmp))) return special_case (x, y, odd, cmp); return vreinterpretq_f32_u32 (veorq_u32 (vreinterpretq_u32_f32 (y), odd));