File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
tur-chromium/chromium-stable Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ https://github.com/llvm/llvm-project/issues/132013
2+ https://github.com/google/XNNPACK/commit/8a2f5f441833b80806b58b5d704ec8335634182c
3+
4+ --- a/third_party/xnnpack/src/src/xnnpack/simd/f16-avx512fp16.h
5+ +++ b/third_party/xnnpack/src/src/xnnpack/simd/f16-avx512fp16.h
6+ @@ -27,8 +27,21 @@ typedef __m512h xnn_simd_f16_t;
7+ const xnn_simd_f16_t var = _mm512_castsi512_ph(_mm512_set1_epi16(val));
8+
9+ #if XNN_HAVE_FLOAT16
10+ +
11+ + #if defined(__clang__) && (__clang_major__ < 19)
12+ + static XNN_INLINE __m512d xnn_broadcast_16_512_workaround(uint16_t x) {
13+ + uint32_t bits = (uint32_t)x | ((uint32_t)x) << 16;
14+ + __asm__ volatile("" : "=m"(bits) : "m"(bits));
15+ + return _mm512_castsi512_pd(_mm512_set1_epi32(bits));
16+ + }
17+ + #define XNN_SIMD_CONST_F16_FROM_FLOAT(var, val) \
18+ + const xnn_simd_f16_t var = xnn_broadcast_16_512_workaround( \
19+ + xnn_float16_to_bits(xnn_float16_from_float(val)))
20+ + #else
21+ #define XNN_SIMD_CONST_F16_FROM_FLOAT(var, val) \
22+ const xnn_simd_f16_t var = _mm512_set1_ph(xnn_float16_from_float(val))
23+ + #endif // Old Clang workaround
24+ +
25+ #else
26+ #define XNN_SIMD_CONST_F16_FROM_FLOAT(var, val) \
27+ XNN_SIMD_CONST_F16_FROM_INT16( \
You can’t perform that action at this time.
0 commit comments