From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 363333858C00 for ; Fri, 3 Nov 2023 17:14:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 363333858C00 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 363333858C00 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699031687; cv=none; b=heu0TGX0d2aPdSd92sGJPPl7EWPGlY7X0G5tOHCdrZjOTFonKnXq0IREhsxPHY2JZnArZbkICuI33ZTal3ssAO9XPNGm8kULMtJOrCswIuWHr1MypKA9fdA9IgJr0Wj0Tbq4bJZOd7hR61pSlr91aCn1JkQiV8K4vLb5I8J0VMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699031687; c=relaxed/simple; bh=nYbtsTE5ceH2AOJ+WupxNRsohRUujpRrFXU0C6E6e/Q=; h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject:To; b=qwBjfLf6+2tcsGYP4sXFwE7sAd7o/lhXld+ZkWxOoQJqC1tSg9MRJUdcWWvUbNMCHh3l/2kYOBDfMR/L5b/ziJLXF3AwtHw4YUUAa71iDOP5xWqNl0rnHg5sdl+5wz0x7Zf74Id43bx7a+AjjhKl3P5ujbTw4FFFOf3L9XNpixE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699031676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=uZhAN9qvyXMebYefkzUkyAXx5B9fgNwxa4/umc+ZRoM=; b=Oyhg8Z0QMlK1FJ3cBW7SHbTDRyjkIrGViOQVkTi2SAO/KeM/arAzMvzFoz6TZx5Bex3jk1 dS32K13CMW3/sU9BN4s2z2GqVOhKZETtJRqz5iwMNf+HVLWsaS6C18IOQ24GVAg7bGmJzd TOXTlYOUu0LwvIcqU0iLB7ytxCr5zEU= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-93-ezwmgzSOMVKmoV7STbYMnw-1; Fri, 03 Nov 2023 13:14:35 -0400 X-MC-Unique: ezwmgzSOMVKmoV7STbYMnw-1 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-778a738a523so235717885a.0 for ; Fri, 03 Nov 2023 10:14:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699031673; x=1699636473; h=content-language:cc:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+Wk3cA99kER6DIc8UC04YCO9p7d1oNtDexWwv+FX1t4=; b=Yt3kRJgeu+aloI0NsoYyNzhz7DVslOla6NRYrhISvtMc65LQxDVjN6IWnyw4a78J7R YdHgk8IUh1gM5Tp+g0+GWciEiOKdpVopTVGObaGSyqU4YkGo0lJI7N6DX0L3FbFCASwb HXUvTccqDelZTm0tXteyx59eo8YgA0jMPtnPSk9tZZYCd6my5NH8/vjmWe118zWtnt/q LwDrbIlI7SYKm47ptZQhx2beZ3vn9p+XTwo3m9ofH8xm6tKJo7k6LhWArnQcqQ3Jqpip zGeefzcjoC8kbAxpEm5N2lQ9OQ3mqxVAUwasEBtCqlJpfJxK6BfcS452RYT3Nam/bowX TUTQ== X-Gm-Message-State: AOJu0YxQ90RwfZ8S42jAU0pGOSZVwDdY5HkyE/KqYG4yBShotwzU9dF+ 2fYMRO+3OvSX0nZXU6k62MP+m3EWD+p0EgseZowQSSK9xaZ5pf2eRexmp4Q4EuhJCVLzqWeG6+h BbCohl9e2zQhsPM52t+Qzs9T9WSYD8eC5B9ljea87U1SeXJigO5J1UAiXxeP0zl+F76jhRaW6ZJ Og3w== X-Received: by 2002:a05:620a:191a:b0:76d:9f64:f638 with SMTP id bj26-20020a05620a191a00b0076d9f64f638mr25415402qkb.51.1699031673675; Fri, 03 Nov 2023 10:14:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGwB/POwn8U2EwqzBDQ6uFntu4D3V0mN48ujpbfGolqI/igNMfw1M74wBjj/3wGE9TyzTZvow== X-Received: by 2002:a05:620a:191a:b0:76d:9f64:f638 with SMTP id bj26-20020a05620a191a00b0076d9f64f638mr25415380qkb.51.1699031673268; Fri, 03 Nov 2023 10:14:33 -0700 (PDT) Received: from ?IPV6:2607:fea8:51dd:2b00::18c7? ([2607:fea8:51dd:2b00::18c7]) by smtp.gmail.com with ESMTPSA id j22-20020a05620a411600b0077402573fb4sm886248qko.124.2023.11.03.10.14.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Nov 2023 10:14:32 -0700 (PDT) Message-ID: <9134381d-fb7e-4422-9435-d2709d109a36@redhat.com> Date: Fri, 3 Nov 2023 13:14:32 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Andrew MacLeod Subject: [COMMITTED 2/2] PR tree-optimization/111766 - Adjust operators equal and not_equal to check bitmasks against constants To: gcc-patches Cc: "hernandez, aldy" X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------xQYeMLHF2qxP48BhiYVDRyXg" Content-Language: en-US X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,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: This is a multi-part message in MIME format. --------------xQYeMLHF2qxP48BhiYVDRyXg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit When we compare a range against a constant for equality or inequality, there is currently no attempt made to utilize the known bits. This patch adds a method to the irange_bitmask class to ask if a specific value satisfies the known bit pattern.  Operators equal and not_equal then utilize it when comparing to a constant eliiminating a class of cases we don;t currently get. ie. if (x & 1) return; if (x == 97657) foo() will eliminate the call to foo, even though we do not remove all the odd numbers from the range.  THe bit pattern comparison for   [irange] unsigned int [0, 0] [2, +INF] MASK 0xfffffffe VALUE 0x1  will indicate that any even constants will be false. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew --------------xQYeMLHF2qxP48BhiYVDRyXg Content-Type: text/x-patch; charset=UTF-8; name="0002-Adjust-operators-equal-and-not_equal-to-check-bitmas.patch" Content-Disposition: attachment; filename*0="0002-Adjust-operators-equal-and-not_equal-to-check-bitmas.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlYjg5OWZlZTM1YjgzMjZiMjEwNWMwNGY1OGZkNThiYmRlY2E5ZDNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogV2VkLCAyNSBPY3QgMjAyMyAwOTo0Njo1MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBBZGp1c3Qgb3BlcmF0b3JzIGVxdWFsIGFuZCBub3RfZXF1YWwgdG8gY2hlY2sgYml0bWFza3MK IGFnYWluc3QgY29uc3RhbnRzCgpDaGVjayB0byBzZWUgaWYgYSBjb21wYXJpc29uIHRvIGEgY29u c3RhbnQgY2FuIGJlIGRldGVybWluZWQgdG8gYWx3YXlzCmJlIG5vdC1lcXVhbCBiYXNlZCBvbiB0 aGUgYml0bWFzay4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xMTE3NjYKCWdjYy8KCSogcmFuZ2Ut b3AuY2MgKG9wZXJhdG9yX2VxdWFsOjpmb2xkX3JhbmdlKTogQ2hlY2sgY29uc3RhbnRzCglhZ2Fp bnN0IHRoZSBiaXRtYXNrLgoJKG9wZXJhdG9yX25vdF9lcXVhbDo6Zm9sZF9yYW5nZSk6IERpdHRv LgoJKiB2YWx1ZS1yYW5nZS5oIChpcmFuZ2VfYml0bWFzazo6bWVtYmVyX3ApOiBOZXcuCgoJZ2Nj L3Rlc3RzdWl0ZS8KCSogZ2NjLmRnL3ByMTExNzY2LmM6IE5ldy4KLS0tCiBnY2MvcmFuZ2Utb3Au Y2MgICAgICAgICAgICAgICAgIHwgMjAgKysrKysrKysrKysrKysrKy0tLS0KIGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL3ByMTExNzY2LmMgfCAxMyArKysrKysrKysrKysrCiBnY2MvdmFsdWUtcmFuZ2Uu aCAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDMg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy5kZy9wcjExMTc2Ni5jCgpkaWZmIC0tZ2l0IGEvZ2NjL3JhbmdlLW9wLmNjIGIv Z2NjL3JhbmdlLW9wLmNjCmluZGV4IDMzYjE5M2JlN2QwLi42MTM3ZjJhZWVkMyAxMDA2NDQKLS0t IGEvZ2NjL3JhbmdlLW9wLmNjCisrKyBiL2djYy9yYW5nZS1vcC5jYwpAQCAtOTMxLDggKzkzMSw5 IEBAIG9wZXJhdG9yX2VxdWFsOjpmb2xkX3JhbmdlIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKIAog ICAvLyBXZSBjYW4gYmUgc3VyZSB0aGUgdmFsdWVzIGFyZSBhbHdheXMgZXF1YWwgb3Igbm90IGlm IGJvdGggcmFuZ2VzCiAgIC8vIGNvbnNpc3Qgb2YgYSBzaW5nbGUgdmFsdWUsIGFuZCB0aGVuIGNv bXBhcmUgdGhlbS4KLSAgaWYgKHdpOjplcV9wIChvcDEubG93ZXJfYm91bmQgKCksIG9wMS51cHBl cl9ib3VuZCAoKSkKLSAgICAgICYmIHdpOjplcV9wIChvcDIubG93ZXJfYm91bmQgKCksIG9wMi51 cHBlcl9ib3VuZCAoKSkpCisgIGJvb2wgb3AxX2NvbnN0ID0gd2k6OmVxX3AgKG9wMS5sb3dlcl9i b3VuZCAoKSwgb3AxLnVwcGVyX2JvdW5kICgpKTsKKyAgYm9vbCBvcDJfY29uc3QgPSB3aTo6ZXFf cCAob3AyLmxvd2VyX2JvdW5kICgpLCBvcDIudXBwZXJfYm91bmQgKCkpOworICBpZiAob3AxX2Nv bnN0ICYmIG9wMl9jb25zdCkKICAgICB7CiAgICAgICBpZiAod2k6OmVxX3AgKG9wMS5sb3dlcl9i b3VuZCAoKSwgb3AyLnVwcGVyX2JvdW5kKCkpKQogCXIgPSByYW5nZV90cnVlICh0eXBlKTsKQEAg LTk0Nyw2ICs5NDgsMTEgQEAgb3BlcmF0b3JfZXF1YWw6OmZvbGRfcmFuZ2UgKGlyYW5nZSAmciwg dHJlZSB0eXBlLAogICAgICAgdG1wLmludGVyc2VjdCAob3AyKTsKICAgICAgIGlmICh0bXAudW5k ZWZpbmVkX3AgKCkpCiAJciA9IHJhbmdlX2ZhbHNlICh0eXBlKTsKKyAgICAgIC8vIENoZWNrIGlm IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgdGhlIGJpdG1hc2sgcmVxdWlyZW1lbnRzLgorICAg ICAgZWxzZSBpZiAob3AyX2NvbnN0ICYmICFvcDEuZ2V0X2JpdG1hc2sgKCkubWVtYmVyX3AgKG9w Mi5sb3dlcl9ib3VuZCAoKSkpCisJIHIgPSByYW5nZV9mYWxzZSAodHlwZSk7CisgICAgICBlbHNl IGlmIChvcDFfY29uc3QgJiYgIW9wMi5nZXRfYml0bWFzayAoKS5tZW1iZXJfcCAob3AxLmxvd2Vy X2JvdW5kICgpKSkKKwkgciA9IHJhbmdlX2ZhbHNlICh0eXBlKTsKICAgICAgIGVsc2UKIAlyID0g cmFuZ2VfdHJ1ZV9hbmRfZmFsc2UgKHR5cGUpOwogICAgIH0KQEAgLTEwMzMsOCArMTAzOSw5IEBA IG9wZXJhdG9yX25vdF9lcXVhbDo6Zm9sZF9yYW5nZSAoaXJhbmdlICZyLCB0cmVlIHR5cGUsCiAK ICAgLy8gV2UgY2FuIGJlIHN1cmUgdGhlIHZhbHVlcyBhcmUgYWx3YXlzIGVxdWFsIG9yIG5vdCBp ZiBib3RoIHJhbmdlcwogICAvLyBjb25zaXN0IG9mIGEgc2luZ2xlIHZhbHVlLCBhbmQgdGhlbiBj b21wYXJlIHRoZW0uCi0gIGlmICh3aTo6ZXFfcCAob3AxLmxvd2VyX2JvdW5kICgpLCBvcDEudXBw ZXJfYm91bmQgKCkpCi0gICAgICAmJiB3aTo6ZXFfcCAob3AyLmxvd2VyX2JvdW5kICgpLCBvcDIu dXBwZXJfYm91bmQgKCkpKQorICBib29sIG9wMV9jb25zdCA9IHdpOjplcV9wIChvcDEubG93ZXJf Ym91bmQgKCksIG9wMS51cHBlcl9ib3VuZCAoKSk7CisgIGJvb2wgb3AyX2NvbnN0ID0gd2k6OmVx X3AgKG9wMi5sb3dlcl9ib3VuZCAoKSwgb3AyLnVwcGVyX2JvdW5kICgpKTsKKyAgaWYgKG9wMV9j b25zdCAmJiBvcDJfY29uc3QpCiAgICAgewogICAgICAgaWYgKHdpOjpuZV9wIChvcDEubG93ZXJf Ym91bmQgKCksIG9wMi51cHBlcl9ib3VuZCgpKSkKIAlyID0gcmFuZ2VfdHJ1ZSAodHlwZSk7CkBA IC0xMDQ5LDYgKzEwNTYsMTEgQEAgb3BlcmF0b3Jfbm90X2VxdWFsOjpmb2xkX3JhbmdlIChpcmFu Z2UgJnIsIHRyZWUgdHlwZSwKICAgICAgIHRtcC5pbnRlcnNlY3QgKG9wMik7CiAgICAgICBpZiAo dG1wLnVuZGVmaW5lZF9wICgpKQogCXIgPSByYW5nZV90cnVlICh0eXBlKTsKKyAgICAgIC8vIENo ZWNrIGlmIGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgdGhlIGJpdG1hc2sgcmVxdWlyZW1lbnRz LgorICAgICAgZWxzZSBpZiAob3AyX2NvbnN0ICYmICFvcDEuZ2V0X2JpdG1hc2sgKCkubWVtYmVy X3AgKG9wMi5sb3dlcl9ib3VuZCAoKSkpCisJIHIgPSByYW5nZV90cnVlICh0eXBlKTsKKyAgICAg IGVsc2UgaWYgKG9wMV9jb25zdCAmJiAhb3AyLmdldF9iaXRtYXNrICgpLm1lbWJlcl9wIChvcDEu bG93ZXJfYm91bmQgKCkpKQorCSByID0gcmFuZ2VfdHJ1ZSAodHlwZSk7CiAgICAgICBlbHNlCiAJ ciA9IHJhbmdlX3RydWVfYW5kX2ZhbHNlICh0eXBlKTsKICAgICB9CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9wcjExMTc2Ni5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTE3 NjYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzI3YTAyOWM3NzIK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjExMTc2Ni5jCkBAIC0w LDAgKzEsMTMgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtZmR1bXAtdHJlZS1ldnJwIiB9ICovCisKK2ludAorZm9vM24oaW50IGMsIGludCBiYikKK3sK KyAgaWYgKChiYiAmIH4zKSE9MCkgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IC8vIGJiID0gWzAs M10KKyAgaWYgKChiYiAmIDEpPT0wKSBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgLy8gYmImMSA9 PSAwIC8vIFswXSxbM10KKyAgaWYoYmIgPT0gMikgX19idWlsdGluX3RyYXAoKTsKKyAgcmV0dXJu IGJiOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJ0cmFwIiAiZXZy cCIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmFuZ2UuaCBiL2djYy92YWx1ZS1yYW5n ZS5oCmluZGV4IDg0ZjY1ZmZiNTkxLi4zMzBlNmY3MGM2YiAxMDA2NDQKLS0tIGEvZ2NjL3ZhbHVl LXJhbmdlLmgKKysrIGIvZ2NjL3ZhbHVlLXJhbmdlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJs aWM6CiAgIHZvaWQgdmVyaWZ5X21hc2sgKCkgY29uc3Q7CiAgIHZvaWQgZHVtcCAoRklMRSAqKSBj b25zdDsKIAorICBib29sIG1lbWJlcl9wIChjb25zdCB3aWRlX2ludCAmdmFsKSBjb25zdDsKICAg dm9pZCBhZGp1c3RfcmFuZ2UgKGlyYW5nZSAmcikgY29uc3Q7CiAKICAgLy8gQ29udmVuaWVuY2Ug ZnVuY3Rpb25zIGZvciBub256ZXJvIGJpdG1hc2sgY29tcGF0aWJpbGl0eS4KQEAgLTIwMiw2ICsy MDMsMTkgQEAgaXJhbmdlX2JpdG1hc2s6OnNldF9ub256ZXJvX2JpdHMgKGNvbnN0IHdpZGVfaW50 ICZiaXRzKQogICAgIHZlcmlmeV9tYXNrICgpOwogfQogCisvLyBSZXR1cm4gVFJVRSBpZiB2YWwg Y291bGQgYmUgYSB2YWxpZCB2YWx1ZSB3aXRoIHRoaXMgYml0bWFzay4KKworaW5saW5lIGJvb2wK K2lyYW5nZV9iaXRtYXNrOjptZW1iZXJfcCAoY29uc3Qgd2lkZV9pbnQgJnZhbCkgY29uc3QKK3sK KyAgaWYgKHVua25vd25fcCAoKSkKKyAgICByZXR1cm4gdHJ1ZTsKKyAgd2lkZV9pbnQgcmVzID0g bV9tYXNrICYgdmFsOworICBpZiAobV92YWx1ZSAhPSAwKQorICAgIHJlcyB8PSB+bV9tYXNrICYg bV92YWx1ZTsKKyAgcmV0dXJuIHJlcyA9PSB2YWw7Cit9CisKIGlubGluZSBib29sCiBpcmFuZ2Vf Yml0bWFzazo6b3BlcmF0b3I9PSAoY29uc3QgaXJhbmdlX2JpdG1hc2sgJnNyYykgY29uc3QKIHsK LS0gCjIuNDEuMAoK --------------xQYeMLHF2qxP48BhiYVDRyXg--