diff --git a/examples/matmul_clamp_f32_qai8dxp_qsi4c32p/CMakeLists.txt b/examples/matmul_clamp_f32_qai8dxp_qsi4c32p/CMakeLists.txt index 28bbd67c58e088866cbac5756653cd468be27fc2..09fe2f45be53e2bc5bd1e6e308d6cdeab28db807 100644 --- a/examples/matmul_clamp_f32_qai8dxp_qsi4c32p/CMakeLists.txt +++ b/examples/matmul_clamp_f32_qai8dxp_qsi4c32p/CMakeLists.txt @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates +# SPDX-FileCopyrightText: Copyright 2024-2025 Arm Limited and/or its affiliates # # SPDX-License-Identifier: Apache-2.0 # @@ -42,4 +42,4 @@ add_executable(matmul_clamp_f32_qai8dxp_qsi4c32p ) target_compile_options(matmul_clamp_f32_qai8dxp_qsi4c32p - PRIVATE -march=armv8.2-a+dotprod+i8mm) + PRIVATE -march=armv8.2-a+dotprod+i8mm+bf16) diff --git a/kai/kai_common.h b/kai/kai_common.h index 6dc71d10eddc0ef0d748945bef275cdf37015527..bec270c3b3fb4b4f29e04f51c9ae3c3d09dd1bd7 100644 --- a/kai/kai_common.h +++ b/kai/kai_common.h @@ -111,21 +111,20 @@ inline static float kai_cast_f32_bf16(uint16_t bf16) { return f32; } +#ifdef __ARM_FEATURE_BF16 + /// Converts a f32 value to bf16 /// @param[in] f32 The f32 value /// /// @return the bf16 value inline static uint16_t kai_cast_bf16_f32(float f32) { uint16_t bf16 = 0; -#ifdef __ARM_FEATURE_BF16 __asm__ __volatile__("bfcvt %h[output], %s[input]" : [output] "=w"(bf16) : [input] "w"(f32)); -#else - const uint32_t* i32 = (uint32_t*)(&f32); - bf16 = (*i32 >> 16); -#endif return bf16; } +#endif // __ARM_FEATURE_BF16 + /// Converts a scalar f32 value to f16 /// @param[in] f32 The f32 value ///