From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11539 invoked by alias); 24 Feb 2006 20:48:51 -0000 Received: (qmail 11505 invoked by uid 48); 24 Feb 2006 20:48:43 -0000 Date: Fri, 24 Feb 2006 20:49:00 -0000 Message-ID: <20060224204843.11504.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/26449] [4.2 Regression] ICE with -march=pentium4 -ftree-vectorize in matmul_i4.c in loop invariant motion In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven at gcc dot gnu dot org" 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 X-SW-Source: 2006-02/txt/msg02867.txt.bz2 List-Id: ------- Comment #4 from steven at gcc dot gnu dot org 2006-02-24 20:48 ------- I'm not sure how to fix this. The debug trace here says it all: We try to force something into an operand using an optab with a mode for which we have no handler: Starting program: /home/steven/devel/build-trunk/gcc/cc1 -m32 -std=c99 -O1 -ftree-vectorize -march=pentium4 t.c matmul_i4 Analyzing compilation unitPerforming intraprocedural optimizations Assembling functions: matmul_i4 Breakpoint 3, move_invariant_reg (loop=0xd3f1d0, invno=0) at loop-invariant.c:1162 1162 op = force_operand (SET_SRC (set), reg); (gdb) p debug_rtx(inv->insn) (insn 82 81 143 10 (set (subreg:TI (reg:V4SI 98) 0) (lshiftrt:TI (subreg:TI (reg:V4SI 71 [ vect_cst_.47 ]) 0) (const_int 32 [0x20]))) -1 (nil) (nil)) $36 = void (gdb) p debug_rtx(set) (set (subreg:TI (reg:V4SI 98) 0) (lshiftrt:TI (subreg:TI (reg:V4SI 71 [ vect_cst_.47 ]) 0) (const_int 32 [0x20]))) $37 = void (gdb) step force_operand (value=0x2aaaab009cc0, target=0x2aaaab00e500) at expr.c:5793 5793 rtx subtarget = get_subtarget (target); (gdb) b 5888 Breakpoint 4 at 0x5ceb64: file expr.c, line 5888. (gdb) cont Continuing. Breakpoint 4, force_operand (value=0x2aaaab009cc0, target=0x2aaaab00e500) at expr.c:5888 5888 return expand_simple_binop (GET_MODE (value), code, op1, op2, (gdb) p debug_rtx(op1) (subreg:TI (reg:V4SI 71 [ vect_cst_.47 ]) 0) $38 = void (gdb) p debug_rtx(op2) (const_int 32 [0x20]) $39 = void (gdb) p code $40 = LSHIFTRT (gdb) step expand_simple_binop (mode=TImode, code=LSHIFTRT, op0=0x2aaaab009c80, op1=0x2aaaaadf5600, target=0x2aaaab00e500, unsignedp=1, methods=OPTAB_LIB_WIDEN) at optabs.c:1154 1154 optab binop = code_to_optab[(int) code]; (gdb) next 1157 return expand_binop (mode, binop, op0, op1, target, unsignedp, methods); (gdb) p *binop $41 = {code = LSHIFTRT, handlers = {{insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_lshrqi3, libfunc = 0x0}, {insn_code = CODE_FOR_lshrhi3, libfunc = 0x0}, {insn_code = CODE_FOR_lshrsi3, libfunc = 0x2aaaaaf88960}, { insn_code = CODE_FOR_lshrdi3, libfunc = 0x2aaaaaf889a0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0} , { insn_code = CODE_FOR_lshrv8hi3, libfunc = 0x0}, {insn_code = CODE_FOR_lshrv4si3, libfunc = 0x0}, {insn_code = CODE_FOR_lshrv2di3, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, { insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}, {insn_code = CODE_FOR_nothing, libfunc = 0x0}}} (gdb) -- steven at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|4.2.0 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26449