From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19283 invoked by alias); 12 Oct 2004 12:45:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 19269 invoked from network); 12 Oct 2004 12:45:46 -0000 Received: from unknown (HELO mtagate4.de.ibm.com) (195.212.29.153) by sourceware.org with SMTP; 12 Oct 2004 12:45:46 -0000 Received: from d12nrmr1507.megacenter.de.ibm.com (d12nrmr1507.megacenter.de.ibm.com [9.149.167.1]) by mtagate4.de.ibm.com (8.12.10/8.12.10) with ESMTP id i9CCjhLi138858; Tue, 12 Oct 2004 12:45:43 GMT Received: from d12ml102.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1507.megacenter.de.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i9CCjgXV215686; Tue, 12 Oct 2004 14:45:42 +0200 In-Reply-To: <20041012000503.GA2682@redhat.com> Subject: Re: [patch] vectorizer: fix handling of non VECTOR_MODE_P vectypes To: Richard Henderson Cc: gcc-patches@gcc.gnu.org, mark@codesourcery.com Message-ID: From: Dorit Naishlos Date: Tue, 12 Oct 2004 12:54:00 -0000 MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=4DBBE5B8DFA128EF8f9e8a93df938690918c4DBBE5B8DFA128EF" Content-Disposition: inline X-SW-Source: 2004-10/txt/msg00979.txt.bz2 --0__=4DBBE5B8DFA128EF8f9e8a93df938690918c4DBBE5B8DFA128EF Content-type: text/plain; charset=US-ASCII Content-length: 2388 > Didn't this get fixed already, anyway? No - the VECTOR_MODE_P check was added only when checking if an operation is supportable. It was not added for loads and stores - to allow vectorization of data movements I thought. Moving the VECTOR_MODE_P check from vectorizable_operation to get_vectype_for_scalar_type would solve the problem. It would be more restrictive (will not allow vectorization of data movement in the case of V4QI represented as SI), but on second thought, the current version is not restrictive enough - it allows initialization with constant/invariants which would not be handled correctly (unless it's an initialization with 0 or -1). I'll use the VECTOR_MODE_P check in all cases (at least for now). Is the following ok? thanks, dorit * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts. Added check that vectype is VECTOR_MODE_P. (vect_analyze_operations): Make sure the vectorization factor > 1. Add gcc_assert under ENABLE_CHECKING. (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to get_vectype_for_scalar_type). (vect_get_vec_def_for_operand): Remove redundant variables. (vect_transform_loop): Likewise. (See attached file: vectfix3) Richard Henderson To: Dorit Naishlos/Haifa/IBM@IBMIL cc: gcc-patches@gcc.gnu.org, mark@codesourcery.com 12/10/2004 02:05 Subject: Re: [patch] vectorizer: fix handling of non VECTOR_MODE_P vectypes On Tue, Oct 12, 2004 at 12:01:20AM +0200, Dorit Naishlos wrote: > (Ideally build_vector_type would have returned BLKmode rather than TImode; > see machmode.def: "FIXME TI shouldn't be generically available either. *". Not ok. You should be checking VECTOR_MODE_P, not some specific integer mode. Didn't this get fixed already, anyway? r~ --0__=4DBBE5B8DFA128EF8f9e8a93df938690918c4DBBE5B8DFA128EF Content-type: application/octet-stream; name="vectfix3" Content-Disposition: attachment; filename="vectfix3" Content-transfer-encoding: base64 Content-length: 6922 SW5kZXg6IHRyZWUtdmVjdG9yaXplci5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9jdnMvZ2NjL2djYy9nY2MvdHJlZS12ZWN0b3JpemVy LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDIuMTQKZGlmZiAtYyAtMyAtcCAt cjIuMTQgdHJlZS12ZWN0b3JpemVyLmMKKioqIHRyZWUtdmVjdG9yaXplci5j CTEgT2N0IDIwMDQgMDk6NTk6MDAgLTAwMDAJMi4xNAotLS0gdHJlZS12ZWN0 b3JpemVyLmMJMTIgT2N0IDIwMDQgMDg6NTY6MjYgLTAwMDAKKioqKioqKioq KioqKioqIHN0YXRpYyB0cmVlCioqKiA4MzYsODQxICoqKioKLS0tIDgzNiw4 NDIgLS0tLQogIGdldF92ZWN0eXBlX2Zvcl9zY2FsYXJfdHlwZSAodHJlZSBz Y2FsYXJfdHlwZSkKICB7CiAgICBlbnVtIG1hY2hpbmVfbW9kZSBpbm5lcl9t b2RlID0gVFlQRV9NT0RFIChzY2FsYXJfdHlwZSk7CisgICBlbnVtIG1hY2hp bmVfbW9kZSB2ZWNfbW9kZTsKICAgIGludCBuYnl0ZXMgPSBHRVRfTU9ERV9T SVpFIChpbm5lcl9tb2RlKTsKICAgIGludCBudW5pdHM7CiAgICB0cmVlIHZl Y3R5cGU7CioqKioqKioqKioqKioqKiBnZXRfdmVjdHlwZV9mb3Jfc2NhbGFy X3R5cGUgKHRyZWUgc2NhbGFyCioqKiA4NDgsODU1ICoqKioKICAgIG51bml0 cyA9IFVOSVRTX1BFUl9TSU1EX1dPUkQgLyBuYnl0ZXM7CiAgCiAgICB2ZWN0 eXBlID0gYnVpbGRfdmVjdG9yX3R5cGUgKHNjYWxhcl90eXBlLCBudW5pdHMp OwohICAgaWYgKFRZUEVfTU9ERSAodmVjdHlwZSkgPT0gQkxLbW9kZSkKICAg ICAgcmV0dXJuIE5VTExfVFJFRTsKICAgIHJldHVybiB2ZWN0eXBlOwogIH0K ICAKLS0tIDg0OSw4ODkgLS0tLQogICAgbnVuaXRzID0gVU5JVFNfUEVSX1NJ TURfV09SRCAvIG5ieXRlczsKICAKICAgIHZlY3R5cGUgPSBidWlsZF92ZWN0 b3JfdHlwZSAoc2NhbGFyX3R5cGUsIG51bml0cyk7CiEgICBpZiAodmVjdF9k ZWJ1Z19kZXRhaWxzIChOVUxMKSkKISAgICAgewohICAgICAgIGZwcmludGYg KGR1bXBfZmlsZSwgImdldCB2ZWN0eXBlIHdpdGggJWQgdW5pdHMgb2YgdHlw ZSAiLCBudW5pdHMpOwohICAgICAgIHByaW50X2dlbmVyaWNfZXhwciAoZHVt cF9maWxlLCBzY2FsYXJfdHlwZSwgVERGX1NMSU0pOwohICAgICB9CiEgCiEg ICBpZiAoIXZlY3R5cGUpCiAgICAgIHJldHVybiBOVUxMX1RSRUU7CisgCisg ICBpZiAodmVjdF9kZWJ1Z19kZXRhaWxzIChOVUxMKSkKKyAgICAgeworICAg ICAgIGZwcmludGYgKGR1bXBfZmlsZSwgInZlY3R5cGU6ICIpOworICAgICAg IHByaW50X2dlbmVyaWNfZXhwciAoZHVtcF9maWxlLCB2ZWN0eXBlLCBUREZf U0xJTSk7CisgICAgIH0KKyAKKyAgIHZlY19tb2RlID0gVFlQRV9NT0RFICh2 ZWN0eXBlKTsKKyAKKyAgIC8qIElzIHR5cGUgc3VwcG9ydGVkIGJ5IHRhcmdl dD86ICAqLworICAgaWYgKHZlY19tb2RlID09IEJMS21vZGUpCisgICAgIHsK KyAgICAgICBpZiAodmVjdF9kZWJ1Z19kZXRhaWxzIChOVUxMKSkKKyAgICAg ICAgIGZwcmludGYgKGR1bXBfZmlsZSwgInZlY3R5cGUgbm90IHN1cHBvcnRl ZCBieSB0YXJnZXQuIik7CisgICAgICAgcmV0dXJuIE5VTExfVFJFRTsKKyAg ICAgfQorIAorICAgaWYgKCFWRUNUT1JfTU9ERV9QICh2ZWNfbW9kZSkpCisg ICAgIHsKKyAgICAgICAvKiBUT0RPOiB0cmVlLWNvbXBsZXguYyBzb21ldGlt ZXMgY2FuIHBhcmFsbGVsaXplIG9wZXJhdGlvbnMKKyAgICAgICAgICBvbiBn ZW5lcmljIHZlY3RvcnMuICBXZSBjYW4gdmVjdG9yaXplIHRoZSBsb29wIGlu IHRoYXQgY2FzZSwKKyAgICAgICAgICBidXQgdGhlbiB3ZSBzaG91bGQgcmUt cnVuIHRoZSBsb3dlcmluZyBwYXNzLiAgKi8KKyAgICAgICBpZiAodmVjdF9k ZWJ1Z19kZXRhaWxzIChOVUxMKSkKKyAgICAgICAgIGZwcmludGYgKGR1bXBf ZmlsZSwgIm1vZGUgbm90IHN1cHBvcnRlZCBieSB0YXJnZXQuIik7CisgICAg ICAgcmV0dXJuIE5VTExfVFJFRTsKKyAgICAgfQorIAogICAgcmV0dXJuIHZl Y3R5cGU7CiAgfQogIAoqKioqKioqKioqKioqKiogdmVjdF9nZXRfdmVjX2Rl Zl9mb3Jfb3BlcmFuZCAodHJlZSBvcCwgdAoqKiogMTE1NywxMTY3ICoqKioK ICAgICAgICAvKiBDcmVhdGUgJ3ZlY3RfY3N0XyA9IHtjc3QsY3N0LC4uLixj c3R9JyAgKi8KICAKICAgICAgICB0cmVlIHZlY19jc3Q7Ci0gICAgICAgc3Rt dF92ZWNfaW5mbyBzdG10X3ZpbmZvID0gdmluZm9fZm9yX3N0bXQgKHN0bXQp OwotICAgICAgIHRyZWUgdmVjdHlwZSA9IFNUTVRfVklORk9fVkVDVFlQRSAo c3RtdF92aW5mbyk7Ci0gICAgICAgaW50IG51bml0cyA9IEdFVF9NT0RFX05V TklUUyAoVFlQRV9NT0RFICh2ZWN0eXBlKSk7Ci0gICAgICAgdHJlZSB0ID0g TlVMTF9UUkVFOwotICAgICAgIGludCBpOwogIAogICAgICAgIC8qIEJ1aWxk IGEgdHJlZSB3aXRoIHZlY3RvciBlbGVtZW50cy4gICovCiAgICAgICAgaWYg KHZlY3RfZGVidWdfZGV0YWlscyAoTlVMTCkpCi0tLSAxMTkxLDExOTYgLS0t LQoqKioqKioqKioqKioqKiogdmVjdG9yaXphYmxlX29wZXJhdGlvbiAodHJl ZSBzdG10LCBibG9jawoqKiogMTQwOCwxNDIzICoqKioKICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICAgIH0KICAgIHZlY19tb2RlID0gVFlQRV9NT0RFICh2 ZWN0eXBlKTsKLSAgIGlmICghVkVDVE9SX01PREVfUCAodmVjX21vZGUpKQot ICAgICB7Ci0gICAgICAgLyogVE9ETzogdHJlZS1jb21wbGV4LmMgc29tZXRp bWVzIGNhbiBwYXJhbGxlbGl6ZSBvcGVyYXRpb25zCi0gCSBvbiBnZW5lcmlj IHZlY3RvcnMuICBXZSBjYW4gdmVjdG9yaXplIHRoZSBsb29wIGluIHRoYXQg Y2FzZSwKLSAJIGJ1dCB0aGVuIHdlIHNob3VsZCByZS1ydW4gdGhlIGxvd2Vy aW5nIHBhc3MuICAqLwotICAgICAgIGlmICh2ZWN0X2RlYnVnX2RldGFpbHMg KE5VTEwpKQotIAlmcHJpbnRmIChkdW1wX2ZpbGUsICJtb2RlIG5vdCBzdXBw b3J0ZWQgYnkgdGFyZ2V0LiIpOwotICAgICAgIHJldHVybiBmYWxzZTsKLSAg ICAgfQotIAogICAgaWYgKG9wdGFiLT5oYW5kbGVyc1soaW50KSB2ZWNfbW9k ZV0uaW5zbl9jb2RlID09IENPREVfRk9SX25vdGhpbmcpCiAgICAgIHsKICAg ICAgICBpZiAodmVjdF9kZWJ1Z19kZXRhaWxzIChOVUxMKSkKLS0tIDE0Mzcs MTQ0MiAtLS0tCioqKioqKioqKioqKioqKiB2ZWN0X3RyYW5zZm9ybV9sb29w IChsb29wX3ZlY19pbmZvIGxvb3BfCioqKiAxOTA1LDE5MTMgKioqKgogIAkg IHRyZWUgc3RtdCA9IGJzaV9zdG10IChzaSk7CiAgCSAgc3RtdF92ZWNfaW5m byBzdG10X2luZm87CiAgCSAgYm9vbCBpc19zdG9yZTsKLSAjaWZkZWYgRU5B QkxFX0NIRUNLSU5HCi0gCSAgdHJlZSB2ZWN0eXBlOwotICNlbmRpZgogIAog IAkgIGlmICh2ZWN0X2RlYnVnX2RldGFpbHMgKE5VTEwpKQogIAkgICAgewot LS0gMTkyNCwxOTI5IC0tLS0KKioqKioqKioqKioqKioqIHZlY3RfdHJhbnNm b3JtX2xvb3AgKGxvb3BfdmVjX2luZm8gbG9vcF8KKioqIDE5MjQsMTkzMSAq KioqCiAgI2lmZGVmIEVOQUJMRV9DSEVDS0lORwogIAkgIC8qIEZPUk5PVzog VmVyaWZ5IHRoYXQgYWxsIHN0bXRzIG9wZXJhdGUgb24gdGhlIHNhbWUgbnVt YmVyIG9mCiAgCSAgICAgICAgICAgICB1bml0cyBhbmQgbm8gaW5uZXIgdW5y b2xsaW5nIGlzIG5lY2Vzc2FyeS4gICovCiEgCSAgdmVjdHlwZSA9IFNUTVRf VklORk9fVkVDVFlQRSAoc3RtdF9pbmZvKTsKISAJICBnY2NfYXNzZXJ0IChH RVRfTU9ERV9OVU5JVFMgKFRZUEVfTU9ERSAodmVjdHlwZSkpCiAgCQkgICAg ICA9PSB2ZWN0b3JpemF0aW9uX2ZhY3Rvcik7CiAgI2VuZGlmCiAgCSAgLyog LS0tLS0tLS0gdmVjdG9yaXplIHN0YXRlbWVudCAtLS0tLS0tLS0tLS0gKi8K LS0tIDE5NDAsMTk0NiAtLS0tCiAgI2lmZGVmIEVOQUJMRV9DSEVDS0lORwog IAkgIC8qIEZPUk5PVzogVmVyaWZ5IHRoYXQgYWxsIHN0bXRzIG9wZXJhdGUg b24gdGhlIHNhbWUgbnVtYmVyIG9mCiAgCSAgICAgICAgICAgICB1bml0cyBh bmQgbm8gaW5uZXIgdW5yb2xsaW5nIGlzIG5lY2Vzc2FyeS4gICovCiEgCSAg Z2NjX2Fzc2VydCAoR0VUX01PREVfTlVOSVRTIChUWVBFX01PREUgKFNUTVRf VklORk9fVkVDVFlQRSAoc3RtdF9pbmZvKSkpCiAgCQkgICAgICA9PSB2ZWN0 b3JpemF0aW9uX2ZhY3Rvcik7CiAgI2VuZGlmCiAgCSAgLyogLS0tLS0tLS0g dmVjdG9yaXplIHN0YXRlbWVudCAtLS0tLS0tLS0tLS0gKi8KKioqKioqKioq KioqKioqIHZlY3RfYW5hbHl6ZV9vcGVyYXRpb25zIChsb29wX3ZlY19pbmZv IGwKKioqIDIxNTUsMjE2NSAqKioqCiAgCSAgICB9CiAgCSAgZWxzZQogIAkg ICAgdmVjdG9yaXphdGlvbl9mYWN0b3IgPSBudW5pdHM7CiAgCX0KICAgICAg fQogIAogICAgLyogVE9ETzogQW5hbHl6ZSBjb3N0LiBEZWNpZGUgaWYgd29y dGggd2hpbGUgdG8gdmVjdG9yaXplLiAgKi8KISAgIGlmICghdmVjdG9yaXph dGlvbl9mYWN0b3IpCiAgICAgIHsKICAgICAgICBpZiAodmVjdF9kZWJ1Z19z dGF0cyAobG9vcCkgfHwgdmVjdF9kZWJ1Z19kZXRhaWxzIChsb29wKSkKICAg ICAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIm5vdCB2ZWN0b3JpemVkOiB1 bnN1cHBvcnRlZCBkYXRhLXR5cGUiKTsKLS0tIDIxNzAsMjE4NiAtLS0tCiAg CSAgICB9CiAgCSAgZWxzZQogIAkgICAgdmVjdG9yaXphdGlvbl9mYWN0b3Ig PSBudW5pdHM7CisgCisgI2lmZGVmIEVOQUJMRV9DSEVDS0lORworIAkgIGdj Y19hc3NlcnQgKEdFVF9NT0RFX1NJWkUgKFRZUEVfTU9ERSAoc2NhbGFyX3R5 cGUpKQorIAkJCSogdmVjdG9yaXphdGlvbl9mYWN0b3IgPT0gVU5JVFNfUEVS X1NJTURfV09SRCk7CisgI2VuZGlmCiAgCX0KICAgICAgfQogIAogICAgLyog VE9ETzogQW5hbHl6ZSBjb3N0LiBEZWNpZGUgaWYgd29ydGggd2hpbGUgdG8g dmVjdG9yaXplLiAgKi8KISAKISAgIGlmICh2ZWN0b3JpemF0aW9uX2ZhY3Rv ciA8PSAxKQogICAgICB7CiAgICAgICAgaWYgKHZlY3RfZGVidWdfc3RhdHMg KGxvb3ApIHx8IHZlY3RfZGVidWdfZGV0YWlscyAobG9vcCkpCiAgICAgICAg ICBmcHJpbnRmIChkdW1wX2ZpbGUsICJub3QgdmVjdG9yaXplZDogdW5zdXBw b3J0ZWQgZGF0YS10eXBlIik7Cg== --0__=4DBBE5B8DFA128EF8f9e8a93df938690918c4DBBE5B8DFA128EF--