blob: 8f1ec2b7f1b16f813fb966c94ffd52df0538ffc6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// f32 packed arrays and rounding inside an o3 region
fn put_f(x) { asm { x @ #1220 } return 0; }
o3 float dot(f32* p, int n) {
float s = 0;
f32 acc = 0;
for (int i = 0; i < n; i++) { s += p[i] * p[i]; acc = acc + p[i]; p[i] = p[i] + 0.1; }
return s + acc;
}
fn main() {
f32* p = new(f32, 50);
for (int i = 0; i < 50; i++) p[i] = i * 0.5;
put_f(dot(p, 50)); put_c(' '); put_f(p[3]); put_c(' '); put_n(p[3] == 1.6); put_c(10);
free(d*p);
}
|