从'memcpy'替换为'_mm_store ...'操作。 [英] Replace from 'memcpy' to '_mm_store...' operaion.

查看:87
本文介绍了从'memcpy'替换为'_mm_store ...'操作。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好。



我有一个问题。



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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆