aboutsummaryrefslogtreecommitdiff
path: root/verif/generator/tosa_test_gen.py
diff options
context:
space:
mode:
authorWon Jeon <won.jeon@arm.com>2023-06-10 00:20:04 +0000
committerEric Kunze <eric.kunze@arm.com>2023-06-29 15:47:40 +0000
commit78155c63024c33d31e3b66e8e198fd5f93837df1 (patch)
treefcc16affd189eea6d1f4647d8fb4f6ea71a39ff2 /verif/generator/tosa_test_gen.py
parenteb74106e1bc52127e5631736e10e8f8b0b7a1d07 (diff)
downloadreference_model-78155c63024c33d31e3b66e8e198fd5f93837df1.tar.gz
Add support for ERF operator to reference model
Signed-off-by: Won Jeon <won.jeon@arm.com> Change-Id: Ib42b867287b83a183a0d0fb1f1eb29974f58fae4
Diffstat (limited to 'verif/generator/tosa_test_gen.py')
-rw-r--r--verif/generator/tosa_test_gen.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py
index 66084b4..bd371eb 100644
--- a/verif/generator/tosa_test_gen.py
+++ b/verif/generator/tosa_test_gen.py
@@ -1177,6 +1177,37 @@ class TosaTestGen:
self.ser.addOperator(op["op"], input_list, output_list)
return result_tens
+ def build_erf(self, op, a, validator_fcns=None, error_name=None):
+ result_tens = OutputShaper.unaryOp(self.ser, self.rng, a, error_name)
+
+ # Invalidate Input/Output list for error if checks.
+ input_list = [a.name]
+ output_list = [result_tens.name]
+ pCount, cCount = op["operands"]
+ num_operands = pCount + cCount
+ input_list, output_list = TosaErrorIfArgGen.eiInvalidateInputOutputList(
+ self, error_name, input_list, output_list
+ )
+
+ if not TosaErrorValidator.evValidateErrorIfs(
+ self.ser,
+ validator_fcns,
+ error_name,
+ op=op,
+ input_shape=a.shape,
+ output_shape=result_tens.shape,
+ input_dtype=a.dtype,
+ output_dtype=result_tens.dtype,
+ result_tensors=[result_tens],
+ input_list=input_list,
+ output_list=output_list,
+ num_operands=num_operands,
+ ):
+ return None
+
+ self.ser.addOperator(op["op"], input_list, output_list)
+ return result_tens
+
def build_concat(self, op, *a, validator_fcns=None, error_name=None):
if error_name != ErrorIf.WrongInputType:
assert type(a[-1]) == int
@@ -2907,6 +2938,23 @@ class TosaTestGen:
TosaErrorValidator.evWrongOutputList,
),
},
+ "erf": {
+ "op": Op.ERF,
+ "operands": (1, 0),
+ "build_fcn": (
+ build_erf,
+ TosaTensorGen.tgBasic,
+ TosaTensorValuesGen.tvgDefault,
+ None,
+ ),
+ "types": TYPE_FP,
+ "error_if_validators": (
+ TosaErrorValidator.evWrongInputType,
+ TosaErrorValidator.evWrongOutputType,
+ TosaErrorValidator.evWrongInputList,
+ TosaErrorValidator.evWrongOutputList,
+ ),
+ },
# Elementwise Binary Operators
"add": {
"op": Op.ADD,