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

Function validate_arguments

src/cpu/kernels/CpuCastKernel.cpp:77–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75};
76
77Status validate_arguments(const ITensorInfo *src, const ITensorInfo *dst, ConvertPolicy policy)
78{
79 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src, dst);
80 ARM_COMPUTE_RETURN_ERROR_ON_SIZE_UNSUPPORTED(src);
81 ARM_COMPUTE_RETURN_ERROR_ON_CPU_F16_UNSUPPORTED(src);
82 ARM_COMPUTE_RETURN_ERROR_ON_CPU_F16_UNSUPPORTED(dst);
83 ARM_COMPUTE_UNUSED(policy);
84 ARM_COMPUTE_RETURN_ERROR_ON(src == dst);
85#ifdef __aarch64__
86 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(src, 1, DataType::QASYMM8_SIGNED, DataType::QASYMM8,
87 DataType::U8, DataType::S16, DataType::U16, DataType::F16,
88 DataType::F32, DataType::S32, DataType::S64, DataType::U64);
89
90 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(dst, 1, DataType::QASYMM8_SIGNED, DataType::QASYMM8,
91 DataType::U8, DataType::S16, DataType::U16, DataType::F16,
92 DataType::U32, DataType::S32, DataType::F32, DataType::S64);
93
94#else // __aarch64__
95 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(src, 1, DataType::QASYMM8_SIGNED, DataType::QASYMM8,
96 DataType::U8, DataType::S16, DataType::U16, DataType::F16,
97 DataType::F32, DataType::S32);
98
99 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(dst, 1, DataType::QASYMM8_SIGNED, DataType::QASYMM8,
100 DataType::U8, DataType::S16, DataType::U16, DataType::F16,
101 DataType::U32, DataType::S32, DataType::F32);
102#endif // __aarch64__
103
104 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::QASYMM8_SIGNED &&
105 (dst->data_type() != DataType::S16 && dst->data_type() != DataType::S32 &&
106 dst->data_type() != DataType::F16 && dst->data_type() != DataType::F32),
107 "Only data_types supported [in] QASYMM8 -> [out] U16, S16, S32, F16, F32");
108
109 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::QASYMM8 &&
110 (dst->data_type() != DataType::S16 && dst->data_type() != DataType::U16 &&
111 dst->data_type() != DataType::S32 && dst->data_type() != DataType::F16 &&
112 dst->data_type() != DataType::F32),
113 "Only data_types supported [in] QASYMM8 -> [out] U16, S16, S32, F16, F32");
114
115 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::U8 &&
116 (dst->data_type() != DataType::S16 && dst->data_type() != DataType::U16 &&
117 dst->data_type() != DataType::S32 && dst->data_type() != DataType::F16 &&
118 dst->data_type() != DataType::F32),
119 "Only data_types supported [in] U8 -> [out] U16, S16, S32, F16, F32");
120
121 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::U16 &&
122 (dst->data_type() != DataType::U8 && dst->data_type() != DataType::U32),
123 "Only data_types supported [in] U16 -> [out] U8, U32");
124
125 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::S16 &&
126 (dst->data_type() != DataType::QASYMM8_SIGNED &&
127 dst->data_type() != DataType::U8 && dst->data_type() != DataType::S32),
128 "Only data_types supported [in] S16 -> [out] U8, S32");
129
130 ARM_COMPUTE_RETURN_ERROR_ON_MSG(src->data_type() == DataType::F16 &&
131 (dst->data_type() != DataType::QASYMM8_SIGNED &&
132 dst->data_type() != DataType::QASYMM8 && dst->data_type() != DataType::U8 &&
133 dst->data_type() != DataType::F32 && dst->data_type() != DataType::S32),
134 "Only data_types supported [in] F16 -> [out] QASYMM8, F32, S32, U8");

Callers 2

configureMethod · 0.70
validateMethod · 0.70

Calls 3

data_typeMethod · 0.45
total_sizeMethod · 0.45
num_channelsMethod · 0.45

Tested by

no test coverage detected