[PATCH, vectorizer]: Take3: Vectorize FP conversions (ChangeLog)
Richard Guenther
richard.guenther@gmail.com
Sun Apr 22 16:47:00 GMT 2007
On 4/22/07, Uros Bizjak <ubizjak@gmail.com> wrote:
> Uros Bizjak wrote:
> >
> > The patch was bootstrapped on x86_64-pc-linux gnu and regression
> > tested for all default languages.
> >
> > OK for mainline (the patch need middle-end approval).
> The ChangeLog follows:
The middle-end parts are ok with
- if (! INTEGRAL_TYPE_P (scalar_type)
- || !INTEGRAL_TYPE_P (TREE_TYPE (op0)))
+ if (! ((INTEGRAL_TYPE_P (TREE_TYPE (scalar_dest))
+ && INTEGRAL_TYPE_P (TREE_TYPE (op0)))
+ || (SCALAR_FLOAT_TYPE_P (TREE_TYPE (scalar_dest))
+ && SCALAR_FLOAT_TYPE_P (TREE_TYPE (op0))
+ && code == NOP_EXPR)))
return false;
we still have CONVERT_EXPR, so that should be
&& (code == NOP_EXPR
|| code == CONVERT_EXPR))))
in two places actually.
Thanks,
Richard.
> 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
>
> PR tree-optimization/24659
> * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
> OTI_vec_unpacks_lo]: Update comment to mention floating point
> operands.
> (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
> * genopinit.c (optabs): Rename vec_pack_mod_optab
> to vec_pack_trunc_optab.
> * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
> early for scalar floating point operands for NOP_EXPR.
> (vectorizable_type_promotion): Ditto.
> * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
> vec_pack_trunc_optab.
> (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
>
> * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
> * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
> Rename from VEC_PACK_MOD_EXPR.
> (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
> * expr.c (expand_expr_real_1): Ditto.
> * tree-inline.c (estimate_num_insns_1): Ditto.
> * tree-vect-generic.c (expand_vector_operations_1): Ditto.
>
> * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
> (vec_unpacks_lo_v4sf): Ditto.
> (vec_pack_trunc_v2df): Ditto.
> (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
> (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
> (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
>
> * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
> vec_pack_mod_v8hi.
> (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
>
> * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
> Rename from VEC_PACK_MOD_EXPR. This expression also represent
> packing of floating point operands.
> [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
> represent unpacking of floating point operands.
> * doc/md.texi (Standard Names) [vec_pack_trunc]: Update
> documentation.
> [vec_unpacks_hi, vec_unpacks_lo]: Ditto.
>
> testsuite/ChangeLog:
>
> 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
>
> PR tree-optimization/24659
> * gcc.dg/vect/vect-float-extend-1.c: New test.
> * gcc.dg/vect/vect-float-truncate-1.c: New test.
>
> Uros.
>
More information about the Gcc-patches
mailing list