приведение строки символов к __m128i
как привести string к __m128i
#include <iostream>
#include <intrin.h>
char string[] = " +-0098765432109876540.09876e-0248";
int i;
__m128i Xmm_SP = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 9, 9, 9, 9, 9, 9, 9, 9};
int main()
{
do {
_mm_cmpeq_epi8(string, Xmm_SP);
} while (1);
}
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Можно загрузить блок из невыровненного адреса посредством встроенной функции _mm_loadu_si128:
#include <intrin.h>
int main()
{
auto const & text{" +-0098765432109876540.09876e-0248"};
__m128i xmm_sp{0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 9, 9, 9, 9, 9, 9, 9, 9};
__m128i xmm_text{_mm_loadu_si128(static_cast<__m128i const *>(static_cast<void const *>(static_cast<char const *>(text))))};
do
{
_mm_cmpeq_epi8(xmm_text, xmm_sp);
}
while (1);
}