From b942f451b6a0d023a98434d23e9aa7cbb9b09f24 Mon Sep 17 00:00:00 2001 From: Aaron Teo <57927438+taronaeo@users.noreply.github.com> Date: Fri, 11 Apr 2025 13:20:07 +0800 Subject: [PATCH] ggml: fix compilation error s390x (llama/12848) * ggml: fixes #12846 compilation error Signed-off-by: Aaron Teo Co-authored-by: Aleksei Nikiforov * ggml: add documentation for code change Signed-off-by: Aaron Teo Co-authored-by: Aleksei Nikiforov * ggml: refactor to type-cast and update documentation Signed-off-by: Aaron Teo Co-authored-by: Aleksei Nikiforov * ggml: update documentation to provide full issue link Signed-off-by: Aaron Teo Co-authored-by: Aleksei Nikiforov --------- Co-authored-by: Aleksei Nikiforov --- ggml/src/ggml-cpu/simd-mappings.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cpu/simd-mappings.h b/ggml/src/ggml-cpu/simd-mappings.h index d7db9209..04d10cec 100644 --- a/ggml/src/ggml-cpu/simd-mappings.h +++ b/ggml/src/ggml-cpu/simd-mappings.h @@ -855,13 +855,17 @@ static inline __vector float __lzs_f16cx4_load(const ggml_fp16_t * x) { tmp[i] = GGML_FP16_TO_FP32(x[i]); } - return vec_xl(0, tmp); + // note: keep type-cast here to prevent compiler bugs + // see: https://github.com/ggml-org/llama.cpp/issues/12846 + return vec_xl(0, (const float *)(tmp)); } static inline void __lzs_f16cx4_store(ggml_fp16_t * x, __vector float y) { float arr[4]; - vec_xst(y, 0, arr); + // note: keep type-cast here to prevent compiler bugs + // see: https://github.com/ggml-org/llama.cpp/issues/12846 + vec_xst(y, 0, (float *)(arr)); for (int i = 0; i < 4; i++) { x[i] = GGML_FP32_TO_FP16(arr[i]);