diff options
author | Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | 2025-01-20 10:01:10 +0100 |
---|---|---|
committer | Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | 2025-01-20 10:01:10 +0100 |
commit | 459816efa13d9d553a5c900336f6eef22072f1a1 (patch) | |
tree | aa9d6dfdc75831b5a55f4282a4309078dd246dee /gcc | |
parent | 10c52b3866572df9f84e41d8045cbf8c6ce6ab04 (diff) | |
download | gcc-459816efa13d9d553a5c900336f6eef22072f1a1.zip gcc-459816efa13d9d553a5c900336f6eef22072f1a1.tar.gz gcc-459816efa13d9d553a5c900336f6eef22072f1a1.tar.bz2 |
s390: Update vec_(load,store)_len(,_r)
Reflect latest updates for vec_(load,store)_len(,_r) which means that
all types except character based types are deprecated.
gcc/ChangeLog:
* config/s390/s390-builtins.def (s390_vec_load_len): Deprecate
some overloads.
(s390_vec_store_len): Deprecate some overloads.
(s390_vec_load_len_r): Add.
(s390_vec_store_len_r): Add.
* config/s390/s390-c.cc (s390_vec_load_len_r): Add.
(s390_vec_store_len_r): Add.
* config/s390/vecintrin.h (vec_load_len_r): Redefine.
(vec_store_len_r): Redefine.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/s390/s390-builtins.def | 40 | ||||
-rw-r--r-- | gcc/config/s390/s390-c.cc | 2 | ||||
-rw-r--r-- | gcc/config/s390/vecintrin.h | 6 |
3 files changed, 28 insertions, 20 deletions
diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def index 24941ed..d9af9b1 100644 --- a/gcc/config/s390/s390-builtins.def +++ b/gcc/config/s390/s390-builtins.def @@ -529,14 +529,18 @@ OB_DEF_VAR (s390_vec_load_pair_u64, MAX, 0, OB_DEF (s390_vec_load_len, s390_vec_load_len_s8,s390_vec_load_len_dbl,B_VX, BT_FN_OV4SI_INTCONSTPTR_UINT) OB_DEF_VAR (s390_vec_load_len_s8, s390_vll, 0, 0, BT_OV_V16QI_SCHARCONSTPTR_UINT) OB_DEF_VAR (s390_vec_load_len_u8, s390_vll, 0, 0, BT_OV_UV16QI_UCHARCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_s16, s390_vll, 0, 0, BT_OV_V8HI_SHORTCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_u16, s390_vll, 0, 0, BT_OV_UV8HI_USHORTCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_s32, s390_vll, 0, 0, BT_OV_V4SI_INTCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_u32, s390_vll, 0, 0, BT_OV_UV4SI_UINTCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_s64, s390_vll, 0, 0, BT_OV_V2DI_LONGLONGCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_u64, s390_vll, 0, 0, BT_OV_UV2DI_ULONGLONGCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_flt, s390_vll, B_VXE, 0, BT_OV_V4SF_FLTCONSTPTR_UINT) -OB_DEF_VAR (s390_vec_load_len_dbl, s390_vll, 0, 0, BT_OV_V2DF_DBLCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_s16, s390_vll, B_DEP, 0, BT_OV_V8HI_SHORTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_u16, s390_vll, B_DEP, 0, BT_OV_UV8HI_USHORTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_s32, s390_vll, B_DEP, 0, BT_OV_V4SI_INTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_u32, s390_vll, B_DEP, 0, BT_OV_UV4SI_UINTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_s64, s390_vll, B_DEP, 0, BT_OV_V2DI_LONGLONGCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_u64, s390_vll, B_DEP, 0, BT_OV_UV2DI_ULONGLONGCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_flt, s390_vll, B_DEP | B_VXE, 0, BT_OV_V4SF_FLTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_dbl, s390_vll, B_DEP, 0, BT_OV_V2DF_DBLCONSTPTR_UINT) + +OB_DEF (s390_vec_load_len_r, s390_vec_load_len_r_s8,s390_vec_load_len_r_u8,B_VXE, BT_FN_OV4SI_INTCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_r_s8, s390_vlrlr, 0, 0, BT_OV_V16QI_SCHARCONSTPTR_UINT) +OB_DEF_VAR (s390_vec_load_len_r_u8, s390_vlrlr, 0, 0, BT_OV_UV16QI_UCHARCONSTPTR_UINT) B_DEF (s390_vll, vllv16qi, 0, B_VX, 0, BT_FN_V16QI_UINT_VOIDCONSTPTR) B_DEF (s390_vlrlr, vlrlrv16qi, 0, B_VXE, 0, BT_FN_V16QI_UINT_VOIDCONSTPTR) @@ -808,14 +812,18 @@ OB_DEF_VAR (s390_vec_xstw4_flt, MAX, B_VXE, OB_DEF (s390_vec_store_len, s390_vec_store_len_s8,s390_vec_store_len_dbl,B_VX, BT_FN_VOID_OV4SI_VOIDPTR_UINT) OB_DEF_VAR (s390_vec_store_len_s8, s390_vstl, 0, 0, BT_OV_VOID_V16QI_SCHARPTR_UINT) OB_DEF_VAR (s390_vec_store_len_u8, s390_vstl, 0, 0, BT_OV_VOID_UV16QI_UCHARPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_s16, s390_vstl, 0, 0, BT_OV_VOID_V8HI_SHORTPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_u16, s390_vstl, 0, 0, BT_OV_VOID_UV8HI_USHORTPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_s32, s390_vstl, 0, 0, BT_OV_VOID_V4SI_INTPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_u32, s390_vstl, 0, 0, BT_OV_VOID_UV4SI_UINTPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_s64, s390_vstl, 0, 0, BT_OV_VOID_V2DI_LONGLONGPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_u64, s390_vstl, 0, 0, BT_OV_VOID_UV2DI_ULONGLONGPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_flt, s390_vstl, B_VXE, 0, BT_OV_VOID_V4SF_FLTPTR_UINT) -OB_DEF_VAR (s390_vec_store_len_dbl, s390_vstl, 0, 0, BT_OV_VOID_V2DF_DBLPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_s16, s390_vstl, B_DEP, 0, BT_OV_VOID_V8HI_SHORTPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_u16, s390_vstl, B_DEP, 0, BT_OV_VOID_UV8HI_USHORTPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_s32, s390_vstl, B_DEP, 0, BT_OV_VOID_V4SI_INTPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_u32, s390_vstl, B_DEP, 0, BT_OV_VOID_UV4SI_UINTPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_s64, s390_vstl, B_DEP, 0, BT_OV_VOID_V2DI_LONGLONGPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_u64, s390_vstl, B_DEP, 0, BT_OV_VOID_UV2DI_ULONGLONGPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_flt, s390_vstl, B_DEP | B_VXE, 0, BT_OV_VOID_V4SF_FLTPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_dbl, s390_vstl, B_DEP, 0, BT_OV_VOID_V2DF_DBLPTR_UINT) + +OB_DEF (s390_vec_store_len_r, s390_vec_store_len_r_s8,s390_vec_store_len_r_u8,B_VXE, BT_FN_VOID_OV4SI_VOIDPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_r_s8, s390_vstrlr, 0, 0, BT_OV_VOID_V16QI_SCHARPTR_UINT) +OB_DEF_VAR (s390_vec_store_len_r_u8, s390_vstrlr, 0, 0, BT_OV_VOID_UV16QI_UCHARPTR_UINT) B_DEF (s390_vstl, vstlv16qi, 0, B_VX, 0, BT_FN_VOID_V16QI_UINT_VOIDPTR) B_DEF (s390_vstrlr, vstrlrv16qi, 0, B_VXE, 0, BT_FN_VOID_V16QI_UINT_VOIDPTR) diff --git a/gcc/config/s390/s390-c.cc b/gcc/config/s390/s390-c.cc index bda60ef..311d74a 100644 --- a/gcc/config/s390/s390-c.cc +++ b/gcc/config/s390/s390-c.cc @@ -706,6 +706,7 @@ s390_adjust_builtin_arglist (unsigned int ob_fcode, tree decl, case S390_OVERLOADED_BUILTIN_s390_vec_sel: case S390_OVERLOADED_BUILTIN_s390_vec_insert: case S390_OVERLOADED_BUILTIN_s390_vec_load_len: + case S390_OVERLOADED_BUILTIN_s390_vec_load_len_r: /* Swap the first to arguments. It is better to do it here instead of the header file to avoid operand checking throwing error messages for a weird operand index. */ @@ -718,6 +719,7 @@ s390_adjust_builtin_arglist (unsigned int ob_fcode, tree decl, } break; case S390_OVERLOADED_BUILTIN_s390_vec_store_len: + case S390_OVERLOADED_BUILTIN_s390_vec_store_len_r: if (dest_arg_index == 1 || dest_arg_index == 2) { folded_args->quick_push (fully_fold_convert (TREE_VALUE (arg_chain), diff --git a/gcc/config/s390/vecintrin.h b/gcc/config/s390/vecintrin.h index b804eed..bda8471 100644 --- a/gcc/config/s390/vecintrin.h +++ b/gcc/config/s390/vecintrin.h @@ -115,10 +115,6 @@ __lcbb(const void *ptr, int bndry) #define vec_round(X) __builtin_s390_vfi((X), 4, 4) #define vec_doublee(X) __builtin_s390_vflls((X)) #define vec_floate(X) __builtin_s390_vflrd((X), 0, 0) -#define vec_load_len_r(X,L) \ - (__vector unsigned char)__builtin_s390_vlrlr((L),(X)) -#define vec_store_len_r(X,Y,L) \ - __builtin_s390_vstrlr((__vector signed char)(X),(L),(Y)) #define vec_all_nan(a) \ __extension__ ({ \ @@ -265,6 +261,7 @@ __lcbb(const void *ptr, int bndry) #define vec_ld2f __builtin_s390_vec_ld2f #define vec_load_bndry __builtin_s390_vec_load_bndry #define vec_load_len __builtin_s390_vec_load_len +#define vec_load_len_r __builtin_s390_vec_load_len_r #define vec_load_pair __builtin_s390_vec_load_pair #define vec_madd __builtin_s390_vec_madd #define vec_max __builtin_s390_vec_max @@ -322,6 +319,7 @@ __lcbb(const void *ptr, int bndry) #define vec_srl __builtin_s390_vec_srl #define vec_st2f __builtin_s390_vec_st2f #define vec_store_len __builtin_s390_vec_store_len +#define vec_store_len_r __builtin_s390_vec_store_len_r #define vec_sub_u128 __builtin_s390_vec_sub_u128 #define vec_subc __builtin_s390_vec_subc #define vec_subc_u128 __builtin_s390_vec_subc_u128 |