forked from extern/whisper.cpp
add fp16/fp32 convert intrinsics
This commit is contained in:
parent
9fe7306f4b
commit
35b40a93b9
11
ggml.c
11
ggml.c
@ -131,6 +131,16 @@ ggml_fp16_t ggml_fp32_to_fp16(float x) {
|
||||
// FP16 <-> FP32
|
||||
// ref: https://github.com/Maratyszcza/FP16
|
||||
|
||||
#ifdef __F16C__
|
||||
float ggml_fp16_to_fp32(ggml_fp16_t h) {
|
||||
return _cvtsh_ss(h);
|
||||
}
|
||||
ggml_fp16_t ggml_fp32_to_fp16(float f) {
|
||||
return _cvtss_sh(f, 0);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline float fp32_from_bits(uint32_t w) {
|
||||
union {
|
||||
uint32_t as_bits;
|
||||
@ -196,6 +206,7 @@ ggml_fp16_t ggml_fp32_to_fp16(float f) {
|
||||
return (sign >> 16) | (shl1_w > UINT32_C(0xFF000000) ? UINT16_C(0x7E00) : nonsign);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// global data
|
||||
|
Loading…
Reference in New Issue
Block a user