From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16156 invoked by alias); 7 Jun 2013 13:04:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 16147 invoked by uid 89); 7 Jun 2013 13:04:43 -0000 X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_05,KHOP_THREADED,MSGID_MULTIPLE_AT,RCVD_IN_DNSWL_LOW,SPF_PASS,TW_QE autolearn=ham version=3.3.1 Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 07 Jun 2013 13:04:42 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 07 Jun 2013 14:04:39 +0100 Received: from e106372vm ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 7 Jun 2013 14:04:38 +0100 From: "Kyrylo Tkachov" To: Cc: "Ramana Radhakrishnan" , "Richard Earnshaw" References: <028a01ce637f$57d84230$0788c690$@tkachov@arm.com> In-Reply-To: <028a01ce637f$57d84230$0788c690$@tkachov@arm.com> Subject: RE: [PATCH][ARM] PR56315 Improve codegen for DImode immediates - XOR Date: Fri, 07 Jun 2013 13:04:00 -0000 Message-ID: <028b01ce637f$8f5ee380$ae1caa80$@tkachov@arm.com> MIME-Version: 1.0 X-MC-Unique: 113060714043905901 Content-Type: multipart/mixed; boundary="----=_NextPart_000_028C_01CE6387.F1234B80" X-Virus-Found: No X-SW-Source: 2013-06/txt/msg00396.txt.bz2 This is a multi-part message in MIME format. ------=_NextPart_000_028C_01CE6387.F1234B80 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Content-length: 2266 Oops, once again with patch attached... gcc/ 2013-06-07 Kyrylo Tkachov PR target/56315 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split. (xordi3): Change operand 2 constraint to arm_xordi_operand. * config/arm/constraints.md (Dg): New constraint. * config/arm/neon.md (xordi3_neon): Remove. (neon_veor): Generate xordi3 instead of xordi3_neon. * config/arm/predicates.md (arm_xordi_operand): New predicate. gcc/testsuite/ 2013-06-07 Kyrylo Tkachov PR target/56315 * gcc.target/arm/xordi3-opt.c: New test. > -----Original Message----- > From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches- > owner@gcc.gnu.org] On Behalf Of Kyrylo Tkachov > Sent: 07 June 2013 14:03 > To: gcc-patches@gcc.gnu.org > Cc: Ramana Radhakrishnan; Richard Earnshaw > Subject: [PATCH][ARM] PR56315 Improve codegen for DImode immediates > - XOR >=20 > Hi all, >=20 > In a similar vein to > http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01838.html this patch > lets > us use the immediate forms of the eor instruction when dealing with > 64-bit constants. > The insn is changed into an insn_and_split and merged with the NEON > version. A new constraint is introduced to make sure the pattern > accepts > the correct range of immediates. >=20 > Now for code: > unsigned long long xor64 (unsigned long long input) > { > return input ^ 0x200000004ULL; > } >=20 > we generate: > eor r0, r0, #4 > eor r1, r1, #2 >=20 > without any mov immediates. >=20 > Regtested arm-none-eabi on qemu with and without -mthumb. >=20 > Ok for trunk? >=20 > Thanks, > Kyrill >=20 > gcc/ > 2013-06-07 Kyrylo Tkachov >=20 > PR target/56315 > * config/arm/arm.md (*xordi3_insn): Change to insn_and_split. > (xordi3): Change operand 2 constraint to arm_xordi_operand. > * config/arm/constraints.md (Dg): New constraint. > * config/arm/neon.md (xordi3_neon): Remove. > (neon_veor): Generate xordi3 instead of xordi3_neon. > * config/arm/predicates.md (arm_xordi_operand): New > predicate. >=20 >=20 > gcc/testsuite/ > 2013-06-07 Kyrylo Tkachov >=20 > PR target/56315 > * gcc.target/arm/xordi3-opt.c: New test. >=20 >=20 >=20 ------=_NextPart_000_028C_01CE6387.F1234B80 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="xordi.patch" Content-Disposition: attachment; filename="xordi.patch" Content-length: 6873 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5jIGIvZ2NjL2NvbmZp Zy9hcm0vYXJtLmMKaW5kZXggNjNlYjJiNy4uMjZlYWIyOCAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKKysrIGIvZ2NjL2NvbmZpZy9hcm0v YXJtLmMKQEAgLTI2ODcsNiArMjY4Nyw3IEBAIGNvbnN0X29rX2Zvcl9kaW1v ZGVfb3AgKEhPU1RfV0lERV9JTlQgaSwgZW51bSBydHhfY29kZSBjb2RlKQog ICAgIHsKICAgICBjYXNlIEFORDoKICAgICBjYXNlIElPUjoKKyAgICBjYXNl IFhPUjoKICAgICAgIHJldHVybiAoY29uc3Rfb2tfZm9yX29wIChoaV92YWws IGNvZGUpIHx8IGhpX3ZhbCA9PSAweEZGRkZGRkZGKQogICAgICAgICAgICAg ICAmJiAoY29uc3Rfb2tfZm9yX29wIChsb192YWwsIGNvZGUpIHx8IGxvX3Zh bCA9PSAweEZGRkZGRkZGKTsKICAgICBjYXNlIFBMVVM6CmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL2FybS9hcm0ubWQgYi9nY2MvY29uZmlnL2FybS9hcm0u bWQKaW5kZXggOTUyOTNiZC4uYjE3ZmZlZSAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9hcm0vYXJtLm1kCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5tZApA QCAtMzE5MCwxOSArMzE5MCw0OSBAQAogKGRlZmluZV9leHBhbmQgInhvcmRp MyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgICAgICAgICAwICJzX3Jl Z2lzdGVyX29wZXJhbmQiICIiKQogCSh4b3I6REkgKG1hdGNoX29wZXJhbmQ6 REkgMSAic19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKLQkJKG1hdGNoX29wZXJh bmQ6REkgMiAic19yZWdpc3Rlcl9vcGVyYW5kIiAiIikpKV0KKwkJKG1hdGNo X29wZXJhbmQ6REkgMiAiYXJtX3hvcmRpX29wZXJhbmQiICIiKSkpXQogICAi VEFSR0VUXzMyQklUIgogICAiIgogKQogCi0oZGVmaW5lX2luc24gIip4b3Jk aTNfaW5zbiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgICAgICAgICAw ICJzX3JlZ2lzdGVyX29wZXJhbmQiICI9JnIsJnIiKQotCSh4b3I6REkgKG1h dGNoX29wZXJhbmQ6REkgMSAic19yZWdpc3Rlcl9vcGVyYW5kIiAgIiUwLHIi KQotCQkobWF0Y2hfb3BlcmFuZDpESSAyICJzX3JlZ2lzdGVyX29wZXJhbmQi ICAgInIsciIpKSldCi0gICJUQVJHRVRfMzJCSVQgJiYgIVRBUkdFVF9JV01N WFQgJiYgIVRBUkdFVF9ORU9OIgotICAiIyIKLSAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiOCIpCi0gICAoc2V0X2F0dHIgInByZWRpY2FibGUiICJ5ZXMiKV0K KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip4b3JkaTNfaW5zbiIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6REkgICAgICAgICAwICJzX3JlZ2lzdGVyX29w ZXJhbmQiICI9dywmciwmciwmciwmciw/dyIpCisJKHhvcjpESSAobWF0Y2hf b3BlcmFuZDpESSAxICJzX3JlZ2lzdGVyX29wZXJhbmQiICJ3ICwlMCxyICww ICxyICx3IikKKwkJKG1hdGNoX29wZXJhbmQ6REkgMiAiYXJtX3hvcmRpX29w ZXJhbmQiICAidyAsciAsciAsRGcsRGcsdyIpKSldCisgICJUQVJHRVRfMzJC SVQgJiYgIVRBUkdFVF9JV01NWFQiCit7CisgIHN3aXRjaCAod2hpY2hfYWx0 ZXJuYXRpdmUpCisgICAgeworICAgIGNhc2UgMToKKyAgICBjYXNlIDI6Cisg ICAgY2FzZSAzOgorICAgIGNhc2UgNDogIC8qIGZhbGwgdGhyb3VnaCAqLwor ICAgICAgcmV0dXJuICIjIjsKKyAgICBjYXNlIDA6IC8qIGZhbGwgdGhyb3Vn aCAqLworICAgIGNhc2UgNTogcmV0dXJuICJ2ZW9yXHQlUDAsICVQMSwgJVAy IjsKKyAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CisgICAgfQor fQorICAiVEFSR0VUXzMyQklUICYmICFUQVJHRVRfSVdNTVhUICYmIHJlbG9h ZF9jb21wbGV0ZWQKKyAgICYmICEoSVNfVkZQX1JFR05VTSAoUkVHTk8gKG9w ZXJhbmRzWzBdKSkpIgorICBbKHNldCAobWF0Y2hfZHVwIDMpIChtYXRjaF9k dXAgNCkpCisgICAoc2V0IChtYXRjaF9kdXAgNSkgKG1hdGNoX2R1cCA2KSld CisgICIKKyAgeworICAgIG9wZXJhbmRzWzNdID0gZ2VuX2xvd3BhcnQgKFNJ bW9kZSwgb3BlcmFuZHNbMF0pOworICAgIG9wZXJhbmRzWzVdID0gZ2VuX2hp Z2hwYXJ0IChTSW1vZGUsIG9wZXJhbmRzWzBdKTsKKworICAgIG9wZXJhbmRz WzRdID0gc2ltcGxpZnlfZ2VuX2JpbmFyeSAoWE9SLCBTSW1vZGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2xv d3BhcnQgKFNJbW9kZSwgb3BlcmFuZHNbMV0pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9sb3dwYXJ0IChTSW1v ZGUsIG9wZXJhbmRzWzJdKSk7CisgICAgb3BlcmFuZHNbNl0gPSBzaW1wbGlm eV9nZW5fYmluYXJ5IChYT1IsIFNJbW9kZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5faGlnaHBhcnQgKFNJbW9k ZSwgb3BlcmFuZHNbMV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdlbl9oaWdocGFydF9tb2RlIChTSW1vZGUsIERJ bW9kZSwgb3BlcmFuZHNbMl0pKTsKKworICB9IgorICBbKHNldF9hdHRyICJs ZW5ndGgiICIqLDgsOCw4LDgsKiIpCisgICAoc2V0X2F0dHIgIm5lb25fdHlw ZSIgIm5lb25faW50XzEsKiwqLCosKixuZW9uX2ludF8xIikKKyAgIChzZXRf YXR0ciAiYXJjaCIgIm5lb25fZm9yXzY0Yml0cywqLCosKiwqLGF2b2lkX25l b25fZm9yXzY0Yml0cyIpXQogKQogCiAoZGVmaW5lX2luc24gIip4b3JkaV96 ZXNpZGlfZGkiCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9jb25zdHJh aW50cy5tZCBiL2djYy9jb25maWcvYXJtL2NvbnN0cmFpbnRzLm1kCmluZGV4 IDUzY2JmZjYuLjdjZDhlMzEgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJt L2NvbnN0cmFpbnRzLm1kCisrKyBiL2djYy9jb25maWcvYXJtL2NvbnN0cmFp bnRzLm1kCkBAIC0yNjYsNiArMjY2LDEyIEBACiAgKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKICAgICAgIChtYXRjaF90ZXN0ICJUQVJHRVRfMzJC SVQgJiYgY29uc3Rfb2tfZm9yX2RpbW9kZV9vcCAoaXZhbCwgSU9SKSIpKSkK IAorKGRlZmluZV9jb25zdHJhaW50ICJEZyIKKyAiQGludGVybmFsCisgIElu IEFSTS9UaHVtYi0yIHN0YXRlIGEgY29uc3RfaW50IHRoYXQgY2FuIGJlIHVz ZWQgYnkgaW5zbiB4b3JkaS4iCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3Rf aW50IikKKyAgICAgIChtYXRjaF90ZXN0ICJUQVJHRVRfMzJCSVQgJiYgY29u c3Rfb2tfZm9yX2RpbW9kZV9vcCAoaXZhbCwgWE9SKSIpKSkKKwogKGRlZmlu ZV9jb25zdHJhaW50ICJEaSIKICAiQGludGVybmFsCiAgIEluIEFSTS9UaHVt Yi0yIHN0YXRlIGEgY29uc3RfaW50IG9yIGNvbnN0X2RvdWJsZSB3aGVyZSBi b3RoIHRoZSBoaWdoCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9uZW9u Lm1kIGIvZ2NjL2NvbmZpZy9hcm0vbmVvbi5tZAppbmRleCAxNjk3MDA4Li5l ODE0ZGYwIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9uZW9uLm1kCisr KyBiL2djYy9jb25maWcvYXJtL25lb24ubWQKQEAgLTc4MiwyMSArNzgyLDYg QEAKICAgWyhzZXRfYXR0ciAibmVvbl90eXBlIiAibmVvbl9pbnRfMSIpXQog KQogCi0oZGVmaW5lX2luc24gInhvcmRpM19uZW9uIgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpESSAwICJzX3JlZ2lzdGVyX29wZXJhbmQiICI9dyw/JnIs PyZyLD93IikKLSAgICAgICAgKHhvcjpESSAobWF0Y2hfb3BlcmFuZDpESSAx ICJzX3JlZ2lzdGVyX29wZXJhbmQiICIldywwLHIsdyIpCi0JICAgICAgICAo bWF0Y2hfb3BlcmFuZDpESSAyICJzX3JlZ2lzdGVyX29wZXJhbmQiICJ3LHIs cix3IikpKV0KLSAgIlRBUkdFVF9ORU9OIgotICAiQAotICAgdmVvclx0JVAw LCAlUDEsICVQMgotICAgIwotICAgIwotICAgdmVvclx0JVAwLCAlUDEsICVQ MiIKLSAgWyhzZXRfYXR0ciAibmVvbl90eXBlIiAibmVvbl9pbnRfMSwqLCos bmVvbl9pbnRfMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIiosOCw4LCoi KQotICAgKHNldF9hdHRyICJhcmNoIiAibmVvbl9mb3JfNjRiaXRzLCosKixh dm9pZF9uZW9uX2Zvcl82NGJpdHMiKV0KLSkKLQogKGRlZmluZV9pbnNuICJv bmVfY21wbDxtb2RlPjIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZEUSAw ICJzX3JlZ2lzdGVyX29wZXJhbmQiICI9dyIpCiAgICAgICAgIChub3Q6VkRR IChtYXRjaF9vcGVyYW5kOlZEUSAxICJzX3JlZ2lzdGVyX29wZXJhbmQiICJ3 IikpKV0KQEAgLTU2MDUsNyArNTU5MCw3IEBACiAgICAobWF0Y2hfb3BlcmFu ZDpTSSAzICJpbW1lZGlhdGVfb3BlcmFuZCIgIiIpXQogICAiVEFSR0VUX05F T04iCiB7Ci0gIGVtaXRfaW5zbiAoZ2VuX3hvcjxtb2RlPjM8Vl9zdWY2ND4g KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pKTsKKyAg ZW1pdF9pbnNuIChnZW5feG9yPG1vZGU+MyAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdLCBvcGVyYW5kc1syXSkpOwogICBET05FOwogfSkKIApkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9hcm0vcHJlZGljYXRlcy5tZCBiL2djYy9jb25m aWcvYXJtL3ByZWRpY2F0ZXMubWQKaW5kZXggM2NlYzU2OS4uZDE2OWNiMiAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vcHJlZGljYXRlcy5tZAorKysg Yi9nY2MvY29uZmlnL2FybS9wcmVkaWNhdGVzLm1kCkBAIC0xNzksNiArMTc5 LDExIEBACiAJICAgIChtYXRjaF90ZXN0ICJjb25zdF9va19mb3JfZGltb2Rl X29wIChJTlRWQUwgKG9wKSwgSU9SKSIpKQogICAgICAgIChtYXRjaF9vcGVy YW5kIDAgIm5lb25fbG9naWNfb3AyIikpKQogCisoZGVmaW5lX3ByZWRpY2F0 ZSAiYXJtX3hvcmRpX29wZXJhbmQiCisgIChpb3IgKG1hdGNoX29wZXJhbmQg MCAic19yZWdpc3Rlcl9vcGVyYW5kIikKKyAgICAgICAoYW5kIChtYXRjaF9j b2RlICJjb25zdF9pbnQiKQorCSAgICAobWF0Y2hfdGVzdCAiY29uc3Rfb2tf Zm9yX2RpbW9kZV9vcCAoSU5UVkFMIChvcCksIFhPUikiKSkpKQorCiAoZGVm aW5lX3ByZWRpY2F0ZSAiYXJtX2FkZGRpX29wZXJhbmQiCiAgIChpb3IgKG1h dGNoX29wZXJhbmQgMCAic19yZWdpc3Rlcl9vcGVyYW5kIikKICAgICAgICAo YW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQiKQo= ------=_NextPart_000_028C_01CE6387.F1234B80--