Received: by 10.213.65.68 with SMTP id h4csp2148010imn; Thu, 5 Apr 2018 09:45:30 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/uIbrDV9evwy2DdNb9RSA5Z4fVl/NfNgGRyUkZEOjI8WEUJIinpVe5DZu+e26K8+NK1I5y X-Received: by 2002:a17:902:24:: with SMTP id 33-v6mr23655212pla.341.1522946730256; Thu, 05 Apr 2018 09:45:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522946730; cv=none; d=google.com; s=arc-20160816; b=Oaz4Gh0gz0G3HzjJpe5XCjneIWEEzbvRg0mf5WwJpDReAuM0SRaA4R3kZWuWOzOH/s LVTH9hoeQubfZIzbajEo05Gl9XuMeCHolZ6Pea4qUjHJOVpKWTlMjmbsfRJy8e0O3UgG NuhGeAJf4wVLCiIlDnL/F0nN61N/TVRJtmdmuCm/tAwBJdB0zFiMEfmU8b7ivy2jNHiR 58LjPm8em6snic1+yGnF4XrroWT81p2zpMFK2OXGDOA3sa5ocUyiM3DXZyOsq2lgl2z0 oDlYKw4+slaPfcFiNk/kmM3uPICN+uCq97AogicXutHWIZXdQap2Tx46lROdOwfeQoQ5 BrNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=9Y8yvMy6PwmzokINugZEF/Uev2A+39ZqW2wUigeGJFg=; b=yhubaqKeDg7p6Kh3DxZbSK/nJbH7+uL0Hi36gPNOLW3OzdGFm4ihJOmJuyo+siE+wI cMHmGJl4G8/75y8FpwoU1tVhLWhTLdHX+ah116pkEn9qGx1Qf82F992AjRl53FUprICp LgtnfGPVCqPDsDVFPXdKWAcRyOEwxVeQm6XcpXLJSxVidlz/dnCSYyz0ab79JFWiyi5A Eqao8aR5cmFn3nPRUlEVObBZ32RG2LH6TJ8uH5fMzuMlEbXMgHgrcFZJKWf1pYue6Ajd 3orpwRnGPtEl1nSLcRTeH3e3Dsxkrdr8tSBP8AM1ETKch6yDphVab7i9k++lWie5yX4I FubA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=RqLapFTs; dkim=fail header.i=@linux-foundation.org header.s=google header.b=T3vHhOTF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v2-v6si6146338plo.670.2018.04.05.09.45.16; Thu, 05 Apr 2018 09:45:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=RqLapFTs; dkim=fail header.i=@linux-foundation.org header.s=google header.b=T3vHhOTF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751528AbeDEQnn (ORCPT + 99 others); Thu, 5 Apr 2018 12:43:43 -0400 Received: from mail-io0-f194.google.com ([209.85.223.194]:38567 "EHLO mail-io0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751259AbeDEQnl (ORCPT ); Thu, 5 Apr 2018 12:43:41 -0400 Received: by mail-io0-f194.google.com with SMTP id b20so31379285iof.5 for ; Thu, 05 Apr 2018 09:43:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=9Y8yvMy6PwmzokINugZEF/Uev2A+39ZqW2wUigeGJFg=; b=RqLapFTsu/9O9MvfbWXSB/d39gR8kQZ3n8D2Q39mLMoAbZFMDHTQSOXW8NhxI90VPy YkfJEbsvlENHKH21+8HaMBcmGpWa5xdIxoJ4cuGF1JDmcmWn2HOQpIhAQ2AZf+MVfcxC OLS2xzeslMWEgldMkAPnbpx0Mv0wpyN5uslUazEHU5A7hyhD3sd4SGMOq3k0sZ+hqOQl 5qFWeE8EBJZv6M1T5hJiQt5ehccy21aLBH0yQptfAPsVqdy37ep724w8qhE6Rbxk9Q+W W/QsyIe511s8D//aMxbJfHTVXqd6WTiZsef4gH3mVGga60N3HEKqGI0oJq3elBdvOmu6 WpPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=9Y8yvMy6PwmzokINugZEF/Uev2A+39ZqW2wUigeGJFg=; b=T3vHhOTF+H/QgCQT/auB6hgcdEsxyPhfqU8fV/AgmP7RRbsO2sYIrGbDrpqhrDndRV 8CaYwmk6CUpmf/kjUJsi2WDMN/FpRcA0f/i2OZzRuHYT/Pvte9lW/5xonWCcdB6LIyK1 7yv+u5qDxrxqKv0x7yPfbqTiNfEsK/cuwfJ/w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=9Y8yvMy6PwmzokINugZEF/Uev2A+39ZqW2wUigeGJFg=; b=EuXEEZth9NqXMYIqKnJaegar2O4gGmZX0CoXkPHaGE0tBwQ4hbqkONSBZA3muc2UHa qM18lSeh5/jC21zyCC3TDCIbKwaZJ/vl4/+48XQ2ANYUgn3s0cc6uU8+iWGAC6QrjlIW JnG7BcTj19N17BxcM6Ee8ReDDyJqeQcUTqI7uBU9tUJR1Q2umH8YL5HON70j2a7jtaNd X5KNfg4aJnirwPJglc7O8MUeYwOX9W+0/cUwGvDYabCQlWoKkxf3KE5XC8VkDYIukHHa AxCW/+iePWeOaes0zU51tKp30ywmMtE4QhQMqwM0ibjV65vDo6WJ9FfY+6hK39R6dJr0 oL3g== X-Gm-Message-State: AElRT7E7w2jiWv1sCG3waVpz6bEcTGOjo/9CVW8eIYh85ViN976esM70 Nd2DAMOhkCKzUevhXAvpDIvZEf5ljvJyhZ1hA/k= X-Received: by 10.107.182.214 with SMTP id g205mr22657899iof.203.1522946620619; Thu, 05 Apr 2018 09:43:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.95.15 with HTTP; Thu, 5 Apr 2018 09:43:40 -0700 (PDT) In-Reply-To: <20180405072401.GO4043@hirez.programming.kicks-ass.net> References: <20180404191724.GF87376@google.com> <20180404205848.GG87376@google.com> <20180404214639.GH87376@google.com> <20180404221744.GI87376@google.com> <20180404233111.GJ87376@google.com> <20180405072401.GO4043@hirez.programming.kicks-ass.net> From: Linus Torvalds Date: Thu, 5 Apr 2018 09:43:40 -0700 X-Google-Sender-Auth: K26ulI72Wu-bt6hht0Mvg-hljE0 Message-ID: Subject: Re: [GIT PULL] x86/build changes for v4.17 To: Peter Zijlstra Cc: Matthias Kaehlcke , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List , Thomas Gleixner , Andrew Morton , James Y Knight , Chandler Carruth , Stephen Hines , Nick Desaulniers , Kees Cook , Guenter Roeck , Greg Hackmann , Greg Kroah-Hartman Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 5, 2018 at 12:24 AM, Peter Zijlstra wrote: > > I always assumed BT was a more expensive instruction than AND with > immediate. Oh, absolutely. That's why we do all those "depending on immediate or not". The reason I brought that case up is that "test_bit()" and "set_bit()" do this "is it constant" test COMPLETELY DIFFERENTLY. The test_bit() one is arguably much more legible, and easier to understand. And it so happens that clang will see that it's constant because it's a macro (well, unless that macro is then used in an inline function). The set_bit() pattern looks completely different, and doesn't have that abstraction of "constant_set_bit()" vs "variable_set_bit()", like test_bit() does. THAT was why I pointed it out - we do different things otherwise similar operations. Not because it would be odd that we do different things for the "constant bit number" vs "variable bit number". Linus