MLBEDSW-3153: Fix overflow in sigmoid LUT

Overflow could occur in the calculation of the LUT table for sigmoid,
for big negative inputs.

Change-Id: I62a33c68de03e9a7a7e4fe2cbd5835c384dc3643
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
diff --git a/ethosu/vela/graph_optimiser.py b/ethosu/vela/graph_optimiser.py
index 81d5a18..e7c15cd 100644
--- a/ethosu/vela/graph_optimiser.py
+++ b/ethosu/vela/graph_optimiser.py
@@ -27,9 +27,9 @@
 from .data_type import DataType
 from .errors import UnsupportedFeatureError
 from .ethos_u55_regs.ethos_u55_regs import resampling_mode
+from .numeric_util import clamp_sigmoid
 from .numeric_util import full_shape
 from .numeric_util import round_away_zero
-from .numeric_util import sigmoid
 from .operation import create_avgpool_nop
 from .operation import NpuBlockType
 from .operation import Operation
@@ -447,6 +447,7 @@
 
     return op
 
+
 def fixup_unpack_output(tens, arch):
     op = tens.ops[0]
     if op.type in set(("Unpack", "StridedSlice")):
@@ -974,7 +975,7 @@
 def convert_tanh_sigmoid_to_lut(op, arch):
     # Converts int8/uint8 Sigmoid and Tanh to a LUT based solution
     if op.type == "Sigmoid":
-        return convert_to_lut8(op, sigmoid)
+        return convert_to_lut8(op, clamp_sigmoid)
     elif op.type == "Tanh":
         return convert_to_lut8(op, math.tanh)
     return op