From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by sourceware.org (Postfix) with ESMTPS id 63B6E3858017 for ; Fri, 17 Dec 2021 10:04:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 63B6E3858017 Received: by mail-wr1-x429.google.com with SMTP id v11so2963317wrw.10 for ; Fri, 17 Dec 2021 02:04:39 -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=jkcLPMQCdSVeRrhWc9tOt7p9pwvt+qoSO5I+Pv5Zi7k=; b=ZtCZbXvQ/H4z8Bdxa9qW92moKWW0fuUMwrS88obUEnXWmAwbg7qXHcE35wEkXolSgM oY0KlGdYR6Mub3Ytb8uIVemfYQT6UETIhncj+S0+Yg22V47BsnPUcV5YE+3EvPLdtRQs an+utIZ7X1BGbnGxpS9gwyEl8zdq9tDyJUQQq7KUVK5kPMoFmVhHJS+/zuIHP0+TTdKu AIlKPDE0M2+FueDR8O/l6PepdFCY5rktklOC4yEke4GEfQFJAXCX0ggqyxTcwYn0Vefn 0T8OYoJk9ITyMwo0kUarplu3jCMwQuqYyRfUlku7zj8RYP9qKzt+AZ18fmJTkhDhdY5m 0W9A== X-Gm-Message-State: AOAM531HBmsIQuCpYkcDdgDlbr2Kl1Ocaglz7NkrN/WDY743BdHwnLhB 4T7q+hJygixLAbbI1S00odRdMmsh+R6xeYlfBBEc8Ss14h4= X-Google-Smtp-Source: ABdhPJy1gQOr7JrRlxZe1ce4Fz48d9bzJKjqZHU7G+wND1K47RiKaEUG5uLlT+sGKG19mI4Z82QTwXy6lLbq6YUCwKk= X-Received: by 2002:a5d:4706:: with SMTP id y6mr1892089wrq.435.1639735478049; Fri, 17 Dec 2021 02:04:38 -0800 (PST) MIME-Version: 1.0 From: Prathamesh Kulkarni Date: Fri, 17 Dec 2021 15:34:01 +0530 Message-ID: Subject: [1/2] PR96463 - aarch64 specific changes To: gcc Patches , Richard Sandiford Content-Type: multipart/mixed; boundary="000000000000b2073b05d354aa3a" X-Spam-Status: No, score=-9.1 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: Fri, 17 Dec 2021 10:04:41 -0000 --000000000000b2073b05d354aa3a Content-Type: text/plain; charset="UTF-8" Hi, The patch folds: lhs = svld1rq ({-1, -1, -1, ...}, &v[0]) into: lhs = vec_perm_expr and expands above vec_perm_expr using aarch64_expand_sve_dupq. With patch, for following test: #include #include svint32_t foo (int32x4_t x) { return svld1rq (svptrue_b8 (), &x[0]); } it generates following code: foo: .LFB4350: dup z0.q, z0.q[0] ret and passes bootstrap+test on aarch64-linux-gnu. But I am not sure if the changes to aarch64_evpc_sve_tbl are correct. Thanks, Prathamesh --000000000000b2073b05d354aa3a Content-Type: text/plain; charset="US-ASCII"; name="pr96463-3-aarch64.txt" Content-Disposition: attachment; filename="pr96463-3-aarch64.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kxa7phdr0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS1idWlsdGlucy1iYXNl LmNjIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3ZlLWJ1aWx0aW5zLWJhc2UuY2MKaW5k ZXggMDJlNDJhNzFlNWUuLmUyMWJiZWMzNjBjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMtYmFzZS5jYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC1zdmUtYnVpbHRpbnMtYmFzZS5jYwpAQCAtMTIwNyw2ICsxMjA3LDU2IEBAIHB1Ymxp YzoKICAgICBpbnNuX2NvZGUgaWNvZGUgPSBjb2RlX2Zvcl9hYXJjaDY0X3N2ZV9sZDFycSAoZS52 ZWN0b3JfbW9kZSAoMCkpOwogICAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5zbiAo aWNvZGUpOwogICB9CisKKyAgZ2ltcGxlICoKKyAgZm9sZCAoZ2ltcGxlX2ZvbGRlciAmZikgY29u c3QgT1ZFUlJJREUKKyAgeworICAgIHRyZWUgYXJnMCA9IGdpbXBsZV9jYWxsX2FyZyAoZi5jYWxs LCAwKTsKKyAgICB0cmVlIGFyZzEgPSBnaW1wbGVfY2FsbF9hcmcgKGYuY2FsbCwgMSk7CisKKyAg ICAvKiBUcmFuc2Zvcm06CisgICAgICAgbGhzID0gc3ZsZDFycSAoey0xLCAtMSwgLi4uIH0sICZ2 WzBdKQorICAgICAgIGludG86CisgICAgICAgbGhzID0gdmVjX3Blcm1fZXhwcjx2LCB2LCB7MCwg MSwgMiwgMywgLi4ufT4uCisgICAgICAgb24gbGl0dGxlIGVuZGlhbiB0YXJnZXQuICAqLworCisg ICAgaWYgKCFCWVRFU19CSUdfRU5ESUFOCisJJiYgaW50ZWdlcl9hbGxfb25lc3AgKGFyZzApCisJ JiYgVFJFRV9DT0RFIChhcmcxKSA9PSBBRERSX0VYUFIpCisgICAgICB7CisJdHJlZSB0ID0gVFJF RV9PUEVSQU5EIChhcmcxLCAwKTsKKwlpZiAoVFJFRV9DT0RFICh0KSA9PSBBUlJBWV9SRUYpCisJ ICB7CisJICAgIHRyZWUgaW5kZXggPSBUUkVFX09QRVJBTkQgKHQsIDEpOworCSAgICB0ID0gVFJF RV9PUEVSQU5EICh0LCAwKTsKKwkgICAgaWYgKGludGVnZXJfemVyb3AgKGluZGV4KSAmJiBUUkVF X0NPREUgKHQpID09IFZJRVdfQ09OVkVSVF9FWFBSKQorCSAgICAgIHsKKwkJdCA9IFRSRUVfT1BF UkFORCAodCwgMCk7CisJCXRyZWUgdmVjdHlwZSA9IFRSRUVfVFlQRSAodCk7CisJCWlmIChWRUNU T1JfVFlQRV9QICh2ZWN0eXBlKQorCQkgICAgJiYga25vd25fZXEgKFRZUEVfVkVDVE9SX1NVQlBB UlRTICh2ZWN0eXBlKSwgNHUpCisJCSAgICAmJiB3aTo6dG9fd2lkZSAoVFlQRV9TSVpFICh2ZWN0 eXBlKSkgPT0gMTI4KQorCQkgIHsKKwkJICAgIHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxfbGhzIChm LmNhbGwpOworCQkgICAgdHJlZSBsaHNfdHlwZSA9IFRSRUVfVFlQRSAobGhzKTsKKwkJICAgIGlu dCBzb3VyY2VfbmVsdHMgPSBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAodmVjdHlwZSkudG9fY29uc3Rh bnQgKCk7CisJCSAgICB2ZWNfcGVybV9idWlsZGVyIHNlbCAoVFlQRV9WRUNUT1JfU1VCUEFSVFMg KGxoc190eXBlKSwgc291cmNlX25lbHRzLCAxKTsKKwkJICAgIGZvciAoaW50IGkgPSAwOyBpIDwg c291cmNlX25lbHRzOyBpKyspCisJCSAgICAgIHNlbC5xdWlja19wdXNoIChpKTsKKworCQkgICAg dmVjX3Blcm1faW5kaWNlcyBpbmRpY2VzIChzZWwsIDEsIHNvdXJjZV9uZWx0cyk7CisJCSAgICBp ZiAoIWNhbl92ZWNfcGVybV9jb25zdF9wIChUWVBFX01PREUgKGxoc190eXBlKSwgaW5kaWNlcykp CisJCSAgICAgIHJldHVybiBOVUxMOworCisJCSAgICB0cmVlIG1hc2sgPSB2ZWNfcGVybV9pbmRp Y2VzX3RvX3RyZWUgKGxoc190eXBlLCBpbmRpY2VzKTsKKwkJICAgIHJldHVybiBnaW1wbGVfYnVp bGRfYXNzaWduIChsaHMsIFZFQ19QRVJNX0VYUFIsIHQsIHQsIG1hc2spOworCQkgIH0KKwkgICAg ICB9CisJICB9CisgICAgICB9CisKKyAgICByZXR1cm4gTlVMTDsKKyAgfQogfTsKIAogY2xhc3Mg c3ZsZDFyb19pbXBsIDogcHVibGljIGxvYWRfcmVwbGljYXRlCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYwppbmRl eCBmMDczMzBjZmY0Zi4uYWYyN2Y1NTBiZTMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LmMKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYwpAQCAtMjMwMDIs OCArMjMwMDIsMzIgQEAgYWFyY2g2NF9ldnBjX3N2ZV90YmwgKHN0cnVjdCBleHBhbmRfdmVjX3Bl cm1fZCAqZCkKIAogICBtYWNoaW5lX21vZGUgc2VsX21vZGUgPSByZWxhdGVkX2ludF92ZWN0b3Jf bW9kZSAoZC0+dm1vZGUpLnJlcXVpcmUgKCk7CiAgIHJ0eCBzZWwgPSB2ZWNfcGVybV9pbmRpY2Vz X3RvX3J0eCAoc2VsX21vZGUsIGQtPnBlcm0pOworCiAgIGlmIChkLT5vbmVfdmVjdG9yX3ApCi0g ICAgZW1pdF91bnNwZWMyIChkLT50YXJnZXQsIFVOU1BFQ19UQkwsIGQtPm9wMCwgZm9yY2VfcmVn IChzZWxfbW9kZSwgc2VsKSk7CisgICAgeworICAgICAgYm9vbCB1c2VfZHVwcSA9IGZhbHNlOwor ICAgICAgLyogQ2hlY2sgaWYgc2VsIGlzIGR1cCB2ZWN0b3Igd2l0aCBlbmNvZGVkIGVsZW1lbnRz IHswLCAxLCAyLCAuLi4gbmVsdHN9ICAqLworICAgICAgaWYgKEdFVF9DT0RFIChzZWwpID09IENP TlNUX1ZFQ1RPUgorCSAgJiYgIUdFVF9NT0RFX05VTklUUyAoR0VUX01PREUgKHNlbCkpLmlzX2Nv bnN0YW50ICgpCisJICAmJiBDT05TVF9WRUNUT1JfRFVQTElDQVRFX1AgKHNlbCkpCisJICB7CisJ ICAgIHVuc2lnbmVkIG5lbHRzID0gY29uc3RfdmVjdG9yX2VuY29kZWRfbmVsdHMgKHNlbCk7CisJ ICAgIHVuc2lnbmVkIGk7CisJICAgIGZvciAoaSA9IDA7IGkgPCBuZWx0czsgaSsrKQorCSAgICAg IHsKKwkJcnR4IGVsZW0gPSBDT05TVF9WRUNUT1JfRU5DT0RFRF9FTFQoc2VsLCBpKTsKKwkJaWYg KCEoQ09OU1RfSU5UX1AgKGVsZW0pICYmIElOVFZBTChlbGVtKSA9PSBpKSkKKwkJICBicmVhazsK KwkgICAgICB9CisJICAgIGlmIChpID09IG5lbHRzKQorCSAgICAgIHVzZV9kdXBxID0gdHJ1ZTsK KwkgIH0KKworICAgICAgaWYgKHVzZV9kdXBxKQorCWFhcmNoNjRfZXhwYW5kX3N2ZV9kdXBxIChk LT50YXJnZXQsIEdFVF9NT0RFIChkLT50YXJnZXQpLCBkLT5vcDApOworICAgICAgZWxzZQorCWVt aXRfdW5zcGVjMiAoZC0+dGFyZ2V0LCBVTlNQRUNfVEJMLCBkLT5vcDAsIGZvcmNlX3JlZyAoc2Vs X21vZGUsIHNlbCkpOworICAgIH0KICAgZWxzZQogICAgIGFhcmNoNjRfZXhwYW5kX3N2ZV92ZWNf cGVybSAoZC0+dGFyZ2V0LCBkLT5vcDAsIGQtPm9wMSwgc2VsKTsKICAgcmV0dXJuIHRydWU7Cg== --000000000000b2073b05d354aa3a--