aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/k1_builtins
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-11 22:29:14 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-11 22:29:14 +0200
commit4571fc5fade196c02d68c4feb5e5a1b862d37041 (patch)
tree681f4992fee674059d6f8245e9e2b6da35256e2f /test/monniaux/k1_builtins
parent9cdb61cc69db8fbb9bedfd3957b9512f8622fb7a (diff)
downloadcompcert-kvx-4571fc5fade196c02d68c4feb5e5a1b862d37041.tar.gz
compcert-kvx-4571fc5fade196c02d68c4feb5e5a1b862d37041.zip
more builtins
Diffstat (limited to 'test/monniaux/k1_builtins')
-rw-r--r--test/monniaux/k1_builtins/sbmm8.c13
-rwxr-xr-xtest/monniaux/k1_builtins/sbmm8_demo.sage5
-rw-r--r--test/monniaux/k1_builtins/test_k1_builtins.c12
3 files changed, 27 insertions, 3 deletions
diff --git a/test/monniaux/k1_builtins/sbmm8.c b/test/monniaux/k1_builtins/sbmm8.c
index da1178dc..3b2ac447 100644
--- a/test/monniaux/k1_builtins/sbmm8.c
+++ b/test/monniaux/k1_builtins/sbmm8.c
@@ -1,8 +1,15 @@
#include <stdio.h>
int main() {
- unsigned long a = 0x12345678ABCDEFUL, b=0x12345118ABCD32UL, c;
- c = __builtin_k1_sbmm8(a, b);
- printf("%lx\n", c);
+ {
+ unsigned long a = 0x12345678ABCDEFUL, b=0x12345118ABCD32UL, c;
+ c = __builtin_k1_sbmm8(a, b);
+ printf("%lx\n", c);
+ }
+ {
+ unsigned long a = 0x0102040810204080UL, b=0x12345118ABCD32UL, c;
+ c = __builtin_k1_sbmm8(a, b);
+ printf("%lx\n", c);
+ }
return 0;
}
diff --git a/test/monniaux/k1_builtins/sbmm8_demo.sage b/test/monniaux/k1_builtins/sbmm8_demo.sage
index 45948668..4a4c9df0 100755
--- a/test/monniaux/k1_builtins/sbmm8_demo.sage
+++ b/test/monniaux/k1_builtins/sbmm8_demo.sage
@@ -14,3 +14,8 @@ matA=mat_from_uint64(0x12345678ABCDEF)
matB=mat_from_uint64(0x12345118ABCD32)
print hex(uint64_from_mat(matB * matA))
+
+matA=mat_from_uint64(0x0201040810208040)
+matB=mat_from_uint64(0x0102011701010133)
+
+print matA*matB
diff --git a/test/monniaux/k1_builtins/test_k1_builtins.c b/test/monniaux/k1_builtins/test_k1_builtins.c
index 94509131..e02c7f2e 100644
--- a/test/monniaux/k1_builtins/test_k1_builtins.c
+++ b/test/monniaux/k1_builtins/test_k1_builtins.c
@@ -1,3 +1,4 @@
+#include <stdio.h>
#include <mppa_bare_runtime/k1c/registers.h>
void test_system_regs(void) {
@@ -8,6 +9,11 @@ void test_system_regs(void) {
}
void test_loads(void *addr) {
+ __builtin_k1_alclrd(addr);
+ __builtin_k1_alclrw(addr);
+ __builtin_k1_lbzu(addr);
+ __builtin_k1_lhzu(addr);
+ __builtin_k1_lwzu(addr);
__builtin_k1_ldu(addr);
__builtin_k1_dinvall(addr);
__builtin_k1_dtouchl(addr);
@@ -26,3 +32,9 @@ void test_stops(void) {
__builtin_k1_dinval();
__builtin_k1_iinval();
}
+
+int main() {
+ unsigned long long data = 45;
+ unsigned long long res = __builtin_k1_alclrd(&data);
+ printf("%llu %llu\n", res, data);
+}