aboutsummaryrefslogtreecommitdiffstats
path: root/test/mppa/instr/individual
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-03 08:17:40 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-03 08:17:40 +0100
commit1ab7b51c30e1b10ac45b0bd64cefdc01da0f7f68 (patch)
tree210ffc156c83f04fb0c61a40b4f9037d7ba8a7e1 /test/mppa/instr/individual
parent222c9047d61961db9c6b19fed5ca49829223fd33 (diff)
parent12be46d59a2483a10d77fa8ee67f7e0ca1bd702f (diff)
downloadcompcert-kvx-1ab7b51c30e1b10ac45b0bd64cefdc01da0f7f68.tar.gz
compcert-kvx-1ab7b51c30e1b10ac45b0bd64cefdc01da0f7f68.zip
Merge branch 'mppa-cse2' of gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into mppa-work
Diffstat (limited to 'test/mppa/instr/individual')
-rw-r--r--test/mppa/instr/individual/andw.c5
-rw-r--r--test/mppa/instr/individual/branch.c10
-rw-r--r--test/mppa/instr/individual/branchz.c10
-rw-r--r--test/mppa/instr/individual/branchzu.c11
-rw-r--r--test/mppa/instr/individual/call.c16
-rw-r--r--test/mppa/instr/individual/cast_S32_S64.c7
-rw-r--r--test/mppa/instr/individual/cast_S64_U32.c7
-rw-r--r--test/mppa/instr/individual/cb.deqz.c10
-rw-r--r--test/mppa/instr/individual/cb.dgez.c10
-rw-r--r--test/mppa/instr/individual/cb.dgtz.c10
-rw-r--r--test/mppa/instr/individual/cb.dlez.c10
-rw-r--r--test/mppa/instr/individual/cb.dltz.c10
-rw-r--r--test/mppa/instr/individual/cb.dnez.c10
-rw-r--r--test/mppa/instr/individual/cb.wgez.c10
-rw-r--r--test/mppa/instr/individual/cb.wgtz.c10
-rw-r--r--test/mppa/instr/individual/cb.wlez.c10
-rw-r--r--test/mppa/instr/individual/cb.wltz.c10
-rw-r--r--test/mppa/instr/individual/compd.eq.c7
-rw-r--r--test/mppa/instr/individual/compd.geu.c7
-rw-r--r--test/mppa/instr/individual/compd.gt.c7
-rw-r--r--test/mppa/instr/individual/compd.le.c7
-rw-r--r--test/mppa/instr/individual/compd.leu.c7
-rw-r--r--test/mppa/instr/individual/compd.lt.c7
-rw-r--r--test/mppa/instr/individual/compd.ltu.c7
-rw-r--r--test/mppa/instr/individual/compd.ne.c7
-rw-r--r--test/mppa/instr/individual/compw.eq.c7
-rw-r--r--test/mppa/instr/individual/compw.geu.c7
-rw-r--r--test/mppa/instr/individual/compw.gt.c7
-rw-r--r--test/mppa/instr/individual/compw.gtu.c7
-rw-r--r--test/mppa/instr/individual/compw.le.c7
-rw-r--r--test/mppa/instr/individual/compw.leu.c7
-rw-r--r--test/mppa/instr/individual/compw.lt.c7
-rw-r--r--test/mppa/instr/individual/compw.ltu.c7
-rw-r--r--test/mppa/instr/individual/compw.ne.c7
-rw-r--r--test/mppa/instr/individual/div2.c7
-rw-r--r--test/mppa/instr/individual/doubleconv.c9
-rw-r--r--test/mppa/instr/individual/floatconv.c9
-rw-r--r--test/mppa/instr/individual/fmuld.c7
-rw-r--r--test/mppa/instr/individual/fmulw.c7
-rw-r--r--test/mppa/instr/individual/fnegd.c7
-rw-r--r--test/mppa/instr/individual/fnegw.c7
-rw-r--r--test/mppa/instr/individual/for.c9
-rw-r--r--test/mppa/instr/individual/forvar.c9
-rw-r--r--test/mppa/instr/individual/forvarl.c10
-rw-r--r--test/mppa/instr/individual/fsbfd.c7
-rw-r--r--test/mppa/instr/individual/fsbfw.c7
-rw-r--r--test/mppa/instr/individual/indirect_call.c33
-rw-r--r--test/mppa/instr/individual/indirect_tailcall.c33
-rw-r--r--test/mppa/instr/individual/lbs.c9
-rw-r--r--test/mppa/instr/individual/lbz.c9
-rw-r--r--test/mppa/instr/individual/muld.c7
-rw-r--r--test/mppa/instr/individual/mulw.c7
-rw-r--r--test/mppa/instr/individual/negd.c7
-rw-r--r--test/mppa/instr/individual/ord.c7
-rw-r--r--test/mppa/instr/individual/sbfd.c7
-rw-r--r--test/mppa/instr/individual/sbfw.c7
-rw-r--r--test/mppa/instr/individual/simple.c7
-rw-r--r--test/mppa/instr/individual/sllw.c7
-rw-r--r--test/mppa/instr/individual/srad.c7
-rw-r--r--test/mppa/instr/individual/srld.c7
-rw-r--r--test/mppa/instr/individual/tailcall.c16
-rw-r--r--test/mppa/instr/individual/udivd.c7
-rw-r--r--test/mppa/instr/individual/umodd.c7
-rw-r--r--test/mppa/instr/individual/xord.c7
64 files changed, 571 insertions, 0 deletions
diff --git a/test/mppa/instr/individual/andw.c b/test/mppa/instr/individual/andw.c
new file mode 100644
index 00000000..799dc7fb
--- /dev/null
+++ b/test/mppa/instr/individual/andw.c
@@ -0,0 +1,5 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+ c = a&b;
+END_TEST32()
diff --git a/test/mppa/instr/individual/branch.c b/test/mppa/instr/individual/branch.c
new file mode 100644
index 00000000..c9937e31
--- /dev/null
+++ b/test/mppa/instr/individual/branch.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if ((a & 0x1) == 1)
+ c = 0;
+ else
+ c = 1;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/branchz.c b/test/mppa/instr/individual/branchz.c
new file mode 100644
index 00000000..d3e021b5
--- /dev/null
+++ b/test/mppa/instr/individual/branchz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if (a & 0x1 == 0)
+ c = 0;
+ else
+ c = 1;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/branchzu.c b/test/mppa/instr/individual/branchzu.c
new file mode 100644
index 00000000..d0169174
--- /dev/null
+++ b/test/mppa/instr/individual/branchzu.c
@@ -0,0 +1,11 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ b = !(a & 0x01);
+ if (!b)
+ c = 0;
+ else
+ c = 1;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/call.c b/test/mppa/instr/individual/call.c
new file mode 100644
index 00000000..ba2ec323
--- /dev/null
+++ b/test/mppa/instr/individual/call.c
@@ -0,0 +1,16 @@
+#include "framework.h"
+
+int sum(int a, int b){
+ return a+b;
+}
+
+int make(int a){
+ return a;
+}
+
+BEGIN_TEST(int)
+{
+ c = sum(make(a), make(b));
+}
+END_TEST32()
+/* RETURN VALUE: 60 */
diff --git a/test/mppa/instr/individual/cast_S32_S64.c b/test/mppa/instr/individual/cast_S32_S64.c
new file mode 100644
index 00000000..09c97e00
--- /dev/null
+++ b/test/mppa/instr/individual/cast_S32_S64.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = (long long) a;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/cast_S64_U32.c b/test/mppa/instr/individual/cast_S64_U32.c
new file mode 100644
index 00000000..2d9dc723
--- /dev/null
+++ b/test/mppa/instr/individual/cast_S64_U32.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = (unsigned int) a;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.deqz.c b/test/mppa/instr/individual/cb.deqz.c
new file mode 100644
index 00000000..6da2ab07
--- /dev/null
+++ b/test/mppa/instr/individual/cb.deqz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if (0 != (a & 0x1LL))
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.dgez.c b/test/mppa/instr/individual/cb.dgez.c
new file mode 100644
index 00000000..7bef25ad
--- /dev/null
+++ b/test/mppa/instr/individual/cb.dgez.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if (0 > (a & 0x1LL))
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.dgtz.c b/test/mppa/instr/individual/cb.dgtz.c
new file mode 100644
index 00000000..1a43fb1f
--- /dev/null
+++ b/test/mppa/instr/individual/cb.dgtz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if (0 >= (a & 0x1LL) - 1)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.dlez.c b/test/mppa/instr/individual/cb.dlez.c
new file mode 100644
index 00000000..2fb97939
--- /dev/null
+++ b/test/mppa/instr/individual/cb.dlez.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if (a & 0x1LL > 0)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.dltz.c b/test/mppa/instr/individual/cb.dltz.c
new file mode 100644
index 00000000..a431d5d0
--- /dev/null
+++ b/test/mppa/instr/individual/cb.dltz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if ((a & 0x1LL) - 1 >= 0)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.dnez.c b/test/mppa/instr/individual/cb.dnez.c
new file mode 100644
index 00000000..44516cbe
--- /dev/null
+++ b/test/mppa/instr/individual/cb.dnez.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ if (0 == (a & 0x1LL))
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/cb.wgez.c b/test/mppa/instr/individual/cb.wgez.c
new file mode 100644
index 00000000..5779ad92
--- /dev/null
+++ b/test/mppa/instr/individual/cb.wgez.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if (0 > (a & 0x1) - 1)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/cb.wgtz.c b/test/mppa/instr/individual/cb.wgtz.c
new file mode 100644
index 00000000..abb695bd
--- /dev/null
+++ b/test/mppa/instr/individual/cb.wgtz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if (0 >= (a & 0x1))
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/cb.wlez.c b/test/mppa/instr/individual/cb.wlez.c
new file mode 100644
index 00000000..3a2e08c1
--- /dev/null
+++ b/test/mppa/instr/individual/cb.wlez.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if ((a & 0x1) > 0)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/cb.wltz.c b/test/mppa/instr/individual/cb.wltz.c
new file mode 100644
index 00000000..5d52c72a
--- /dev/null
+++ b/test/mppa/instr/individual/cb.wltz.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ if ((a & 0x1) - 1 >= 0)
+ c = 1;
+ else
+ c = 0;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compd.eq.c b/test/mppa/instr/individual/compd.eq.c
new file mode 100644
index 00000000..4fe8de2a
--- /dev/null
+++ b/test/mppa/instr/individual/compd.eq.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = ((a & 0x1LL) == (b & 0x1LL));
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.geu.c b/test/mppa/instr/individual/compd.geu.c
new file mode 100644
index 00000000..fccf0804
--- /dev/null
+++ b/test/mppa/instr/individual/compd.geu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = (a >= b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.gt.c b/test/mppa/instr/individual/compd.gt.c
new file mode 100644
index 00000000..b9901436
--- /dev/null
+++ b/test/mppa/instr/individual/compd.gt.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = (a > b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.le.c b/test/mppa/instr/individual/compd.le.c
new file mode 100644
index 00000000..6fa0f103
--- /dev/null
+++ b/test/mppa/instr/individual/compd.le.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = (a <= b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.leu.c b/test/mppa/instr/individual/compd.leu.c
new file mode 100644
index 00000000..1ad18281
--- /dev/null
+++ b/test/mppa/instr/individual/compd.leu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = (a <= b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.lt.c b/test/mppa/instr/individual/compd.lt.c
new file mode 100644
index 00000000..c42cda56
--- /dev/null
+++ b/test/mppa/instr/individual/compd.lt.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = (a < b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.ltu.c b/test/mppa/instr/individual/compd.ltu.c
new file mode 100644
index 00000000..b03d4d53
--- /dev/null
+++ b/test/mppa/instr/individual/compd.ltu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = (a < b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compd.ne.c b/test/mppa/instr/individual/compd.ne.c
new file mode 100644
index 00000000..fd9d0b28
--- /dev/null
+++ b/test/mppa/instr/individual/compd.ne.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = ((a & 0x1ULL) != (b & 0x1ULL));
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/compw.eq.c b/test/mppa/instr/individual/compw.eq.c
new file mode 100644
index 00000000..cd93f365
--- /dev/null
+++ b/test/mppa/instr/individual/compw.eq.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = ((a & 0x1) == (b & 0x1));
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.geu.c b/test/mppa/instr/individual/compw.geu.c
new file mode 100644
index 00000000..b8fb1adf
--- /dev/null
+++ b/test/mppa/instr/individual/compw.geu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned int)
+{
+ c = (a >= b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.gt.c b/test/mppa/instr/individual/compw.gt.c
new file mode 100644
index 00000000..5f6bc907
--- /dev/null
+++ b/test/mppa/instr/individual/compw.gt.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = (a > b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.gtu.c b/test/mppa/instr/individual/compw.gtu.c
new file mode 100644
index 00000000..947f6a14
--- /dev/null
+++ b/test/mppa/instr/individual/compw.gtu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned int)
+{
+ c = (a > b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.le.c b/test/mppa/instr/individual/compw.le.c
new file mode 100644
index 00000000..35ec6b7d
--- /dev/null
+++ b/test/mppa/instr/individual/compw.le.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = (a <= b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.leu.c b/test/mppa/instr/individual/compw.leu.c
new file mode 100644
index 00000000..74ebfb42
--- /dev/null
+++ b/test/mppa/instr/individual/compw.leu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned int)
+{
+ c = (a <= b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.lt.c b/test/mppa/instr/individual/compw.lt.c
new file mode 100644
index 00000000..cb1f30bd
--- /dev/null
+++ b/test/mppa/instr/individual/compw.lt.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = (a < b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.ltu.c b/test/mppa/instr/individual/compw.ltu.c
new file mode 100644
index 00000000..6a0c5af1
--- /dev/null
+++ b/test/mppa/instr/individual/compw.ltu.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned int)
+{
+ c = (a < b);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/compw.ne.c b/test/mppa/instr/individual/compw.ne.c
new file mode 100644
index 00000000..7035e2c7
--- /dev/null
+++ b/test/mppa/instr/individual/compw.ne.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned int)
+{
+ c = ((a & 0x1U) != (b & 0x1U));
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/div2.c b/test/mppa/instr/individual/div2.c
new file mode 100644
index 00000000..b5dfe63a
--- /dev/null
+++ b/test/mppa/instr/individual/div2.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = (a + b) / 2;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/doubleconv.c b/test/mppa/instr/individual/doubleconv.c
new file mode 100644
index 00000000..55b1ddab
--- /dev/null
+++ b/test/mppa/instr/individual/doubleconv.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+double long2double(long v){
+ return v;
+}
+
+BEGIN_TEST(long)
+ c = (long) long2double(a) + (long) long2double(b) + (long) long2double(42.3);
+END_TEST64()
diff --git a/test/mppa/instr/individual/floatconv.c b/test/mppa/instr/individual/floatconv.c
new file mode 100644
index 00000000..32b798e1
--- /dev/null
+++ b/test/mppa/instr/individual/floatconv.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+float int2float(int v){
+ return v;
+}
+
+BEGIN_TEST(int)
+ c = (int) int2float(a) + (int) int2float(b) + (int) int2float(42.3);
+END_TEST32()
diff --git a/test/mppa/instr/individual/fmuld.c b/test/mppa/instr/individual/fmuld.c
new file mode 100644
index 00000000..03c990fa
--- /dev/null
+++ b/test/mppa/instr/individual/fmuld.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(double)
+{
+ c = ((double)a * (double)b);
+}
+END_TESTF64()
diff --git a/test/mppa/instr/individual/fmulw.c b/test/mppa/instr/individual/fmulw.c
new file mode 100644
index 00000000..f85eba64
--- /dev/null
+++ b/test/mppa/instr/individual/fmulw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(float)
+{
+ c = ((float)a * (float)b);
+}
+END_TESTF32()
diff --git a/test/mppa/instr/individual/fnegd.c b/test/mppa/instr/individual/fnegd.c
new file mode 100644
index 00000000..974eb7e8
--- /dev/null
+++ b/test/mppa/instr/individual/fnegd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(double)
+{
+ c = (-(double)a);
+}
+END_TESTF64()
diff --git a/test/mppa/instr/individual/fnegw.c b/test/mppa/instr/individual/fnegw.c
new file mode 100644
index 00000000..fbeaab8e
--- /dev/null
+++ b/test/mppa/instr/individual/fnegw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(float)
+{
+ c = (-(float)a);
+}
+END_TESTF64()
diff --git a/test/mppa/instr/individual/for.c b/test/mppa/instr/individual/for.c
new file mode 100644
index 00000000..373ab6bd
--- /dev/null
+++ b/test/mppa/instr/individual/for.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ int j;
+ for (j = 0 ; j < 10 ; j++)
+ c += a;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/forvar.c b/test/mppa/instr/individual/forvar.c
new file mode 100644
index 00000000..9e43c198
--- /dev/null
+++ b/test/mppa/instr/individual/forvar.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ int k;
+ for (k = 0 ; k < (b & 0x8) ; k++)
+ c += a;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/forvarl.c b/test/mppa/instr/individual/forvarl.c
new file mode 100644
index 00000000..c1fe90fd
--- /dev/null
+++ b/test/mppa/instr/individual/forvarl.c
@@ -0,0 +1,10 @@
+#include "framework.h"
+
+BEGIN_TEST(long long int)
+{
+ int j;
+
+ for (j = 0 ; j < (b & 0x8LL) ; j++)
+ c += a;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/fsbfd.c b/test/mppa/instr/individual/fsbfd.c
new file mode 100644
index 00000000..f80c1efe
--- /dev/null
+++ b/test/mppa/instr/individual/fsbfd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(double)
+{
+ c = ((double)a - (double)b);
+}
+END_TESTF64()
diff --git a/test/mppa/instr/individual/fsbfw.c b/test/mppa/instr/individual/fsbfw.c
new file mode 100644
index 00000000..067c40b5
--- /dev/null
+++ b/test/mppa/instr/individual/fsbfw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(float)
+{
+ c = ((float)a - (float)b);
+}
+END_TESTF64()
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()
diff --git a/test/mppa/instr/individual/indirect_tailcall.c b/test/mppa/instr/individual/indirect_tailcall.c
new file mode 100644
index 00000000..e6c16ea1
--- /dev/null
+++ b/test/mppa/instr/individual/indirect_tailcall.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 random_op(long long a, long long b){
+ 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;
+
+ return op(a, b);
+}
+
+BEGIN_TEST(long long)
+{
+ c += random_op(a, b);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/lbs.c b/test/mppa/instr/individual/lbs.c
new file mode 100644
index 00000000..22a50632
--- /dev/null
+++ b/test/mppa/instr/individual/lbs.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ char s[] = "Tome and Cherry at the playa\n";
+
+ c = s[(a & (sizeof(s)-1))];
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/lbz.c b/test/mppa/instr/individual/lbz.c
new file mode 100644
index 00000000..04ba098d
--- /dev/null
+++ b/test/mppa/instr/individual/lbz.c
@@ -0,0 +1,9 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ unsigned char s[] = "Tim is sorry at the playa\n";
+
+ c = s[a & (sizeof(s) - 1)];
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/muld.c b/test/mppa/instr/individual/muld.c
new file mode 100644
index 00000000..f7e23850
--- /dev/null
+++ b/test/mppa/instr/individual/muld.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = a*b;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/mulw.c b/test/mppa/instr/individual/mulw.c
new file mode 100644
index 00000000..a91d966e
--- /dev/null
+++ b/test/mppa/instr/individual/mulw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = a * b;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/negd.c b/test/mppa/instr/individual/negd.c
new file mode 100644
index 00000000..837b9828
--- /dev/null
+++ b/test/mppa/instr/individual/negd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = -a;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/ord.c b/test/mppa/instr/individual/ord.c
new file mode 100644
index 00000000..cae1ae8b
--- /dev/null
+++ b/test/mppa/instr/individual/ord.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = a | b;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/sbfd.c b/test/mppa/instr/individual/sbfd.c
new file mode 100644
index 00000000..77c28c77
--- /dev/null
+++ b/test/mppa/instr/individual/sbfd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = a-b;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/sbfw.c b/test/mppa/instr/individual/sbfw.c
new file mode 100644
index 00000000..e38a1fff
--- /dev/null
+++ b/test/mppa/instr/individual/sbfw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = a-b;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/simple.c b/test/mppa/instr/individual/simple.c
new file mode 100644
index 00000000..944f09c9
--- /dev/null
+++ b/test/mppa/instr/individual/simple.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = a+b;
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/sllw.c b/test/mppa/instr/individual/sllw.c
new file mode 100644
index 00000000..6dd41a6c
--- /dev/null
+++ b/test/mppa/instr/individual/sllw.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(int)
+{
+ c = a << (b & 0x8);
+}
+END_TEST32()
diff --git a/test/mppa/instr/individual/srad.c b/test/mppa/instr/individual/srad.c
new file mode 100644
index 00000000..00be9d0c
--- /dev/null
+++ b/test/mppa/instr/individual/srad.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = a >> (b & 0x8LL);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/srld.c b/test/mppa/instr/individual/srld.c
new file mode 100644
index 00000000..14970efd
--- /dev/null
+++ b/test/mppa/instr/individual/srld.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = a >> (b & 0x8ULL);
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/tailcall.c b/test/mppa/instr/individual/tailcall.c
new file mode 100644
index 00000000..6c659a01
--- /dev/null
+++ b/test/mppa/instr/individual/tailcall.c
@@ -0,0 +1,16 @@
+#include "framework.h"
+
+int make(int a){
+ return a;
+}
+
+int sum(int a, int b){
+ return make(a+b);
+}
+
+BEGIN_TEST(int)
+{
+ c = sum(a, b);
+}
+END_TEST32()
+/* RETURN VALUE: 60 */
diff --git a/test/mppa/instr/individual/udivd.c b/test/mppa/instr/individual/udivd.c
new file mode 100644
index 00000000..cfb31881
--- /dev/null
+++ b/test/mppa/instr/individual/udivd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = a/b;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/umodd.c b/test/mppa/instr/individual/umodd.c
new file mode 100644
index 00000000..a7f25f1c
--- /dev/null
+++ b/test/mppa/instr/individual/umodd.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(unsigned long long)
+{
+ c = a%b;
+}
+END_TEST64()
diff --git a/test/mppa/instr/individual/xord.c b/test/mppa/instr/individual/xord.c
new file mode 100644
index 00000000..b6a90cb0
--- /dev/null
+++ b/test/mppa/instr/individual/xord.c
@@ -0,0 +1,7 @@
+#include "framework.h"
+
+BEGIN_TEST(long long)
+{
+ c = a^b;
+}
+END_TEST64()