Update cl_arm_integer_dot_product specification (#62)
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
diff --git a/extensions/arm/cl_arm_integer_dot_product.txt b/extensions/arm/cl_arm_integer_dot_product.txt
index 1c77da5..c69451a 100644
--- a/extensions/arm/cl_arm_integer_dot_product.txt
+++ b/extensions/arm/cl_arm_integer_dot_product.txt
@@ -7,6 +7,7 @@
cl_arm_integer_dot_product_int8
cl_arm_integer_dot_product_accumulate_int8
cl_arm_integer_dot_product_accumulate_int16
+ cl_arm_integer_dot_product_accumulate_saturate_int8
Contributors
@@ -111,3 +112,21 @@
acc + [ (a.x * b.x) + (a.y * b.y) ].
Operands are zero- or sign-extended to 32-bit before the multiplications.
+
+ Built-in Functions
+
+ int arm_dot_acc_sat(char4 a, char4 b, int acc);
+ uint arm_dot_acc_sat(uchar4 a, uchar4 b, uint acc);
+
+ Description
+
+ These functions are available when cl_arm_integer_dot_product_accumulate_saturate_int8
+ is reported. The cl_arm_integer_dot_product_accumulate_saturate_int8
+ preprocessor macro is then defined.
+
+ The value returned is:
+
+ acc + [ (a.x * b.x) + (a.y * b.y) + (a.z * b.z) + (a.w * b.w) ].
+
+ Operands are zero- or sign-extended to 32-bit before the multiplications.
+ The final accumulation is saturating.