1. 云栖社区>
  2. >
  3. 正文

测试amd cpu对intel sse指令集的支持情况

作者:用户 来源:互联网 时间:2018-09-01 12:29:51

c测试float

测试amd cpu对intel sse指令集的支持情况 - 摘要: 本文讲的是测试amd cpu对intel sse指令集的支持情况,   首先测试下sse4.1,源代码如下 #include <stdio.h> #include <smmintrin.h> int main() { __m128i a, b; cha

 

首先测试下sse4.1,源代码如下

#include <stdio.h> #include <smmintrin.h> int main() { __m128i a, b; char * psA = (char * )&a; char * psB = (char * )&b; int i = 0 ; for( ; i < 16; ++i) { psA[i] = 0xcc; psB[i] = 0x33; } int sResult = _mm_testz_si128(a,b); printf("sResult == %d/n",sResult); } 

编译方法

g++ -O2 -o1 -s -msse4.1 1.cpp

gdb报sigill,非法指令集,不支持sse4.1

接着测试sse3

 

#include <stdio.h> #include <pmmintrin.h> int main(){ __m128 a, b,c; float * psA = (float*)&a; psA[0] = 0.1f;psA[1]= 0.2f; psA[2]= 0.3f; psA[3]= 0.4f; float * psB = (float*)&b; psB[0] = 0.001f; psB[1] = 0.002f; psB[2] = 0.003f; psB[3] = 0.004f; c = _mm_addsub_ps(a,b); float * psC = (float*)&c; printf("c[0] = %f,c[1] = %f,c[2] = %f,c[3] = %f", psC[0],psC[1],psC[2],psC[3]); } 

结果输出:

c[0] = 0.099000,c[1] = 0.202000,c[2] = 0.297000,c[3] = 0.404000

支持sse3

至于那个sse4a,那就真是算了,只有AMD支持,没有市场……

 

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c , 测试 float ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备
Kubernetes上基于Istio体验云原生应用实践 资料下载