问题描述
我想使用多个 ymm 寄存器来加快复制速度。这是我的代码片段。
__m256 ymm[2];
ymm[0] = _mm256_load_ps(_src1);
ymm[1] = _mm256_load_ps(_src2);
_mm256_store_ps(_dst1,ymm[0]);
_mm256_store_ps(_dst2,ymm[1]);
但是visual studio的反汇编结果显示我只使用了ymm0寄存器,实际上我想使用更多的寄存器,比如ymm1、ymm2。有什么方法可以指定或给编译器一些提示吗?
__m256 ymm[2];
ymm[0] = _mm256_load_ps(_src1);
00007FF6E417EFA9 mov rax,qword ptr [rbp+10h]
00007FF6E417EFAD vmovups ymm0,ymmword ptr [rax]
00007FF6E417EFB1 vmovups ymmword ptr [rbp+0A0h],ymm0
00007FF6E417EFB9 mov eax,20h
00007FF6E417EFBE imul rax,rax,0
00007FF6E417EFC2 vmovups ymm0,ymmword ptr [rbp+0A0h]
00007FF6E417EFCA vmovups ymmword ptr [rbp+rax+40h],ymm0
ymm[1] = _mm256_load_ps(_src2);
00007FF6E417EFD0 mov rax,qword ptr [rbp+18h]
00007FF6E417EFD4 vmovups ymm0,ymmword ptr [rax]
00007FF6E417EFD8 vmovups ymmword ptr [rbp+0C0h],ymm0
00007FF6E417EFE0 mov eax,20h
00007FF6E417EFE5 imul rax,1
00007FF6E417EFE9 vmovups ymm0,ymmword ptr [rbp+0C0h]
00007FF6E417EFF1 vmovups ymmword ptr [rbp+rax+40h],ymm0
_mm256_store_ps(_dst1,ymm[0]);
00007FF6E417EFF7 mov eax,20h
00007FF6E417EFFC imul rax,0
00007FF6E417F000 mov rcx,qword ptr [rbp+20h]
00007FF6E417F004 vmovups ymm0,ymmword ptr [rbp+rax+40h]
00007FF6E417F00A vmovups ymmword ptr [rcx],ymm0
_mm256_store_ps(_dst2,ymm[1]);
00007FF6E417F00E mov eax,20h
00007FF6E417F013 imul rax,1
00007FF6E417F017 mov rcx,qword ptr [rbp+28h]
00007FF6E417F01B vmovups ymm0,ymmword ptr [rbp+rax+40h]
00007FF6E417F021 vmovups ymmword ptr [rcx],ymm0
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)