Skip to content

Instantly share code, notes, and snippets.

@VictorTaelin
Created February 12, 2017 17:38
Show Gist options
  • Save VictorTaelin/cd2926877d2477bd7db5129f4582d2ff to your computer and use it in GitHub Desktop.
Save VictorTaelin/cd2926877d2477bd7db5129f4582d2ff to your computer and use it in GitHub Desktop.
C doesn't fuse
#include <stdio.h>
#include <stdlib.h>
void add1(long len, long *array){
for (long i = 0; i < len; ++i)
array[i] = array[i] + 1;
}
long sum(long len, long *array){
long sum = 0;
for (long i = 0; i < len; ++i)
sum += array[i];
return sum;
}
int main(){
long *arr;
long len = 100000000;
arr = (long *) malloc(len * sizeof(long));
for (long i = 0; i < len; ++i)
arr[i] = 0;
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
add1(len, arr);
printf("%ld", sum(len, arr));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment