From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id 103033858D32 for ; Sun, 19 Nov 2023 03:59:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 103033858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 103033858D32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::332 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700366381; cv=none; b=srjuKQ0lLFLNt3rtLaDF9JsuHPBHq3McL9tNjyIt0nh00hXeYyJkIt0qYq05s35ub6VMpnKpWzo1a6qw1diAnTZYUmxzNwJLufKiYRt5Xrac7nlQ1jgaGT+tuqTsXQOZwrVQEuSlB8xVKmoNP4uNTaBuLO5MIxKbzxMd+4oSnZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700366381; c=relaxed/simple; bh=EgBJfVXcLs9n4IY7hYnDOXo2cMXYNRerhBptpl+aifE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=n87TNs80hMhkMo2eRLBqrGTXMhfVUUuhC1YG2UHEuXJ6TXALr1YGFbfWw9RYX+olv1sDBpQ4IsIqHl65Y3wKu/26lvK5D8cEnQogZBJtpYzc7ZU+SXml7du7qdJOi9Y9iT+i9qTFEcaNlrOwKWYtO1okpE/w0JgqBIuleiIm6p8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ot1-x332.google.com with SMTP id 46e09a7af769-6ce2add34c9so1971656a34.1 for ; Sat, 18 Nov 2023 19:59:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700366379; x=1700971179; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=tn60NfFvF1jBL7nytftXynwb4ho5NAE3A/SVHE3gVOA=; b=g985FHQM82SzASz1VGZrOwPBrlKYVb/jIKnkOGtoF8F1PmI3lKav2eSVW82x/E1vxA DB2PcKZZGhG+LAQ8h2i3FC6lAC6Y2Jt7I2+63n0muA58/196aqICNjqLTFcJTJFB3axR spAYXWHjhxMYpzK2SoPBA3kJli1cZOh//bqvb9hW1Z8b3ZlrNzYjQlCBmVrf5tyEelHd xJnN0+bHtjZ1XGq4Z8MdHM17WOJkbWjlmD18vriheNsXZW1xGMsZIP3yJTwAJuT07da0 brWIfv9poVOXD0VcnYke4/0ZiQjaoYT6vzibdBrr1Yd2gHa+XgiBw1ZXx/EypWnqzQNK DBbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700366379; x=1700971179; h=content-transfer-encoding:in-reply-to: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=tn60NfFvF1jBL7nytftXynwb4ho5NAE3A/SVHE3gVOA=; b=pY9BdCiCUpZGwYhPve3ig15J8rhTxnb7Qf1VaSzgPXpyQ1MXoUDrqhjcCiKvw85alB L7RORT1srYnGGqS8V0oUWqUyUNQwfUqLjHVkR0km0PapOdtmdDk6RyjFQFlhPemSCmLT f9p4Yh3mT1iFnDzvy5SG3WcctsOIhX/xCUb497pTnD3QX7at4vPkErHHYFMYa1anQZqn c7w8py5GvXDQORSgoP3wmxIdysSULmf74OsrzjNZL/1ClAu9JxQO0WthdwB8iWElHu6t Ja5TLl/s1sy4lpa769C+EQI0tplGHU7ywXMbj2R5zIJ5g80h/KK5AEf+IUykMrOxIVk5 Dbkg== X-Gm-Message-State: AOJu0YzYSlAR2LlSuEmTddNXYjpvmS72xXUOpYdF0c2jzF6oEEIXIiIz DHxRTXIeoSLuaCvJq6tDxko= X-Google-Smtp-Source: AGHT+IHFfKSBw036gRdpdwl4ranLgrOJ8wMPZ1mBmgWkYmE14px32PYKNSdywpLHpzGZB92tWpiu6Q== X-Received: by 2002:a05:6830:3d18:b0:6d6:4697:6a91 with SMTP id eu24-20020a0568303d1800b006d646976a91mr3902204otb.13.1700366378925; Sat, 18 Nov 2023 19:59:38 -0800 (PST) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id v25-20020a0568301bd900b006ce2e1a6cb2sm785481ota.44.2023.11.18.19.59.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 18 Nov 2023 19:59:38 -0800 (PST) Message-ID: <1bc550fa-0883-4ea5-b4c7-a224a6c8aac1@gmail.com> Date: Sat, 18 Nov 2023 20:59:36 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] tree-ssa-math-opts: popcount (X) == 1 to (X ^ (X - 1)) > (X - 1) optimization [PR90693] Content-Language: en-US To: Jakub Jelinek , Richard Biener Cc: gcc-patches@gcc.gnu.org References: From: Jeff Law In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 11/17/23 07:01, Jakub Jelinek wrote: > Hi! > > Per the earlier discussions on this PR, the following patch folds > popcount (x) == 1 (and != 1) into (x ^ (x - 1)) > x - 1 (or <=) > if the corresponding popcount optab isn't implemented (I think any > double-word popcount or call will be necessarily slower than the > above cheap 3 op check and even for -Os larger or same size). > > I've noticed e.g. C++ aligned new starts with std::has_single_bit > which does popcount (x) == 1. > > As a follow-up, I'm considering changing in this routine the popcount > call to IFN_POPCOUNT with 2 arguments and during expansion test costs. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > 2023-11-17 Jakub Jelinek > > PR tree-optimization/90693 > * tree-ssa-math-opts.cc (match_single_bit_test): New function. > (math_opts_dom_walker::after_dom_children): Call it for EQ_EXPR > and NE_EXPR assignments and GIMPLE_CONDs. > > * gcc.target/i386/pr90693.c: New test. OK. Jeff