Message ID | 1342723978-30066-1-git-send-email-rth@redhat.com |
---|---|
State | New |
Headers | show |
On Thu, Jul 19, 2012 at 11:52:56AM -0700, Richard Henderson wrote: > I discovered the vectorizable_operation while trying to figure out why > ia64 wasn't generating the mul_highpart pattern as I expected: we always > force CODE_FOR_nothing to 0. Oops. icode = 0; was chosen as something that wouldn't match a real insn, yet was different from CODE_FOR_nothing. CODE_FOR_nothing changed to 0 only 10 days ago... Thanks for spotting this. Jakub
On 07/19/2012 01:35 PM, Jakub Jelinek wrote: > On Thu, Jul 19, 2012 at 11:52:56AM -0700, Richard Henderson wrote: >> I discovered the vectorizable_operation while trying to figure out why >> ia64 wasn't generating the mul_highpart pattern as I expected: we always >> force CODE_FOR_nothing to 0. Oops. > > icode = 0; was chosen as something that wouldn't match a real insn, yet was > different from CODE_FOR_nothing. CODE_FOR_nothing changed to 0 only > 10 days ago... Thanks for spotting this. Ah, good. I thought I was just going crazy remembering C_F_N != 0. I havn't gotten back as far as Steven's patch in my post-vacation mail queue yet... r~
diff --git a/gcc/expr.c b/gcc/expr.c index 5aec53e..9650863 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6130,7 +6130,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) constructor_elt *ce; int i; int need_to_clear; - int icode = 0; + int icode = CODE_FOR_nothing; tree elttype = TREE_TYPE (type); int elt_size = tree_low_cst (TYPE_SIZE (elttype), 1); enum machine_mode eltmode = TYPE_MODE (elttype); diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index fb05063..bb42cbc 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -3531,7 +3531,7 @@ vectorizable_operation (gimple stmt, gimple_stmt_iterator *gsi, if (code == MULT_HIGHPART_EXPR) { if (can_mult_highpart_p (vec_mode, TYPE_UNSIGNED (vectype))) - icode = 0; + icode = LAST_INSN_CODE; else icode = CODE_FOR_nothing; }