http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49621
Summary: [4.5/4.6/4.7 regression] ICE in trunc_int_for_mode, at explow.c:57 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: d...@ubuntu.com [forwarded from http://bugs.debian.org/632510] works with 4.4.6, fails with recent 4.5 and 4.6 branches and trunk (powerpc-linux) $ gcc -c -O -maltivec -g foo.i foo.i: In function 'foo': foo.i:17:1: internal compiler error: in trunc_int_for_mode, at explow.c:56 Please submit a full bug report, with preprocessed source if appropriate. int foo(void) { __attribute__((altivec(vector__))) unsigned a, b, c; unsigned k = 1; a = (__attribute__((altivec(vector__))) unsigned) { 0, 0, 0, 1 }; b = c = (__attribute__((altivec(vector__))) unsigned) { 0, 0, 0, 0 }; a = __builtin_vec_add(a, __builtin_vec_splats(k)); b = __builtin_vec_add(b, a); c = __builtin_vec_sel(c, a, b); if (__builtin_vec_vcmpeq_p(1, b, c)) return 1; return 0; }