------- Comment #2 from rguenth at gcc dot gnu dot org 2008-05-04 10:47 ------- I can reproduce this on i686 with -O3 -mfpmath=sse -msse2 (r134902):
#1 0x086d592d in vectorizable_assignment (stmt=0xb7c9dcb0, bsi=0xbff3b824, vec_stmt=0xbff3b7c0, slp_node=0xab9ca08) at /home/richard/src/trunk/gcc/tree-vect-transform.c:3671 3671 gcc_assert (ncopies >= 1); (gdb) print ncopies $1 = 0 (gdb) call debug_generic_expr (stmt) D.989_84 = ((D.988_83)) hmm, I guess I missed a place to teach the vectorizer that PAREN_EXPR is a vectorizable_assignment. (gdb) print *stmt_info $4 = {type = assignment_vec_info_type, stmt = 0xb7c9dcb0, loop_vinfo = 0xab97730, relevant = vect_used_in_loop, live = 0 '\0', vectype = 0xb7c71208, vectorized_stmt = 0x0, data_ref_info = 0x0, dr_base_address = 0x0, dr_init = 0x0, dr_offset = 0x0, dr_step = 0x0, dr_aligned_to = 0x0, in_pattern_p = 0 '\0', related_stmt = 0x0, same_align_refs = 0xab77820, def_type = vect_loop_def, first_dr = 0x0, next_dr = 0x0, size = 0, store_count = 0, gap = 0, same_dr_stmt = 0x0, read_write_dep = 0 '\0', cost = {outside_of_loop = 0, inside_of_loop = 1}, slp_type = pure_slp} (gdb) print *loop_vinfo $5 = {loop = 0xb7ca5688, bbs = 0xab67b98, num_iters = 0xb7c9d914, num_iters_unchanged = 0xb7c9d914, min_profitable_iters = 0, vectorizable = 1 '\001', vectorization_factor = 1, unaligned_dr = 0x0, peeling_for_alignment = 0, ptr_mask = 15, datarefs = 0xab7d710, ddrs = 0xab996e0, may_alias_ddrs = 0xab77858, may_misalign_stmts = 0xab6c960, loop_line_number = 0, strided_stores = 0xab6c080, slp_instances = 0xab7bcf8, slp_unrolling_factor = 1} -- 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 |2008-05-04 10:47:08 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36119