Lines 657-663
SI F approx_powf(F x, F y) {
Link Here
|
657 |
} |
657 |
} |
658 |
|
658 |
|
659 |
SI F from_half(U16 h) { |
659 |
SI F from_half(U16 h) { |
660 |
#if defined(__ARM_FP16_FORMAT_IEEE) |
660 |
#if defined(__ARM_FP16_FORMAT_IEEE) && !defined(__clang__) |
661 |
__fp16 fp16; |
661 |
__fp16 fp16; |
662 |
memcpy(&fp16, &h, sizeof(U16)); |
662 |
memcpy(&fp16, &h, sizeof(U16)); |
663 |
return float(fp16); |
663 |
return float(fp16); |
Lines 679-685
SI F from_half(U16 h) {
Link Here
|
679 |
} |
679 |
} |
680 |
|
680 |
|
681 |
SI U16 to_half(F f) { |
681 |
SI U16 to_half(F f) { |
682 |
#if defined(__ARM_FP16_FORMAT_IEEE) |
682 |
#if defined(__ARM_FP16_FORMAT_IEEE) && !defined(__clang__) |
683 |
__fp16 fp16 = __fp16(f); |
683 |
__fp16 fp16 = __fp16(f); |
684 |
U16 u16; |
684 |
U16 u16; |
685 |
memcpy(&u16, &fp16, sizeof(U16)); |
685 |
memcpy(&u16, &fp16, sizeof(U16)); |