From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 583A63858024 for ; Tue, 1 Jun 2021 10:33:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 583A63858024 Received: by mail-pf1-x430.google.com with SMTP id t28so1139889pfg.10 for ; Tue, 01 Jun 2021 03:33:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=aQUJm8SDAfwEv4puZNJD1kBwMrS0f5AfF2KM8mBomHs=; b=mb8EZh8vkCibMbFxB7+E1jQ2ofCItN3WcCSAXbKl3UnKufc8zlSC4YPu+mcOA+IAlI xQhYtp+pFHCM038mhN5Ni3bvr6w72UMMHP4nvW2b3XinIgfOS15RlrNrnv914eCLcrMl WAw1r4UWWcbcCDdhvxp4DShk0lYBhxkBnmnzaw8O7qhtgjtY61UmoOoH/lr4OeEOTafh hr8UKU2UgVtkjtJxJ3IPZRLgQxkKp1tC3+6bj5YzMeFnD0WK8HQjD5qBauBd0/0DtsPG 8x14Vy+EEOaXOQdVbd7q9Ok9rpxFQxZD3Lq+QOvmQ+E4HF5epJl4qQPTwYeWyHwAolmn kVBQ== X-Gm-Message-State: AOAM533XGi1kH/HK2EEeiqwNXy7pzZmC/X99Uk6CPjyV6M3F33NaWbqP OGaT1jiL+m3rcW8rPl1LTK2pMvUBQgYLL6Vg71gGQHoYwoaVzA== X-Google-Smtp-Source: ABdhPJwm+kLxCXevd32Y16MO4qB302F89X6coBkgqaxXYK5ZJ6UX+KMBy/zZ1vPmi8aJ2PCL+JNnirVy3GwsiekszZg= X-Received: by 2002:aa7:860a:0:b029:2e9:f8cb:489c with SMTP id p10-20020aa7860a0000b02902e9f8cb489cmr3361395pfn.50.1622543618061; Tue, 01 Jun 2021 03:33:38 -0700 (PDT) MIME-Version: 1.0 From: Prathamesh Kulkarni Date: Tue, 1 Jun 2021 16:03:01 +0530 Message-ID: Subject: [ARM] PR97906 - Missed lowering abs(a) >= abs(b) to vacge To: gcc Patches , Kyrill Tkachov Content-Type: multipart/mixed; boundary="000000000000fd3b7905c3b1df16" X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2021 10:33:42 -0000 --000000000000fd3b7905c3b1df16 Content-Type: text/plain; charset="UTF-8" Hi, As mentioned in PR, for following test-case: #include uint32x2_t f1(float32x2_t a, float32x2_t b) { return vabs_f32 (a) >= vabs_f32 (b); } uint32x2_t f2(float32x2_t a, float32x2_t b) { return (uint32x2_t) __builtin_neon_vcagev2sf (a, b); } We generate vacge for f2, but with -ffast-math, we generate following for f1: f1: vabs.f32 d1, d1 vabs.f32 d0, d0 vcge.f32 d0, d0, d1 bx lr This happens because, the middle-end inverts the comparison to b <= a, .optimized dump: _8 = __builtin_neon_vabsv2sf (a_4(D)); _7 = __builtin_neon_vabsv2sf (b_5(D)); _1 = _7 <= _8; _2 = VIEW_CONVERT_EXPR(_1); _6 = VIEW_CONVERT_EXPR(_2); return _6; and combine fails to match the following pattern: (set (reg:V2SI 121) (neg:V2SI (le:V2SI (abs:V2SF (reg:V2SF 123)) (abs:V2SF (reg:V2SF 122))))) because neon_vca pattern has GTGE code iterator. The attached patch adjusts the neon_vca patterns to use GLTE instead similar to neon_vca_fp16insn, and removes NEON_VACMP iterator. Code-gen with patch: f1: vacle.f32 d0, d1, d0 bx lr Bootstrapped + tested on arm-linux-gnueabihf and cross-tested on arm*-*-*. OK to commit ? Thanks, Prathamesh --000000000000fd3b7905c3b1df16 Content-Type: text/plain; charset="US-ASCII"; name="pr97906-2.txt" Content-Disposition: attachment; filename="pr97906-2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kpdw2a7k0 MjAyMS0wNi0wMSAgUHJhdGhhbWVzaCBLdWxrYXJuaSAgPHByYXRoYW1lc2gua3Vsa2FybmlAbGlu YXJvLm9yZz4KCiAgICAgICAgUFIgdGFyZ2V0Lzk3OTA2CiAgICAgICAgKiBjb25maWcvYXJtL2l0 ZXJhdG9ycy5tZCAoTkVPTl9WQUNNUCk6IFJlbW92ZS4KICAgICAgICAqIGNvbmZpZy9hcm0vbmVv bi5tZCAobmVvbl92Y2E8Y21wX29wPjxtb2RlPik6IFVzZSBHTFRFIGluc3RlYWQgb2YgR1RHRSBp dGVyYXRvci4KICAgICAgICAobmVvbl92Y2E8Y21wX29wPjxtb2RlPl9pbnNuKTogTGlrZXdpc2Uu CiAgICAgICAgKG5lb25fdmNhPGNtcF9vcF91bnNwPjxtb2RlPl9pbnNuX3Vuc3BlYyk6IFVzZSBO RU9OX1ZBR0xURSBpbnN0ZWFkIG9mIE5FT05fVkFDTVAuCgp0ZXN0c3VpdGUvCgkqIGdjYy50YXJn ZXQvYXJtL3NpbWQvcHI5NzkwNi5jOiBOZXcgdGVzdC4KCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L2FybS9pdGVyYXRvcnMubWQgYi9nY2MvY29uZmlnL2FybS9pdGVyYXRvcnMubWQKaW5kZXggMzA0 MmJhZmM2YzYuLjBlMGU4MjUyMjVhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9pdGVyYXRv cnMubWQKKysrIGIvZ2NjL2NvbmZpZy9hcm0vaXRlcmF0b3JzLm1kCkBAIC0zNjQsOCArMzY0LDYg QEAKIChkZWZpbmVfaW50X2l0ZXJhdG9yIE5FT05fVkNNUCBbVU5TUEVDX1ZDRVEgVU5TUEVDX1ZD R1QgVU5TUEVDX1ZDR0UKIAkJCQlVTlNQRUNfVkNMVCBVTlNQRUNfVkNMRV0pCiAKLShkZWZpbmVf aW50X2l0ZXJhdG9yIE5FT05fVkFDTVAgW1VOU1BFQ19WQ0FHRSBVTlNQRUNfVkNBR1RdKQotCiAo ZGVmaW5lX2ludF9pdGVyYXRvciBORU9OX1ZBR0xURSBbVU5TUEVDX1ZDQUdFIFVOU1BFQ19WQ0FH VAogCQkJCSAgVU5TUEVDX1ZDQUxFIFVOU1BFQ19WQ0FMVF0pCiAKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvYXJtL25lb24ubWQgYi9nY2MvY29uZmlnL2FybS9uZW9uLm1kCmluZGV4IGNjODJkMDY4 YTFjLi5jY2M5OTYwMzUzMSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vbmVvbi5tZAorKysg Yi9nY2MvY29uZmlnL2FybS9uZW9uLm1kCkBAIC0yNDAwLDcgKzI0MDAsNyBAQAogKGRlZmluZV9l eHBhbmQgIm5lb25fdmNhPGNtcF9vcD48bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxW X2NtcF9yZXN1bHQ+IDAgInNfcmVnaXN0ZXJfb3BlcmFuZCIpCiAgICAgICAgIChuZWc6PFZfY21w X3Jlc3VsdD4KLSAgICAgICAgICAoR1RHRTo8Vl9jbXBfcmVzdWx0PgorICAgICAgICAgIChHTFRF OjxWX2NtcF9yZXN1bHQ+CiAgICAgICAgICAgICAoYWJzOlZDVlRGIChtYXRjaF9vcGVyYW5kOlZD VlRGIDEgInNfcmVnaXN0ZXJfb3BlcmFuZCIpKQogICAgICAgICAgICAgKGFiczpWQ1ZURiAobWF0 Y2hfb3BlcmFuZDpWQ1ZURiAyICJzX3JlZ2lzdGVyX29wZXJhbmQiKSkpKSldCiAgICJUQVJHRVRf TkVPTiIKQEAgLTI0MTksNyArMjQxOSw3IEBACiAoZGVmaW5lX2luc24gIm5lb25fdmNhPGNtcF9v cD48bW9kZT5faW5zbiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZfY21wX3Jlc3VsdD4gMCAi c19yZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQogICAgICAgICAobmVnOjxWX2NtcF9yZXN1bHQ+Ci0g ICAgICAgICAgKEdUR0U6PFZfY21wX3Jlc3VsdD4KKyAgICAgICAgICAoR0xURTo8Vl9jbXBfcmVz dWx0PgogICAgICAgICAgICAgKGFiczpWQ1ZURiAobWF0Y2hfb3BlcmFuZDpWQ1ZURiAxICJzX3Jl Z2lzdGVyX29wZXJhbmQiICJ3IikpCiAgICAgICAgICAgICAoYWJzOlZDVlRGIChtYXRjaF9vcGVy YW5kOlZDVlRGIDIgInNfcmVnaXN0ZXJfb3BlcmFuZCIgInciKSkpKSldCiAgICJUQVJHRVRfTkVP TiAmJiBmbGFnX3Vuc2FmZV9tYXRoX29wdGltaXphdGlvbnMiCkBAIC0yNDMxLDcgKzI0MzEsNyBA QAogICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8Vl9jbXBfcmVzdWx0PiAwICJzX3JlZ2lzdGVyX29w ZXJhbmQiICI9dyIpCiAgICAgICAgICh1bnNwZWM6PFZfY21wX3Jlc3VsdD4gWyhtYXRjaF9vcGVy YW5kOlZDVlRGIDEgInNfcmVnaXN0ZXJfb3BlcmFuZCIgInciKQogCQkgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6VkNWVEYgMiAic19yZWdpc3Rlcl9vcGVyYW5kIiAidyIpXQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5FT05fVkFDTVApKV0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBORU9OX1ZBR0xURSkpXQogICAiVEFSR0VUX05FT04iCiAgICJ2YWM8Y21w X29wX3Vuc3A+LjxWX2lmX2VsZW0+XHQlPFZfcmVnPjAsICU8Vl9yZWc+MSwgJTxWX3JlZz4yIgog ICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9mcF9jb21wYXJlX3M8cT4iKV0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vc2ltZC9wcjk3OTA2LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL3NpbWQvcHI5NzkwNi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi43Yzk3MmUzMTFlZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vc2ltZC9wcjk3OTA2LmMKQEAgLTAsMCArMSwxMyBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mZmFzdC1tYXRoIiB9 ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV9uZW9uIH0gKi8KKworI2luY2x1ZGUgPGFybV9u ZW9uLmg+CisKK3VpbnQzMngyX3QgZjEoZmxvYXQzMngyX3QgYSwgZmxvYXQzMngyX3QgYikKK3sK KyAgcmV0dXJuIHZhYnNfZjMyIChhKSA+PSB2YWJzX2YzMiAoYik7Cit9CisKKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2YWNsZS5mMzJcdGRbMC05XSssIGRbMC05XSss IGRbMC05XSt9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJ2 YWJzIiB9IH0gKi8K --000000000000fd3b7905c3b1df16--