summaryrefslogtreecommitdiffstats
path: root/test cases/common/147 simd/simd_neon.c
blob: 2834b30969f1f0f6b16e7a554c26582b0255bc6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<simdconfig.h>
#include<simdfuncs.h>

#include<arm_neon.h>
#include<stdint.h>

int neon_available(void) {
    return 1; /* Incorrect, but I don't know how to check this properly. */
}

void increment_neon(float arr[4]) {
    float32x2_t a1, a2, one;
    a1 = vld1_f32(arr);
    a2 = vld1_f32(&arr[2]);
    one = vdup_n_f32(1.0);
    a1 = vadd_f32(a1, one);
    a2 = vadd_f32(a2, one);
    vst1_f32(arr, a1);
    vst1_f32(&arr[2], a2);
}