From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com [IPv6:2001:4860:4864:20::30]) by sourceware.org (Postfix) with ESMTPS id 3EF653858D1E for ; Mon, 9 Jan 2023 19:34:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3EF653858D1E 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-oa1-x30.google.com with SMTP id 586e51a60fabf-15027746720so9751802fac.13 for ; Mon, 09 Jan 2023 11:34:25 -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 :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=6a+x/c5HUsPSnUsFGU9tDLF2S3O6OAO9A2bo7mQrjKk=; b=rGrhcssD52DwAhfacNk577aOviEP0d8OR6Q9xHu6bURrCy96R8H1gsuJqnLylOSHJf 4VUjeAIdIbNPwtAPDCuGMABPcgCfmyivgkggaVlkJWrzOIN81xd+zs/64MLacEMV0XGe ATdbEH6jmT4ZJpezFbQE/+qpBLhz3Oybp3QIA0bP4vck3h9i3bnCbttoAQsBR16rety9 0Pbvn9l+QHW0hwZGy80lSa/JtL5pueCd9VvhewYHAmE5LDLqfYbQ5pq3no3xObWi7OYp IjFxi2hAGSidkYPlToqFyU3KViT4If6o7BkHlx9dPy+6VWD9QkewusCIWAQaFgcABrXX juXQ== 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 :cc: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=6a+x/c5HUsPSnUsFGU9tDLF2S3O6OAO9A2bo7mQrjKk=; b=AUaQbebAa2dCK7K7w863CcRJfd3+jMqbj5WC94fanVlxH6Jo8PSiHbSlAgNnE774SD h4ZrE0CkjgnI0rHPzFnR+/TOR6uZYiB2uWa0mf5sVq/xwXltLkMrITntUqz8VXVFOb3d Vi954NbyRmN4W95xxBGgDkvGMKIvYhOknbiwHrcrJUDMZ5mQu6r6jhk7kX3Vgp7RbwNY mT1lZGmyBOnw17hXmnkaMtwaMYq4OeIuLYvuGM0T72+YrAjF14pdXoy9LRtkuNnubFP+ /QJFhBck0jiUhclNbMEMCZ6XskOj30cEO/aMKojsSUYQqD8hz8zeTDTmgUn7QJRkvYRs Ssug== X-Gm-Message-State: AFqh2kpfwAqyWgbvK9anL0swFaVnMoZvZtBxnQUbTzRa6pR/u2apb6s+ vgkd+Q/zRlA1Pq+BCSEdQqLcKeMmXnTlOOYcZ1g= X-Google-Smtp-Source: AMrXdXvXea3bpAEICa0fB4Zj5Xod33mpg7izJIkEBNQK463NBOnFBbOE+Hkg6QdYGvMZ8558X8AQrg== X-Received: by 2002:a05:6871:4212:b0:14c:2aca:ac11 with SMTP id li18-20020a056871421200b0014c2acaac11mr31549134oab.29.1673292862081; Mon, 09 Jan 2023 11:34:22 -0800 (PST) Received: from ?IPV6:2804:1b3:a7c0:a93a:9d68:9321:503b:c278? ([2804:1b3:a7c0:a93a:9d68:9321:503b:c278]) by smtp.gmail.com with ESMTPSA id x19-20020a056870331300b00143cfb377b4sm4663912oae.6.2023.01.09.11.34.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Jan 2023 11:34:21 -0800 (PST) Message-ID: <46fe5c43-9070-efe2-e635-b14416d218ae@linaro.org> Date: Mon, 9 Jan 2023 16:34:18 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH v5 04/17] Add string vectorized find and detection functions Content-Language: en-US To: Noah Goldstein Cc: libc-alpha@sourceware.org, Richard Henderson References: <20220919195920.956393-1-adhemerval.zanella@linaro.org> <20220919195920.956393-5-adhemerval.zanella@linaro.org> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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 05/01/23 20:04, Noah Goldstein wrote: > On Mon, Sep 19, 2022 at 1:02 PM Adhemerval Zanella via Libc-alpha >> +/* With similar caveats, identify zero bytes in X1 and bytes that are >> + not equal between in X1 and X2. */ >> +static inline op_t >> +find_zero_ne_low (op_t x1, op_t x2) >> +{ >> + op_t m = repeat_bytes (0x7f); >> + op_t eq = x1 ^ x2; >> + op_t nz1 = (x1 + m) | x1; /* msb set if byte not zero. */ >> + op_t ne2 = (eq + m) | eq; /* msb set if byte not equal. */ >> + return (ne2 | ~nz1) & ~m; /* msb set if x1 zero or x2 not equal. */ >> +} > Cant this just be `(~find_zero_eq_low(x1, x2)) + 1` (seems to get > better codegen)? I think we can, I will change it in next revision.