aboutsummaryrefslogtreecommitdiffstats
path: root/test/mppa/instr/individual/indirect_call.c
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-03-22 11:10:11 +0100
committerCyril SIX <cyril.six@kalray.eu>2019-03-22 11:10:11 +0100
commit4f45e2926fa9d0dba400ec6b6a1506c898cad13d (patch)
treeaf88ffeec69c62f6df1bd99fbea591168c631186 /test/mppa/instr/individual/indirect_call.c
parent49ea6f7d4b9e18f8aa740d068bb3fb9e49596e00 (diff)
downloadcompcert-kvx-4f45e2926fa9d0dba400ec6b6a1506c898cad13d.tar.gz
compcert-kvx-4f45e2926fa9d0dba400ec6b6a1506c898cad13d.zip
Reorganized the test/mppa/ tests to have fewer of them
Diffstat (limited to 'test/mppa/instr/individual/indirect_call.c')
-rw-r--r--test/mppa/instr/individual/indirect_call.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/mppa/instr/individual/indirect_call.c b/test/mppa/instr/individual/indirect_call.c
new file mode 100644
index 00000000..f376c00a
--- /dev/null
+++ b/test/mppa/instr/individual/indirect_call.c
@@ -0,0 +1,33 @@
+#include "framework.h"
+
+long long sum(long long a, long long b){
+ return a+b;
+}
+
+long long diff(long long a, long long b){
+ return a-b;
+}
+
+long long mul(long long a, long long b){
+ return a*b;
+}
+
+long long make(long long a){
+ return a;
+}
+
+BEGIN_TEST(long long)
+{
+ long long d = 3;
+ long long (*op)(long long, long long);
+
+ if (a % d == 0)
+ op = sum;
+ else if (a % d == 1)
+ op = diff;
+ else
+ op = mul;
+
+ c += op(make(a), make(b));
+}
+END_TEST64()