aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-generic.cc
diff options
context:
space:
mode:
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2023-11-09 09:30:45 +0100
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2023-11-09 09:30:45 +0100
commitfa4dde85af5f08baed60bbb3f8455733edae6afb (patch)
tree317d1e8f9a29d32c8130891a78c3de967c57db79 /gcc/tree-vect-generic.cc
parentf172b9d38db426d2b102c0f9c1fd58672acc6c9b (diff)
downloadgcc-fa4dde85af5f08baed60bbb3f8455733edae6afb.zip
gcc-fa4dde85af5f08baed60bbb3f8455733edae6afb.tar.gz
gcc-fa4dde85af5f08baed60bbb3f8455733edae6afb.tar.bz2
s390: Reduce number of patterns where the condition is false anyway
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. 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.
Diffstat (limited to 'gcc/tree-vect-generic.cc')
0 files changed, 0 insertions, 0 deletions