|
From: <sv...@va...> - 2012-11-20 15:25:44
|
sewardj 2012-11-20 15:25:32 +0000 (Tue, 20 Nov 2012)
New Revision: 13132
Log:
Add test cases for definedness propagation through PCMPISTRI $0x3A.
#309921, comment 7. (Patrick J. LoPresti, lop...@gm...)
Added files:
trunk/memcheck/tests/amd64/insn-pcmpistri.c
trunk/memcheck/tests/amd64/insn-pcmpistri.stderr.exp
trunk/memcheck/tests/amd64/insn-pcmpistri.stdout.exp
trunk/memcheck/tests/amd64/insn-pcmpistri.vgtest
Modified files:
trunk/memcheck/tests/amd64/Makefile.am
Added: trunk/memcheck/tests/amd64/insn-pcmpistri.stderr.exp (+319 -0)
===================================================================
--- trunk/memcheck/tests/amd64/insn-pcmpistri.stderr.exp 2012-11-19 22:05:08 +00:00 (rev 13131)
+++ trunk/memcheck/tests/amd64/insn-pcmpistri.stderr.exp 2012-11-20 15:25:32 +00:00 (rev 13132)
@@ -0,0 +1,319 @@
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:79)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:79)
+
+strlen("")=false
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:80)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:80)
+
+strlen("a")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:81)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:81)
+
+strlen("ab")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:82)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:82)
+
+strlen("abc")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:83)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:83)
+
+strlen("abcd")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:84)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:84)
+
+strlen("abcde")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:85)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:85)
+
+strlen("abcdef")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:86)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:86)
+
+strlen("abcdefg")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:88)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:88)
+
+strlen("abcdefgh")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:89)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:89)
+
+strlen("abcdefghi")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:90)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:90)
+
+strlen("abcdefghij")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:91)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:91)
+
+strlen("abcdefghijk")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:92)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:92)
+
+strlen("abcdefghijkl")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:93)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:93)
+
+strlen("abcdefghijklm")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:94)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:94)
+
+strlen("abcdefghijklmn")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:95)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:95)
+
+strlen("abcdefghijklmno")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:97)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:97)
+
+strlen("abcdefghijklmnop")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:98)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:98)
+
+strlen("abcdefghijklmnopq")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:99)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:99)
+
+strlen("abcdefghijklmnopqr")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:100)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:100)
+
+strlen("abcdefghijklmnopqrs")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:101)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:101)
+
+strlen("abcdefghijklmnopqrst")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:102)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:102)
+
+strlen("abcdefghijklmnopqrstu")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:103)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:103)
+
+strlen("abcdefghijklmnopqrstuv")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:104)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:104)
+
+strlen("abcdefghijklmnopqrstuvw")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:105)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:105)
+
+strlen("abcdefghijklmnopqrstuwvx")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:106)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:106)
+
+strlen("abcdefghijklmnopqrstuwvxy")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:107)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:107)
+
+strlen("abcdefghijklmnopqrstuwvxyz")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:109)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:109)
+
+strlen("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")=true
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: aligned_strlen (insn-pcmpistri.c:21)
+ by 0x........: test_strlen (insn-pcmpistri.c:62)
+ by 0x........: doit (insn-pcmpistri.c:74)
+ by 0x........: main (insn-pcmpistri.c:114)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: doit (insn-pcmpistri.c:73)
+ by 0x........: main (insn-pcmpistri.c:114)
+
+strlen("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")=true
Modified: trunk/memcheck/tests/amd64/Makefile.am (+1 -0)
===================================================================
--- trunk/memcheck/tests/amd64/Makefile.am 2012-11-19 22:05:08 +00:00 (rev 13131)
+++ trunk/memcheck/tests/amd64/Makefile.am 2012-11-20 15:25:32 +00:00 (rev 13132)
@@ -25,6 +25,7 @@
bug279698 \
fxsave-amd64 \
insn-bsfl \
+ insn-pcmpistri \
insn-pmovmskb \
more_x87_fp \
sse_memory \
Added: trunk/memcheck/tests/amd64/insn-pcmpistri.stdout.exp (+29 -0)
===================================================================
--- trunk/memcheck/tests/amd64/insn-pcmpistri.stdout.exp 2012-11-19 22:05:08 +00:00 (rev 13131)
+++ trunk/memcheck/tests/amd64/insn-pcmpistri.stdout.exp 2012-11-20 15:25:32 +00:00 (rev 13132)
@@ -0,0 +1,29 @@
+strlen("")=0
+strlen("a")=1
+strlen("ab")=2
+strlen("abc")=3
+strlen("abcd")=4
+strlen("abcde")=5
+strlen("abcdef")=6
+strlen("abcdefg")=7
+strlen("abcdefgh")=8
+strlen("abcdefghi")=9
+strlen("abcdefghij")=10
+strlen("abcdefghijk")=11
+strlen("abcdefghijkl")=12
+strlen("abcdefghijklm")=13
+strlen("abcdefghijklmn")=14
+strlen("abcdefghijklmno")=15
+strlen("abcdefghijklmnop")=16
+strlen("abcdefghijklmnopq")=17
+strlen("abcdefghijklmnopqr")=18
+strlen("abcdefghijklmnopqrs")=19
+strlen("abcdefghijklmnopqrst")=20
+strlen("abcdefghijklmnopqrstu")=21
+strlen("abcdefghijklmnopqrstuv")=22
+strlen("abcdefghijklmnopqrstuvw")=23
+strlen("abcdefghijklmnopqrstuwvx")=24
+strlen("abcdefghijklmnopqrstuwvxy")=25
+strlen("abcdefghijklmnopqrstuwvxyz")=26
+strlen("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")=255
+strlen("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")=256
Added: trunk/memcheck/tests/amd64/insn-pcmpistri.c (+119 -0)
===================================================================
--- trunk/memcheck/tests/amd64/insn-pcmpistri.c 2012-11-19 22:05:08 +00:00 (rev 13131)
+++ trunk/memcheck/tests/amd64/insn-pcmpistri.c 2012-11-20 15:25:32 +00:00 (rev 13132)
@@ -0,0 +1,119 @@
+/* https://bugs.kde.org/show_bug.cgi?id=309921 */
+
+#define _XOPEN_SOURCE 600 /* for posix_memalign() */
+
+#include "../../memcheck.h"
+
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+
+/* Exercise pcmpistri instruction in a realistic way. */
+int aligned_strlen(const char *const s)
+{
+ assert(((unsigned long)s & 0x0F) == 0);
+
+ const char *p = s;
+
+ /* volatile asm and "memory" clobber are needed here, since we
+ access memory in ways we cannot describe to GCC. */
+ __asm__ __volatile__ ("\n1:\n"
+ "\tmovdqa (%0),%%xmm6\n"
+ "\tpcmpistri $0x3a,%%xmm6,%%xmm6\n"
+ "\tjc 2f\n"
+ "\tadd $0x10,%0\n"
+ "\tjmp 1b\n"
+ "2:\n"
+ "\tadd %%rcx,%0\n"
+ : "=p" (p) : "0" (p) : "xmm6", "rcx", "cc", "memory");
+
+ return p-s;
+}
+
+/* Compute strlen(s). Arrange for result to be valid or invalid
+ according to second argument. */
+int test_strlen(const char *const s, int valid)
+{
+ /* len = length of string including trailing null */
+ const size_t len = strlen(s) + 1;
+ const size_t roundup = ((len+15)/16)*16;
+ int result = -1;
+
+ void *space;
+ posix_memalign(&space, 16, roundup);
+ memset(space, 'x', roundup);
+ memcpy(space, s, len);
+
+ const char *const s_copy = space;
+ const unsigned char ff = 0xFF;
+ if (valid) {
+ /* Mark all bytes beyond the null as invalid. */
+ size_t i;
+ for (i=len ; i < roundup ; ++i)
+ VALGRIND_SET_VBITS(&s_copy[i], &ff, 1);
+ }
+ else {
+ /* Mark the null byte itself as invalid. */
+ assert(len > 0);
+ VALGRIND_SET_VBITS(&s_copy[len-1], &ff, 1);
+ }
+
+ result = aligned_strlen(s_copy);
+
+ free(space);
+
+ return result;
+}
+
+void doit(const char *const s)
+{
+ printf("strlen(\"%s\")=%d\n", s, test_strlen(s, 1));
+
+ fprintf(stderr, "strlen(\"%s\")=%s\n", s,
+ test_strlen(s, 0) ? "true" : "false");
+}
+
+int main(int argc, char *argv[])
+{
+ doit("");
+ doit("a");
+ doit("ab");
+ doit("abc");
+ doit("abcd");
+ doit("abcde");
+ doit("abcdef");
+ doit("abcdefg");
+ /* 8 */
+ doit("abcdefgh");
+ doit("abcdefghi");
+ doit("abcdefghij");
+ doit("abcdefghijk");
+ doit("abcdefghijkl");
+ doit("abcdefghijklm");
+ doit("abcdefghijklmn");
+ doit("abcdefghijklmno");
+ /* 16 */
+ doit("abcdefghijklmnop");
+ doit("abcdefghijklmnopq");
+ doit("abcdefghijklmnopqr");
+ doit("abcdefghijklmnopqrs");
+ doit("abcdefghijklmnopqrst");
+ doit("abcdefghijklmnopqrstu");
+ doit("abcdefghijklmnopqrstuv");
+ doit("abcdefghijklmnopqrstuvw");
+ doit("abcdefghijklmnopqrstuwvx");
+ doit("abcdefghijklmnopqrstuwvxy");
+ doit("abcdefghijklmnopqrstuwvxyz");
+ /* 255 */
+ doit("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+ /* 256 */
+ doit("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+ return 0;
+}
Added: trunk/memcheck/tests/amd64/insn-pcmpistri.vgtest (+2 -0)
===================================================================
--- trunk/memcheck/tests/amd64/insn-pcmpistri.vgtest 2012-11-19 22:05:08 +00:00 (rev 13131)
+++ trunk/memcheck/tests/amd64/insn-pcmpistri.vgtest 2012-11-20 15:25:32 +00:00 (rev 13132)
@@ -0,0 +1,2 @@
+prog: insn-pcmpistri
+vgopts: -q
|