From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id 9E6523858D28 for ; Thu, 2 Dec 2021 10:51:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9E6523858D28 Received: by mail-ed1-x531.google.com with SMTP id v1so114044320edx.2 for ; Thu, 02 Dec 2021 02:51:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=6QdB2tDXJSyhNpm4FqB94L0EVFNGiCI6MFGRVTWivMU=; b=8HElwyK1fUZraOdwJNRTY0p/66SxD8hVAkjoXmynp1mm7fAFdLGOU5J8yFJkJu1jVR EJkU7qTj9NYHiSxEDDzAXowzl3P34jnE7bP19S4QCARQYOKdIbVjwPqUp/EkeKzXcWFg diqRAOZcxvlQhJ19GFmlGHWKsCieO3ZVZV7+7L5wJnIzrcS/TuJ66I5Cgy6W19D2prU0 r0IEbj4zhAGGXVzLcvVAo1iZfG3nhH3q+Y/iOfSPBmo6ofxmj1UEvwWT02rzNjQO1g6j AZIrmsLJWVFo/ri3U4TU4bAlpxHu6NMQHmFNe7rJ5scNxWvfvRBeAKGhdCcg6b2763RL ywZQ== X-Gm-Message-State: AOAM532bBffeGEFbrmsyWbo+Mcxb72QhnHiFGV7g5dPESBUz8rr8Y4Us 0bHBOeXY17cewee5USAzVe8AVgpxJjcFqtZPBZWF+AbqZZw= X-Google-Smtp-Source: ABdhPJzFUIDTdTKEjb9b9BEgJp3YeRv0uUrd74o01+yeI8ntaBmAo8ONn2ZUhPgpEyiKkydA1KJ9msYEgZTBkaW4Bu0= X-Received: by 2002:a17:906:b51:: with SMTP id v17mr14882220ejg.262.1638442276261; Thu, 02 Dec 2021 02:51:16 -0800 (PST) MIME-Version: 1.0 From: Prathamesh Kulkarni Date: Thu, 2 Dec 2021 16:20:40 +0530 Message-ID: Subject: [SVE] PR96463 - Optimise svld1rq from vectors To: gcc Patches , Richard Sandiford Content-Type: multipart/mixed; boundary="000000000000dd1c7605d227918d" X-Spam-Status: No, score=-9.0 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Thu, 02 Dec 2021 10:51:21 -0000 --000000000000dd1c7605d227918d Content-Type: text/plain; charset="UTF-8" Hi Richard, I have attached a WIP untested patch for PR96463. IIUC, the PR suggests to transform lhs = svld1rq ({-1, -1, ...}, &v[0]) into: lhs = vec_perm_expr if v is vector of 4 elements, and each element is 32 bits on little endian target ? I am sorry if this sounds like a silly question, but I am not sure how to convert a vector of type int32x4_t into svint32_t ? In the patch, I simply used NOP_EXPR (which I expected to fail), and gave type error during gimple verification: svint32_t foo (int32x4_t x) { return svld1rq (svptrue_b8 (), &x[0]); } transformed to: EMERGENCY DUMP: svint32_t foo (int32x4_t x) { svint32_t _3; __Int32x4_t _4; : _4 = VEC_PERM_EXPR ; _3 = (svint32_t) _4; return _3; } and ICE's with: pr96463.c:8:1: error: invalid vector types in nop conversion 8 | } | ^ svint32_t __Int32x4_t _3 = (svint32_t) _4; during GIMPLE pass: ccp Could you please suggest how to proceed ? Thanks, Prathamesh --000000000000dd1c7605d227918d Content-Type: text/plain; charset="US-ASCII"; name="pr96463-1.txt" Content-Disposition: attachment; filename="pr96463-1.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kwou0vrg0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS1idWlsdGlucy1iYXNl LmNjIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3ZlLWJ1aWx0aW5zLWJhc2UuY2MKaW5k ZXggMDJlNDJhNzFlNWUuLjM4MzRmMzM0NDNhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMtYmFzZS5jYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC1zdmUtYnVpbHRpbnMtYmFzZS5jYwpAQCAtNDQsNiArNDQsMTMgQEAKICNpbmNsdWRl ICJhYXJjaDY0LXN2ZS1idWlsdGlucy1zaGFwZXMuaCIKICNpbmNsdWRlICJhYXJjaDY0LXN2ZS1i dWlsdGlucy1iYXNlLmgiCiAjaW5jbHVkZSAiYWFyY2g2NC1zdmUtYnVpbHRpbnMtZnVuY3Rpb25z LmgiCisjaW5jbHVkZSAicHJpbnQtdHJlZS5oIgorI2luY2x1ZGUgImdpbXBsZS1wcmV0dHktcHJp bnQuaCIKKworLyogPz8/IEluY2x1ZGluZyB0cmVlLXNzYW5hbWVzLmggcmVxdWlyZXMgaW5jbHVk aW5nIG90aGVyIGhlYWRlciBkZXBlbmRlbmNpZXMuCisgICAgICAgSnVzdCBpbmNsdWRpbmcgdGhl IHByb3RvdHlwZSBmb3Igbm93LiAgKi8KK2V4dGVybiB0cmVlIG1ha2Vfc3NhX25hbWVfZm4gKHN0 cnVjdCBmdW5jdGlvbiAqLCB0cmVlLCBnaW1wbGUgKiwKKwkJCSAgICAgIHVuc2lnbmVkIGludCB2 ZXJzaW9uID0gMCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBhYXJjaDY0X3N2ZTsKIApAQCAtMTIwNyw2 ICsxMjE0LDUyIEBAIHB1YmxpYzoKICAgICBpbnNuX2NvZGUgaWNvZGUgPSBjb2RlX2Zvcl9hYXJj aDY0X3N2ZV9sZDFycSAoZS52ZWN0b3JfbW9kZSAoMCkpOwogICAgIHJldHVybiBlLnVzZV9jb250 aWd1b3VzX2xvYWRfaW5zbiAoaWNvZGUpOwogICB9CisKKyAgZ2ltcGxlICoKKyAgZm9sZCAoZ2lt cGxlX2ZvbGRlciAmZikgY29uc3QgT1ZFUlJJREUKKyAgeworICAgIHRyZWUgYXJnMCA9IGdpbXBs ZV9jYWxsX2FyZyAoZi5jYWxsLCAwKTsKKyAgICB0cmVlIGFyZzEgPSBnaW1wbGVfY2FsbF9hcmcg KGYuY2FsbCwgMSk7CisKKyAgICAvKiBUcmFuc2Zvcm06CisgICAgICAgbGhzID0gc3ZsZDFycSAo ey0xLCAtMSwgLi4uIH0sICZ2WzBdKQorICAgICAgIGludG86CisgICAgICAgdG1wID0gdmVjX3Bl cm1fZXhwcjx2LCB2LCB7MCwgMCwgLi4ufT4uCisgICAgICAgbGhzID0gbm9wX2V4cHIgdG1wCisg ICAgICAgb24gbGl0dGxlIGVuZGlhbiB0YXJnZXQuICAqLworCisgICAgaWYgKCFCWVRFU19CSUdf RU5ESUFOCisJJiYgaW50ZWdlcl9hbGxfb25lc3AgKGFyZzApCisJJiYgVFJFRV9DT0RFIChhcmcx KSA9PSBBRERSX0VYUFIpCisgICAgICB7CisJdHJlZSB0ID0gVFJFRV9PUEVSQU5EIChhcmcxLCAw KTsKKwlpZiAoVFJFRV9DT0RFICh0KSA9PSBBUlJBWV9SRUYpCisJICB7CisJICAgIHRyZWUgaW5k ZXggPSBUUkVFX09QRVJBTkQgKHQsIDEpOworCSAgICB0ID0gVFJFRV9PUEVSQU5EICh0LCAwKTsK KwkgICAgaWYgKGludGVnZXJfemVyb3AgKGluZGV4KSAmJiBUUkVFX0NPREUgKHQpID09IFZJRVdf Q09OVkVSVF9FWFBSKQorCSAgICAgIHsKKwkJdCA9IFRSRUVfT1BFUkFORCAodCwgMCk7CisJCXRy ZWUgdmVjdHlwZSA9IFRSRUVfVFlQRSAodCk7CisJCWlmIChWRUNUT1JfVFlQRV9QICh2ZWN0eXBl KQorCQkgICAgJiYga25vd25fZXEgKFRZUEVfVkVDVE9SX1NVQlBBUlRTICh2ZWN0eXBlKSwgNHUp CisJCSAgICAmJiB3aTo6dG9fd2lkZSAoVFlQRV9TSVpFICh2ZWN0eXBlKSkgPT0gMTI4KQorCQkg IHsKKwkJICAgIHRyZWUgbmV3X3RlbXAgPSA6Om1ha2Vfc3NhX25hbWVfZm4gKGNmdW4sIHZlY3R5 cGUsIE5VTEwpOworCQkgICAgdHJlZSB6ZXJvX3ZlYyA9IGJ1aWxkX3ZlY3Rvcl9mcm9tX3ZhbCAo dmVjdHlwZSwgaW5kZXgpOworCQkgICAgZ2ltcGxlICpnID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAo bmV3X3RlbXAsIFZFQ19QRVJNX0VYUFIsIHQsIHQsIHplcm9fdmVjKTsKKwkJICAgIC8qID8/PyBI b3cgdG8gY29udmVydCBiZXR3ZWVuIHZlY3RvciB0eXBlcyBpZiBnaW1wbGVfY2FsbF9saHMgKGYu Y2FsbCkgYW5kCisJCQkgICBuZXdfdGVtcCBoYXZlIGRpZmZlcmVudCB0eXBlcyA/ICAqLworCQkg ICAgZ2ltcGxlICpnMiA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKGdpbXBsZV9jYWxsX2xocyAoZi5j YWxsKSwgTk9QX0VYUFIsIG5ld190ZW1wKTsKKwkJICAgIGdzaV9pbnNlcnRfYmVmb3JlIChmLmdz aSwgZywgR1NJX1NBTUVfU1RNVCk7CisJCSAgICByZXR1cm4gZzI7CisJCSAgfQorCSAgICAgIH0K KwkgIH0KKyAgICAgIH0KKworICAgIHJldHVybiBOVUxMOworICB9CiB9OwogCiBjbGFzcyBzdmxk MXJvX2ltcGwgOiBwdWJsaWMgbG9hZF9yZXBsaWNhdGUK --000000000000dd1c7605d227918d--