请教关于用SSE进行优化的问题?

pucuicui 2008-10-25 03:09:39
最近要做程序的优化,有人告诉我最好用SSE进行优化,
所以我最近开始学习MMX和SSE指令,下面是我仿照别人的MMX程序自己改编的SSE的程序,但是
编译时老会出现inline assembler syntax error in 'opcode'; found 'st0'或者
       improper operand type的错误。

SSE代码:
     float a[]={1.0,2.0,3.0,4.0};
float b[]={5.0,6.0,7.0,8.0};

__asm
{
movaps st0,a;
movaps st0,b;

paddsw st0,st1;
movq a,st0;
emms
}
而之前人家的MMX的代码我也贴出来给大家看,就改了一些变量和寄存器的名称为什么就出错呢?
MMX代码:
    __int16 a[]={1.0,2.0,3.0,4.0};
__int16 b[]={5.0,6.0,7.0,8.0};

__asm
{
movp mm0,a;
movp mm0,b;

paddsw mm0,mm1;
movq a,mm0;
emms
}
这个MMX的代码运行起来没有问题,大虾帮忙看一下,是不是我的指令用错了呀,我刚刚开始学。
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pucuicui 2008-10-28
  • 打赏
  • 举报
回复
好的,谢谢sunyim
sunyim 2008-10-27
  • 打赏
  • 举报
回复
还有如果你会汇编语言的话最好在C++中嵌入汇编
SSE能提高两倍,汇编能提高至少5倍
sunyim 2008-10-27
  • 打赏
  • 举报
回复
需要下在Intel编译器
而且你的CPU还不能是AMD的
pucuicui 2008-10-27
  • 打赏
  • 举报
回复
    
    Mackz你好,感觉你对这个比较懂。我之前也有查到说是需要下一个Intel的编译器来加到
    VC++6.0中,但是安装之后按照方法来设置,在Tools工具栏下都没有找到关于Intel编译器的
    选项。我头都大了。
    依照你的经验看,我问题可能出在哪呢。
菜牛 2008-10-26
  • 打赏
  • 举报
回复
可能你的编译器不支持SSE指令集。
pucuicui 2008-10-25
  • 打赏
  • 举报
回复
奥,上面我写错了,人家的MMX代码是这样的
__int16 a[]={1,2,3,4};
__int16 b[]={5,6,7,8};

__asm
{
movq mm0,a;
movq mm0,b;

paddsw mm0,mm1;
movq a,mm0;
emms
}

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧