From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com [IPv6:2607:f8b0:4864:20::f2b]) by sourceware.org (Postfix) with ESMTPS id 5312E3858C2C for ; Tue, 4 Jan 2022 18:47:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5312E3858C2C Received: by mail-qv1-xf2b.google.com with SMTP id kc16so35274482qvb.3 for ; Tue, 04 Jan 2022 10:47:02 -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=Oii/3X9Q39uvWtW34xkG729JPEvtWVFy2hLNvW8ROjA=; b=tDAET/cqrA3oQBjwPTAWwxDy4VSJQp3Y809u7ccQs37YmdCQLutOZyEYPnC6C8hH4W A500H6vOCsWWkgaV2CtwP5y0TaAJq29GeN1tNa7DeA3xibH/vSH5nQzM6B6dxv7wKpOj dH1ujfW2+rxziUjQv62iA+Wu1EQ/UIRcx46LLUO6BMR3QA+SOdK87tOkHbEHutQMNS7q XoVGy+DXRmvohv25ufQ3mmRuE8moDkaYmGhxaFvYovLRn1aq3vJkRe//y9TDIGXTJyi0 kvq1uRyKxCEqX4Eq4a3F9Xn2MukV8ZJwHDljc2JYyrqp99eWHFCtDobnK2SuMJwlPkRl Y+nw== X-Gm-Message-State: AOAM5314IE7kt5Dxw1cRO/Hy1KzPNB/8oVh+xPPB54PkEe6tRK3/qWZo CiGSePSSk6GdX2hxwW5Of0mIBiFuP+TecTC+38k84vEtxnSsxw== X-Google-Smtp-Source: ABdhPJyBtbxZfxmr7f4OF8Dbqo1UeSOviYK/aQCaZZCYSByRhXsNhVALsLD8oBRqF0b7QPJnQYMHgchRk7hQVA6zmLE= X-Received: by 2002:a05:6214:301e:: with SMTP id ke30mr47020219qvb.2.1641322021602; Tue, 04 Jan 2022 10:47:01 -0800 (PST) MIME-Version: 1.0 From: Uros Bizjak Date: Tue, 4 Jan 2022 19:46:50 +0100 Message-ID: Subject: [PATCH] i386: Introduce V2QImode vectorized logic [PR103861] To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="0000000000000f791205d4c61092" X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, 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: Tue, 04 Jan 2022 18:47:04 -0000 --0000000000000f791205d4c61092 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Add V2QImode logic operations with SSE and GP registers and split them to V4QImode SSE instructions or SImode GP instructions. The patch also fixes PR target/103900. 2022-01-04 Uro=C5=A1 Bizjak gcc/ChangeLog: PR target/103861 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern. (one_cmplv2qi3 splitters): New post-reload splitters. (*andnotv2qi3): New insn pattern. (andnotv2qi3 splitters): New post-reload splitters. (v2qi3): New insn pattern. (v2qi3 splitters): New post-reload splitters. gcc/testsuite/ChangeLog: PR target/103861 * gcc.target/i386/warn-vect-op-2.c: Adjust warnings. * gcc.target/i386/pr103900.c: New test. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Pushed to master. Uros. --0000000000000f791205d4c61092 Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ky0gqrvn0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9tbXgubWQgYi9nY2MvY29uZmlnL2kzODYvbW14 Lm1kCmluZGV4IDViMzNkM2NmYzFjLi5mYzhlYzVlNGQ0OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9pMzg2L21teC5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvbW14Lm1kCkBAIC0yNzQ1LDYgKzI3 NDUsNDUgQEAKICAgIlRBUkdFVF9TU0UyIgogICAib3BlcmFuZHNbMl0gPSBmb3JjZV9yZWcgKDxN T0RFPm1vZGUsIENPTlNUTTFfUlRYICg8TU9ERT5tb2RlKSk7IikKIAorKGRlZmluZV9pbnNuICJv bmVfY21wbHYycWkyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMlFJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciwmeCwmdiIpCisJKG5vdDpWMlFJCisJICAobWF0Y2hfb3BlcmFuZDpWMlFJIDEg InJlZ2lzdGVyX29wZXJhbmQiICIwLHgsdiIpKSldCisgICIiCisgICIjIgorICBbKHNldF9hdHRy ICJpc2EiICIqLHNzZTIsYXZ4NTEydmwiKQorICAgKHNldF9hdHRyICJ0eXBlIiAibmVnbm90LHNz ZWxvZyxzc2Vsb2ciKQorICAgKHNldF9hdHRyICJtb2RlIiAiU0ksVEksVEkiKV0pCisKKyhkZWZp bmVfc3BsaXQKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJRSSAwICJnZW5lcmFsX3JlZ19vcGVy YW5kIikKKwkobm90OlYyUUkKKwkgIChtYXRjaF9vcGVyYW5kOlYyUUkgMSAiZ2VuZXJhbF9yZWdf b3BlcmFuZCIpKSldCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHNldCAobWF0Y2hfZHVwIDAp CisJKG5vdDpTSSAobWF0Y2hfZHVwIDEpKSldCit7CisgIG9wZXJhbmRzWzFdID0gZ2VuX2xvd3Bh cnQgKFNJbW9kZSwgb3BlcmFuZHNbMV0pOworICBvcGVyYW5kc1swXSA9IGdlbl9sb3dwYXJ0IChT SW1vZGUsIG9wZXJhbmRzWzBdKTsKK30pCisKKyhkZWZpbmVfc3BsaXQKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjJRSSAwICJzc2VfcmVnX29wZXJhbmQiKQorCShub3Q6VjJRSQorCSAgKG1hdGNo X29wZXJhbmQ6VjJRSSAxICJzc2VfcmVnX29wZXJhbmQiKSkpXQorICAiVEFSR0VUX1NTRTIgJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhzZXQgKG1hdGNoX2R1cCAwKQorCSh4b3I6VjRRSQorCSAg KG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVwIDEpKSldCit7CisgIGVtaXRfaW5zbgorICAgKGdlbl9y dHhfU0VUIChnZW5fcnR4X1JFRyAoVjE2UUltb2RlLCBSRUdOTyAob3BlcmFuZHNbMF0pKSwKKwkJ IENPTlNUTTFfUlRYIChWMTZRSW1vZGUpKSk7CisKKyAgb3BlcmFuZHNbMV0gPSBnZW5fbG93cGFy dCAoVjRRSW1vZGUsIG9wZXJhbmRzWzFdKTsKKyAgb3BlcmFuZHNbMF0gPSBnZW5fbG93cGFydCAo VjRRSW1vZGUsIG9wZXJhbmRzWzBdKTsKK30pCisKIChkZWZpbmVfaW5zbiAibW14X2FuZG5vdDxt b2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOk1NWE1PREVJIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9eSx4LHgsdiIpCiAJKGFuZDpNTVhNT0RFSQpAQCAtMjc3NSw2ICsyODE0LDY5IEBACiAg ICAoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQogICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0p CiAKKyhkZWZpbmVfaW5zbiAiKmFuZG5vdHYycWkzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW MlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9JnIscix4LHgsdiIpCisgICAgICAgIChhbmQ6VjJR SQorCSAgKG5vdDpWMlFJIChtYXRjaF9vcGVyYW5kOlYyUUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IjAsciwwLHgsdiIpKQorCSAgKG1hdGNoX29wZXJhbmQ6VjJRSSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAicixyLHgseCx2IikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KKyAgIiIK KyAgIiMiCisgIFsoc2V0X2F0dHIgImlzYSIgIiosYm1pLHNzZTJfbm9hdngsYXZ4LGF2eDUxMnZs IikKKyAgIChzZXRfYXR0ciAidHlwZSIgImFsdSxiaXRtYW5pcCxzc2Vsb2csc3NlbG9nLHNzZWxv ZyIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSxTSSxUSSxUSSxUSSIpXSkKKworKGRlZmluZV9z cGxpdAorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMlFJIDAgImdlbmVyYWxfcmVnX29wZXJhbmQi KQorICAgICAgICAoYW5kOlYyUUkKKwkgIChub3Q6VjJRSSAobWF0Y2hfb3BlcmFuZDpWMlFJIDEg ImdlbmVyYWxfcmVnX29wZXJhbmQiKSkKKwkgIChtYXRjaF9vcGVyYW5kOlYyUUkgMiAiZ2VuZXJh bF9yZWdfb3BlcmFuZCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCisgICJU QVJHRVRfQk1JICYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwKKyAgICAgWyhzZXQg KG1hdGNoX2R1cCAwKQorCSAgIChhbmQ6U0kgKG5vdDpTSSAobWF0Y2hfZHVwIDEpKSAobWF0Y2hf ZHVwIDIpKSkKKyAgICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldKV0KK3sKKyAgb3Bl cmFuZHNbMl0gPSBnZW5fbG93cGFydCAoU0ltb2RlLCBvcGVyYW5kc1syXSk7CisgIG9wZXJhbmRz WzFdID0gZ2VuX2xvd3BhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMV0pOworICBvcGVyYW5kc1swXSA9 IGdlbl9sb3dwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzBdKTsKK30pCisKKyhkZWZpbmVfc3BsaXQK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJRSSAwICJnZW5lcmFsX3JlZ19vcGVyYW5kIikKKyAg ICAgICAgKGFuZDpWMlFJCisJICAobm90OlYyUUkgKG1hdGNoX29wZXJhbmQ6VjJRSSAxICJnZW5l cmFsX3JlZ19vcGVyYW5kIikpCisJICAobWF0Y2hfb3BlcmFuZDpWMlFJIDIgImdlbmVyYWxfcmVn X29wZXJhbmQiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQorICAiIVRBUkdF VF9CTUkgJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAg ICAobm90OlNJIChtYXRjaF9kdXAgMSkpKQorICAgKHBhcmFsbGVsCisgICAgIFsoc2V0IChtYXRj aF9kdXAgMCkKKwkgICAoYW5kOlNJIChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAyKSkpCisgICAg ICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCit7CisgIG9wZXJhbmRzWzJdID0gZ2Vu X2xvd3BhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMl0pOworICBvcGVyYW5kc1sxXSA9IGdlbl9sb3dw YXJ0IChTSW1vZGUsIG9wZXJhbmRzWzFdKTsKKyAgb3BlcmFuZHNbMF0gPSBnZW5fbG93cGFydCAo U0ltb2RlLCBvcGVyYW5kc1swXSk7Cit9KQorCisoZGVmaW5lX3NwbGl0CisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYyUUkgMCAic3NlX3JlZ19vcGVyYW5kIikKKyAgICAgICAgKGFuZDpWMlFJCisJ ICAobm90OlYyUUkgKG1hdGNoX29wZXJhbmQ6VjJRSSAxICJzc2VfcmVnX29wZXJhbmQiKSkKKwkg IChtYXRjaF9vcGVyYW5kOlYyUUkgMiAic3NlX3JlZ19vcGVyYW5kIikpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBGTEFHU19SRUcpKV0KKyAgIlRBUkdFVF9TU0UyICYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkoYW5kOlY0UUkgKG5vdDpWNFFJIChtYXRjaF9kdXAg MSkpIChtYXRjaF9kdXAgMikpKV0KK3sKKyAgb3BlcmFuZHNbMl0gPSBnZW5fbG93cGFydCAoVjRR SW1vZGUsIG9wZXJhbmRzWzJdKTsKKyAgb3BlcmFuZHNbMV0gPSBnZW5fbG93cGFydCAoVjRRSW1v ZGUsIG9wZXJhbmRzWzFdKTsKKyAgb3BlcmFuZHNbMF0gPSBnZW5fbG93cGFydCAoVjRRSW1vZGUs IG9wZXJhbmRzWzBdKTsKK30pCisKIChkZWZpbmVfZXhwYW5kICJtbXhfPGNvZGU+PG1vZGU+MyIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6TU1YTU9ERUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCiAJ KGFueV9sb2dpYzpNTVhNT0RFSQpAQCAtMjgyMSw2ICsyOTIzLDUwIEBACiAgICAoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2ciKQogICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKKyhkZWZpbmVf aW5zbiAiPGNvZGU+djJxaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyUUkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yLHgseCx2IikKKyAgICAgICAgKGFueV9sb2dpYzpWMlFJCisJICAobWF0 Y2hfb3BlcmFuZDpWMlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLHgsdiIpCisJICAobWF0 Y2hfb3BlcmFuZDpWMlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyLHgseCx2IikpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KKyAgIiIKKyAgIiMiCisgIFsoc2V0X2F0dHIgImlz YSIgIiosc3NlMl9ub2F2eCxhdngsYXZ4NTEydmwiKQorICAgKHNldF9hdHRyICJ0eXBlIiAiYWx1 LHNzZWxvZyxzc2Vsb2csc3NlbG9nIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJLFRJLFRJLFRJ IildKQorCisoZGVmaW5lX3NwbGl0CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyUUkgMCAiZ2Vu ZXJhbF9yZWdfb3BlcmFuZCIpCisgICAgICAgIChhbnlfbG9naWM6VjJRSQorCSAgKG1hdGNoX29w ZXJhbmQ6VjJRSSAxICJnZW5lcmFsX3JlZ19vcGVyYW5kIikKKwkgIChtYXRjaF9vcGVyYW5kOlYy UUkgMiAiZ2VuZXJhbF9yZWdfb3BlcmFuZCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1Nf UkVHKSldCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsCisgICAgIFsoc2V0ICht YXRjaF9kdXAgMCkKKwkgICAoYW55X2xvZ2ljOlNJIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAy KSkpCisgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCit7CisgIG9wZXJhbmRz WzJdID0gZ2VuX2xvd3BhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMl0pOworICBvcGVyYW5kc1sxXSA9 IGdlbl9sb3dwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzFdKTsKKyAgb3BlcmFuZHNbMF0gPSBnZW5f bG93cGFydCAoU0ltb2RlLCBvcGVyYW5kc1swXSk7Cit9KQorCisoZGVmaW5lX3NwbGl0CisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlYyUUkgMCAic3NlX3JlZ19vcGVyYW5kIikKKyAgICAgICAgKGFu eV9sb2dpYzpWMlFJCisJICAobWF0Y2hfb3BlcmFuZDpWMlFJIDEgInNzZV9yZWdfb3BlcmFuZCIp CisJICAobWF0Y2hfb3BlcmFuZDpWMlFJIDIgInNzZV9yZWdfb3BlcmFuZCIpKSkKKyAgIChjbG9i YmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCisgICJUQVJHRVRfU1NFMiAmJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHNldCAobWF0Y2hfZHVwIDApCisJKGFueV9sb2dpYzpWNFFJIChtYXRjaF9kdXAg MSkgKG1hdGNoX2R1cCAyKSkpXQoreworICBvcGVyYW5kc1syXSA9IGdlbl9sb3dwYXJ0IChWNFFJ bW9kZSwgb3BlcmFuZHNbMl0pOworICBvcGVyYW5kc1sxXSA9IGdlbl9sb3dwYXJ0IChWNFFJbW9k ZSwgb3BlcmFuZHNbMV0pOworICBvcGVyYW5kc1swXSA9IGdlbl9sb3dwYXJ0IChWNFFJbW9kZSwg b3BlcmFuZHNbMF0pOworfSkKKwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiA7OwogOzsgUGFyYWxsZWwgaW50ZWdy YWwgZWxlbWVudCBzd2l6emxpbmcKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L3ByMTAzOTAwLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjEwMzkw MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzkzYjQ5MmEwNQot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMTAzOTAw LmMKQEAgLTAsMCArMSwyNSBAQAorLyogUFIgdGFyZ2V0LzEwMzkwMCAqLworLyogeyBkZy1kbyBj b21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLWZuby10cmVlLWRjZSAtZm5vLXRyZWUt ZHNlIiB9ICovCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rv cl9zaXplX18oMikpKSBUOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9f dmVjdG9yX3NpemVfXygzMikpKSBVOwordHlwZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygoX192ZWN0 b3Jfc2l6ZV9fKDY0KSkpIFY7Cit0eXBlZGVmIGludCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9z aXplX18oMzIpKSkgVzsKK1QgZm9vMF92MTI4dThfMDsKK1UgZm9vMF92MjU2dThfMDsKK1QgZm9v MF92MTZ1MTZfMDsKK2ludCBmb28wX3YxMjh1NjRfMCwgZm9vMF92NTEydTY0XzA7CisKK3ZvaWQK K2ZvbzAoKSB7CisgIFYgdjUxMnUxMjhfMDsKKyAgVCB2MTZ1OF8wOworICBmb28wX3YxMjh1NjRf MCArPSAoc2hvcnQpdjE2dThfMDsKKyAgVCB2MTZ1OF8xID0gfl9fYnVpbHRpbl9zaHVmZmxldmVj dG9yKGZvbzBfdjEyOHU4XzAsIGZvbzBfdjI1NnU4XzAsIDAsIDUpOworICBXIHYyNTZ1MTI4XzE7 CisgIFYgdjUxMnU4X3IgPQorICAgICAgZm9vMF92NTEydTY0XzAgKyB2NTEydTEyOF8wOworICAo dW5pb24ge1UgYjt9KXt9LmIgKyAoVSl2MjU2dTEyOF8xOworICBUIHYxNnU4X3IgPSB2MTZ1OF8w ICsgdjE2dThfMSArIGZvbzBfdjE2dTE2XzA7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni93YXJuLXZlY3Qtb3AtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvd2Fybi12ZWN0LW9wLTIuYwppbmRleCA1ZTM3OGI2YmQwNC4uNDU2MGY3MDcwYmIg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3dhcm4tdmVjdC1vcC0y LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Fybi12ZWN0LW9wLTIuYwpA QCAtMTQsNyArMTQsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB2 MCArIHYxLCAgICAgICAgICAgICAgLyogeyBkZy13YXJuaW5nICJleHBhbmRlZCBwaWVjZXdpc2Ui IH0gICovCiAgICAgdjAgLSB2MSwgICAgICAgICAgICAgIC8qIHsgZGctd2FybmluZyAiZXhwYW5k ZWQgcGllY2V3aXNlIiB9ICAqLwogICAgIHYwID4gdjEsICAgICAgICAgICAgICAvKiB7IGRnLXdh cm5pbmcgImV4cGFuZGVkIHBpZWNld2lzZSIgfSAgKi8KLSAgICB2MCAmIHYxLCAgICAgICAgICAg ICAgLyogeyBkZy13YXJuaW5nICJleHBhbmRlZCBpbiBwYXJhbGxlbCIgfSAgKi8KKyAgICB2MCAm IHYxLCAgICAgICAgICAgICAgLyogeyBkZy13YXJuaW5nICJleHBhbmRlZCBwaWVjZXdpc2UiIH0g ICovCiAgICAgX19idWlsdGluX3NodWZmbGUgKHYwLCB2MSksICAgICAgICAvKiB7IGRnLXdhcm5p bmcgImV4cGFuZGVkIHBpZWNld2lzZSIgfSAgKi8KICAgICBfX2J1aWx0aW5fc2h1ZmZsZSAodjAs IHYxLCB2MSkgICAgIC8qIHsgZGctd2FybmluZyAiZXhwYW5kZWQgcGllY2V3aXNlIiB9ICAqLwog ICB9Owo= --0000000000000f791205d4c61092--