|
From: <sv...@va...> - 2012-07-11 16:59:07
|
sewardj 2012-07-11 17:58:59 +0100 (Wed, 11 Jul 2012)
New Revision: 12733
Log:
Add tests for SMMUL{R}, both ARM and Thumb encodings.
Modified files:
trunk/none/tests/arm/Makefile.am
trunk/none/tests/arm/v6intARM.c
trunk/none/tests/arm/v6intARM.stdout.exp
trunk/none/tests/arm/v6intThumb.c
trunk/none/tests/arm/v6intThumb.stdout.exp
Modified: trunk/none/tests/arm/v6intThumb.stdout.exp (+23 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.stdout.exp 2012-07-11 16:42:25 +01:00 (rev 12732)
+++ trunk/none/tests/arm/v6intThumb.stdout.exp 2012-07-11 17:58:59 +01:00 (rev 12733)
@@ -17450,3 +17450,26 @@
uxtah r0, r1, r2, ROR #16 :: rd 0x3141803f rm 0x31415927, rn 0x27189819, c:v-in 0, cpsr 0xc0000000 NZ
uxtah r0, r1, r2, ROR #8 :: rd 0x314171bf rm 0x31415927, rn 0x27189819, c:v-in 0, cpsr 0xc0000000 NZ
uxtah r0, r1, r2, ROR #0 :: rd 0x3141f140 rm 0x31415927, rn 0x27189819, c:v-in 0, cpsr 0xc0000000 NZ
+------------ SMMUL ------------
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x3fffffff rm 0x7fffffff, rn 0x7fffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x0000ffff, rn 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x048e8c61 rm 0xe444dc25, rn 0xd5eef620, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0xfd764d51 rm 0x06ea9b2a, rn 0xa2108661, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, c:v-in 0, cpsr 0xc0000000 NZ
+smmul r0, r1, r2 :: rd 0xffc528bc rm 0xf91d5f56, rn 0x088bc0f9, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x3fffffff rm 0x7fffffff, rn 0x7fffffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x00000001 rm 0x0000ffff, rn 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x048e8c61 rm 0xe444dc25, rn 0xd5eef620, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0xfd764d52 rm 0x06ea9b2a, rn 0xa2108661, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, c:v-in 0, cpsr 0xc0000000 NZ
+smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, c:v-in 0, cpsr 0xc0000000 NZ
Modified: trunk/none/tests/arm/v6intARM.stdout.exp (+23 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.stdout.exp 2012-07-11 16:42:25 +01:00 (rev 12732)
+++ trunk/none/tests/arm/v6intARM.stdout.exp 2012-07-11 17:58:59 +01:00 (rev 12733)
@@ -799,3 +799,26 @@
nopeq
nopne
------------ NOP (end) ------------
+------------ SMMUL ------------
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0x00000000, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0xffffffff, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x3fffffff rm 0x7fffffff, rn 0x7fffffff, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x00000000 rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x048e8c61 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0xfd764d51 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000
+smmul r0, r1, r2 :: rd 0xffc528bc rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0x00000000, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0xffffffff, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x3fffffff rm 0x7fffffff, rn 0x7fffffff, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x00000001 rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x048e8c61 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0xfd764d52 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000
+smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000
Modified: trunk/none/tests/arm/v6intARM.c (+25 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.c 2012-07-11 16:42:25 +01:00 (rev 12732)
+++ trunk/none/tests/arm/v6intARM.c 2012-07-11 17:58:59 +01:00 (rev 12733)
@@ -914,5 +914,30 @@
__asm__ __volatile__("nopne" ::: "memory","cc");
printf("------------ NOP (end) ------------\n");
+ printf("------------ SMMUL ------------\n");
+ TESTINST3("smmul r0, r1, r2", 0, 0, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+
+ TESTINST3("smmulr r0, r1, r2", 0, 0, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+
return 0;
}
Modified: trunk/none/tests/arm/Makefile.am (+3 -3)
===================================================================
--- trunk/none/tests/arm/Makefile.am 2012-07-11 16:42:25 +01:00 (rev 12732)
+++ trunk/none/tests/arm/Makefile.am 2012-07-11 17:58:59 +01:00 (rev 12733)
@@ -39,14 +39,14 @@
v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
vfp_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
- -mfpu=neon -mfloat-abi=softfp \
+ -mfpu=neon \
-mthumb
neon128_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
- -mfpu=neon -mfloat-abi=softfp \
+ -mfpu=neon \
-mthumb
neon64_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
- -mfpu=neon -mfloat-abi=softfp \
+ -mfpu=neon \
-mthumb
Modified: trunk/none/tests/arm/v6intThumb.c (+25 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.c 2012-07-11 16:42:25 +01:00 (rev 12732)
+++ trunk/none/tests/arm/v6intThumb.c 2012-07-11 17:58:59 +01:00 (rev 12733)
@@ -5869,5 +5869,30 @@
// plus whatever stuff we can throw in from the old ARM test program
old_main();
+ printf("------------ SMMUL ------------\n");
+ TESTINST3("smmul r0, r1, r2", 0, 0, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+ TESTINST3("smmul r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+
+ TESTINST3("smmulr r0, r1, r2", 0, 0, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+ TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+
return 0;
}
|