@@ -37,14 +37,13 @@ INLINE TYPE_RET OVERLOADABLE dot_acc_sat(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_RET acc)
3737#define  DEFN_INTEL_DOT_PRODUCT_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB )     \
3838TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b)                      \
3939{                                                                                                                                         \
40-     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b));                                                                \
40+     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b), false);                                                             \
4141}
4242
43- #define  DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB , SAT_PREFIX )     \
44- TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotAccSatKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_RET acc)                  \
45- {                                                                                                                                                         \
46-     TYPE_RET product = __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b));                                                                   \
47-     return SPIRV_OCL_BUILTIN(SAT_PREFIX##_add_sat, _i32_i32,)(product, acc);                                                                              \
43+ #define  DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB ) \
44+ TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotAccSatKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_RET acc)  \
45+ {                                                                                                                                         \
46+     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(acc, as_int(a), as_int(b), true);                                                           \
4847}
4948
5049#define  DEFN_INTEL_DOT_PRODUCT_US (TYPE_RET , TYPE_ARG , MANGLING_OLD , MANGLING_NEW )     \
@@ -62,14 +61,13 @@ INLINE TYPE_RET OVERLOADABLE dot_acc_sat(u##TYPE_ARG a, TYPE_ARG b, TYPE_RET acc
6261#define  DEFN_INTEL_DOT_PRODUCT_PACKED_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB )     \
6362TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_ARG1 packed)           \
6463{                                                                                                                                                \
65-     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b));                                                                       \
64+     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b), false);                                                                    \
6665}
6766
68- #define  DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB , SAT_PREFIX )     \
69- TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotAccSatKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_RET acc, TYPE_ARG1 packed)       \
70- {                                                                                                                                                                \
71-     TYPE_RET product = __builtin_IB_dp4a_##TYPE_SUFFIX_IB(0, as_int(a), as_int(b));                                                                          \
72-     return SPIRV_OCL_BUILTIN(SAT_PREFIX##_add_sat, _i32_i32,)(product, acc);                                                                                     \
67+ #define  DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (TYPE_RET , TYPE_ARG1 , TYPE_ARG2 , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW , TYPE_SUFFIX_IB )           \
68+ TYPE_RET SPIRV_OVERLOADABLE SPIRV_BUILTIN(TYPE_SUFFIX##DotAccSatKHR, MANGLING_OLD, MANGLING_NEW)(TYPE_ARG1 a, TYPE_ARG2 b, TYPE_RET acc, TYPE_ARG1 packed) \
69+ {                                                                                                                                                          \
70+     return __builtin_IB_dp4a_##TYPE_SUFFIX_IB(acc, as_int(a), as_int(b), true);                                                                              \
7371}
7472
7573#define  DEFN_INTEL_DOT_PRODUCT_PACKED (TYPE_RET , ARG_TYPES , TYPE_SUFFIX , MANGLING_OLD , MANGLING_NEW )     \
@@ -105,12 +103,12 @@ DEFN_INTEL_DOT_PRODUCT_PACKED_BUILTIN_SPIRV(uint, uint, uint, U, _i32_i32_i32, _
105103DEFN_INTEL_DOT_PRODUCT_PACKED (uint , uu , U , _i32_i32_i32 , _Ruint )
106104#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
107105#ifdef  __opencl_c_integer_dot_product_saturation_accumulation 
108- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (uint , uchar4 , uchar4 , U , _v4i8_v4i8_i32 , _Ruint , uu ,  u )
106+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (uint , uchar4 , uchar4 , U , _v4i8_v4i8_i32 , _Ruint , uu )
109107DEFN_INTEL_DOT_PRODUCT_SAT (uint , uchar4 , uchar4 , U , _v4i8_v4i8_i32 , _Ruint )
110- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (uint , ushort2 , ushort2 , U , _v2i16_v2i16_i32 , _Ruint , uu ,  u )
108+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (uint , ushort2 , ushort2 , U , _v2i16_v2i16_i32 , _Ruint , uu )
111109DEFN_INTEL_DOT_PRODUCT_SAT (uint , ushort2 , ushort2 , U , _v2i16_v2i16_i32 , _Ruint )
112110#ifdef  __opencl_c_integer_dot_product_input_4x8bit_packed 
113- DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (uint , uint , uint , U , _i32_i32_i32_i32 , _Ruint , uu ,  u )
111+ DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (uint , uint , uint , U , _i32_i32_i32_i32 , _Ruint , uu )
114112DEFN_INTEL_DOT_PRODUCT_SAT_PACKED (uint , U , uu , _i32_i32_i32_i32 , _Ruint )
115113#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
116114#endif  // __opencl_c_integer_dot_product_saturation_accumulation 
@@ -125,12 +123,12 @@ DEFN_INTEL_DOT_PRODUCT_PACKED_BUILTIN_SPIRV(int, int, int, S, _i32_i32_i32, _Rin
125123DEFN_INTEL_DOT_PRODUCT_PACKED (int , ss , S , _i32_i32_i32 , _Rint )
126124#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
127125#ifdef  __opencl_c_integer_dot_product_saturation_accumulation 
128- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , char4 , char4 , S , _v4i8_v4i8_i32 , _Rint , ss ,  s )
126+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , char4 , char4 , S , _v4i8_v4i8_i32 , _Rint , ss )
129127DEFN_INTEL_DOT_PRODUCT_SAT (int , char4 , char4 , S , _v4i8_v4i8_i32 , _Rint )
130- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , short2 , short2 , S , _v2i16_v2i16_i32 , _Rint , ss ,  s )
128+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , short2 , short2 , S , _v2i16_v2i16_i32 , _Rint , ss )
131129DEFN_INTEL_DOT_PRODUCT_SAT (int , short2 , short2 , S , _v2i16_v2i16_i32 , _Rint )
132130#ifdef  __opencl_c_integer_dot_product_input_4x8bit_packed 
133- DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (int , int , int , S , _i32_i32_i32_i32 , _Rint , ss ,  s )
131+ DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (int , int , int , S , _i32_i32_i32_i32 , _Rint , ss )
134132DEFN_INTEL_DOT_PRODUCT_SAT_PACKED (int , S , ss , _i32_i32_i32_i32 , _Rint )
135133#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
136134#endif  // __opencl_c_integer_dot_product_saturation_accumulation 
@@ -149,14 +147,14 @@ DEFN_INTEL_DOT_PRODUCT_PACKED(int, su, SU, _i32_i32_i32, _Rint)
149147DEFN_INTEL_DOT_PRODUCT_PACKED_US 
150148#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
151149#ifdef  __opencl_c_integer_dot_product_saturation_accumulation 
152- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , char4 , uchar4 , SU , _v4i8_v4i8_i32 , _Rint , su ,  s )
150+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , char4 , uchar4 , SU , _v4i8_v4i8_i32 , _Rint , su )
153151DEFN_INTEL_DOT_PRODUCT_SAT (int , char4 , uchar4 , SU , _v4i8_v4i8_i32 , _Rint )
154152DEFN_INTEL_DOT_PRODUCT_SAT_US (int , char4 , _v4i8_v4i8_i32 , _Rint )
155- DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , short2 , ushort2 , SU , _v2i16_v2i16_i32 , _Rint , su ,  s )
153+ DEFN_INTEL_DOT_PRODUCT_SAT_BUILTIN_SPIRV (int , short2 , ushort2 , SU , _v2i16_v2i16_i32 , _Rint , su )
156154DEFN_INTEL_DOT_PRODUCT_SAT (int , short2 , ushort2 , SU , _v2i16_v2i16_i32 , _Rint )
157155DEFN_INTEL_DOT_PRODUCT_SAT_US (int , short2 , _v2i16_v2i16_i32 , _Rint )
158156#ifdef  __opencl_c_integer_dot_product_input_4x8bit_packed 
159- DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (int , int , uint , SU , _i32_i32_i32_i32 , _Rint , su ,  s )
157+ DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_BUILTIN_SPIRV (int , int , uint , SU , _i32_i32_i32_i32 , _Rint , su )
160158DEFN_INTEL_DOT_PRODUCT_SAT_PACKED (int , SU , su , _i32_i32_i32_i32 , _Rint )
161159DEFN_INTEL_DOT_PRODUCT_SAT_PACKED_US 
162160#endif  // __opencl_c_integer_dot_product_input_4x8bit_packed 
0 commit comments