Skip to content

Commit 8e4db85

Browse files
committed
s390: Streamline NNPA builtins with their LLVM counterparts
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.
1 parent a4787a9 commit 8e4db85

File tree

9 files changed

+18
-19
lines changed

9 files changed

+18
-19
lines changed

gcc/config/s390/s390-builtin-types.def

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,9 @@ DEF_FN_TYPE_2 (BT_FN_V2DI_V2DF_V2DF, BT_V2DI, BT_V2DF, BT_V2DF)
265265
DEF_FN_TYPE_2 (BT_FN_V2DI_V2DI_V2DI, BT_V2DI, BT_V2DI, BT_V2DI)
266266
DEF_FN_TYPE_2 (BT_FN_V2DI_V4SI_V4SI, BT_V2DI, BT_V4SI, BT_V4SI)
267267
DEF_FN_TYPE_2 (BT_FN_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT)
268+
DEF_FN_TYPE_2 (BT_FN_V4SF_UV8HI_UINT, BT_V4SF, BT_UV8HI, BT_UINT)
268269
DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR)
269270
DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_V4SF, BT_V4SF, BT_V4SF, BT_V4SF)
270-
DEF_FN_TYPE_2 (BT_FN_V4SF_V8HI_UINT, BT_V4SF, BT_V8HI, BT_UINT)
271271
DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, BT_V4SI, BT_BV4SI, BT_V4SI)
272272
DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDCONSTPTR, BT_V4SI, BT_INT, BT_VOIDCONSTPTR)
273273
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)
279279
DEF_FN_TYPE_2 (BT_FN_V8HI_UV8HI_UV8HI, BT_V8HI, BT_UV8HI, BT_UV8HI)
280280
DEF_FN_TYPE_2 (BT_FN_V8HI_V16QI_V16QI, BT_V8HI, BT_V16QI, BT_V16QI)
281281
DEF_FN_TYPE_2 (BT_FN_V8HI_V4SI_V4SI, BT_V8HI, BT_V4SI, BT_V4SI)
282-
DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_UINT, BT_V8HI, BT_V8HI, BT_UINT)
283282
DEF_FN_TYPE_2 (BT_FN_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI)
284283
DEF_FN_TYPE_2 (BT_FN_VOID_UINT64PTR_UINT64, BT_VOID, BT_UINT64PTR, BT_UINT64)
285284
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
317316
DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INT, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INT)
318317
DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_INTPTR, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
319318
DEF_FN_TYPE_3 (BT_FN_UV8HI_UV8HI_UV8HI_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI, BT_UV8HI)
319+
DEF_FN_TYPE_3 (BT_FN_UV8HI_V4SF_V4SF_UINT, BT_UV8HI, BT_V4SF, BT_V4SF, BT_UINT)
320320
DEF_FN_TYPE_3 (BT_FN_V16QI_UV16QI_UV16QI_INTPTR, BT_V16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
321321
DEF_FN_TYPE_3 (BT_FN_V16QI_V16QI_V16QI_INTPTR, BT_V16QI, BT_V16QI, BT_V16QI, BT_INTPTR)
322322
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)
347347
DEF_FN_TYPE_3 (BT_FN_V4SI_V8HI_V8HI_V4SI, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI)
348348
DEF_FN_TYPE_3 (BT_FN_V8HI_UV8HI_UV8HI_INTPTR, BT_V8HI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
349349
DEF_FN_TYPE_3 (BT_FN_V8HI_V16QI_V16QI_V8HI, BT_V8HI, BT_V16QI, BT_V16QI, BT_V8HI)
350-
DEF_FN_TYPE_3 (BT_FN_V8HI_V4SF_V4SF_UINT, BT_V8HI, BT_V4SF, BT_V4SF, BT_UINT)
351350
DEF_FN_TYPE_3 (BT_FN_V8HI_V4SI_V4SI_INTPTR, BT_V8HI, BT_V4SI, BT_V4SI, BT_INTPTR)
352351
DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_INTPTR, BT_V8HI, BT_V8HI, BT_V8HI, BT_INTPTR)
353352
DEF_FN_TYPE_3 (BT_FN_V8HI_V8HI_V8HI_V8HI, BT_V8HI, BT_V8HI, BT_V8HI, BT_V8HI)

gcc/config/s390/s390-builtins.def

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3037,10 +3037,10 @@ B_DEF (s390_vstrszf, vstrszv4si, 0,
30373037

30383038
/* arch 14 builtins */
30393039

3040-
B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT)
3041-
B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT)
3040+
B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT)
3041+
B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_UV8HI_UINT)
30423042

3043-
B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V4SF_V4SF_UINT)
3043+
B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_UV8HI_V4SF_V4SF_UINT)
30443044

3045-
B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT)
3046-
B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT)
3045+
B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT)
3046+
B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_UV8HI_UV8HI_UINT)

gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp16-convert.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ main ()
1010
vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f };
1111
vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f };
1212

13-
vector short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0);
13+
vector unsigned short int tmp1 = vec_round_from_fp32 (fp1, fp2, 0);
1414

15-
vector short int tmp2 = vec_convert_to_fp16 (tmp1, 0);
16-
vector short int tmp3 = vec_convert_from_fp16 (tmp2, 0);
15+
vector unsigned short int tmp2 = vec_convert_to_fp16 (tmp1, 0);
16+
vector unsigned short int tmp3 = vec_convert_from_fp16 (tmp2, 0);
1717

1818
vector float fp1_ret = vec_extend_to_fp32_hi (tmp3, 0);
1919
vector float fp2_ret = vec_extend_to_fp32_lo (tmp3, 0);

gcc/testsuite/gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ main ()
99
{
1010
vector float fp1 = (vector float){ 1.0f, 2.0f, 3.0f, 4.0f };
1111
vector float fp2 = (vector float){ 5.0f, 6.0f, 7.0f, 8.0f };
12-
vector short int conv = vec_round_from_fp32 (fp1, fp2, 0);
12+
vector unsigned short int conv = vec_round_from_fp32 (fp1, fp2, 0);
1313
vector float fp1_ret = vec_extend_to_fp32_hi (conv, 0);
1414
vector float fp2_ret = vec_extend_to_fp32_lo (conv, 0);
1515

gcc/testsuite/gcc.target/s390/zvector/vec_convert_from_fp16.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
#include <vecintrin.h>
55

6-
vector short int
7-
test_vec_convert_from_fp16 (vector short int a)
6+
vector unsigned short int
7+
test_vec_convert_from_fp16 (vector unsigned short int a)
88
{
99
return vec_convert_from_fp16 (a, 0);
1010
}

gcc/testsuite/gcc.target/s390/zvector/vec_convert_to_fp16.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
#include <vecintrin.h>
55

6-
vector short int
7-
test_vec_convert_to_fp16 (vector short int a)
6+
vector unsigned short int
7+
test_vec_convert_to_fp16 (vector unsigned short int a)
88
{
99
return vec_convert_to_fp16 (a, 0);
1010
}

gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_hi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <vecintrin.h>
55

66
vector float
7-
test_vec_extend_to_fp32_hi (vector short int a)
7+
test_vec_extend_to_fp32_hi (vector unsigned short int a)
88
{
99
return vec_extend_to_fp32_hi (a, 0);
1010
}

gcc/testsuite/gcc.target/s390/zvector/vec_extend_to_fp32_lo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <vecintrin.h>
55

66
vector float
7-
test_vec_extend_to_fp32_lo (vector short int a)
7+
test_vec_extend_to_fp32_lo (vector unsigned short int a)
88
{
99
return vec_extend_to_fp32_lo (a, 0);
1010
}

gcc/testsuite/gcc.target/s390/zvector/vec_round_from_fp32.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include <vecintrin.h>
55

6-
vector short int
6+
vector unsigned short int
77
test_vec_round_from_fp32 (vector float hi, vector float lo)
88
{
99
return vec_round_from_fp32 (hi, lo, 0);

0 commit comments

Comments
 (0)