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;
}

Reply via email to