diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2020-06-16 16:21:00 +0100 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2020-06-25 13:14:23 +0000 |
commit | c41a6a611973cb245220641e06f8fa984b156954 (patch) | |
tree | b47b9b517d839f97bd7a489e3fae81037753b014 /src/core/CL | |
parent | 173ba9bbb19ea83f951318d9989e440768b4de8f (diff) | |
download | ComputeLibrary-c41a6a611973cb245220641e06f8fa984b156954.tar.gz |
COMPMID-3530: Fix validate calls in CLElementwiseOperationKernel
Change-Id: I315520ca825e2a420bb28308f020b95ff2969042
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3341
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'src/core/CL')
-rw-r--r-- | src/core/CL/kernels/CLElementwiseOperationKernel.cpp | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/core/CL/kernels/CLElementwiseOperationKernel.cpp b/src/core/CL/kernels/CLElementwiseOperationKernel.cpp index 4e7d3b3753..33f27a8c36 100644 --- a/src/core/CL/kernels/CLElementwiseOperationKernel.cpp +++ b/src/core/CL/kernels/CLElementwiseOperationKernel.cpp @@ -248,9 +248,6 @@ void CLElementwiseOperationKernel::configure_common(const ICLTensor *input1, con void CLElementwiseOperationKernel::configure_common(const CLCompileContext &compile_context, const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output) { - ARM_COMPUTE_ERROR_ON_NULLPTR(input1, input2, output); - ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(*input1->info(), *input2->info(), *output->info())); - // Configure kernel window auto win_config = validate_and_configure_window(*input1->info(), *input2->info(), *output->info()); ARM_COMPUTE_ERROR_THROW_ON(win_config.first); @@ -347,6 +344,9 @@ void CLSaturatedArithmeticOperationKernel::configure(const CLCompileContext &com const ConvertPolicy &policy, const ActivationLayerInfo &act_info) { + ARM_COMPUTE_ERROR_ON_NULLPTR(input1, input2, output); + ARM_COMPUTE_ERROR_THROW_ON(CLSaturatedArithmeticOperationKernel::validate(op, input1->info(), input2->info(), output->info(), policy, act_info)); + _policy = policy; _op = op; _act_info = act_info; @@ -370,11 +370,6 @@ std::pair<Status, Window> CLSaturatedArithmeticOperationKernel::validate_and_con return validate_and_configure_window_for_arithmetic_operators(input1, input2, output); } -Status CLSaturatedArithmeticOperationKernel::validate_arguments(const ITensorInfo &input1, const ITensorInfo &input2, const ITensorInfo &output) -{ - return validate_arguments_with_arithmetic_rules(input1, input2, output); -} - CLBuildOptions CLSaturatedArithmeticOperationKernel::generate_build_options(const ITensorInfo &input1, const ITensorInfo &input2, const ITensorInfo &output) { const bool has_float_out = is_data_type_float(output.data_type()); @@ -405,6 +400,9 @@ void CLArithmeticOperationKernel::configure(ArithmeticOperation op, const ICLTen void CLArithmeticOperationKernel::configure(const CLCompileContext &compile_context, ArithmeticOperation op, const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output, const ActivationLayerInfo &act_info) { + ARM_COMPUTE_ERROR_ON_NULLPTR(input1, input2, output); + ARM_COMPUTE_ERROR_THROW_ON(CLArithmeticOperationKernel::validate(op, input1->info(), input2->info(), output->info(), act_info)); + _op = op; _act_info = act_info; configure_common(compile_context, input1, input2, output); @@ -440,18 +438,6 @@ std::pair<Status, Window> CLArithmeticOperationKernel::validate_and_configure_wi return validate_and_configure_window_for_arithmetic_operators(input1, input2, output); } } -Status CLArithmeticOperationKernel::validate_arguments(const ITensorInfo &input1, const ITensorInfo &input2, const ITensorInfo &output) -{ - if(_op == ArithmeticOperation::DIV || _op == ArithmeticOperation::POWER) - { - // Division and Power operators don't support integer arithmetic - return validate_arguments_with_float_only_supported_rules(input1, input2, output); - } - else - { - return validate_arguments_with_arithmetic_rules(input1, input2, output); - } -} CLBuildOptions CLArithmeticOperationKernel::generate_build_options(const ITensorInfo &input1, const ITensorInfo &input2, const ITensorInfo &output) { |