From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29914 invoked by alias); 6 Oct 2005 11:26:07 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 29865 invoked by uid 48); 6 Oct 2005 11:26:05 -0000 Date: Thu, 06 Oct 2005 11:26:00 -0000 Message-ID: <20051006112605.29864.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/24230] [altivec] ICE in extract_insn, at recog.c:2084 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" X-SW-Source: 2005-10/txt/msg00592.txt.bz2 List-Id: ------- Comment #3 from rguenth at gcc dot gnu dot org 2005-10-06 11:26 ------- Reduced testcase: typedef int int32_t; typedef unsigned char uint8_t; static const __attribute__((altivec(vector__))) signed char FIR_Tab_16[17] = { }; void H_Pass_16_Altivec_C(uint8_t *Dst, const uint8_t *Src, int32_t H, int32_t BpS, int32_t Rnd) { register __attribute__((altivec(vector__))) signed short sums1,sums2; register __attribute__((altivec(vector__))) unsigned char ox00; register __attribute__((altivec(vector__))) signed char firs; __attribute__((altivec(vector__))) unsigned char vec_src; __attribute__((altivec(vector__))) unsigned char tmp; while(H-- > 0) { sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00, tmp), __builtin_vec_unpackh(firs), sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00, tmp), __builtin_vec_unpackl(firs), sums2 ); firs = FIR_Tab_16[2]; tmp = __builtin_vec_splat(vec_src,(2)); sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00, tmp), __builtin_vec_unpackh(firs), sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00, tmp), __builtin_vec_unpackl(firs), sums2 ); firs = FIR_Tab_16[3]; tmp = __builtin_vec_splat(vec_src,(3)); sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00, tmp), __builtin_vec_unpackh(firs), sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00, tmp), __builtin_vec_unpackl(firs), sums2 ); firs = FIR_Tab_16[4]; tmp = __builtin_vec_splat(vec_src,(4)); sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00, tmp), __builtin_vec_unpackh(firs), sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00, tmp), __builtin_vec_unpackl(firs), sums2 ); firs = FIR_Tab_16[5]; tmp = __builtin_vec_splat(vec_src,(5)); sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00, tmp), __builtin_vec_unpackh(firs), sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00, tmp), __builtin_vec_unpackl(firs), sums2 ); firs = FIR_Tab_16[6]; tmp = __builtin_vec_splat(vec_src,(6)); *((uint8_t*)&tmp) = Src[16*1]; sums1 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergeh(ox00,tmp),__builtin_vec_unpackh(firs),sums1 ); sums2 = __builtin_vec_mladd( (__attribute__((altivec(vector__))) signed short)__builtin_vec_mergel(ox00,tmp),__builtin_vec_unpackl(firs),sums2 ); tmp = (__attribute__((altivec(vector__))) unsigned char)((__attribute__((altivec(vector__))) unsigned short) __builtin_altivec_vspltish (((5)))); sums1 = __builtin_vec_sra(sums1,(__attribute__((altivec(vector__))) unsigned short)tmp); sums2 = __builtin_vec_sra(sums2,(__attribute__((altivec(vector__))) unsigned short)tmp); tmp = __builtin_vec_packsu(sums1,sums2); } } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2005-10-06 11:26:05 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24230