从'memcpy'替换为'_mm_store ...'操作。 [英] Replace from 'memcpy' to '_mm_store...' operaion.
问题描述
大家好。
我有一个问题。
Threre是什么类型的数据是__m128i。
我想复制到BYTE阵列。
例如)
__m128i结果;
__m128i.m128i_u8 [0] = 1;
__m128i .m128i_u8 [1] = 2;
__m128i.m128i_u8 [2] = 3;
__m128i.m128i_u8 [3] = 4;
__m128i.m128i_u8 [4] = 5;
__m128i.m128i_u8 [5] = 6;
__m128i.m128i_u8 [6] = 7;
__m128i.m128i_u8 [7] = 8;
__m128i.m128i_u8 [8] = 0;
__m128i.m128i_u8 [9] = 0;
__m128i.m128i_u8 [10] = 0;
__m128i.m128i_u8 [11] = 0;
__m128i.m128i_u8 [12] = 0;
__m128i.m128i_u8 [13] = 0;
__m128i.m128i_u8 [14] = 0;
__m128i.m128i_u8 [15] = 0;
BYTE数据[8] = {0,};
memcpy(data,__ m128i.m128i_u8,8);
结果)
data [0] = 1 ;
数据[1] = 2;
数据[2] = 3;
数据[3] = 4;
data [4] = 5;
data [5] = 6;
data [6] = 7;
data [7] = 8;
实际上,我测试上面的代码,它运行良好但很慢。
我认为因为'memcpy '。
我想从'memcpy'替换为'_mm_store ...'操作。
我认为它会比'memcpy的'。 (也许..)
所以我的问题是......
如何使用'_mm_store ...'操作,我能得到吗?如上所示?
请告诉我。谢谢:)
我尝试了什么:
我尝试过使用'memcpy'。
memcpy(data,__ m128i.m128i_u8,8); // slow ..
Hi all.
I have a question.
Threre is the data what the type is __m128i.
And I want to copy to BYTE array.
For example)
__m128i result;
__m128i.m128i_u8[0] = 1;
__m128i.m128i_u8[1] = 2;
__m128i.m128i_u8[2] = 3;
__m128i.m128i_u8[3] = 4;
__m128i.m128i_u8[4] = 5;
__m128i.m128i_u8[5] = 6;
__m128i.m128i_u8[6] = 7;
__m128i.m128i_u8[7] = 8;
__m128i.m128i_u8[8] = 0;
__m128i.m128i_u8[9] = 0;
__m128i.m128i_u8[10] = 0;
__m128i.m128i_u8[11] = 0;
__m128i.m128i_u8[12] = 0;
__m128i.m128i_u8[13] = 0;
__m128i.m128i_u8[14] = 0;
__m128i.m128i_u8[15] = 0;
BYTE data[8] = {0,};
memcpy(data,__m128i.m128i_u8,8);
Result)
data[0] = 1;
data[1] = 2;
data[2] = 3;
data[3] = 4;
data[4] = 5;
data[5] = 6;
data[6] = 7;
data[7] = 8;
Actually, I test as above code, it works well but slow.
I think because of 'memcpy'.
I want to replace from 'memcpy' to '_mm_store...' operation.
I think it will work faster than 'memcpy'. (maybe..)
So my question is...
How to use '_mm_store...' operation, can I get as above result?
Please advise me. Thank you :)
What I have tried:
I tried to use 'memcpy'.
memcpy(data,__m128i.m128i_u8,8); // slow..
推荐答案
请参阅 __m128i [ ^ ]解释为什么你不应该这样做。
See __m128i[^] for an explanation of why you should not do this.
这篇关于从'memcpy'替换为'_mm_store ...'操作。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!