1diff --git a/third_party/XNNPACK/src/reference/unary-elementwise.cc b/third_party/XNNPACK/src/reference/unary-elementwise.cc
2index bd95ded6c..da892d8be 100644
3--- a/third_party/XNNPACK/src/reference/unary-elementwise.cc
4+++ b/third_party/XNNPACK/src/reference/unary-elementwise.cc
5@@ -127,6 +127,16 @@ struct ConvertOp {
6 }
7 };
8
9+#ifdef XNN_HAVE_FLOAT16
10+template <>
11+struct ConvertOp<xnn_bfloat16, _Float16> {
12+ explicit ConvertOp(const xnn_unary_uparams*) {}
13+ _Float16 operator()(xnn_bfloat16 x) const {
14+ return static_cast<_Float16>(static_cast<float>(x));
15+ }
16+};
17+#endif
18+
19 template <typename TIn, typename TOut>
20 const xnn_unary_elementwise_config* get_convert_config(
21 std::true_type /*input_quantized*/, std::true_type /*output_quantized*/) {