From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9629810F9307 for ; Tue, 31 Mar 2026 22:42:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DkGFZJlJJYAqiA6CSpY8yMdz52BbflMHWlhu2mJGtwo=; b=tTbQW2d9hyzPdQ/jOcpEiLw0P3 0NU+LdBYqUb1SmQwBEL7r4PPcx43smLoS3mkg6gtSsOuu7l158o5NWZdBhS1uVCgyihovNBm6qYFF XQO78JS8kXNcYkmk2FKzn7RlnzJMNbVkTby6g2VLB3NL8m+wXsMYZLoG9NJBRLMrr6P8aunaK5vDZ LoRtI43hisdHRNyM0LeVgb2FWGrCLe8paQbLfXA9TInsnN5xcMlwWXi5KV+RB7XwB52eUT4OUswBW 5LFvYj8bp/FKBb+vvOkDSjv2imijY4JRGst8Vxc3e1xwKo56Xpgqv6LoIaC6YUgIXIk669oLXwdqJ 7TGHfzMg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w7hmd-0000000DeFk-1mnn; Tue, 31 Mar 2026 22:42:03 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w7hmb-0000000DeF0-2QNv for linux-arm-kernel@lists.infradead.org; Tue, 31 Mar 2026 22:42:02 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id E283340124; Tue, 31 Mar 2026 22:41:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90A94C19423; Tue, 31 Mar 2026 22:41:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1774996918; bh=BIQjuY/Cy0cBjXyayPBeo180JhWYpL7ZP6b21kAEW/s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UYgMVVZ+W0ar1qIEYUb2isYfPkFwRgVwZcJlDV1Z5D0ql77FSMlVyf5VMR6Qk1Why WsNwHbL4/dGfr00H/V9O4F93uCxt3g2FGoWjwHSNImsFMWIIzbVopJvsopDfgz727j spn0jldgS8EW5+p1EZxX0fXy5PB5Ecwb96zR3g/afgVtWbgYagi2DKuT2EqimNgfQX +RK+YtGbdCLM9UD0PYouQaReXFVksx2JR2DPfEWx6DA2KNfSD8YDqm9mru76JY9dbH zHOVPrd6s96yiYJciyvCAOaMLlQqaxgBvTjpZt5bl+cNfwsUV+bdVQXWwoQgkL6nUw D2JzqvSbQBb6g== Date: Tue, 31 Mar 2026 15:41:56 -0700 From: Eric Biggers To: Ard Biesheuvel Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Demian Shulhan Subject: Re: [PATCH 5/5] lib/crc: arm: Enable arm64's NEON intrinsics implementation of crc64 Message-ID: <20260331224156.GB45047@quark> References: <20260330144630.33026-7-ardb@kernel.org> <20260330144630.33026-12-ardb@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260330144630.33026-12-ardb@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260331_154201_640499_5CD47849 X-CRM114-Status: UNSURE ( 9.56 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Mar 30, 2026 at 04:46:36PM +0200, Ard Biesheuvel wrote: > Enable big-endian support only on GCC - the code generated by Clang is > horribly broken. [...] > +#if defined(CONFIG_ARM) && defined(CONFIG_CC_IS_CLANG) > +static inline uint64x2_t pmull64(uint64x2_t a, uint64x2_t b) > +{ > + uint64_t l = vgetq_lane_u64(a, 0); > + uint64_t m = vgetq_lane_u64(b, 0); > + uint64x2_t result; > + > + asm("vmull.p64 %q0, %1, %2" : "=w"(result) : "w"(l), "w"(m)); > + > + return result; > +} Perhaps omit big endian support, and use the inline asm implementation of these functions with both gcc and clang? The more unique combinations need to be tested to cover all the code, the higher the chance of one being missed in testing. Also, leaving shared code in lib/crc/arm64/ will be confusing. How about lib/crc/arm-common/, and crc64_nvme_arm64_c => crc64_nvme_neon()? Or even just put crc64-neon.c directly in lib/crc/. - Eric