26#if MOCHI_USE_SIMD && MOCHI_ARCH_X64_AVX2
71 return {_mm_cvttsd_si64(a.raw), _mm_cvttsd_si64(_mm_unpackhi_pd(a.raw, a.raw))};
78 static_cast<double>(_mm_cvtsi128_si64(a.raw)),
79 static_cast<double>(_mm_cvtsi128_si64(_mm_unpackhi_epi64(a.raw, a.raw)))};
111 static_cast<int64_t
>(VType::Get<0>(a)),
112 static_cast<int64_t
>(VType::Get<1>(a)),
113 static_cast<int64_t
>(VType::Get<2>(a)),
114 static_cast<int64_t
>(VType::Get<3>(a))};
123 static_cast<double>(VType::Get<0>(a)),
124 static_cast<double>(VType::Get<1>(a)),
125 static_cast<double>(VType::Get<2>(a)),
126 static_cast<double>(VType::Get<3>(a))};
149 static_cast<int64_t
>(VType::Get<0>(a)),
150 static_cast<int64_t
>(VType::Get<1>(a)),
151 static_cast<int64_t
>(VType::Get<2>(a)),
152 static_cast<int64_t
>(VType::Get<3>(a))};
161 static_cast<float>(VType::Get<0>(a)),
162 static_cast<float>(VType::Get<1>(a)),
163 static_cast<float>(VType::Get<2>(a)),
164 static_cast<float>(VType::Get<3>(a))};
173 static_cast<int>(VType::Get<0>(a)),
174 static_cast<int>(VType::Get<1>(a)),
175 static_cast<int>(VType::Get<2>(a)),
176 static_cast<int>(VType::Get<3>(a))};
181 return _mm256_cvtepi32_epi64(a.raw);
constexpr To StaticCast(From const &a)