有没有任何优雅的方法来加载16个8位数据并将它们连接到4个unsigned int?
如下:
通过_mm_load_si128()将以下数组(16 epi8)加载到__m128i
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff
然后进行一些操作,使寄存器(__ m128i)变为4 epi32,
0x33221100,0x77665544,0xbbaa8899,0xffeeddcc
谢谢!
答案 0 :(得分:1)
是的:什么都不做。加载后,寄存器已处于所需状态。 (假设0xbbaa8899
是一个拼写错误,实际上你的意思是0xbbaa9988
,无论如何。)
答案 1 :(得分:0)
只需创建4个int指针并将m128存储在这些指针所针对的顺序存储器中。
或者有一个int [4]数组并将m128存储到数组所在的内存中,然后数组[0..3]是你的4个整数。
或者如果你已经有16字节数组,只需将内存转换为索引0,4,8,12的整数。