It should have an unsigned vector result

  def_builtin (MASK_ALTIVEC, "__builtin_vec_ctu", opaque_ftype_opaque_int,
ALTIVEC_BUILTIN_VEC_CTU);

this casues

FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer  (internal
compiler error)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer  (test for
excess errors)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer -funroll-loops 
(internal compiler error)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer -funroll-loops 
(test for excess errors)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -g  (internal compiler error)
FAIL: gcc.c-torture/compile/pr39943.c  -O3 -g  (test for excess errors)

The failure is:

[karma] f90/bug% gcc45 -O3
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.c-torture/compile/pr39943.c
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.c-torture/compile/pr39943.c: In function
'gl_fog_index_pixels':
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.c-torture/compile/pr39943.c:1: error:
invalid conversion in gimple call
vector unsigned int

__vector signed int

# .MEM_98 = VDEF <.MEM_97>
vect_var_.47_88 = __builtin_altivec_vctuxs (vect_var_.46_87);


-- 
           Summary: altivec __builtin_vec_ctu has wrong tyes
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: powerpc*-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40009

Reply via email to