From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2084.outbound.protection.outlook.com [40.107.6.84]) by sourceware.org (Postfix) with ESMTPS id 3AF65385840E for ; Mon, 20 Feb 2023 16:13:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3AF65385840E 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=ja+2AuhbBNj9gGRagWK74r43XicBfQHdqL9AIST9frM=; b=xhasXhUp7Y8syu8RohigtDeBtn2md4PMbURhWcz+9B8SAASVc77R9w9Q4o0teSsDFZUY9qmojExed6exyGFYFO23YInDM4T7nY8NhNJcPN0Haf6hIqqdxVgF/tr6J8pOq1b3cA+V1zjq7Dta3Oa0O45rDelXzNjxD0IDdSmculo= Received: from DB6PR07CA0191.eurprd07.prod.outlook.com (2603:10a6:6:42::21) by AM9PR08MB6195.eurprd08.prod.outlook.com (2603:10a6:20b:284::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.20; Mon, 20 Feb 2023 16:13:10 +0000 Received: from DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:42:cafe::da) by DB6PR07CA0191.outlook.office365.com (2603:10a6:6:42::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.15 via Frontend Transport; Mon, 20 Feb 2023 16:13:10 +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 DBAEUR03FT042.mail.protection.outlook.com (100.127.142.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.20 via Frontend Transport; Mon, 20 Feb 2023 16:13:10 +0000 Received: ("Tessian outbound 3ad958cd7492:v132"); Mon, 20 Feb 2023 16:13:10 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7425667e6913510c X-CR-MTA-TID: 64aa7808 Received: from b0f2928eebea.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FD802D31-4E50-4F3B-9D38-17BA0EF42560.1; Mon, 20 Feb 2023 16:13:04 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b0f2928eebea.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 20 Feb 2023 16:13:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gW02v55/eq+/iUvqwgFXTkjOBOnIdye1LunuQ75fs7Bimivv4qOwTrXZ4xKR1cj3kp1LUExc2hmg1VMdR/Vr1RkaP/Y9FF7jzs3B9PXunwnbFSWtxrJ2ryy7x0xXPnnLjPnhW/eMp+LNEeg0fpwS0KNsN1Su3XQTjeASVRd+bsPkilZ6GOhlRNGezZ4yQ2mAyhkWxBDuY/9Y0p1P8ZExP3Bl4WXymKam9UBLvuVLhryBeIxK/6iqhJf908SiNTvFFc1demUQY/V07bOrtjpvlIQgR3potFbsEWveb+g1Z1xWob6mWf+lZKYkO/V8NfhVb4bMKpdDuOXGfWRlQ8F8fw== 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=ja+2AuhbBNj9gGRagWK74r43XicBfQHdqL9AIST9frM=; b=UQGNN02Yv8SYaQa4a8pe/NAw+4ELS0BiTWhFoNzg4YTLvPZJpt1YxsTBVGX0ouw7mjVWoNi0WXb7z1403UPjeULanTisSXXEy1nWYxqpjDSln4a623af+I08Lz2VVX/VjltR3IX3/C3uzh3gWVx3Y9P0xAvWOaduO1zvRSTzV1+Bq6JxN+afQMRkZe8NZX59lpKfiwcBnUPObEFtkaBghR6ZcqjvVW5Qr7Cdb7IY7etH2ZryxzhUHxbfeJJrCpcnDudbR7PgG9YQSkD9wlDHN4YLpfzVtailL+YlfT7H2mylSjcbHbjK6lReRjD4J7hhOd8EJ9xOOtHo70+lbrxmmw== 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=ja+2AuhbBNj9gGRagWK74r43XicBfQHdqL9AIST9frM=; b=xhasXhUp7Y8syu8RohigtDeBtn2md4PMbURhWcz+9B8SAASVc77R9w9Q4o0teSsDFZUY9qmojExed6exyGFYFO23YInDM4T7nY8NhNJcPN0Haf6hIqqdxVgF/tr6J8pOq1b3cA+V1zjq7Dta3Oa0O45rDelXzNjxD0IDdSmculo= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) by GV1PR08MB7377.eurprd08.prod.outlook.com (2603:10a6:150:21::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.20; Mon, 20 Feb 2023 16:13:01 +0000 Received: from DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::29ca:64bc:9a10:b072]) by DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::29ca:64bc:9a10:b072%7]) with mapi id 15.20.6111.020; Mon, 20 Feb 2023 16:13:01 +0000 Date: Mon, 20 Feb 2023 16:12:46 +0000 From: Szabolcs Nagy To: Adhemerval Zanella Netto Cc: libc-alpha@sourceware.org, Richard Henderson , Jeff Law , Xi Ruoyao , Noah Goldstein Subject: Re: [PATCH v12 18/31] arm: Add string-fza.h Message-ID: References: <20230202181149.2181553-1-adhemerval.zanella@linaro.org> <20230202181149.2181553-19-adhemerval.zanella@linaro.org> <8f8a134a-3b7d-86bf-c460-5af3daf7f9f4@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8f8a134a-3b7d-86bf-c460-5af3daf7f9f4@linaro.org> X-ClientProxiedBy: LO4P123CA0567.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:33b::20) To DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7179:EE_|GV1PR08MB7377:EE_|DBAEUR03FT042:EE_|AM9PR08MB6195:EE_ X-MS-Office365-Filtering-Correlation-Id: 8bfaabb1-9cb6-41df-e5d9-08db135d5c86 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: mUJjc6EHqwlGCl/L9vf6JvvVoBEbTOlZBkWHXgROvvruwAm/MHI/GsP7KLrFRMxkqHQEBCfGWYrMUj+yjjU18YAEGOmgEL029B2DQ94yZ/rmxKAoXqq4F9ZvNk1fH+6eUaHoLYzXgNtIP5OHl3x7AcuSYC/lOpxWw4xiBiPrr8sQNafCYF6PHuRf9jWtOn4GSOCDsqApPfRY8Abdv/HOOte1oyWJhxO7Vy533byM3J26AKU/23rSBrAbGnnUGGWECElNerO4zVuEgUfWtyFbHlTvXawoTc8UVo69KewX09Wkg9g0QkHFf7KL1OUAqnUhikgX5+6wLMChIN4n1wWdatRdurReFiMGGBAE931E1GF9nZesxbZRcVQmWDcwmj3PwdvcODoGOIIV6Fq2hNErMUFdlyIwfh4x0NIJnCEKHkqeX88z8csyBLz39/Jot/+eNX2eflDrKIbx8WAorZdvIj71AydzHJMrbc+HvGPdTNSoFXqRL/44oE29sqjp0p7a4hgy6FXVejqd9Iw9Z9v14u0Ez3Frob6Mx38u/urCOzDcQ9Xg8VvlTwQ/wXWWxGOqtq/5/dRCgjOYd1jSI0LXVYbgnXO1jJiAZiqlt5Uw5YKit50jH771FfBMh6UBWSO3AYO45VcN/N4+ep0kFM9jCA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7179.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(396003)(346002)(366004)(136003)(376002)(451199018)(44832011)(2906002)(38100700002)(6506007)(6486002)(6512007)(53546011)(186003)(26005)(478600001)(36756003)(86362001)(4326008)(66946007)(66476007)(66556008)(6666004)(54906003)(41300700001)(2616005)(8936002)(316002)(6916009)(8676002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7377 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: DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b9262893-218b-4be3-3b37-08db135d56a5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 62OGq/b4+FCX1HDtLlu2UocBWF15HFmTDWjxhdB9ELSZGsK230PnvEN3jHlyJjQM5h+YJvS10JYCMMKMyNK5AxOZRYIC9C4gOF3fX+cVr8VSS6VcXFXjuIbd+8NH3nF7T6dJMsAk0tgpriJQSu6ApvFXSr7uuy9ppZX+9Ya3I5FSbp3HBDajZ4NzAnm5x6lKmI9bI5jXYcp3XLoWUs8A6gv0tzevcaaGv6T14R4M+abqYH4lWEHh84kS4LMe4f9LGeZ3l4Wvay2yKgR0LJZWimMMSUJhu/p8ZWR4rx0gZY23qJYxaXpceXU1XwpDWFWmO3+02n5Gdj3rP5ugQcGzfZf8hZrrlhHiX3+0GPnc8kO8+WOZLQWwFve/s7u+xAEi+QPd/hdZs7h7muW3EIZ7vFEIs04jjkeRLpNcxmBERFOB6NW8rBN2l71R8lDSwhZQME4QVlxkyHj/dRJR3u0myj379pa3aKSb2TzvAfjoLKhrJ9TN4DirYPaTdq2vzq4w909eAUpsSfkz+7HoDIR1s05VI1F05nYeM4hx/mHV9dCJ5ojvVI2LvOmglQlmhiJX/dAN6gxbaOmhwa1x+GqWdsFZ9a8CJ6MFQsAEx2omp5H+1HjnbaGUeTsuh3J9OPsHuqCCD8QG4XzfmjoNxUZroFgJeH5ucj8Sh17PHeiD2qCg1EbI4T2MtB8XzPPk2ADkYaNQY0bMDicYfRHJSbSa/A== 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:(13230025)(4636009)(396003)(376002)(346002)(136003)(39860400002)(451199018)(36840700001)(40470700004)(46966006)(82740400003)(81166007)(82310400005)(36756003)(356005)(36860700001)(40460700003)(40480700001)(6512007)(6666004)(26005)(186003)(70586007)(6486002)(6506007)(107886003)(4326008)(336012)(478600001)(2616005)(54906003)(53546011)(316002)(70206006)(2906002)(8676002)(5660300002)(8936002)(6862004)(44832011)(86362001)(41300700001)(47076005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2023 16:13:10.8131 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8bfaabb1-9cb6-41df-e5d9-08db135d5c86 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: DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6195 X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY 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: The 02/20/2023 11:01, Adhemerval Zanella Netto wrote: > > > On 20/02/23 10:45, Szabolcs Nagy wrote: > > The 02/20/2023 13:24, Szabolcs Nagy via Libc-alpha wrote: > >> The 02/02/2023 15:11, Adhemerval Zanella via Libc-alpha wrote: > >>> +static __always_inline find_t > >>> +find_zero_all (op_t x) > >>> +{ > >>> + /* Use unsigned saturated subtraction from 1 in each byte. > >>> + That leaves 1 for every byte that was zero. */ > >>> + op_t ones = repeat_bytes (0x01); > >>> + return __builtin_arm_uqsub8 (ones, x); > >>> +} > >> > >> __builtin_arm_uqsub8 is only available >=gcc-10 > >> > >> so now the build fails with gcc-9 > >> > >> ../sysdeps/arm/armv6t2/string-fza.h:36:10: error: implicit declaration of function β€˜__builtin_arm_uqsub8’; did you mean β€˜__builtin_arm_stc’? [-Werror=implicit-function-declaration] > >> 36 | return __builtin_arm_uqsub8 (ones, x); > >> > >> so this code should be conditional on gcc version. > >> > > > > i think > > > > asm ("uqsub8 %0, %0, %1" : "+r" (ones) : "r" (x)); > > > > should be a good fallback (untested). > > This is what we have on v7: > > static __always_inline op_t > find_zero_all (op_t x) > { > /* Use unsigned saturated subtraction from 1 in each byte. > That leaves 1 for every byte that was zero. */ > op_t ret, ones = repeat_bytes (0x01); > asm ("uqsub8 %0,%1,%2" : "=r"(ret) : "r"(ones), "r"(x)); > return ret; > } > > Maybe extend with: > > static __always_inline op_t > find_zero_all (op_t x) > { > op_t ones = repeat_bytes (0x01); > #if __GNUC_PREREQ (10, 0) > return __builtin_arm_uqsub8 (ones, x); > #else > op_t ret; > asm ("uqsub8 %0,%1,%2" : "=r"(ret) : "r"(ones), "r"(x)); > return ret; > #endif > } yes this looks good to me.