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: [email protected]
ReportedBy: [email protected]
[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;
}