From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3380 invoked by alias); 29 Nov 2012 13:16:18 -0000 Received: (qmail 3368 invoked by uid 22791); 29 Nov 2012 13:16:17 -0000 X-SWARE-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail1-relais-roc.national.inria.fr (HELO mail1-relais-roc.national.inria.fr) (192.134.164.82) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Nov 2012 13:16:10 +0000 Received: from stedding.saclay.inria.fr ([193.55.250.194]) by mail1-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 29 Nov 2012 14:16:06 +0100 Received: from glisse (helo=localhost) by stedding.saclay.inria.fr with local-esmtp (Exim 4.80) (envelope-from ) id 1Te3yI-00010J-Gs; Thu, 29 Nov 2012 14:16:06 +0100 Date: Thu, 29 Nov 2012 13:16:00 -0000 From: Marc Glisse To: gcc-patches@gcc.gnu.org cc: jason@redhat.com Subject: constexpr vector operations Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1458619808-1354194966=:3205" 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: 2012-11/txt/msg02426.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1458619808-1354194966=:3205 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Content-length: 713 Hello, this patch fixes several ICEs when using constexpr SIMD vectors. Support for subscripting is still missing though, which is why I am not adding some static_asserts to the testcase. I don't use build_vector_from_ctor because it doesn't check for non-constant elements and doesn't handle vectors in a constructor (the middle-end produces those, and I expect the front-ends will too eventually). Bootstrap+testsuite on x86_64-linux-gnu. 2012-11-29 Marc Glisse PR c++/53094 gcc/ * fold-const.c (fold): Replace a CONSTRUCTOR with a VECTOR_CST. gcc/cp/ * cvt.c (ocp_convert): Call convert_to_vector. gcc/testsuite/ * g++.dg/ext/vector20.C: New testcase. -- Marc Glisse --8323329-1458619808-1354194966=:3205 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p29 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p29 Content-length: 4388 SW5kZXg6IGdjYy9jcC9jdnQuYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K LS0tIGdjYy9jcC9jdnQuYwkocmV2aXNpb24gMTkzOTIyKQ0KKysrIGdjYy9j cC9jdnQuYwkod29ya2luZyBjb3B5KQ0KQEAgLTY4MywyMCArNjgzLDIyIEBA IG9jcF9jb252ZXJ0ICh0cmVlIHR5cGUsIHRyZWUgZXhwciwgaW50IGMNCiAJ ICAgbWlnaHQgYmUgZXhwZWN0ZWQsIHNpbmNlIGlmIG9uZSBvZiB0aGUgdHlw ZXMgaXMgYSB0eXBlZGVmOw0KIAkgICB0aGUgY29tcGFyaXNvbiBpbiBmb2xk IGlzIGp1c3QgZXF1YWxpdHkgb2YgcG9pbnRlcnMsIG5vdCBhDQogCSAgIGNh bGwgdG8gY29tcHR5cGVzLiAgV2UgZG9uJ3QgY2FsbCBmb2xkIGluIHRoaXMg Y2FzZSBiZWNhdXNlDQogCSAgIHRoYXQgY2FuIHJlc3VsdCBpbiBpbmZpbml0 ZSByZWN1cnNpb247IGZvbGQgd2lsbCBjYWxsDQogCSAgIGNvbnZlcnQsIHdo aWNoIHdpbGwgY2FsbCBvY3BfY29udmVydCwgZXRjLiAgKi8NCiAJcmV0dXJu IGU7DQogICAgICAgLyogRm9yIGNvbXBsZXggZGF0YSB0eXBlcywgd2UgbmVl ZCB0byBwZXJmb3JtIGNvbXBvbmVudHdpc2UNCiAJIGNvbnZlcnNpb24uICAq Lw0KICAgICAgIGVsc2UgaWYgKFRSRUVfQ09ERSAodHlwZSkgPT0gQ09NUExF WF9UWVBFKQ0KIAlyZXR1cm4gZm9sZF9pZl9ub3RfaW5fdGVtcGxhdGUgKGNv bnZlcnRfdG9fY29tcGxleCAodHlwZSwgZSkpOw0KKyAgICAgIGVsc2UgaWYg KFRSRUVfQ09ERSAodHlwZSkgPT0gVkVDVE9SX1RZUEUpDQorCXJldHVybiBm b2xkX2lmX25vdF9pbl90ZW1wbGF0ZSAoY29udmVydF90b192ZWN0b3IgKHR5 cGUsIGUpKTsNCiAgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKGUpID09IFRB UkdFVF9FWFBSKQ0KIAl7DQogCSAgLyogRG9uJ3QgYnVpbGQgYSBOT1BfRVhQ UiBvZiBjbGFzcyB0eXBlLiAgSW5zdGVhZCwgY2hhbmdlIHRoZQ0KIAkgICAg IHR5cGUgb2YgdGhlIHRlbXBvcmFyeS4gICovDQogCSAgVFJFRV9UWVBFIChl KSA9IFRSRUVfVFlQRSAoVEFSR0VUX0VYUFJfU0xPVCAoZSkpID0gdHlwZTsN CiAJICByZXR1cm4gZTsNCiAJfQ0KICAgICAgIGVsc2UNCiAJew0KIAkgIC8q IFdlIHNob3VsZG4ndCBiZSB0cmVhdGluZyBvYmplY3RzIG9mIEFERFJFU1NB QkxFIHR5cGUgYXMNCkluZGV4OiBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv dmVjdG9yMjAuQw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGdjYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC92ZWN0b3IyMC5DCShyZXZpc2lvbiAwKQ0K KysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC92ZWN0b3IyMC5DCShyZXZp c2lvbiAwKQ0KQEAgLTAsMCArMSw3IEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1zdGQ9YysrMTEiIH0gKi8NCisN Cit0eXBlZGVmIGxvbmcgdmVjIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl ICgyICogc2l6ZW9mIChsb25nKSkpKTsNCitjb25zdGV4cHIgdmVjIHYgPSB7 IDMsIDQgfTsNCitjb25zdGV4cHIgdmVjIHMgPSB2ICsgdjsNCitjb25zdGV4 cHIgdmVjIHcgPSBfX2J1aWx0aW5fc2h1ZmZsZSAodiwgdik7DQoNClByb3Bl cnR5IGNoYW5nZXMgb246IGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC92ZWN0 b3IyMC5DDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpBZGRlZDogc3ZuOmtl eXdvcmRzDQogICArIEF1dGhvciBEYXRlIElkIFJldmlzaW9uIFVSTA0KQWRk ZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgbmF0aXZlDQoNCkluZGV4OiBnY2Mv Zm9sZC1jb25zdC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gZ2Nj L2ZvbGQtY29uc3QuYwkocmV2aXNpb24gMTkzOTIyKQ0KKysrIGdjYy9mb2xk LWNvbnN0LmMJKHdvcmtpbmcgY29weSkNCkBAIC0xNDM4MCwyMCArMTQzODAs NDkgQEAgZm9sZCAodHJlZSBleHByKQ0KIAkJCSAmJiB0cmVlX2ludF9jc3Rf bHQgKG9wMSwgVFJFRV9PUEVSQU5EIChpbmRleCwgMCkpKQ0KIAkJICBlbmQg PSBtaWRkbGU7DQogCQllbHNlDQogCQkgIHJldHVybiAoKmVsdHMpW21pZGRs ZV0udmFsdWU7DQogCSAgICAgIH0NCiAJICB9DQogDQogCXJldHVybiB0Ow0K ICAgICAgIH0NCiANCisgICAgICAvKiBSZXR1cm4gYSBWRUNUT1JfQ1NUIGlm IHBvc3NpYmxlLiAgKi8NCisgICAgY2FzZSBDT05TVFJVQ1RPUjoNCisgICAg ICB7DQorCXRyZWUgdHlwZSA9IFRSRUVfVFlQRSAodCk7DQorCWlmIChUUkVF X0NPREUgKHR5cGUpICE9IFZFQ1RPUl9UWVBFKQ0KKwkgIHJldHVybiB0Ow0K Kw0KKwl0cmVlICp2ZWMgPSBYQUxMT0NBVkVDICh0cmVlLCBUWVBFX1ZFQ1RP Ul9TVUJQQVJUUyAodHlwZSkpOw0KKwl1bnNpZ25lZCBIT1NUX1dJREVfSU5U IGlkeCwgcG9zID0gMDsNCisJdHJlZSB2YWx1ZTsNCisNCisJRk9SX0VBQ0hf Q09OU1RSVUNUT1JfVkFMVUUgKENPTlNUUlVDVE9SX0VMVFMgKHQpLCBpZHgs IHZhbHVlKQ0KKwkgIHsNCisJICAgIGlmICghQ09OU1RBTlRfQ0xBU1NfUCAo dmFsdWUpKQ0KKwkgICAgICByZXR1cm4gdDsNCisJICAgIGlmIChUUkVFX0NP REUgKHZhbHVlKSA9PSBWRUNUT1JfQ1NUKQ0KKwkgICAgICB7DQorCQlmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgVkVDVE9SX0NTVF9ORUxUUyAodmFsdWUp OyArK2kpDQorCQkgIHZlY1twb3MrK10gPSBWRUNUT1JfQ1NUX0VMVCAodmFs dWUsIGkpOw0KKwkgICAgICB9DQorCSAgICBlbHNlDQorCSAgICAgIHZlY1tw b3MrK10gPSB2YWx1ZTsNCisJICB9DQorCWZvciAoOyBwb3MgPCBUWVBFX1ZF Q1RPUl9TVUJQQVJUUyAodHlwZSk7ICsrcG9zKQ0KKwkgIHZlY1twb3NdID0g YnVpbGRfemVyb19jc3QgKFRSRUVfVFlQRSAodHlwZSkpOw0KKw0KKwlyZXR1 cm4gYnVpbGRfdmVjdG9yICh0eXBlLCB2ZWMpOw0KKyAgICAgIH0NCisNCiAg ICAgY2FzZSBDT05TVF9ERUNMOg0KICAgICAgIHJldHVybiBmb2xkIChERUNM X0lOSVRJQUwgKHQpKTsNCiANCiAgICAgZGVmYXVsdDoNCiAgICAgICByZXR1 cm4gdDsNCiAgICAgfSAvKiBzd2l0Y2ggKGNvZGUpICovDQogfQ0KIA0KICNp ZmRlZiBFTkFCTEVfRk9MRF9DSEVDS0lORw0KICN1bmRlZiBmb2xkDQo= --8323329-1458619808-1354194966=:3205--