GCC vector 叠加示例
一个简单的vector叠加示例
GCC version 4.7.0
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <x86intrin.h>typedef union i4factor{__v4si v;int u4[4];
}
__attribute__((aligned(16)))
i4factor_t;
//typedef int v4sf __attribute__ ((mode(V4SF))); // vector of four single floats
#if 0
int a[4] = {1, 2, 3, 4};
int b[4] = {4, 3, 2, 1};void vectorAdd(void)
{int i = 0;for (i = 0; i < 4; i++) {a[i] = a[i] + b[i];}
}
#else
i4factor_t a, b, c;void vectorAdd(void)
{//c = __builtin_addv4si(a, b);c.v = a.v + b.v;
}
#endif
int main(int argc, char **argv)
{a.u4[0] = 1;a.u4[1] = 2;a.u4[2] = 3;a.u4[3] = 4;b.u4[0] = 4;b.u4[1] = 3;b.u4[2] = 2;b.u4[3] = 1;vectorAdd();//printf("%d, %d, %d, %d\n", a[0], a[1], a[2], a[3]);printf("%d, %d, %d, %d\n", c.u4[0], c.u4[1], c.u4[2], c.u4[3]);return 0;
}
编译
# gcc -march=core2 -O2 -pipe -ggdb -c v4si.c -o v4si.o
# gcc v4si.o -o v4si
执行
# ./v4si
5, 5, 5, 5
objdump 查看是使用了SIMD指令
# objdump -dS v4si.o |grep -22 c.v |tail -25void vectorAdd(void)
{//c = __builtin_addv4si(a, b);c.v = a.v + b.v;63: 66 0f fe 05 00 00 00 paddd 0x0(%rip),%xmm0 # 6b <main+0x6b>6a: 006b: 66 0f 7f 05 00 00 00 movdqa %xmm0,0x0(%rip) # 73 <main+0x73>72: 00
GCC vector 叠加示例相关推荐
- boost::geometry模块Linestring多边形叠加示例
boost::geometry模块Linestring多边形叠加示例 实现功能 C++实现代码 实现功能 boost::geometry模块Linestring多边形叠加示例 C++实现代码 #inc ...
- boost::geometry模块多边形叠加示例
boost::geometry模块多边形叠加示例 实现功能 C++实现代码 实现功能 boost::geometry模块多边形叠加示例 C++实现代码 #include <boost/forea ...
- C++ vector使用示例
C++ vector使用示例 一.不含指针,不含new 示例1 示例2 加入push.back() 示例3 加入pop.back() 二.含有指针,不含new 示例1 示例2 三.含有指针,含有new ...
- echarts地图文字重叠解决方案_ECharts 和百度地图的叠加示例(下)
前言 汇总了几个 ECharts 地图和百度地图在可视化展示时的综合示例. 主要是在 ECharts 地图和百度地图上叠加展示一些数字.图片.其它图表和轨迹动画. 另外因为每个示例的代码配置项比较繁琐 ...
- Android 中 vector 反汇编示例
前言 最近遇到一个 native crash 问题,如下所示:(Android 8.1) Revision: '0' ABI: 'arm64' pid: 1863, tid: 3348, name: ...
- 《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加图像混合
第5章 Core组件进阶 5.2 ROI区域图像叠加&图像混合 5.2.1 感兴趣区域ROI(region of interest) 1.定义ROI区域两种方法: (1)定义矩形区域Rect: ...
- c++ vector查找_C++ vector内存分配策略浅析
(给CPP开发者加星标,提升C/C++技能) 来源:邱国禄https://blog.csdn.net/qiuguolu1108/article/details/107146184 vector是一个封 ...
- 快速失败Vs安全失败(Java迭代器附示例)
译者:java达人-卍极客 英文出处:Java Concept Of The Day 英文链接:http://javaconceptoftheday.com/(点击文末阅读原文前往) 转载请标注以上声 ...
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
[OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...
- linux开发工具之gcc
首先gcc编译链接的一个实例如下所示: 接下来看一下gcc的常见选项: gcc的使用示例: 转载于:https://www.cnblogs.com/wsw-seu/p/10826124.html
最新文章
- linux 自定义外壳,管道在自定义的linux外壳
- 微软开放 AI 系统工具 Counterfit 源代码
- 安卓之上传文件,即HTTP提交表单
- JAVA程序设计----多线程(上)
- IDEA开启Run Dashboard窗口
- 鸿蒙3部曲先看哪部,讨论雪鹰与鸿蒙三部曲的关系
- for in / for of 要会用
- H.264/AVC 标准中CAVLC 和CABAC 熵编码算法研究
- php中队列控制的方法,学习猿地-php 队列的实现方法
- 收集SQLite中的时间日期函数[ZT]
- 李宏毅机器学习——集成学习
- 调用vba_VBA代码解决方案的第86讲内容:VBA代码的优化篇
- idea 搜索快捷键
- GBASE 8s DB-Access入门
- 手机b站封面提取网站_【软件分享】B站视频提取器
- Codeforces Round #393 Frodo and pillows
- python获取当前星期几
- sina.cn邮箱邀请
- 7 125 kHz RFID技术
- 编写程序实现以下功能:计算1~n之间的素数并输出
热门文章
- 教你手写Java层handler机制
- js基础-21-事件委托
- Express框架学习笔记-app.locals对象
- oracle的监听服务详解
- C语言学生管理程序输入错误,c语言编程,关于学生管理的程序(急急急)
- hashmap value占用空间大小_性能优化:为什么要使用SparseArray和ArrayMap替代HashMap?...
- url后面的参数是什么_揭秘亚马逊黑科技之超级URL原理
- 同济大学c语言程序设计答案,2020年同济大学道路与铁道工程考研真题试卷及试题答案,汽车理论及设计考研试题下载...
- python的flask实现接口_python+flask:实现POST接口功能
- 设置y轴刻度_Origin中如何设置坐标轴单位长度相等? axisisometric