[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