On 11/9/23 09:24, Stefan Schulze Frielinghaus wrote:
> For patterns which make use of two modes, do not build the cross product
> and then exclude illegal combinations via conditions but rather do not
> create those in the first place.  Here we are following the idea of the
> attribute TOINTVEC/tointvec and introduce TOINT/toint.
> 
> Bootstrapped and regtested on s390.  Ok for mainline?
> 
> gcc/ChangeLog:
> 
>       * config/s390/s390.md (VX_CONV_INT): Remove iterator.
>       (gf): Add float mappings.
>       (TOINT, toint): New attribute.
>       (*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13):
>       Remove.
>       (*fixuns_trunc<mode><toint>2_z13): Add.
>       (*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13):
>       Remove.
>       (*fix_trunc<mode><toint>2_bfp_z13): Add.
>       (*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13): Remove.
>       (*floatuns<toint><mode>2_z13): Add.
>       * config/s390/vector.md (VX_VEC_CONV_INT): Remove iterator.
>       (float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
>       (float<tointvec><mode>2): Add.
>       (floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
>       (floatuns<tointvec><mode>2): Add.
>       (fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
>       Remove.
>       (fix_trunc<mode><tointvec>2): Add.
>       (fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
>       Remove.
>       (fixuns_trunc<VX_VEC_CONV_BFP:mode><tointvec>2): Add.

Ok, thanks!

Andreas

Reply via email to