]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test cases for SSAT16. See #318929.
authorJulian Seward <jseward@acm.org>
Mon, 13 May 2013 10:03:28 +0000 (10:03 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 13 May 2013 10:03:28 +0000 (10:03 +0000)
(Vasily Golubev, w.golubev@mail.ru)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13396

none/tests/arm/v6media.c
none/tests/arm/v6media.stdout.exp

index ad9487959ec15f8471e524cee4866dc68b296247..21490d1be3a150b0c0196f1809ce2d3085fe8da1 100644 (file)
@@ -3066,6 +3066,79 @@ TESTINST2("ssat  r0, #32, r1, ASR #32", 0x3096f12e, r0, r1, 0);
 TESTINST2("ssat  r0, #32, r1, ASR #32", 0xffc134df, r0, r1, 0);
 #endif
 
+  printf("----------------- SSAT16 sat_imm ----------------- \n");
+  TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000000000000000000001, r0, r1, 0);
+  TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000000000000000000000, r0, r1, 0);
+  TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000001111111111111111, r0, r1, 0);
+  TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000001111111111111110, r0, r1, 0);
+  TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000000000000000000100, r0, r1, 0);
+  TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000000000000000000011, r0, r1, 0);
+  TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000001111111111111000, r0, r1, 0);
+  TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000001111111111110111, r0, r1, 0);
+TESTINST2("ssat16  r0, #4,  r1",  0b00000000000001000000000000000000, r0, r1, 0);
+TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000110000000000000000, r0, r1, 0);
+TESTINST2("ssat16  r0, #4,  r1",  0b11111111111110000000000000000000, r0, r1, 0);
+TESTINST2("ssat16  r0, #4,  r1",  0b11111111111101110000000000000000, r0, r1, 0);
+TESTINST2("ssat16  r0, #4,  r1",  0b11111111111101111111111111110111, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1",  0b00000000000000000111111111111111, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0x0123abcd, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0xffcdabcd, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0x0123feff, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0x11110000, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0x1111f111, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0x00001111, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0xebbff82b, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0xebbff82b, r0, r1, 0);
+TESTINST2("ssat16  r0, #3,  r1", 0x50c28082, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0x17962e8f, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0xc57243b7, r0, r1, 0);
+TESTINST2("ssat16  r0, #10, r1", 0xf20fb90f, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0xbb151055, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0x957440d2, r0, r1, 0);
+TESTINST2("ssat16  r0, #14, r1", 0x728b7771, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0xf13c20f3, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0x86398371, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0x03d0fb78, r0, r1, 0);
+TESTINST2("ssat16  r0, #3,  r1", 0xd0d49b7c, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0x76354a58, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0x9fa45fb7, r0, r1, 0);
+TESTINST2("ssat16  r0, #10, r1", 0x7572bdec, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0xfea59eb6, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0xf2669090, r0, r1, 0);
+TESTINST2("ssat16  r0, #14, r1", 0xbc1ff573, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0x7eb226ac, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0x22b65db1, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0x776c41c7, r0, r1, 0);
+TESTINST2("ssat16  r0, #3,  r1", 0xe50dd77c, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0xd6f9a698, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0xeda5110c, r0, r1, 0);
+TESTINST2("ssat16  r0, #10, r1", 0x0be36f70, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0xd759eb72, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
+TESTINST2("ssat16  r0, #14, r1", 0xa29eb320, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0xcf1e4487, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0x2eb68500, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0xcdb7ed11, r0, r1, 0);
+TESTINST2("ssat16  r0, #3,  r1", 0x2eaea305, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0x6ebd04d9, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0xa5ec1aa8, r0, r1, 0);
+TESTINST2("ssat16  r0, #10, r1", 0x72f33509, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0xa3e6f759, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0xfaceab39, r0, r1, 0);
+TESTINST2("ssat16  r0, #14, r1", 0x2738f0ff, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0xe79fd570, r0, r1, 0);
+TESTINST2("ssat16  r0, #16,  r1", 0x55ea3e4e, r0, r1, 0);
+TESTINST2("ssat16  r0, #1,  r1", 0x2b62ba5a, r0, r1, 0);
+TESTINST2("ssat16  r0, #3,  r1", 0x9b41bfb1, r0, r1, 0);
+TESTINST2("ssat16  r0, #5,  r1", 0x557c7ba2, r0, r1, 0);
+TESTINST2("ssat16  r0, #8,  r1", 0x2973c051, r0, r1, 0);
+TESTINST2("ssat16  r0, #10, r1", 0x6a228b19, r0, r1, 0);
+TESTINST2("ssat16  r0, #11, r1", 0x0cdafabe, r0, r1, 0);
+TESTINST2("ssat16  r0, #13, r1", 0x50865114, r0, r1, 0);
+TESTINST2("ssat16  r0, #14, r1", 0xd83b849b, r0, r1, 0);
+TESTINST2("ssat16  r0, #15, r1", 0xca5e5605, r0, r1, 0);
+
   printf("---------------- SADD8 ----------------- \n");
   TESTINST3("sadd8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
   TESTINST3("sadd8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
index a7448b35bbecf02779db5a2e5189427912173962..f51b313ce7793792c1524d62babf344605a5e5a1 100644 (file)
@@ -2446,6 +2446,78 @@ ssat  r0, #31, r1, ASR #1 :: rd 0x07044938 rm 0x0e089270, carryin 0, cpsr 0x0000
 ssat  r0, #31, r1, ASR #1 :: rd 0xcf4700c2 rm 0x9e8e0185, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ssat  r0, #31, r1, ASR #1 :: rd 0x184b7897 rm 0x3096f12e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ssat  r0, #31, r1, ASR #1 :: rd 0xffe09a6f rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- SSAT16 sat_imm ----------------- 
+ssat16  r0, #1,  r1 :: rd 0x00000000 rm 0x00000001, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x0000ffff rm 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x0000ffff rm 0x0000fffe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x00000004 rm 0x00000004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x00000003 rm 0x00000003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x0000fff8 rm 0x0000fff8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x0000fff8 rm 0x0000fff7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x00040000 rm 0x00040000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0x00030000 rm 0x00030000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0xfff80000 rm 0xfff80000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0xfff80000 rm 0xfff70000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #4,  r1 :: rd 0xfff8fff8 rm 0xfff7fff7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0x00003fff rm 0x00007fff, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0x0123abcd rm 0x0123abcd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0xffffffff rm 0xffcdabcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0x000ffff0 rm 0x0123feff, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0x007fff80 rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0x03ff0000 rm 0x11110000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0x0ffff111 rm 0x1111f111, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0x00001111 rm 0x00001111, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0xebbff82b rm 0xebbff82b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0xffffffff rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #3,  r1 :: rd 0x0003fffc rm 0x50c28082, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0x000f000f rm 0x17962e8f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0xff80007f rm 0xc57243b7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #10, r1 :: rd 0xfe00fe00 rm 0xf20fb90f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0xfc0003ff rm 0xbb151055, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0xf0000fff rm 0x957440d2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #14, r1 :: rd 0x1fff1fff rm 0x728b7771, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0xf13c20f3 rm 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0x86398371 rm 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x0000ffff rm 0x03d0fb78, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #3,  r1 :: rd 0xfffcfffc rm 0xd0d49b7c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0x000f000f rm 0x76354a58, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0xff80007f rm 0x9fa45fb7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #10, r1 :: rd 0x01fffe00 rm 0x7572bdec, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0xfea5fc00 rm 0xfea59eb6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0xf266f000 rm 0xf2669090, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #14, r1 :: rd 0xe000f573 rm 0xbc1ff573, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0x3fff26ac rm 0x7eb226ac, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0x22b65db1 rm 0x22b65db1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x00000000 rm 0x776c41c7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #3,  r1 :: rd 0xfffcfffc rm 0xe50dd77c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0xfff0fff0 rm 0xd6f9a698, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0xff80007f rm 0xeda5110c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #10, r1 :: rd 0x01ff01ff rm 0x0be36f70, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0xfc00fc00 rm 0xd759eb72, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0xf000f000 rm 0xd9c4b1f4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #14, r1 :: rd 0xe000e000 rm 0xa29eb320, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0xcf1e3fff rm 0xcf1e4487, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0x2eb68500 rm 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0xffffffff rm 0xcdb7ed11, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #3,  r1 :: rd 0x0003fffc rm 0x2eaea305, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0x000f000f rm 0x6ebd04d9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0xff80007f rm 0xa5ec1aa8, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #10, r1 :: rd 0x01ff01ff rm 0x72f33509, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0xfc00fc00 rm 0xa3e6f759, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0xfacef000 rm 0xfaceab39, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #14, r1 :: rd 0x1ffff0ff rm 0x2738f0ff, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0xe79fd570 rm 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #16,  r1 :: rd 0x55ea3e4e rm 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat16  r0, #1,  r1 :: rd 0x0000ffff rm 0x2b62ba5a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #3,  r1 :: rd 0xfffcfffc rm 0x9b41bfb1, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #5,  r1 :: rd 0x000f000f rm 0x557c7ba2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #8,  r1 :: rd 0x007fff80 rm 0x2973c051, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #10, r1 :: rd 0x01fffe00 rm 0x6a228b19, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #11, r1 :: rd 0x03fffc00 rm 0x0cdafabe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #13, r1 :: rd 0x0fff0fff rm 0x50865114, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #14, r1 :: rd 0xe000e000 rm 0xd83b849b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat16  r0, #15, r1 :: rd 0xca5e3fff rm 0xca5e5605, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
 ---------------- SADD8 ----------------- 
 sadd8 r0, r1, r2 :: rd 0x00dffffc rm 0x00f7ffff, rn 0x00e800fd, carryin 0, cpsr 0x00080000       ge[3:0]=1000
 sadd8 r0, r1, r2 :: rd 0x00dffffc rm 0x00e800fd, rn 0x00f7ffff, carryin 0, cpsr 0x00080000       ge[3:0]=1000