MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / validate_arguments

Function validate_arguments

src/gpu/cl/kernels/ClCastKernel.cpp:51–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49namespace
50{
51Status validate_arguments(const ITensorInfo *src, const ITensorInfo *dst, ConvertPolicy policy)
52{
53 ARM_COMPUTE_UNUSED(policy);
54 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src, dst);
55 ARM_COMPUTE_RETURN_ERROR_ON_SIZE_UNSUPPORTED(src);
56 ARM_COMPUTE_RETURN_ERROR_ON_F16_UNSUPPORTED(src);
57 ARM_COMPUTE_RETURN_ERROR_ON(src == dst);
58 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(
59 src, 1, DataType::U8, DataType::S8, DataType::QASYMM8, DataType::QSYMM8, DataType::QASYMM8_SIGNED,
60 DataType::QSYMM8_PER_CHANNEL, DataType::QASYMM16, DataType::QSYMM16, DataType::S16, DataType::U16,
61 DataType::U32, DataType::S32, DataType::F16, DataType::F32, DataType::S64, DataType::U64);
62
63 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(
64 dst, 1, DataType::U8, DataType::S8, DataType::QASYMM8, DataType::QSYMM8, DataType::QASYMM8_SIGNED,
65 DataType::QSYMM8_PER_CHANNEL, DataType::QASYMM16, DataType::QSYMM16, DataType::S16, DataType::U16,
66 DataType::U32, DataType::S32, DataType::F16, DataType::F32);
67
68 const DataType src_dtype = get_underlying_data_type(src->data_type());
69 const DataType dst_dtype = get_underlying_data_type(dst->data_type());
70
71 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src_dtype == dst_dtype, "src and dst data types must be different");
72
73 // Validate in case of configured dst
74 if (dst->total_size() > 0)
75 {
76 ARM_COMPUTE_RETURN_ERROR_ON_SIZE_UNSUPPORTED(dst);
77 ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_SHAPES(src, dst);
78 }
79 else
80 {
81 // The data type must be given and the shape is the same as src.
82 const TensorInfo dst_info(src->tensor_shape(), src->num_channels(), dst->data_type());
83 ARM_COMPUTE_RETURN_ERROR_ON_SIZE_UNSUPPORTED(&dst_info);
84 }
85
86 return Status{};
87}
88} // namespace
89
90ClCastKernel::ClCastKernel()

Callers 2

configureMethod · 0.70
validateMethod · 0.70

Calls 4

get_underlying_data_typeFunction · 0.85
data_typeMethod · 0.45
total_sizeMethod · 0.45
num_channelsMethod · 0.45

Tested by

no test coverage detected