public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example)
@ 2006-02-19 14:50 magnus_os at yahoo dot se
2006-02-20 16:46 ` [Bug tree-optimization/26362] " dorit at il dot ibm dot com
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: magnus_os at yahoo dot se @ 2006-02-19 14:50 UTC (permalink / raw)
To: gcc-bugs
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1836 bytes --]
gfortran-autovect -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/usr/local/autovect
--program-suffix=-autovect --enable-threads=posix
--enable-languages=c,c++,fortran
Thread model: posix
gcc version 4.2.0-autovect 20060214 (experimental)
gfortran-autovect -O3 -Wunused -fautomatic -mfpmath=sse -msse -mmmx -msse2
-ftree-vectorize -ftree-vectorizer-verbose=2 -c xyz1.for xyz1.for: In function
xyz1:
xyz1.for:1: internal compiler error: in make_ssa_name, at tree-ssanames.c:129
Please submit a full bug report,
SUBROUTINE XYZ1
C
IMPLICIT DOUBLE PRECISION ( A - H, O - Z ), INTEGER ( I - N )
C
COMMON /ABC/ MMSAD( 250 ), MCAI( 500 )
C
DIMENSION JTMP( 750 ), KTMP( 750 )
DIMENSION MTMP( 750 ), LTMP(750)
C
IF ( IJK .LT. KJI ) THEN
DO 500 JKL = 1, ILS
IF ( MTMP(JKL) .LT. 0 ) THEN
IJK = IJK + 1
MTMP(JKL) = IJK
END IF
500 CONTINUE
C
MMS = 0
DO 1000 JKL = 1, ILS
MMS = MMS + 2
JTMP(JKL) = MMSAD(JKL)
KTMP(JKL) = MCAI(MMS-1)
LTMP(JKL) = MCAI( MMS )
1000 CONTINUE
C
DO 9000 JKL = 1, ILS
KF1 = MTMP(JKL)
MMS = KF1 + KF1
MMSAD(KF1) = JTMP(JKL)
MCAI(MMS-1) = KTMP(JKL)
MCAI( MMS ) = LTMP(JKL)
9000 CONTINUE
C
END IF
C
RETURN
END
--
Summary: ICE on the autovect-branch (gfortran example)
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: magnus_os at yahoo dot se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26362
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/26362] ICE on the autovect-branch (gfortran example)
2006-02-19 14:50 [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example) magnus_os at yahoo dot se
@ 2006-02-20 16:46 ` dorit at il dot ibm dot com
2006-02-20 17:09 ` dorit at il dot ibm dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: dorit at il dot ibm dot com @ 2006-02-20 16:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from dorit at il dot ibm dot com 2006-02-20 16:45 -------
Looks like the vectorizer detects a strided access in this testcase. Strided
accesses are not entirely supported for SSE right now (work in progress...),
but it is enabled, so currently all strided testcases brake on SSE.
--
dorit at il dot ibm dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rth at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26362
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/26362] ICE on the autovect-branch (gfortran example)
2006-02-19 14:50 [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example) magnus_os at yahoo dot se
2006-02-20 16:46 ` [Bug tree-optimization/26362] " dorit at il dot ibm dot com
@ 2006-02-20 17:09 ` dorit at il dot ibm dot com
2007-01-28 10:45 ` irar at il dot ibm dot com
2007-07-01 10:05 ` dorit at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: dorit at il dot ibm dot com @ 2006-02-20 17:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from dorit at il dot ibm dot com 2006-02-20 17:09 -------
Actually there's this patch by rth that seems to fix this ICE; it's from a
while back, I don't think it was fully tested at the time, and I'm not sure it
provides all the missing bits/fixes for SSE support.
=== targhooks.c
==================================================================
--- targhooks.c (revision 108004)
+++ targhooks.c (local)
@@ -448,7 +448,8 @@
tree type;
enum machine_mode mode;
block_stmt_iterator bsi;
- tree th, tl, result, x;
+ tree t1, t2, result, x;
+ int i, n;
/* If the first argument is a type, just check if support
is available. Return a non NULL value if supported, NULL_TREE otherwise.
@@ -472,31 +473,37 @@
return NULL;
bsi = bsi_for_stmt (stmt);
-
- th = make_rename_temp (type, NULL);
- x = build2 (VEC_INTERLEAVE_HIGH_EXPR, type, vec1, vec2);
- x = build2 (MODIFY_EXPR, type, th, x);
- th = make_ssa_name (th, x);
- TREE_OPERAND (x, 0) = th;
- bsi_insert_before (&bsi, x, BSI_SAME_STMT);
- tl = make_rename_temp (type, NULL);
- x = build2 (VEC_INTERLEAVE_LOW_EXPR, type, vec1, vec2);
- x = build2 (MODIFY_EXPR, type, tl, x);
- tl = make_ssa_name (tl, x);
- TREE_OPERAND (x, 0) = tl;
- bsi_insert_before (&bsi, x, BSI_SAME_STMT);
+ n = exact_log2 (GET_MODE_NUNITS (mode)) - 1;
+ for (i = 0; i < n; ++i)
+ {
+ t1 = create_tmp_var (type, NULL);
+ add_referenced_tmp_var (t1);
+ x = build2 (VEC_INTERLEAVE_HIGH_EXPR, type, vec1, vec2);
+ x = build2 (MODIFY_EXPR, type, t1, x);
+ t1 = make_ssa_name (t1, x);
+ TREE_OPERAND (x, 0) = t1;
+ bsi_insert_before (&bsi, x, BSI_SAME_STMT);
- result = make_rename_temp (type, NULL);
- /* ??? Endianness issues? */
+ t2 = create_tmp_var (type, NULL);
+ add_referenced_tmp_var (t2);
+ x = build2 (VEC_INTERLEAVE_LOW_EXPR, type, vec1, vec2);
+ x = build2 (MODIFY_EXPR, type, t2, x);
+ t2 = make_ssa_name (t2, x);
+ TREE_OPERAND (x, 0) = t2;
+ bsi_insert_before (&bsi, x, BSI_SAME_STMT);
+
+ if (BYTES_BIG_ENDIAN)
+ vec1 = t1, vec2 = t2;
+ else
+ vec1 = t2, vec2 = t1;
+ }
+
x = build2 (odd_p ? VEC_INTERLEAVE_HIGH_EXPR : VEC_INTERLEAVE_LOW_EXPR,
- type, th, tl);
- x = build2 (MODIFY_EXPR, type, result, x);
- result = make_ssa_name (result, x);
- TREE_OPERAND (x, 0) = result;
- bsi_insert_before (&bsi, x, BSI_SAME_STMT);
+ type, vec1, vec2);
+ x = build2 (MODIFY_EXPR, type, dest, x);
- return result;
+ return x;
}
tree
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26362
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/26362] ICE on the autovect-branch (gfortran example)
2006-02-19 14:50 [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example) magnus_os at yahoo dot se
2006-02-20 16:46 ` [Bug tree-optimization/26362] " dorit at il dot ibm dot com
2006-02-20 17:09 ` dorit at il dot ibm dot com
@ 2007-01-28 10:45 ` irar at il dot ibm dot com
2007-07-01 10:05 ` dorit at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: irar at il dot ibm dot com @ 2007-01-28 10:45 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from irar at il dot ibm dot com 2007-01-28 10:45 -------
The current versions of both mainline and autovect branch do not ICE. Strided
loads are not implemented for SSE. I opened a PR 30211 for it.
I think this PR can be closed.
Ira
--
irar at il dot ibm dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |irar at il dot ibm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26362
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/26362] ICE on the autovect-branch (gfortran example)
2006-02-19 14:50 [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example) magnus_os at yahoo dot se
` (2 preceding siblings ...)
2007-01-28 10:45 ` irar at il dot ibm dot com
@ 2007-07-01 10:05 ` dorit at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: dorit at gcc dot gnu dot org @ 2007-07-01 10:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from dorit at gcc dot gnu dot org 2007-07-01 10:05 -------
Closed based on Ira's comment.
--
dorit at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26362
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-01 10:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-19 14:50 [Bug tree-optimization/26362] New: ICE on the autovect-branch (gfortran example) magnus_os at yahoo dot se
2006-02-20 16:46 ` [Bug tree-optimization/26362] " dorit at il dot ibm dot com
2006-02-20 17:09 ` dorit at il dot ibm dot com
2007-01-28 10:45 ` irar at il dot ibm dot com
2007-07-01 10:05 ` dorit at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).