Message ID | 20231116120730.1312100-1-stefansf@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | s390: Streamline NNPA builtins with their LLVM counterparts | expand |
Ping. On Thu, Nov 16, 2023 at 01:07:30PM +0100, Stefan Schulze Frielinghaus wrote: > For the opaque NNP-data type prefer unsigned over signed integer types. > > gcc/ChangeLog: > > * config/s390/s390-builtin-types.def: Add/remove types. > * config/s390/s390-builtins.def > (s390_vclfnhs,s390_vclfnls,s390_vcrnfs,s390_vcfn,s390_vcnf): > Replace type V8HI with UV8HI. > > gcc/testsuite/ChangeLog: > > * gcc.target/s390/zvector/vec-nnpa-fp16-convert.c: Replace V8HI > types with UV8HI. > * gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c: Dito. > * gcc.target/s390/zvector/vec_convert_from_fp16.c: Dito. > * gcc.target/s390/zvector/vec_convert_to_fp16.c: Dito. > * gcc.target/s390/zvector/vec_extend_to_fp32_hi.c: Dito. > * gcc.target/s390/zvector/vec_extend_to_fp32_lo.c: Dito. > * gcc.target/s390/zvector/vec_round_from_fp32.c: Dito. > --- > gcc/config/s390/s390-builtin-types.def | 5 ++--- > gcc/config/s390/s390-builtins.def | 10 +++++----- > .../gcc.target/s390/zvector/vec-nnpa-fp16-convert.c | 6 +++--- > .../gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c | 2 +- > .../gcc.target/s390/zvector/vec_convert_from_fp16.c | 4 ++-- > .../gcc.target/s390/zvector/vec_convert_to_fp16.c | 4 ++-- > .../gcc.target/s390/zvector/vec_extend_to_fp32_hi.c | 2 +- > .../gcc.target/s390/zvector/vec_extend_to_fp32_lo.c | 2 +- > .../gcc.target/s390/zvector/vec_round_from_fp32.c | 2 +- > 9 files changed, 18 insertions(+), 19 deletions(-) > > diff --git a/gcc/config/s390/s390-builtin-types.def b/gcc/config/s390/s390-builtin-types.def > index 3d8b30cdcc8..0bf759bd77a 100644 > --- a/gcc/config/s390/s390-builtin-types.def > +++ b/gcc/config/s390/s390-builtin-types.def > @@ -265,9 +265,9 @@ DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_V2DF, BT_V2DI, BT_V2DF, BT_V2DF) > DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI_V2DI, BT_V2DI, BT_V2DI, BT_V2DI) > DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI_V4SI, BT_V2DI, BT_V4SI, BT_V4SI) > DEF_FN_TYPE_2 (BT_FN_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT) > +DEF_FN_TYPE_2 (BT_FN_V4SF_UV8HI_UINT, BT_V4SF, BT_UV8HI, BT_UINT) > DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) > DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_V4SF, BT_V4SF, BT_V4SF, BT_V4SF) > -DEF_FN_TYPE_2 (BT_FN_V4SF_V8HI_UINT, BT_V4SF, BT_V8HI, BT_UINT) > DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, BT_V4SI, BT_BV4SI, BT_V4SI) > DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDCONSTPTR, BT_V4SI, BT_INT, BT_VOIDCONSTPTR) > DEF_FN_TYPE_2 (BT_FN_V4SI_UV4SI_UV4SI, BT_V4SI, BT_UV4SI, BT_UV4SI) > @@ -279,7 +279,6 @@ DEF_FN_TYPE_2 (BT_FN_V8HI_BV8HI_V8HI, BT_V8HI, BT_BV8HI, BT_V8HI) > DEF_FN_TYPE_2 (BT_FN_V8HI_UV8HI_UV8HI, BT_V8HI, BT_UV8HI, BT_UV8HI) > DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI_V16QI, BT_V8HI, BT_V16QI, BT_V16QI) > DEF_FN_TYPE_2 (BT_FN_V8HI_V4SI_V4SI, BT_V8HI, BT_V4SI, BT_V4SI) > -DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_UINT, BT_V8HI, BT_V8HI, BT_UINT) > DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) > DEF_FN_TYPE_2 (BT_FN_VOID_UINT64PTR_UINT64, BT_VOID, BT_UINT64PTR, BT_UINT64) > DEF_FN_TYPE_2 (BT_FN_VOID_V2DF_FLTPTR, BT_VOID, BT_V2DF, BT_FLTPTR) > @@ -317,6 +316,7 @@ DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_USHORT_INT, BT_UV8HI, BT_UV8HI, BT_USHORT, BT_I > DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INT, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT) > DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI) > +DEF_FN_TYPE_3 (BT_FN_UV8HI_V4SF_V4SF_UINT, BT_UV8HI, BT_V4SF, BT_V4SF, BT_UINT) > DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_INTPTR, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_V16QI, BT_V16QI, BT_V16QI, BT_V16QI, BT_V16QI) > @@ -347,7 +347,6 @@ DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI_V4SI, BT_V4SI, BT_V4SI, BT_V4SI, BT_V4SI) > DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI_V4SI, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI) > DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI_V8HI, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI) > -DEF_FN_TYPE_3 (BT_FN_V8HI_V4SF_V4SF_UINT, BT_V8HI, BT_V4SF, BT_V4SF, BT_UINT) > DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI_INTPTR, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_INTPTR, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR) > DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) > diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def > index 964d86c74a0..f331eba100a 100644 > --- a/gcc/config/s390/s390-builtins.def > +++ b/gcc/config/s390/s390-builtins.def > @@ -3037,10 +3037,10 @@ B_DEF (s390_vstrszf, vstrszv4si, 0, > > /* arch 14 builtins */ > > -B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) > -B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) > +B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) > +B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) > > -B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V4SF_V4SF_UINT) > +B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_UV8HI_V4SF_V4SF_UINT) > > -B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) > -B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) > +B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) > +B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c > index 5ed7e050194..7d7c13e471e 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c > @@ -10,10 +10,10 @@ main () > vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; > vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; > > - vector short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); > + vector unsigned short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); > > - vector short int tmp2 = vec_convert_to_fp16 (tmp1, 0); > - vector short int tmp3 = vec_convert_from_fp16 (tmp2, 0); > + vector unsigned short int tmp2 = vec_convert_to_fp16 (tmp1, 0); > + vector unsigned short int tmp3 = vec_convert_from_fp16 (tmp2, 0); > > vector float fp1_ret = vec_extend_to_fp32_hi (tmp3, 0); > vector float fp2_ret = vec_extend_to_fp32_lo (tmp3, 0); > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c > index 321488a09ac..6dcfad4cada 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c > @@ -9,7 +9,7 @@ main () > { > vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; > vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; > - vector short int conv = vec_round_from_fp32 (fp1, fp2, 0); > + vector unsigned short int conv = vec_round_from_fp32 (fp1, fp2, 0); > vector float fp1_ret = vec_extend_to_fp32_hi (conv, 0); > vector float fp2_ret = vec_extend_to_fp32_lo (conv, 0); > > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c > index fc7ccf0ebaa..86fad2cd987 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c > @@ -3,8 +3,8 @@ > > #include <vecintrin.h> > > -vector short int > -test_vec_convert_from_fp16 (vector short int a) > +vector unsigned short int > +test_vec_convert_from_fp16 (vector unsigned short int a) > { > return vec_convert_from_fp16 (a, 0); > } > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c > index 7232643f063..eda29529f74 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c > @@ -3,8 +3,8 @@ > > #include <vecintrin.h> > > -vector short int > -test_vec_convert_to_fp16 (vector short int a) > +vector unsigned short int > +test_vec_convert_to_fp16 (vector unsigned short int a) > { > return vec_convert_to_fp16 (a, 0); > } > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c > index feb5e784e0c..feedef82065 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c > @@ -4,7 +4,7 @@ > #include <vecintrin.h> > > vector float > -test_vec_extend_to_fp32_hi (vector short int a) > +test_vec_extend_to_fp32_hi (vector unsigned short int a) > { > return vec_extend_to_fp32_hi (a, 0); > } > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c > index 179de17de9e..dbdf5305839 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c > @@ -4,7 +4,7 @@ > #include <vecintrin.h> > > vector float > -test_vec_extend_to_fp32_lo (vector short int a) > +test_vec_extend_to_fp32_lo (vector unsigned short int a) > { > return vec_extend_to_fp32_lo (a, 0); > } > diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c > index 839245228b9..617a8200cd1 100644 > --- a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c > +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c > @@ -3,7 +3,7 @@ > > #include <vecintrin.h> > > -vector short int > +vector unsigned short int > test_vec_round_from_fp32 (vector float hi, vector float lo) > { > return vec_round_from_fp32 (hi, lo, 0); > -- > 2.41.0 >
Ok, thanks! Andreas On 11/27/23 10:12, Stefan Schulze Frielinghaus wrote: > Ping. > > On Thu, Nov 16, 2023 at 01:07:30PM +0100, Stefan Schulze Frielinghaus wrote: >> For the opaque NNP-data type prefer unsigned over signed integer types. >> >> gcc/ChangeLog: >> >> * config/s390/s390-builtin-types.def: Add/remove types. >> * config/s390/s390-builtins.def >> (s390_vclfnhs,s390_vclfnls,s390_vcrnfs,s390_vcfn,s390_vcnf): >> Replace type V8HI with UV8HI. >> >> gcc/testsuite/ChangeLog: >> >> * gcc.target/s390/zvector/vec-nnpa-fp16-convert.c: Replace V8HI >> types with UV8HI. >> * gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c: Dito. >> * gcc.target/s390/zvector/vec_convert_from_fp16.c: Dito. >> * gcc.target/s390/zvector/vec_convert_to_fp16.c: Dito. >> * gcc.target/s390/zvector/vec_extend_to_fp32_hi.c: Dito. >> * gcc.target/s390/zvector/vec_extend_to_fp32_lo.c: Dito. >> * gcc.target/s390/zvector/vec_round_from_fp32.c: Dito. >> --- >> gcc/config/s390/s390-builtin-types.def | 5 ++--- >> gcc/config/s390/s390-builtins.def | 10 +++++----- >> .../gcc.target/s390/zvector/vec-nnpa-fp16-convert.c | 6 +++--- >> .../gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c | 2 +- >> .../gcc.target/s390/zvector/vec_convert_from_fp16.c | 4 ++-- >> .../gcc.target/s390/zvector/vec_convert_to_fp16.c | 4 ++-- >> .../gcc.target/s390/zvector/vec_extend_to_fp32_hi.c | 2 +- >> .../gcc.target/s390/zvector/vec_extend_to_fp32_lo.c | 2 +- >> .../gcc.target/s390/zvector/vec_round_from_fp32.c | 2 +- >> 9 files changed, 18 insertions(+), 19 deletions(-) >> >> diff --git a/gcc/config/s390/s390-builtin-types.def b/gcc/config/s390/s390-builtin-types.def >> index 3d8b30cdcc8..0bf759bd77a 100644 >> --- a/gcc/config/s390/s390-builtin-types.def >> +++ b/gcc/config/s390/s390-builtin-types.def >> @@ -265,9 +265,9 @@ DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_V2DF, BT_V2DI, BT_V2DF, BT_V2DF) >> DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI_V2DI, BT_V2DI, BT_V2DI, BT_V2DI) >> DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI_V4SI, BT_V2DI, BT_V4SI, BT_V4SI) >> DEF_FN_TYPE_2 (BT_FN_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT) >> +DEF_FN_TYPE_2 (BT_FN_V4SF_UV8HI_UINT, BT_V4SF, BT_UV8HI, BT_UINT) >> DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) >> DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_V4SF, BT_V4SF, BT_V4SF, BT_V4SF) >> -DEF_FN_TYPE_2 (BT_FN_V4SF_V8HI_UINT, BT_V4SF, BT_V8HI, BT_UINT) >> DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, BT_V4SI, BT_BV4SI, BT_V4SI) >> DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDCONSTPTR, BT_V4SI, BT_INT, BT_VOIDCONSTPTR) >> DEF_FN_TYPE_2 (BT_FN_V4SI_UV4SI_UV4SI, BT_V4SI, BT_UV4SI, BT_UV4SI) >> @@ -279,7 +279,6 @@ DEF_FN_TYPE_2 (BT_FN_V8HI_BV8HI_V8HI, BT_V8HI, BT_BV8HI, BT_V8HI) >> DEF_FN_TYPE_2 (BT_FN_V8HI_UV8HI_UV8HI, BT_V8HI, BT_UV8HI, BT_UV8HI) >> DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI_V16QI, BT_V8HI, BT_V16QI, BT_V16QI) >> DEF_FN_TYPE_2 (BT_FN_V8HI_V4SI_V4SI, BT_V8HI, BT_V4SI, BT_V4SI) >> -DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_UINT, BT_V8HI, BT_V8HI, BT_UINT) >> DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) >> DEF_FN_TYPE_2 (BT_FN_VOID_UINT64PTR_UINT64, BT_VOID, BT_UINT64PTR, BT_UINT64) >> DEF_FN_TYPE_2 (BT_FN_VOID_V2DF_FLTPTR, BT_VOID, BT_V2DF, BT_FLTPTR) >> @@ -317,6 +316,7 @@ DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_USHORT_INT, BT_UV8HI, BT_UV8HI, BT_USHORT, BT_I >> DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INT, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT) >> DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI) >> +DEF_FN_TYPE_3 (BT_FN_UV8HI_V4SF_V4SF_UINT, BT_UV8HI, BT_V4SF, BT_V4SF, BT_UINT) >> DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_INTPTR, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_V16QI, BT_V16QI, BT_V16QI, BT_V16QI, BT_V16QI) >> @@ -347,7 +347,6 @@ DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI_V4SI, BT_V4SI, BT_V4SI, BT_V4SI, BT_V4SI) >> DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI_V4SI, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI) >> DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI_V8HI, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI) >> -DEF_FN_TYPE_3 (BT_FN_V8HI_V4SF_V4SF_UINT, BT_V8HI, BT_V4SF, BT_V4SF, BT_UINT) >> DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI_INTPTR, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_INTPTR, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR) >> DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) >> diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def >> index 964d86c74a0..f331eba100a 100644 >> --- a/gcc/config/s390/s390-builtins.def >> +++ b/gcc/config/s390/s390-builtins.def >> @@ -3037,10 +3037,10 @@ B_DEF (s390_vstrszf, vstrszv4si, 0, >> >> /* arch 14 builtins */ >> >> -B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) >> -B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) >> +B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) >> +B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) >> >> -B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V4SF_V4SF_UINT) >> +B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_UV8HI_V4SF_V4SF_UINT) >> >> -B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) >> -B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) >> +B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) >> +B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c >> index 5ed7e050194..7d7c13e471e 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c >> @@ -10,10 +10,10 @@ main () >> vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; >> vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; >> >> - vector short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); >> + vector unsigned short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); >> >> - vector short int tmp2 = vec_convert_to_fp16 (tmp1, 0); >> - vector short int tmp3 = vec_convert_from_fp16 (tmp2, 0); >> + vector unsigned short int tmp2 = vec_convert_to_fp16 (tmp1, 0); >> + vector unsigned short int tmp3 = vec_convert_from_fp16 (tmp2, 0); >> >> vector float fp1_ret = vec_extend_to_fp32_hi (tmp3, 0); >> vector float fp2_ret = vec_extend_to_fp32_lo (tmp3, 0); >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c >> index 321488a09ac..6dcfad4cada 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c >> @@ -9,7 +9,7 @@ main () >> { >> vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; >> vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; >> - vector short int conv = vec_round_from_fp32 (fp1, fp2, 0); >> + vector unsigned short int conv = vec_round_from_fp32 (fp1, fp2, 0); >> vector float fp1_ret = vec_extend_to_fp32_hi (conv, 0); >> vector float fp2_ret = vec_extend_to_fp32_lo (conv, 0); >> >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c >> index fc7ccf0ebaa..86fad2cd987 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c >> @@ -3,8 +3,8 @@ >> >> #include <vecintrin.h> >> >> -vector short int >> -test_vec_convert_from_fp16 (vector short int a) >> +vector unsigned short int >> +test_vec_convert_from_fp16 (vector unsigned short int a) >> { >> return vec_convert_from_fp16 (a, 0); >> } >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c >> index 7232643f063..eda29529f74 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c >> @@ -3,8 +3,8 @@ >> >> #include <vecintrin.h> >> >> -vector short int >> -test_vec_convert_to_fp16 (vector short int a) >> +vector unsigned short int >> +test_vec_convert_to_fp16 (vector unsigned short int a) >> { >> return vec_convert_to_fp16 (a, 0); >> } >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c >> index feb5e784e0c..feedef82065 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c >> @@ -4,7 +4,7 @@ >> #include <vecintrin.h> >> >> vector float >> -test_vec_extend_to_fp32_hi (vector short int a) >> +test_vec_extend_to_fp32_hi (vector unsigned short int a) >> { >> return vec_extend_to_fp32_hi (a, 0); >> } >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c >> index 179de17de9e..dbdf5305839 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c >> @@ -4,7 +4,7 @@ >> #include <vecintrin.h> >> >> vector float >> -test_vec_extend_to_fp32_lo (vector short int a) >> +test_vec_extend_to_fp32_lo (vector unsigned short int a) >> { >> return vec_extend_to_fp32_lo (a, 0); >> } >> diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c >> index 839245228b9..617a8200cd1 100644 >> --- a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c >> +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c >> @@ -3,7 +3,7 @@ >> >> #include <vecintrin.h> >> >> -vector short int >> +vector unsigned short int >> test_vec_round_from_fp32 (vector float hi, vector float lo) >> { >> return vec_round_from_fp32 (hi, lo, 0); >> -- >> 2.41.0 >>
diff --git a/gcc/config/s390/s390-builtin-types.def b/gcc/config/s390/s390-builtin-types.def index 3d8b30cdcc8..0bf759bd77a 100644 --- a/gcc/config/s390/s390-builtin-types.def +++ b/gcc/config/s390/s390-builtin-types.def @@ -265,9 +265,9 @@ DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_V2DF, BT_V2DI, BT_V2DF, BT_V2DF) DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI_V2DI, BT_V2DI, BT_V2DI, BT_V2DI) DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI_V4SI, BT_V2DI, BT_V4SI, BT_V4SI) DEF_FN_TYPE_2 (BT_FN_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT) +DEF_FN_TYPE_2 (BT_FN_V4SF_UV8HI_UINT, BT_V4SF, BT_UV8HI, BT_UINT) DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_V4SF, BT_V4SF, BT_V4SF, BT_V4SF) -DEF_FN_TYPE_2 (BT_FN_V4SF_V8HI_UINT, BT_V4SF, BT_V8HI, BT_UINT) DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, BT_V4SI, BT_BV4SI, BT_V4SI) DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDCONSTPTR, BT_V4SI, BT_INT, BT_VOIDCONSTPTR) DEF_FN_TYPE_2 (BT_FN_V4SI_UV4SI_UV4SI, BT_V4SI, BT_UV4SI, BT_UV4SI) @@ -279,7 +279,6 @@ DEF_FN_TYPE_2 (BT_FN_V8HI_BV8HI_V8HI, BT_V8HI, BT_BV8HI, BT_V8HI) DEF_FN_TYPE_2 (BT_FN_V8HI_UV8HI_UV8HI, BT_V8HI, BT_UV8HI, BT_UV8HI) DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI_V16QI, BT_V8HI, BT_V16QI, BT_V16QI) DEF_FN_TYPE_2 (BT_FN_V8HI_V4SI_V4SI, BT_V8HI, BT_V4SI, BT_V4SI) -DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_UINT, BT_V8HI, BT_V8HI, BT_UINT) DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) DEF_FN_TYPE_2 (BT_FN_VOID_UINT64PTR_UINT64, BT_VOID, BT_UINT64PTR, BT_UINT64) DEF_FN_TYPE_2 (BT_FN_VOID_V2DF_FLTPTR, BT_VOID, BT_V2DF, BT_FLTPTR) @@ -317,6 +316,7 @@ DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_USHORT_INT, BT_UV8HI, BT_UV8HI, BT_USHORT, BT_I DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INT, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT) DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI) +DEF_FN_TYPE_3 (BT_FN_UV8HI_V4SF_V4SF_UINT, BT_UV8HI, BT_V4SF, BT_V4SF, BT_UINT) DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_INTPTR, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_V16QI, BT_V16QI, BT_V16QI, BT_V16QI, BT_V16QI) @@ -347,7 +347,6 @@ DEF_FN_TYPE_3 (BT_FN_V4SI_V4SI_V4SI_V4SI, BT_V4SI, BT_V4SI, BT_V4SI, BT_V4SI) DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI_V4SI, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI) DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI_V8HI, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI) -DEF_FN_TYPE_3 (BT_FN_V8HI_V4SF_V4SF_UINT, BT_V8HI, BT_V4SF, BT_V4SF, BT_UINT) DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI_INTPTR, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_INTPTR, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR) DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI) diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def index 964d86c74a0..f331eba100a 100644 --- a/gcc/config/s390/s390-builtins.def +++ b/gcc/config/s390/s390-builtins.def @@ -3037,10 +3037,10 @@ B_DEF (s390_vstrszf, vstrszv4si, 0, /* arch 14 builtins */ -B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) -B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT) +B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) +B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT) -B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V4SF_V4SF_UINT) +B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_UV8HI_V4SF_V4SF_UINT) -B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) -B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT) +B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) +B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT) diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c index 5ed7e050194..7d7c13e471e 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c @@ -10,10 +10,10 @@ main () vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; - vector short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); + vector unsigned short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0); - vector short int tmp2 = vec_convert_to_fp16 (tmp1, 0); - vector short int tmp3 = vec_convert_from_fp16 (tmp2, 0); + vector unsigned short int tmp2 = vec_convert_to_fp16 (tmp1, 0); + vector unsigned short int tmp3 = vec_convert_from_fp16 (tmp2, 0); vector float fp1_ret = vec_extend_to_fp32_hi (tmp3, 0); vector float fp2_ret = vec_extend_to_fp32_lo (tmp3, 0); diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c index 321488a09ac..6dcfad4cada 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c @@ -9,7 +9,7 @@ main () { vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f }; vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f }; - vector short int conv = vec_round_from_fp32 (fp1, fp2, 0); + vector unsigned short int conv = vec_round_from_fp32 (fp1, fp2, 0); vector float fp1_ret = vec_extend_to_fp32_hi (conv, 0); vector float fp2_ret = vec_extend_to_fp32_lo (conv, 0); diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c index fc7ccf0ebaa..86fad2cd987 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c @@ -3,8 +3,8 @@ #include <vecintrin.h> -vector short int -test_vec_convert_from_fp16 (vector short int a) +vector unsigned short int +test_vec_convert_from_fp16 (vector unsigned short int a) { return vec_convert_from_fp16 (a, 0); } diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c index 7232643f063..eda29529f74 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c @@ -3,8 +3,8 @@ #include <vecintrin.h> -vector short int -test_vec_convert_to_fp16 (vector short int a) +vector unsigned short int +test_vec_convert_to_fp16 (vector unsigned short int a) { return vec_convert_to_fp16 (a, 0); } diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c index feb5e784e0c..feedef82065 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c @@ -4,7 +4,7 @@ #include <vecintrin.h> vector float -test_vec_extend_to_fp32_hi (vector short int a) +test_vec_extend_to_fp32_hi (vector unsigned short int a) { return vec_extend_to_fp32_hi (a, 0); } diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c index 179de17de9e..dbdf5305839 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c @@ -4,7 +4,7 @@ #include <vecintrin.h> vector float -test_vec_extend_to_fp32_lo (vector short int a) +test_vec_extend_to_fp32_lo (vector unsigned short int a) { return vec_extend_to_fp32_lo (a, 0); } diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c index 839245228b9..617a8200cd1 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c @@ -3,7 +3,7 @@ #include <vecintrin.h> -vector short int +vector unsigned short int test_vec_round_from_fp32 (vector float hi, vector float lo) { return vec_round_from_fp32 (hi, lo, 0);