LOGICAL_NOT fail
authorTeresa Charlin <teresa.charlinreyes@arm.com>
Mon, 18 Jan 2021 10:28:12 +0000 (10:28 +0000)
committerTeresaARM <teresa.charlinreyes@arm.com>
Tue, 19 Jan 2021 09:46:24 +0000 (09:46 +0000)
Explicitly cast scalar to vector for LOGICAL_NOT

Related with COMPUTE-12536 and IVGCVSW-5617

Change-Id: I03accce000f8889fc4fb88c42c3c87845acb4f42
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4874
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

src/core/CL/cl_kernels/elementwise_unary.cl

index 63594aea83ec667b38d6ed8953c9179d36d1f127..d2d9d97d333791a9255b624e02964672c0e56b35 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -40,8 +40,9 @@
 #define natural_log_op(input) log(input)
 // Calculate round (Cannot use round function as it rounds halfway cases away from zero).
 #if defined(VEC_SIZE)
-#define round_op(input) CONVERT(CONVERT_SAT_ROUND(input, VEC_DATA_TYPE(int, VEC_SIZE), rte), VEC_DATA_TYPE(DATA_TYPE, VEC_SIZE))
-#define logical_not_op(input) CONVERT((!input) & 0x1, VEC_DATA_TYPE(DATA_TYPE, VEC_SIZE))
+#define VEC_TYPE VEC_DATA_TYPE(DATA_TYPE, VEC_SIZE)
+#define round_op(input) CONVERT(CONVERT_SAT_ROUND(input, VEC_DATA_TYPE(int, VEC_SIZE), rte), VEC_TYPE)
+#define logical_not_op(input) CONVERT(CONVERT(!input, VEC_TYPE) & ((VEC_TYPE)0x1), VEC_TYPE)
 #else // defined(VEC_SIZE)
 #define round_op(input) CONVERT(CONVERT_SAT_ROUND(input, int, rte), DATA_TYPE)
 #define logical_not_op(input) ((!input) & 0x1)