SSE4.1 : IINSERTPS – 把一个32位整型插入到一个128位参数中,并把某些位置零。内部指令:_mm_insert_ps

本文详细介绍了SSE指令集中的_mm_insert_ps函数使用方法及其实现原理。通过具体的例子展示了如何利用_mm_insert_ps来实现浮点数向量的插入操作,并解释了其内部的位操作细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSE指令集: http://blog.youkuaiyun.com/xieqidong/archive/2008/07/04/2612847.aspx

_mm_insert_ps: http://msdn.microsoft.com/en-us/library/bb514071.aspx

 

 

__m128 a, b
a 1.0  -1.0  1.5  105.5
b -5.0  10  -325.0625 81.125


const int sel = 0xD9

 D

 1101                11(b3)         01(r1)                             // The D means that b3 will be stored in r1
 9
 1001                1(r0)  0(r1)  0(r2)  1(r3)                     // The 9 means that r0 and r3 will be set to 0

 

__m128 res = _mm_insert_ps(a, b, sel);

 

                 r0                  r1                          r2                         r3

res            0.000000      81.125000            1.500000              0.000000
                 0                   b.m128_f32[3]      a.m128_f32[2]      0

 

 

_MM_MK_INSERTPS_NDX(3,0,0)
c                     11 00                      b3 -> r0
0                     0 0 0 0                     r: b3, a2, a3, a4

_MM_MK_INSERTPS_NDX(3,1,0)
d                     11 01                     b3 -> r1
0                     0 0 0 0                     r: a1, b3, a3, a4

_MM_MK_INSERTPS_NDX(3,2,0)
e                     11 10                     b3 -> r2
0                     0 0 0 0                     r: a1, a2, b3, a4

_MM_MK_INSERTPS_NDX(3,3,0)
f                     11 11                     b3 -> r3
0                     0 0 0 0                     r: a1, a2, a3, b3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值