From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com [IPv6:2607:f8b0:4864:20::235]) by sourceware.org (Postfix) with ESMTPS id DB49D3858C62 for ; Mon, 20 Feb 2023 14:01:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DB49D3858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oi1-x235.google.com with SMTP id e21so1394670oie.1 for ; Mon, 20 Feb 2023 06:01:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=PBsF+TcaXsP+cOHKdPp2NfCO2yuD9RQTxq61UNB5C04=; b=MMW47dIW929VyeBqL93/EOP4kzp1d1xTqSE0k53oAm0GkNl5NdBAqNiOg+KRla8bUu oU2JV/mYVWPaIP7vjltohnd2ui6hk1SC8LgAunoh92HlKzGFIG2Gsm3v1YTLbPbrNzG+ ezYMBLNuKZ6LZ29Ryrr/chsLDa1VRp3AqaOv7gntS89NgGfeIa4hylJAldgsqvRwj1WI aNxBKH4TRRDD+vxBQCTHf5ANh7Ug5DyFuNtcIzb2k03gC7DkK0g5BFu15zk2HbT+Qw08 l2+Ga7nT+xrn2YW1wxdMfPR+HuX9j9sU87z4pQsphB0hmPSwCvpvDBiNEGLb1wHJ+sOs RKtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PBsF+TcaXsP+cOHKdPp2NfCO2yuD9RQTxq61UNB5C04=; b=N777uS3HVRJ/xEfL+lWV0c0SsvsMIzraY0RYJvbSDseX6YY1zEtrWiihdyog49iFVe 2FNld4EPw9+3UxBnON0CTkErR4hGf07TY4g25m5+65RWs8MTbkvLHPqyyH14CUA10Uph iQjbCKX9FLfCElfV6pY0bce7/6jrIh0n8q8Zzt2HNREgoepZgOGw8cGB9pi4HPELVzTe Y4o78LYAbDs76cYPlZ8LwcKEfR8wiOqjhsBO1wgJW30SFZLb7hSHot9hiWVUCIFN0dzZ fCeHVvashC2qCEPwJ+yjRSXf9ZdO+nNo+PDPcqBvTvOfMRaO2DKRJDMvidlb2uQd5Ci5 eMHA== X-Gm-Message-State: AO0yUKU9WycoZ1Et1Y/CiLUEu13wZ4LIfg9U1URxMNPZSBX+fNkLzL1F kGcX7+Om6H87Eco6H+E+hLRg5qlxBw55UuimRow= X-Google-Smtp-Source: AK7set/8iO5BuG73NHsod+8rTL2CqYuMPyxEq4OBBlHC039Vh6SZqi0fzy3elLVMxCIjzNl4ZUQrkA== X-Received: by 2002:a54:4507:0:b0:37f:9a4e:62cb with SMTP id l7-20020a544507000000b0037f9a4e62cbmr512200oil.47.1676901714052; Mon, 20 Feb 2023 06:01:54 -0800 (PST) Received: from ?IPV6:2804:1b3:a7c3:3a5:a0:9596:f951:7d30? ([2804:1b3:a7c3:3a5:a0:9596:f951:7d30]) by smtp.gmail.com with ESMTPSA id m1-20020a05680806c100b0037d7c3cfac7sm4967932oih.15.2023.02.20.06.01.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 Feb 2023 06:01:53 -0800 (PST) Message-ID: <8f8a134a-3b7d-86bf-c460-5af3daf7f9f4@linaro.org> Date: Mon, 20 Feb 2023 11:01:50 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Subject: Re: [PATCH v12 18/31] arm: Add string-fza.h Content-Language: en-US To: Szabolcs Nagy , libc-alpha@sourceware.org, Richard Henderson , Jeff Law , Xi Ruoyao , Noah Goldstein References: <20230202181149.2181553-1-adhemerval.zanella@linaro.org> <20230202181149.2181553-19-adhemerval.zanella@linaro.org> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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 }