http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45869
Summary: type mismatch in shift expression produces ice with -O3 and -m32 Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: g...@intrepid.com This bug has a failure mode similar to bug #42927, except the failure occurs only when compiling the attached test case with both -O3 and -m32 on an x86_64 host. Checks must also be enabled. The following output is produced: vec-shift-m32-O3-ice.c: In function 'foo': vec-shift-m32-O3-ice.c:22:1: error: type mismatch in vector shift expression vector char * vector char * unsigned int vect_var_.26_65 = vect_var_.23_64 v>> 64; vec-shift-m32-O3-ice.c:22:1: error: type mismatch in vector shift expression vector char * vector char * unsigned int vect_var_.26_67 = vect_var_.26_66 v>> 32; vec-shift-m32-O3-ice.c:22:1: internal compiler error: verify_stmts failed Although the bug was detected in the 4.5.1 release, it can be reproduced in the gcc-4.6-20100925 snapshot (SVN revision revision 164623) as well.