diff --git a/third_party/XNNPACK/src/reference/unary-elementwise.cc b/third_party/XNNPACK/src/reference/unary-elementwise.cc index bd95ded6c..da892d8be 100644 --- a/third_party/XNNPACK/src/reference/unary-elementwise.cc +++ b/third_party/XNNPACK/src/reference/unary-elementwise.cc @@ -127,6 +127,16 @@ struct ConvertOp { } }; +#ifdef XNN_HAVE_FLOAT16 +template <> +struct ConvertOp { + explicit ConvertOp(const xnn_unary_uparams*) {} + _Float16 operator()(xnn_bfloat16 x) const { + return static_cast<_Float16>(static_cast(x)); + } +}; +#endif + template const xnn_unary_elementwise_config* get_convert_config( std::true_type /*input_quantized*/, std::true_type /*output_quantized*/) {