1 Star 12 Fork 12

RichardGong / PlayWithCompiler

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
loop.c 887 Bytes
一键复制 编辑 原始数据 按行查看 历史
Richard Gong 提交于 2019-10-27 18:44 . added lab 31 - simd
/**
* 演示循环的矢量化功能。
*/
/**
* 下面这段代码会被直接矢量化
* @param totalNums
* @param nums
* @return
*/
int loop1(int totalNums, int * nums){
int sum = 0;
for (int i = 0; i< totalNums; i++){
sum += nums[i];
}
return sum;
}
/**
* 这段代码要看看nums1和nums2在地址上是否存在重叠。
* 编译程序会加上运行期的代码来做判断。如果有重叠,就使用标量的计算方式。
* @param totalNums
* @param nums1
* @param nums2
*/
void loop2(int totalNums, int * nums1, int * nums2){
for (int i = 0; i< 160; i++){
nums2[i] += nums1[i];
}
}
/**
* 循环次数是确定的,生成的代码会根据这个常数做优化。
* @param nums
* @return
*/
int loop3(int * nums){
int sum = 0;
for (int i = 0; i< 160; i++){
sum += nums[i];
}
return sum;
}
Java
1
https://gitee.com/richard-gong/PlayWithCompiler.git
git@gitee.com:richard-gong/PlayWithCompiler.git
richard-gong
PlayWithCompiler
PlayWithCompiler
master

搜索帮助