/* GNU compiler vector extension intrinsics
- Copyright (C) 2015-2019 Free Software Foundation, Inc.
+ Copyright (C) 2015-2024 Free Software Foundation, Inc.
Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
This file is part of GCC.
| __VEC_CLASS_FP_INFINITY)
/* This also accepts a type for its parameter, so it is not enough
- to #define vec_step to __builtin_vec_step. */
-#define vec_step(x) __builtin_vec_step (* (__typeof__ (x) *) 0)
+ to #define vec_step to __builtin_s390_vec_step. */
+#define vec_step(x) __builtin_s390_vec_step (* (__typeof__ (x) *) 0)
static inline int
__lcbb(const void *ptr, int bndry)
#define vec_rint(X) __builtin_s390_vfi((X), 0, 0)
#define vec_roundc(X) __builtin_s390_vfi((X), 4, 0)
#define vec_round(X) __builtin_s390_vfi((X), 4, 4)
-#define vec_doublee(X) __builtin_s390_vfll((X))
-#define vec_floate(X) __builtin_s390_vflr((X), 0, 0)
-#define vec_load_len_r(X,Y) __builtin_s390_vlrl((Y),(X))
-#define vec_store_len_r(X,Y) __builtin_s390_vstrl((Y),(X))
+#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__ ({ \
#define vec_vsterg vec_vlerh
#define vec_vsterf_flt vec_vlerf_flt
#define vec_vsterg_dbl vec_vlerg_dbl
+
+#define vec_extend_to_fp32_hi __builtin_s390_vclfnhs
+#define vec_extend_to_fp32_lo __builtin_s390_vclfnls
+#define vec_round_from_fp32 __builtin_s390_vcrnfs
+#define vec_convert_to_fp16 __builtin_s390_vcfn
+#define vec_convert_from_fp16 __builtin_s390_vcnf
#define vec_gather_element __builtin_s390_vec_gather_element
#define vec_xl __builtin_s390_vec_xl
#define vec_xld2 __builtin_s390_vec_xld2