From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21673 invoked by alias); 5 Dec 2011 10:44:50 -0000 Received: (qmail 21657 invoked by uid 22791); 5 Dec 2011 10:44:48 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-pz0-f47.google.com (HELO mail-pz0-f47.google.com) (209.85.210.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 05 Dec 2011 10:44:34 +0000 Received: by dake40 with SMTP id e40so4370084dak.20 for ; Mon, 05 Dec 2011 02:44:34 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.199.6 with SMTP id jg6mr22455265pbc.26.1323081872770; Mon, 05 Dec 2011 02:44:32 -0800 (PST) Received: by 10.68.64.138 with HTTP; Mon, 5 Dec 2011 02:44:32 -0800 (PST) In-Reply-To: References: Date: Mon, 05 Dec 2011 10:44:00 -0000 Message-ID: Subject: [Patch ARM] Use vcvt.f32/64.s32 with immediate bits to do fixed to floating point conversions better. From: Ramana Radhakrishnan To: gcc-patches Cc: Patch Tracking Content-Type: multipart/mixed; boundary=e89a8f642d1609085004b3560114 X-IsSubscribed: yes 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 X-SW-Source: 2011-12/txt/msg00333.txt.bz2 --e89a8f642d1609085004b3560114 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1160 The original RFC is here - http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01961.html > > =A0 =A0 =A0 =A0* config/arm/arm.c (vfp3_const_double_for_fract_bits): Def= ine. > =A0 =A0 =A0 =A0* config/arm/arm-protos.h (vfp3_const_double_for_fract_bit= s): Declare. > =A0 =A0 =A0 =A0* config/arm/constraints.md ("Dt"): New constraint. > =A0 =A0 =A0 =A0* config/arm/predicates.md (const_double_vcvt_power_of_two= _reciprocal): > =A0 =A0 =A0 =A0New. > =A0 =A0 =A0 =A0* config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New. > =A0 =A0 =A0 =A0(*arm_combine_vcvt_f32_u32): New. After testing this recently and having received no other feedback on the RFC, I've now committed the attached patch. Ramana 2011-12-05 Ramana Radhakrishnan * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declar= e. * config/arm/constraints.md ("Dt"): New constraint. * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal): New. * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New. (*arm_combine_vcvt_f32_u32): New. --e89a8f642d1609085004b3560114 Content-Type: text/x-patch; charset=US-ASCII; name="final-vcvt.patch" Content-Disposition: attachment; filename="final-vcvt.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gvtcnuqy1 Content-length: 6804 SW5kZXg6IGdjYy9jb25maWcvYXJtL2FybS5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGdjYy9jb25maWcvYXJtL2FybS5jCShyZXZpc2lvbiAxODIw MDQpCisrKyBnY2MvY29uZmlnL2FybS9hcm0uYwkod29ya2luZyBjb3B5KQpA QCAtMTc2NzEsNiArMTc2NzEsMTEgQEAKICAgICAgIH0KICAgICAgIHJldHVy bjsKIAorICAgIGNhc2UgJ3YnOgorCWdjY19hc3NlcnQgKEdFVF9DT0RFICh4 KSA9PSBDT05TVF9ET1VCTEUpOworCWZwcmludGYgKHN0cmVhbSwgIiMlZCIs IHZmcDNfY29uc3RfZG91YmxlX2Zvcl9mcmFjdF9iaXRzICh4KSk7CisJcmV0 dXJuOworCiAgICAgLyogUmVnaXN0ZXIgc3BlY2lmaWVyIGZvciB2bGQxLjE2 L3ZzdDEuMTYuICBUcmFuc2xhdGUgdGhlIFMgcmVnaXN0ZXIKICAgICAgICBu dW1iZXIgaW50byBhIEQgcmVnaXN0ZXIgbnVtYmVyIGFuZCBlbGVtZW50IGlu ZGV4LiAgKi8KICAgICBjYXNlICd6JzoKQEAgLTI1MDM4LDQgKzI1MDQzLDI3 IEBACiAgIHJldHVybiBjb3VudDsKIH0KIAoraW50Cit2ZnAzX2NvbnN0X2Rv dWJsZV9mb3JfZnJhY3RfYml0cyAocnR4IG9wZXJhbmQpCit7CisgIFJFQUxf VkFMVUVfVFlQRSByMDsKKyAgCisgIGlmIChHRVRfQ09ERSAob3BlcmFuZCkg IT0gQ09OU1RfRE9VQkxFKQorICAgIHJldHVybiAwOworICAKKyAgUkVBTF9W QUxVRV9GUk9NX0NPTlNUX0RPVUJMRSAocjAsIG9wZXJhbmQpOworICBpZiAo ZXhhY3RfcmVhbF9pbnZlcnNlIChERm1vZGUsICZyMCkpCisgICAgeworICAg ICAgaWYgKGV4YWN0X3JlYWxfdHJ1bmNhdGUgKERGbW9kZSwgJnIwKSkKKwl7 CisJICBIT1NUX1dJREVfSU5UIHZhbHVlID0gcmVhbF90b19pbnRlZ2VyICgm cjApOworCSAgdmFsdWUgPSB2YWx1ZSAmIDB4ZmZmZmZmZmY7CisJICBpZiAo KHZhbHVlICE9IDApICYmICggKHZhbHVlICYgKHZhbHVlIC0gMSkpID09IDAp KQorCSAgICByZXR1cm4gaW50X2xvZzIgKHZhbHVlKTsKKwl9CisgICAgfQor ICByZXR1cm4gMDsKK30KKwogI2luY2x1ZGUgImd0LWFybS5oIgorCkluZGV4 OiBnY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCShyZXZp c2lvbiAxODIwMDQpCisrKyBnY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgJ KHdvcmtpbmcgY29weSkKQEAgLTI0MSw2ICsyNDEsNyBAQAogfTsKIAogZXh0 ZXJuIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyAqY3VycmVudF90dW5lOwor ZXh0ZXJuIGludCB2ZnAzX2NvbnN0X2RvdWJsZV9mb3JfZnJhY3RfYml0cyAo cnR4KTsKICNlbmRpZiAvKiBSVFhfQ09ERSAqLwogCiAjZW5kaWYgLyogISBH Q0NfQVJNX1BST1RPU19IICovCkluZGV4OiBnY2MvY29uZmlnL2FybS92ZnAu bWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2NvbmZpZy9hcm0v dmZwLm1kCShyZXZpc2lvbiAxODIwMDQpCisrKyBnY2MvY29uZmlnL2FybS92 ZnAubWQJKHdvcmtpbmcgY29weSkKQEAgLTExNDQsOSArMTE0NCw0MCBAQAog ICAgKHNldF9hdHRyICJ0eXBlIiAiZmNtcGQiKV0KICkKIAorOzsgRml4ZWQg cG9pbnQgdG8gZmxvYXRpbmcgcG9pbnQgY29udmVyc2lvbnMuIAorKGRlZmlu ZV9jb2RlX2l0ZXJhdG9yIEZDVlQgW3Vuc2lnbmVkX2Zsb2F0IGZsb2F0XSkK KyhkZWZpbmVfY29kZV9hdHRyIEZDVlRJMzJ0eXBlbmFtZSBbKHVuc2lnbmVk X2Zsb2F0ICJ1MzIiKSAoZmxvYXQgInMzMiIpXSkKIAorKGRlZmluZV9pbnNu ICIqY29tYmluZV92Y3Z0X2YzMl88RkNWVEkzMnR5cGVuYW1lPiIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAic19yZWdpc3Rlcl9vcGVyYW5kIiAi PXQiKQorCShtdWx0OlNGIChGQ1ZUOlNGIChtYXRjaF9vcGVyYW5kOlNJIDEg InNfcmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkKKwkJIChtYXRjaF9vcGVyYW5k IDIgCisJCQkiY29uc3RfZG91YmxlX3ZjdnRfcG93ZXJfb2ZfdHdvX3JlY2lw cm9jYWwiICJEdCIpKSldCisgICJUQVJHRVRfMzJCSVQgJiYgVEFSR0VUX0hB UkRfRkxPQVQgJiYgVEFSR0VUX1ZGUDMgJiYgIWZsYWdfcm91bmRpbmdfbWF0 aCIKKyAgInZjdnQuZjMyLjxGQ1ZUSTMydHlwZW5hbWU+XFx0JTAsICUxLCAl djIiCisgWyhzZXRfYXR0ciAicHJlZGljYWJsZSIgIm5vIikKKyAgKHNldF9h dHRyICJ0eXBlIiAiZl9jdnQiKV0KKykKKworOzsgTm90IHRoZSBpZGVhbCB3 YXkgb2YgaW1wbGVtZW50aW5nIHRoaXMuIElkZWFsbHkgd2Ugd291bGQgYmUg YWJsZSB0byBzcGxpdAorOzsgdGhpcyBpbnRvIGEgbW92ZSB0byBhIERQIHJl Z2lzdGVyIGFuZCB0aGVuIGEgdmN2dC5mNjQuaTMyCisoZGVmaW5lX2luc24g Iipjb21iaW5lX3ZjdnRfZjY0XzxGQ1ZUSTMydHlwZW5hbWU+IgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpERiAwICJzX3JlZ2lzdGVyX29wZXJhbmQiICI9 eCx4LHciKQorCShtdWx0OkRGIChGQ1ZUOkRGIChtYXRjaF9vcGVyYW5kOlNJ IDEgInNfcmVnaXN0ZXJfb3BlcmFuZCIgInIsdCxyIikpCisJCSAobWF0Y2hf b3BlcmFuZCAyIAorCQkgICAgICJjb25zdF9kb3VibGVfdmN2dF9wb3dlcl9v Zl90d29fcmVjaXByb2NhbCIgIkR0LER0LER0IikpKV0KKyAgIlRBUkdFVF8z MkJJVCAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfVkZQMyAmJiAh ZmxhZ19yb3VuZGluZ19tYXRoIAorICAmJiAhVEFSR0VUX1ZGUF9TSU5HTEUi CisgICJACisgIHZtb3YuZjMyXFx0JTAsICUxXDt2Y3Z0LmY2NC48RkNWVEkz MnR5cGVuYW1lPlxcdCVQMCwgJVAwLCAldjIKKyAgdm1vdi5mMzJcXHQlMCwg JTFcO3ZjdnQuZjY0LjxGQ1ZUSTMydHlwZW5hbWU+XFx0JVAwLCAlUDAsICV2 MgorICB2bW92LmY2NFxcdCUwLCAlMSwgJTFcOyB2Y3Z0LmY2NC48RkNWVEkz MnR5cGVuYW1lPlxcdCVQMCwgJVAwLCAldjIiCisgWyhzZXRfYXR0ciAicHJl ZGljYWJsZSIgIm5vIikKKyAgKHNldF9hdHRyICJ0eXBlIiAiZl9jdnQiKQor ICAoc2V0X2F0dHIgImxlbmd0aCIgIjgiKV0KKykKKwogOzsgU3RvcmUgbXVs dGlwbGUgaW5zbiB1c2VkIGluIGZ1bmN0aW9uIHByb2xvZ3VlLgotCiAoZGVm aW5lX2luc24gIipwdXNoX211bHRpX3ZmcCIKICAgWyhtYXRjaF9wYXJhbGxl bCAyICJtdWx0aV9yZWdpc3Rlcl9wdXNoIgogICAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkJMSyAwICJtZW1vcnlfb3BlcmFuZCIgIj1tIikKSW5kZXg6IGdj Yy9jb25maWcvYXJtL2NvbnN0cmFpbnRzLm1kCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGdjYy9jb25maWcvYXJtL2NvbnN0cmFpbnRzLm1kCShyZXZp c2lvbiAxODIwMDQpCisrKyBnY2MvY29uZmlnL2FybS9jb25zdHJhaW50cy5t ZAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogOzsgaW4gVGh1 bWItMSBzdGF0ZTogSSwgSiwgSywgTCwgTSwgTiwgTwogCiA7OyBUaGUgZm9s bG93aW5nIG11bHRpLWxldHRlciBub3JtYWwgY29uc3RyYWludHMgaGF2ZSBi ZWVuIHVzZWQ6Ci07OyBpbiBBUk0vVGh1bWItMiBzdGF0ZTogRGEsIERiLCBE YywgRG4sIERsLCBETCwgRHYsIER5LCBEaSwgRHoKKzs7IGluIEFSTS9UaHVt Yi0yIHN0YXRlOiBEYSwgRGIsIERjLCBEbiwgRGwsIERMLCBEdiwgRHksIERp LCBEdCwgRHoKIDs7IGluIFRodW1iLTEgc3RhdGU6IFBhLCBQYiwgUGMsIFBk CiA7OyBpbiBUaHVtYi0yIHN0YXRlOiBQaiwgUEosIFBzLCBQdCwgUHUsIFB2 LCBQdywgUHgsIFB5CiAKQEAgLTI5MSw2ICsyOTEsMTIgQEAKICAoYW5kICht YXRjaF9jb2RlICJjb25zdF9kb3VibGUiKQogICAgICAgKG1hdGNoX3Rlc3Qg IlRBUkdFVF8zMkJJVCAmJiBUQVJHRVRfVkZQX0RPVUJMRSAmJiB2ZnAzX2Nv bnN0X2RvdWJsZV9ydHggKG9wKSIpKSkKIAorKGRlZmluZV9jb25zdHJhaW50 ICJEdCIgCisgIkBpbnRlcm5hbAorICBJbiBBUk0vIFRodW1iMiBhIGNvbnN0 X2RvdWJsZSB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIGEgdmN2dC5mMzIuczMy IHdpdGggZnJhY3QgYml0cyBvcGVyYXRpb24iCisgIChhbmQgKG1hdGNoX2Nv ZGUgImNvbnN0X2RvdWJsZSIpCisgICAgICAgKG1hdGNoX3Rlc3QgIlRBUkdF VF8zMkJJVCAmJiBUQVJHRVRfVkZQICYmIHZmcDNfY29uc3RfZG91YmxlX2Zv cl9mcmFjdF9iaXRzIChvcCkiKSkpCisKIChkZWZpbmVfbWVtb3J5X2NvbnN0 cmFpbnQgIlV0IgogICJAaW50ZXJuYWwKICAgSW4gQVJNL1RodW1iLTIgc3Rh dGUgYW4gYWRkcmVzcyB2YWxpZCBmb3IgbG9hZGluZy9zdG9yaW5nIG9wYXF1 ZSBzdHJ1Y3R1cmUKSW5kZXg6IGdjYy9jb25maWcvYXJtL3ByZWRpY2F0ZXMu bWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2NvbmZpZy9hcm0v cHJlZGljYXRlcy5tZAkocmV2aXNpb24gMTgyMDA0KQorKysgZ2NjL2NvbmZp Zy9hcm0vcHJlZGljYXRlcy5tZAkod29ya2luZyBjb3B5KQpAQCAtNzU0LDYg Kzc1NCwxMSBAQAogICByZXR1cm4gdHJ1ZTsgCiB9KQogCisoZGVmaW5lX3By ZWRpY2F0ZSAiY29uc3RfZG91YmxlX3ZjdnRfcG93ZXJfb2ZfdHdvX3JlY2lw cm9jYWwiCisgIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2RvdWJsZSIpCisg ICAgICAgKG1hdGNoX3Rlc3QgIlRBUkdFVF8zMkJJVCAmJiBUQVJHRVRfVkZQ IAorICAgICAgIAkJICAgJiYgdmZwM19jb25zdF9kb3VibGVfZm9yX2ZyYWN0 X2JpdHMgKG9wKSIpKSkKKwogKGRlZmluZV9wcmVkaWNhdGUgIm5lb25fc3Ry dWN0X29wZXJhbmQiCiAgIChhbmQgKG1hdGNoX2NvZGUgIm1lbSIpCiAgICAg ICAgKG1hdGNoX3Rlc3QgIlRBUkdFVF8zMkJJVCAmJiBuZW9uX3ZlY3Rvcl9t ZW1fb3BlcmFuZCAob3AsIDIpIikpKQo= --e89a8f642d1609085004b3560114--