47# define ALIGN32_END __attribute__((aligned(32)))
54__attribute__((target(
"avx2")))
55v8sf _mm256_log_ps(v8sf);
56__attribute__((target("avx2")))
58__attribute__((target("avx2")))
59v8sf _mm256_sin_ps(v8sf);
60__attribute__((target("avx2")))
61v8sf _mm256_cos_ps(v8sf);
62__attribute__((target("avx2")))
63void _mm256_sincos_ps(v8sf xx, v8sf*, v8sf*);
67#define _PS256_CONST(Name, Val) \
68 v8sf _ps256_##Name = { Val, Val, Val, Val, Val, Val, Val, Val }
69#define _PI32_CONST256(Name, Val) \
70 int _pi32_256_tmp_##Name[8] ALIGN32_END = { Val, Val, Val, Val, Val, Val, Val, Val }; \
71 v8si _pi32_256_##Name = *reinterpret_cast<v8si*>(&_pi32_256_tmp_##Name)
72#define _PS256_CONST_TYPE(Name, Type, Val) \
73 int _pi32_256_tmp_##Name[8] ALIGN32_END = { Val, Val, Val, Val, Val, Val, Val, Val }; \
74 v8sf _ps256_##Name = _mm256_load_ps((float*)&_pi32_256_tmp_##Name)