X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Foptabs.h;h=0b72a516274ab0defcdcfdfacb38585da384662e;hb=1e6c5f6367b032480c0975f8788388d467781a1b;hp=af3ea66de8731e855a50f24ae318d6a4a275c9ce;hpb=2c02962cf935ac329a5069f6721839c3c1a3d331;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/optabs.h b/gcc/optabs.h index af3ea66de87..0b72a516274 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -334,7 +334,7 @@ enum optab_index OTI_vec_shr, /* Extract specified elements from vectors, for vector load. */ OTI_vec_realign_load, - /* Widening multiplication. + /* Widening multiplication. The high/low part of the resulting vector of products is returned. */ OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo, @@ -706,6 +706,9 @@ extern rtx expand_unop (enum machine_mode, optab, rtx, rtx, int); extern rtx expand_abs_nojump (enum machine_mode, rtx, rtx, int); extern rtx expand_abs (enum machine_mode, rtx, rtx, int, int); +/* Expand the one's complement absolute value operation. */ +extern rtx expand_one_cmpl_abs_nojump (enum machine_mode, rtx, rtx); + /* Expand the copysign operation. */ extern rtx expand_copysign (rtx, rtx, rtx); @@ -768,6 +771,9 @@ extern void expand_fix (rtx, rtx, int); /* Generate code for float to integral conversion. */ extern bool expand_sfix_optab (rtx, rtx, convert_optab); +/* Generate code for a widening multiply. */ +extern rtx expand_widening_mult (enum machine_mode, rtx, rtx, rtx, int, optab); + /* Return tree if target supports vector operations for COND_EXPR. */ bool expand_vec_cond_expr_p (tree, enum machine_mode);