diff options
author | Dominic Symes <dominic.symes@arm.com> | 2022-11-11 10:20:42 +0000 |
---|---|---|
committer | Dominic Symes <dominic.symes@arm.com> | 2022-11-11 10:20:59 +0000 |
commit | 8cba323dd64b1a849b3f3d616791fec523290d0b (patch) | |
tree | 6111adcbc8713fa9c1f8cafb8d6b072b275d712f /chapters | |
parent | 0205d99cbff58797bf6602ee5718d50c00d8309b (diff) | |
download | specification-8cba323dd64b1a849b3f3d616791fec523290d0b.tar.gz |
RESCALE: Clarify zero-point addition
Zero-point addition after rescale is not
permitted to overflow an int32_t.
Change-Id: I7bc99a9296dce9d48abe271e68f9069425c9c270
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Diffstat (limited to 'chapters')
-rw-r--r-- | chapters/type_conversion.adoc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/chapters/type_conversion.adoc b/chapters/type_conversion.adoc index c3d986e..3ff190b 100644 --- a/chapters/type_conversion.adoc +++ b/chapters/type_conversion.adoc @@ -69,7 +69,8 @@ for_each(index in shape) { int32_t result = (scale32) ? apply_scale_32(value, multiplier[c], shift[c], double_round) : apply_scale_16(value, multiplier[c], shift[c]); - result = (out_t)apply_clip<int32_t>(result + output_zp, minimum<out_t>, maximum<out_t>); - tensor_write<out_t>(output, shape, index, result); + result = apply_add<int32_t>(result, output_zp); + out_t out = (out_t)apply_clip<int32_t>(result, minimum<out_t>, maximum<out_t>); + tensor_write<out_t>(output, shape, index, out); } ---- |