Bug 54915 - [4.8 Regression] ICE: verify_gimple failed: type mismatch in vector permute expression
Summary: [4.8 Regression] ICE: verify_gimple failed: type mismatch in vector permute e...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.8.0
: P3 normal
Target Milestone: 4.8.0
Assignee: Marc Glisse
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2012-10-12 18:18 UTC by Zdenek Sojka
Modified: 2012-10-15 14:41 UTC (History)
0 users

See Also:
Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu
Build:
Known to work: 4.7.3
Known to fail: 4.8.0
Last reconfirmed: 2012-10-12 00:00:00


Attachments
reduced testcase (from gcc.target/i386/vect-rebuild.c) (123 bytes, text/x-csrc)
2012-10-12 18:18 UTC, Zdenek Sojka
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zdenek Sojka 2012-10-12 18:18:16 UTC
Created attachment 28434 [details]
reduced testcase (from gcc.target/i386/vect-rebuild.c)

Compiler output:
$ gcc -O testcase.c
testcase.c: In function 'h':
testcase.c:4:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
 v2df h (v4df x)
      ^
testcase.c:8:1: error: type mismatch in vector permute expression
 }
 ^
v2df
v4df
v4df
vector(2) unsigned long
xx_4 = VEC_PERM_EXPR <x_6(D), x_6(D), { 2, 3 }>;

testcase.c:8:1: internal compiler error: verify_gimple failed
linux-vdso.so.1: No such file or directory
0xa07e1c verify_gimple_in_cfg(function*)
        /mnt/svn/gcc-trunk/gcc/tree-cfg.c:4727
0x8ff5c8 execute_function_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:1956
0x90030d execute_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:1989
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Tested revisions:
r192388 - crash
r191586 - crash
4.7 r191640 - OK
Comment 1 Dominique d'Humieres 2012-10-12 18:37:55 UTC
Revision 191175, 2012-09-11, is OK; revision 191247, 2012-09-13 (configured with --enable-checking=release) gives

pr54915.c:4:6: internal compiler error: in fold_convert_loc, at fold-const.c:1990

Candidate revision 191198?
Comment 2 Marc Glisse 2012-10-12 18:42:50 UTC
Uh, it does look like I am not checking the size of the RHS anywhere :-(

Sorry about that, I'll fix it ASAP.
Comment 3 Marc Glisse 2012-10-15 14:38:09 UTC
Author: glisse
Date: Mon Oct 15 14:38:04 2012
New Revision: 192461

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192461
Log:
2012-10-15  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/54915

gcc/
	* tree-ssa-forwprop.c (simplify_vector_constructor): Check
	argument's type.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr54915.c: New testcase.


Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr54915.c   (with props)
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-forwprop.c

Propchange: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr54915.c
            ('svn:eol-style' added)

Propchange: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr54915.c
            ('svn:keywords' added)
Comment 4 Marc Glisse 2012-10-15 14:41:07 UTC
Thanks for reporting the issue.