1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
diff -ru spack-src/src/ccalltest.c spack-src.new/src/ccalltest.c
--- spack-src/src/ccalltest.c 2019-08-01 14:58:12.092094781 +0900
+++ spack-src.new/src/ccalltest.c 2019-08-01 14:57:53.242092475 +0900
@@ -817,6 +817,7 @@
return x;
}
+#if defined(__GNUC__) && (__GNUC__ >= 6)
typedef struct {
__fp16 v1;
double v2;
@@ -833,6 +834,7 @@
struct_aa64_2 x = {v4 / 2 + 1, v1 * 2 + v2 * 4 - v3};
return x;
}
+#endif
#include <arm_neon.h>
diff -ru spack-src/src/test/ccall.jl spack-src.new/src/test/ccall.jl
--- spack-src/test/ccall.jl 2019-05-16 13:13:14.000000000 +0900
+++ spack-src.new/test/ccall.jl 2019-08-02 15:24:47.632241893 +0900
@@ -1130,19 +1130,6 @@
expected = Struct_AA64_1(v1 ÷ 2 + 1 - v3_1, v2 * 2 - 1 - v3_2)
@test res === expected
end
- for v1 in 1:4, v2 in -4:-1, v3 in 3:5, v4 in -(1:3)
- res = ccall((:test_aa64_fp16_1, libccalltest), Float16,
- (Cint, Float32, Float64, Float16),
- v1, v2, v3, v4)
- expected = Float16(v1 + v2 * 2 + v3 * 3 + v4 * 4)
- @test res === expected
-
- res = ccall((:test_aa64_fp16_2, libccalltest), Struct_AA64_2,
- (Cint, Float32, Float64, Float16),
- v1, v2, v3, v4)
- expected = Struct_AA64_2(v4 / 2 + 1, v1 * 2 + v2 * 4 - v3)
- @test res === expected
- end
for v1_1 in 1:4, v1_2 in -2:2, v2 in -4:-1, v3_1 in 3:5, v3_2 in 6:8
res = ccall((:test_aa64_vec_1, libccalltest),
VecReg{2,Int64},
|