From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by sourceware.org (Postfix) with ESMTPS id A3EFA3858C83 for ; Wed, 11 Jan 2023 19:56:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A3EFA3858C83 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x52b.google.com with SMTP id x10so21044704edd.10 for ; Wed, 11 Jan 2023 11:56:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zsNt6wWd0BYxihaQ88r0uHwV06rt2yS/oTZsKW/wk+U=; b=GN0/qPLoPa79poeqb2CAXDWPi9/dRDC8TDsCaAP4v7n8kim6T2/tqUP2fVW5lmgN/L MEzWN2pR0AKIFXklElUmRDFsK8XlImgiVW5+3NsVtGVpHm9euhEo/swl8twO8kYgJW2s l9mB9DjRKVz2Et3tYtoheYHu6vPM8W8IY7UlmXHqWR5iOPollifgBqEg1TYJApriy31X Iazhp8ABb/CceUtfVOksZ+K8KGv2PoTD8bjo6XVhX5JqBDMpllBwIVr5saATVsWLhi5r jKX6aXalMqnjwUHceAbssMnfw6NmiiBt2LAoxAAUiqaeLL+xrOhBJ5x5ytBR29ySPrUK VZSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zsNt6wWd0BYxihaQ88r0uHwV06rt2yS/oTZsKW/wk+U=; b=CGuTa1GZnn/eLtaB5Qm+W21miiw1YkUZisL1zrDijm75DWvSQGrHkr9Jki5OfEeLda N4EpgbWrqXMSgQ8BChwS4v8kJ92TiVDy78d8LxHR9+2qnOze19jMqVomWbYnOul6vdqX ja1OJDm9l+NxbbRSnt5llUd2j3Iu85fzM/YW4Zny6rmMJmTJr6Y29wXT6F9Xcq43OJuO +X6Fo4IQwRSIaUUWCsOrBUzZ1xSuVc3xcuUFvgt3VhbeeGzJ9YBcO9zNKXYlyWJxVGtl 1zU3lDsKJfl5JFOlCf1iz7Kg0pdACkqWf5rrNtSUp+Oz1mnnH2fipgQgyYx5KPXKo1cM J6ww== X-Gm-Message-State: AFqh2kpFO4utHJvbKCXK5treAGqJjR4uJBwOSNVUW1M6aaQc8nAN02tL y9mWo1EvUze9wuepi1MRKA7iGybzp3Z9et/oMGkRs3v2 X-Google-Smtp-Source: AMrXdXtLBQbPjNaB9HrrF4AnrkMnD9DQIbNIa4SMkJOyiMRPM0hDOQuErl+OpEKzw9LZuZAnTR0sylYYA+sSDa267Mg= X-Received: by 2002:a05:6402:2408:b0:47b:2514:f2e7 with SMTP id t8-20020a056402240800b0047b2514f2e7mr9116460eda.142.1673466998353; Wed, 11 Jan 2023 11:56:38 -0800 (PST) MIME-Version: 1.0 References: <20230110210106.1457686-1-adhemerval.zanella@linaro.org> <20230110210106.1457686-5-adhemerval.zanella@linaro.org> <7b60bc6b-9e33-4bb4-0a64-3b28ca1302fe@linaro.org> In-Reply-To: <7b60bc6b-9e33-4bb4-0a64-3b28ca1302fe@linaro.org> From: Noah Goldstein Date: Wed, 11 Jan 2023 11:56:26 -0800 Message-ID: Subject: Re: [PATCH v6 04/17] Add string vectorized find and detection functions To: Adhemerval Zanella Netto Cc: Richard Henderson , libc-alpha@sourceware.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,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 Wed, Jan 11, 2023 at 5:42 AM Adhemerval Zanella Netto wrote: > > > > On 10/01/23 23:25, Richard Henderson wrote: > > On 1/10/23 13:00, Adhemerval Zanella wrote: > >> --- a/sysdeps/generic/string-maskoff.h > >> +++ b/sysdeps/generic/string-maskoff.h > >> @@ -23,7 +23,6 @@ > >> #include > >> #include > >> #include > >> -#include > >> /* Provide a mask based on the pointer alignment that sets up non-zero > >> bytes before the beginning of the word. It is used to mask off > >> @@ -44,12 +43,12 @@ create_mask (uintptr_t i) > >> /* Return the mask WORD shifted based on S_INT address value, to ignore > >> values not presented in the aligned word read. */ > >> static __always_inline op_t > >> -check_mask (op_t word, uintptr_t s_int) > >> +check_mask (op_t word, uintptr_t s) > >> { > >> if (__BYTE_ORDER == __LITTLE_ENDIAN) > >> - return word >> (CHAR_BIT * (s_int % sizeof (s_int))); > >> + return word >> (CHAR_BIT * (s % sizeof (op_t))); > >> else > >> - return word << (CHAR_BIT * (s_int % sizeof (s_int))); > >> + return word << (CHAR_BIT * (s % sizeof (op_t))); > >> } > > > > Fold this into patch 3, if you want it. > > Ack. > > > > >> @@ -79,7 +78,7 @@ highbit_mask (op_t m) > >> static __always_inline op_t * > >> word_containing (char const *p) > >> { > >> - return (op_t *) ((uintptr_t) p & -sizeof(p)); > >> + return (op_t *) ((op_t) p & -sizeof(p)); > > > > Casting p to op_t is wrong. > > Indeed, I will revert to uintptr_t. If sizeof (op_t) > sizeof(uintptr_t) won't this be able to leave us with a misaligned read + potential fault?