mirror of
https://github.com/ioacademy-jikim/debugging
synced 2026-08-30 01:09:34 +00:00
first commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,63 @@
|
||||
|
||||
include $(top_srcdir)/Makefile.tool-tests.am
|
||||
|
||||
dist_noinst_SCRIPTS = filter_stderr filter_pushfpopf filter_tronical
|
||||
|
||||
INSN_TESTS = insn_basic insn_fpu insn_cmov insn_mmx insn_mmxext insn_sse insn_sse2
|
||||
|
||||
EXTRA_DIST = \
|
||||
bug152022.vgtest bug152022.stderr.exp bug152022.stdout.exp \
|
||||
espindola2.vgtest espindola2.stderr.exp \
|
||||
fpeflags.stderr.exp fpeflags.vgtest \
|
||||
fxsave.vgtest fxsave.stdout.exp fxsave.stderr.exp \
|
||||
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
|
||||
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
|
||||
$(addsuffix .vgtest,$(INSN_TESTS)) \
|
||||
pushfpopf.stderr.exp pushfpopf.stdout.exp pushfpopf.vgtest \
|
||||
pushfw_x86.vgtest pushfw_x86.stdout.exp pushfw_x86.stderr.exp \
|
||||
pushpopmem.stderr.exp pushpopmem.stdout.exp pushpopmem.vgtest \
|
||||
sh-mem-vec128-plo-no.vgtest \
|
||||
sh-mem-vec128-plo-no.stderr.exp \
|
||||
sh-mem-vec128-plo-no.stdout.exp \
|
||||
sh-mem-vec128-plo-yes.vgtest \
|
||||
sh-mem-vec128-plo-yes.stderr.exp \
|
||||
sh-mem-vec128-plo-yes.stdout.exp \
|
||||
sse1_memory.stderr.exp sse1_memory.stdout.exp sse1_memory.vgtest \
|
||||
sse2_memory.stderr.exp sse2_memory.stdout.exp sse2_memory.vgtest \
|
||||
tronical.stderr.exp tronical.vgtest \
|
||||
more_x86_fp.stderr.exp more_x86_fp.stdout.exp more_x86_fp.vgtest \
|
||||
fprem.stderr.exp fprem.stdout.exp fprem.vgtest \
|
||||
xor-undef-x86.stderr.exp xor-undef-x86.stdout.exp \
|
||||
xor-undef-x86.vgtest
|
||||
|
||||
check_PROGRAMS = \
|
||||
bug152022 \
|
||||
espindola2 \
|
||||
fpeflags \
|
||||
fprem \
|
||||
fxsave \
|
||||
more_x86_fp \
|
||||
pushfpopf \
|
||||
pushfw_x86 \
|
||||
pushpopmem \
|
||||
sh-mem-vec128 \
|
||||
sse_memory \
|
||||
tronical \
|
||||
xor-undef-x86
|
||||
|
||||
AM_CFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
|
||||
AM_CXXFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
|
||||
AM_CCASFLAGS += @FLAG_M32@
|
||||
|
||||
|
||||
# fpeflags must use these flags -- bug only occurred with them.
|
||||
fpeflags_CFLAGS = $(AM_CFLAGS) -march=i686
|
||||
pushfpopf_SOURCES = pushfpopf_c.c pushfpopf_s.S
|
||||
if VGCONF_OS_IS_DARWIN
|
||||
pushpopmem_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic
|
||||
else
|
||||
pushpopmem_CFLAGS = $(AM_CFLAGS)
|
||||
endif
|
||||
tronical_SOURCES = tronical.S
|
||||
|
||||
more_x86_fp_LDADD = -lm
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
|
||||
/* As discussed on valgrind-users in the thread
|
||||
http://comments.gmane.org/gmane.comp.debugging.valgrind/7535
|
||||
valgrinding Wine running a large win32 app (Picasa) fails with the message
|
||||
|
||||
vex: priv/host-x86/isel.c:510 (doHelperCall): Assertion
|
||||
`typeOfIRExpr(env->type_env, args[i]) == Ity_I32' failed.
|
||||
|
||||
See http://bugs.kde.org/show_bug.cgi?id=152022
|
||||
|
||||
This little fragment used to cause Memcheck to assert, so if the
|
||||
program runs to completion without dying, the test is passed.
|
||||
*/
|
||||
|
||||
|
||||
int main ( void ) {
|
||||
__asm__ __volatile__( "subw $0x28, %%sp\n"
|
||||
"movl $0, 0(%%esp)\n"
|
||||
"addw $0x28, %%sp" : : : "memory" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
prog: bug152022
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
/* This should run without comment, but 3.2.1 (and presumably earlier)
|
||||
give a false uninit-value warning. This was fixed by vex r1675
|
||||
which is a spec rule for COPY-CondP. */
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
int* x = malloc(4);
|
||||
assert(x);
|
||||
__asm__ __volatile__(
|
||||
"finit\n\t"
|
||||
"ffree %%st(0)\n\t"
|
||||
"ffree %%st(1)\n\t"
|
||||
"ffree %%st(2)\n\t"
|
||||
"ffree %%st(3)\n\t"
|
||||
"ffree %%st(4)\n\t"
|
||||
"ffree %%st(5)\n\t"
|
||||
"ffree %%st(6)\n\t"
|
||||
"ffree %%st(7)\n\t"
|
||||
"andb $128, (%0)\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fucompp\n\t"
|
||||
"fnstsw %%ax\n\t"
|
||||
"sahf\n\t"
|
||||
"jp .Lfoobar\n"
|
||||
".Lfoobar:\n\t"
|
||||
"nop"
|
||||
: : "r"(x) : "eax", "cc"
|
||||
);
|
||||
free(x);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
prog: espindola2
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
./filter_stderr "$@" |
|
||||
sed "s/: fooble ([^)]*)/: fooble (...)/"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
|
||||
../filter_stderr "$@"
|
||||
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
./filter_stderr "$@" | \
|
||||
sed "s/: get ([^)]*)/: get (...)/" |
|
||||
sed "s/: main ([^)]*)/: main (...)/"
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
struct instance
|
||||
{
|
||||
unsigned myVal:1;
|
||||
};
|
||||
|
||||
static struct instance* myInstance;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
float g = 1.0f;
|
||||
|
||||
myInstance = malloc(sizeof(struct instance));
|
||||
|
||||
myInstance->myVal = 1;
|
||||
|
||||
if (g == 1.0f)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
vgopts: -q
|
||||
prog: fpeflags
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
/* Marginally test fprem/fprem1/fsincos; these are hard to check
|
||||
otherwise since compilers hardly ever generate them. */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
double do_fprem ( void )
|
||||
{
|
||||
double res = 0.0;
|
||||
__asm__ __volatile__(
|
||||
"ffree %%st(0)\n\t"
|
||||
"ffree %%st(1)\n\t"
|
||||
"fldpi\n\t"
|
||||
"fldln2\n\t"
|
||||
"fprem\n\t"
|
||||
"fstpl 0(%0)"
|
||||
: : "r"(&res)
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
double do_fprem1 ( void )
|
||||
{
|
||||
double res = 0.0;
|
||||
__asm__ __volatile__(
|
||||
"ffree %%st(0)\n\t"
|
||||
"ffree %%st(1)\n\t"
|
||||
"fldpi\n\t"
|
||||
"fldln2\n\t"
|
||||
"fprem1\n\t"
|
||||
"fstpl 0(%0)"
|
||||
: : "r"(&res)
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
double do_fsincos ( void )
|
||||
{
|
||||
double res = 0.0;
|
||||
__asm__ __volatile__(
|
||||
"fldln2\n\t"
|
||||
"fsincos\n\t"
|
||||
"fsub %%st(1)\n\t"
|
||||
"fstpl 0(%0)"
|
||||
: : "r"(&res)
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
__asm__ __volatile__("finit");
|
||||
printf("fprem %f\n", do_fprem());
|
||||
printf("fprem1 %f\n", do_fprem1());
|
||||
printf("fsincos %f\n", do_fsincos());
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fprem 0.693147
|
||||
fprem1 0.693147
|
||||
fsincos 0.130278
|
||||
@@ -0,0 +1,2 @@
|
||||
vgopts: -q
|
||||
prog: fprem
|
||||
@@ -0,0 +1,137 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "tests/asm.h"
|
||||
#include "tests/malloc.h"
|
||||
#include <string.h>
|
||||
|
||||
const unsigned int vec0[4]
|
||||
= { 0x12345678, 0x11223344, 0x55667788, 0x87654321 };
|
||||
|
||||
const unsigned int vec1[4]
|
||||
= { 0xABCDEF01, 0xAABBCCDD, 0xEEFF0011, 0x10FEDCBA };
|
||||
|
||||
const unsigned int vecZ[4]
|
||||
= { 0, 0, 0, 0 };
|
||||
|
||||
void do_fxsave ( void* p ) {
|
||||
asm __volatile__("fxsave (%0)" : : "r" (p) : "memory" );
|
||||
}
|
||||
|
||||
void do_fxrstor ( void* p ) {
|
||||
asm __volatile__("fxrstor (%0)" : : "r" (p) : "memory" );
|
||||
}
|
||||
|
||||
void do_zeroise ( void )
|
||||
{
|
||||
asm __volatile__("finit");
|
||||
asm __volatile__(
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"fldz\n\t"
|
||||
"finit\n");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm0");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm1");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm2");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm3");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm4");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm5");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm6");
|
||||
asm __volatile__("movups " VG_SYM(vecZ) ", %xmm7");
|
||||
asm __volatile__(
|
||||
"pushl $0\n\t"
|
||||
"ldmxcsr 0(%esp)\n\t"
|
||||
"addl $4,%esp\n");
|
||||
}
|
||||
|
||||
/* set up the FP and SSE state, and then dump it. */
|
||||
void do_setup_then_fxsave ( void* p )
|
||||
{
|
||||
asm __volatile__("finit");
|
||||
asm __volatile__("fldpi");
|
||||
asm __volatile__("fld1");
|
||||
asm __volatile__("fldln2");
|
||||
asm __volatile__("fldlg2");
|
||||
asm __volatile__("fld %st(3)");
|
||||
asm __volatile__("fld %st(3)");
|
||||
asm __volatile__("movups " VG_SYM(vec0) ", %xmm0");
|
||||
asm __volatile__("movups " VG_SYM(vec1) ", %xmm1");
|
||||
asm __volatile__("xorps %xmm2, %xmm2");
|
||||
asm __volatile__("movaps %xmm2, %xmm3");
|
||||
asm __volatile__("movaps %xmm2, %xmm4");
|
||||
asm __volatile__("movaps %xmm2, %xmm5");
|
||||
asm __volatile__("movaps %xmm2, %xmm6");
|
||||
asm __volatile__("movaps %xmm1, %xmm7");
|
||||
asm __volatile__("xorps %xmm0, %xmm7");
|
||||
do_fxsave (p);
|
||||
}
|
||||
|
||||
int isFPLsbs ( int i )
|
||||
{
|
||||
int q;
|
||||
q = 32; if (i == q || i == q+1) return 1;
|
||||
q = 48; if (i == q || i == q+1) return 1;
|
||||
q = 64; if (i == q || i == q+1) return 1;
|
||||
q = 80; if (i == q || i == q+1) return 1;
|
||||
q = 96; if (i == q || i == q+1) return 1;
|
||||
q = 112; if (i == q || i == q+1) return 1;
|
||||
q = 128; if (i == q || i == q+1) return 1;
|
||||
q = 144; if (i == q || i == q+1) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void show ( unsigned char* buf, int xx )
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 512; i++) {
|
||||
if ((i % 16) == 0)
|
||||
printf("%3d ", i);
|
||||
if (xx && isFPLsbs(i))
|
||||
printf("xx ");
|
||||
else
|
||||
printf("%02x ", buf[i]);
|
||||
if (i > 0 && ((i % 16) == 15))
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main ( int argc, char** argv )
|
||||
{
|
||||
unsigned char* buf1 = memalign16(512);
|
||||
unsigned char* buf2 = memalign16(512);
|
||||
unsigned char* buf3 = memalign16(512);
|
||||
int xx = argc > 1;
|
||||
printf("Re-run with any arg to suppress least-significant\n"
|
||||
" 16 bits of FP numbers\n");
|
||||
memset(buf1, 0x55, 512);
|
||||
memset(buf2, 0x55, 512);
|
||||
memset(buf3, 0x55, 512);
|
||||
|
||||
/* Load up x87/xmm state and dump it. */
|
||||
do_setup_then_fxsave(buf1);
|
||||
printf("\nBEFORE\n");
|
||||
show(buf1, xx);
|
||||
|
||||
/* Zeroise x87/xmm state and dump it, to show that the
|
||||
regs have been cleared out. */
|
||||
do_zeroise();
|
||||
do_fxsave(buf2);
|
||||
printf("\nZEROED\n");
|
||||
show(buf2, xx);
|
||||
|
||||
/* Reload x87/xmm state from buf1 and dump it in buf3. */
|
||||
do_fxrstor(buf1);
|
||||
do_fxsave(buf3);
|
||||
printf("\nRESTORED\n");
|
||||
show(buf3, xx);
|
||||
|
||||
free(buf1); free(buf2); free(buf3);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
Re-run with any arg to suppress least-significant
|
||||
16 bits of FP numbers
|
||||
|
||||
BEFORE
|
||||
0 7f 03 00 10 fc 00 00 00 00 00 00 00 00 00 00 00
|
||||
16 00 00 00 00 00 00 00 00 80 1f 00 00 ff ff ff ff
|
||||
32 xx xx 00 00 00 00 00 80 ff 3f 00 00 00 00 00 00
|
||||
48 xx xx 68 21 a2 da 0f c9 00 40 00 00 00 00 00 00
|
||||
64 xx xx cf fb 84 9a 20 9a fd 3f 00 00 00 00 00 00
|
||||
80 xx xx cf d1 f7 17 72 b1 fe 3f 00 00 00 00 00 00
|
||||
96 xx xx 00 00 00 00 00 80 ff 3f 00 00 00 00 00 00
|
||||
112 xx xx 68 21 a2 da 0f c9 00 40 00 00 00 00 00 00
|
||||
128 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
144 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
160 78 56 34 12 44 33 22 11 88 77 66 55 21 43 65 87
|
||||
176 01 ef cd ab dd cc bb aa 11 00 ff ee ba dc fe 10
|
||||
192 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
208 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
224 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
256 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
272 79 b9 f9 b9 99 ff 99 bb 99 77 99 bb 9b 9f 9b 97
|
||||
288 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
304 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
320 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
336 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
352 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
368 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
384 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
400 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
416 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
432 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
448 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
464 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
480 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
496 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
|
||||
ZEROED
|
||||
0 7f 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
16 00 00 00 00 00 00 00 00 80 1f 00 00 ff ff ff ff
|
||||
32 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
48 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
64 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
80 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
96 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
112 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
128 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
144 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
176 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
192 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
208 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
224 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
256 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
272 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
288 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
304 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
320 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
336 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
352 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
368 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
384 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
400 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
416 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
432 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
448 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
464 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
480 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
496 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
|
||||
RESTORED
|
||||
0 7f 03 00 10 fc 00 00 00 00 00 00 00 00 00 00 00
|
||||
16 00 00 00 00 00 00 00 00 80 1f 00 00 ff ff ff ff
|
||||
32 xx xx 00 00 00 00 00 80 ff 3f 00 00 00 00 00 00
|
||||
48 xx xx 68 21 a2 da 0f c9 00 40 00 00 00 00 00 00
|
||||
64 xx xx cf fb 84 9a 20 9a fd 3f 00 00 00 00 00 00
|
||||
80 xx xx cf d1 f7 17 72 b1 fe 3f 00 00 00 00 00 00
|
||||
96 xx xx 00 00 00 00 00 80 ff 3f 00 00 00 00 00 00
|
||||
112 xx xx 68 21 a2 da 0f c9 00 40 00 00 00 00 00 00
|
||||
128 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
144 xx xx 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
160 78 56 34 12 44 33 22 11 88 77 66 55 21 43 65 87
|
||||
176 01 ef cd ab dd cc bb aa 11 00 ff ee ba dc fe 10
|
||||
192 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
208 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
224 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
256 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
272 79 b9 f9 b9 99 ff 99 bb 99 77 99 bb 9b 9f 9b 97
|
||||
288 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
304 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
320 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
336 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
352 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
368 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
384 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
400 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
416 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
432 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
448 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
464 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
480 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
496 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: fxsave
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse && ! ../../../tests/os_test darwin
|
||||
vgopts: -q
|
||||
args: x
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
prog: ../../../none/tests/x86/insn_basic
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,384 @@
|
||||
cmova_1 ... ok
|
||||
cmova_2 ... ok
|
||||
cmova_3 ... ok
|
||||
cmova_4 ... ok
|
||||
cmova_5 ... ok
|
||||
cmova_6 ... ok
|
||||
cmova_7 ... ok
|
||||
cmova_8 ... ok
|
||||
cmovae_1 ... ok
|
||||
cmovae_2 ... ok
|
||||
cmovae_3 ... ok
|
||||
cmovae_4 ... ok
|
||||
cmovb_1 ... ok
|
||||
cmovb_2 ... ok
|
||||
cmovb_3 ... ok
|
||||
cmovb_4 ... ok
|
||||
cmovbe_1 ... ok
|
||||
cmovbe_2 ... ok
|
||||
cmovbe_3 ... ok
|
||||
cmovbe_4 ... ok
|
||||
cmovbe_5 ... ok
|
||||
cmovbe_6 ... ok
|
||||
cmovbe_7 ... ok
|
||||
cmovbe_8 ... ok
|
||||
cmovc_1 ... ok
|
||||
cmovc_2 ... ok
|
||||
cmovc_3 ... ok
|
||||
cmovc_4 ... ok
|
||||
cmove_1 ... ok
|
||||
cmove_2 ... ok
|
||||
cmove_3 ... ok
|
||||
cmove_4 ... ok
|
||||
cmovg_1 ... ok
|
||||
cmovg_2 ... ok
|
||||
cmovg_3 ... ok
|
||||
cmovg_4 ... ok
|
||||
cmovg_5 ... ok
|
||||
cmovg_6 ... ok
|
||||
cmovg_7 ... ok
|
||||
cmovg_8 ... ok
|
||||
cmovg_9 ... ok
|
||||
cmovg_10 ... ok
|
||||
cmovg_11 ... ok
|
||||
cmovg_12 ... ok
|
||||
cmovg_13 ... ok
|
||||
cmovg_14 ... ok
|
||||
cmovg_15 ... ok
|
||||
cmovg_16 ... ok
|
||||
cmovge_1 ... ok
|
||||
cmovge_2 ... ok
|
||||
cmovge_3 ... ok
|
||||
cmovge_4 ... ok
|
||||
cmovge_5 ... ok
|
||||
cmovge_6 ... ok
|
||||
cmovge_7 ... ok
|
||||
cmovge_8 ... ok
|
||||
cmovl_1 ... ok
|
||||
cmovl_2 ... ok
|
||||
cmovl_3 ... ok
|
||||
cmovl_4 ... ok
|
||||
cmovl_5 ... ok
|
||||
cmovl_6 ... ok
|
||||
cmovl_7 ... ok
|
||||
cmovl_8 ... ok
|
||||
cmovle_1 ... ok
|
||||
cmovle_2 ... ok
|
||||
cmovle_3 ... ok
|
||||
cmovle_4 ... ok
|
||||
cmovle_5 ... ok
|
||||
cmovle_6 ... ok
|
||||
cmovle_7 ... ok
|
||||
cmovle_8 ... ok
|
||||
cmovle_9 ... ok
|
||||
cmovle_10 ... ok
|
||||
cmovle_11 ... ok
|
||||
cmovle_12 ... ok
|
||||
cmovle_13 ... ok
|
||||
cmovle_14 ... ok
|
||||
cmovle_15 ... ok
|
||||
cmovle_16 ... ok
|
||||
cmovna_1 ... ok
|
||||
cmovna_2 ... ok
|
||||
cmovna_3 ... ok
|
||||
cmovna_4 ... ok
|
||||
cmovna_5 ... ok
|
||||
cmovna_6 ... ok
|
||||
cmovna_7 ... ok
|
||||
cmovna_8 ... ok
|
||||
cmovnae_1 ... ok
|
||||
cmovnae_2 ... ok
|
||||
cmovnae_3 ... ok
|
||||
cmovnae_4 ... ok
|
||||
cmovnb_1 ... ok
|
||||
cmovnb_2 ... ok
|
||||
cmovnb_3 ... ok
|
||||
cmovnb_4 ... ok
|
||||
cmovnbe_1 ... ok
|
||||
cmovnbe_2 ... ok
|
||||
cmovnbe_3 ... ok
|
||||
cmovnbe_4 ... ok
|
||||
cmovnbe_5 ... ok
|
||||
cmovnbe_6 ... ok
|
||||
cmovnbe_7 ... ok
|
||||
cmovnbe_8 ... ok
|
||||
cmovnc_1 ... ok
|
||||
cmovnc_2 ... ok
|
||||
cmovnc_3 ... ok
|
||||
cmovnc_4 ... ok
|
||||
cmovne_1 ... ok
|
||||
cmovne_2 ... ok
|
||||
cmovne_3 ... ok
|
||||
cmovne_4 ... ok
|
||||
cmovng_1 ... ok
|
||||
cmovng_2 ... ok
|
||||
cmovng_3 ... ok
|
||||
cmovng_4 ... ok
|
||||
cmovng_5 ... ok
|
||||
cmovng_6 ... ok
|
||||
cmovng_7 ... ok
|
||||
cmovng_8 ... ok
|
||||
cmovng_9 ... ok
|
||||
cmovng_10 ... ok
|
||||
cmovng_11 ... ok
|
||||
cmovng_12 ... ok
|
||||
cmovng_13 ... ok
|
||||
cmovng_14 ... ok
|
||||
cmovng_15 ... ok
|
||||
cmovng_16 ... ok
|
||||
cmovnge_1 ... ok
|
||||
cmovnge_2 ... ok
|
||||
cmovnge_3 ... ok
|
||||
cmovnge_4 ... ok
|
||||
cmovnge_5 ... ok
|
||||
cmovnge_6 ... ok
|
||||
cmovnge_7 ... ok
|
||||
cmovnge_8 ... ok
|
||||
cmovnl_1 ... ok
|
||||
cmovnl_2 ... ok
|
||||
cmovnl_3 ... ok
|
||||
cmovnl_4 ... ok
|
||||
cmovnl_5 ... ok
|
||||
cmovnl_6 ... ok
|
||||
cmovnl_7 ... ok
|
||||
cmovnl_8 ... ok
|
||||
cmovnle_1 ... ok
|
||||
cmovnle_2 ... ok
|
||||
cmovnle_3 ... ok
|
||||
cmovnle_4 ... ok
|
||||
cmovnle_5 ... ok
|
||||
cmovnle_6 ... ok
|
||||
cmovnle_7 ... ok
|
||||
cmovnle_8 ... ok
|
||||
cmovnle_9 ... ok
|
||||
cmovnle_10 ... ok
|
||||
cmovnle_11 ... ok
|
||||
cmovnle_12 ... ok
|
||||
cmovnle_13 ... ok
|
||||
cmovnle_14 ... ok
|
||||
cmovnle_15 ... ok
|
||||
cmovnle_16 ... ok
|
||||
cmovno_1 ... ok
|
||||
cmovno_2 ... ok
|
||||
cmovno_3 ... ok
|
||||
cmovno_4 ... ok
|
||||
cmovnp_1 ... ok
|
||||
cmovnp_2 ... ok
|
||||
cmovnp_3 ... ok
|
||||
cmovnp_4 ... ok
|
||||
cmovns_1 ... ok
|
||||
cmovns_2 ... ok
|
||||
cmovns_3 ... ok
|
||||
cmovns_4 ... ok
|
||||
cmovnz_1 ... ok
|
||||
cmovnz_2 ... ok
|
||||
cmovnz_3 ... ok
|
||||
cmovnz_4 ... ok
|
||||
cmovo_1 ... ok
|
||||
cmovo_2 ... ok
|
||||
cmovo_3 ... ok
|
||||
cmovo_4 ... ok
|
||||
cmovp_1 ... ok
|
||||
cmovp_2 ... ok
|
||||
cmovp_3 ... ok
|
||||
cmovp_4 ... ok
|
||||
cmovs_1 ... ok
|
||||
cmovs_2 ... ok
|
||||
cmovs_3 ... ok
|
||||
cmovs_4 ... ok
|
||||
cmovz_1 ... ok
|
||||
cmovz_2 ... ok
|
||||
cmovz_3 ... ok
|
||||
cmovz_4 ... ok
|
||||
cmova_9 ... ok
|
||||
cmova_10 ... ok
|
||||
cmova_11 ... ok
|
||||
cmova_12 ... ok
|
||||
cmova_13 ... ok
|
||||
cmova_14 ... ok
|
||||
cmova_15 ... ok
|
||||
cmova_16 ... ok
|
||||
cmovae_5 ... ok
|
||||
cmovae_6 ... ok
|
||||
cmovae_7 ... ok
|
||||
cmovae_8 ... ok
|
||||
cmovb_5 ... ok
|
||||
cmovb_6 ... ok
|
||||
cmovb_7 ... ok
|
||||
cmovb_8 ... ok
|
||||
cmovbe_9 ... ok
|
||||
cmovbe_10 ... ok
|
||||
cmovbe_11 ... ok
|
||||
cmovbe_12 ... ok
|
||||
cmovbe_13 ... ok
|
||||
cmovbe_14 ... ok
|
||||
cmovbe_15 ... ok
|
||||
cmovbe_16 ... ok
|
||||
cmovc_5 ... ok
|
||||
cmovc_6 ... ok
|
||||
cmovc_7 ... ok
|
||||
cmovc_8 ... ok
|
||||
cmove_5 ... ok
|
||||
cmove_6 ... ok
|
||||
cmove_7 ... ok
|
||||
cmove_8 ... ok
|
||||
cmovg_17 ... ok
|
||||
cmovg_18 ... ok
|
||||
cmovg_19 ... ok
|
||||
cmovg_20 ... ok
|
||||
cmovg_21 ... ok
|
||||
cmovg_22 ... ok
|
||||
cmovg_23 ... ok
|
||||
cmovg_24 ... ok
|
||||
cmovg_25 ... ok
|
||||
cmovg_26 ... ok
|
||||
cmovg_27 ... ok
|
||||
cmovg_28 ... ok
|
||||
cmovg_29 ... ok
|
||||
cmovg_30 ... ok
|
||||
cmovg_31 ... ok
|
||||
cmovg_32 ... ok
|
||||
cmovge_9 ... ok
|
||||
cmovge_10 ... ok
|
||||
cmovge_11 ... ok
|
||||
cmovge_12 ... ok
|
||||
cmovge_13 ... ok
|
||||
cmovge_14 ... ok
|
||||
cmovge_15 ... ok
|
||||
cmovge_16 ... ok
|
||||
cmovl_9 ... ok
|
||||
cmovl_10 ... ok
|
||||
cmovl_11 ... ok
|
||||
cmovl_12 ... ok
|
||||
cmovl_13 ... ok
|
||||
cmovl_14 ... ok
|
||||
cmovl_15 ... ok
|
||||
cmovl_16 ... ok
|
||||
cmovle_17 ... ok
|
||||
cmovle_18 ... ok
|
||||
cmovle_19 ... ok
|
||||
cmovle_20 ... ok
|
||||
cmovle_21 ... ok
|
||||
cmovle_22 ... ok
|
||||
cmovle_23 ... ok
|
||||
cmovle_24 ... ok
|
||||
cmovle_25 ... ok
|
||||
cmovle_26 ... ok
|
||||
cmovle_27 ... ok
|
||||
cmovle_28 ... ok
|
||||
cmovle_29 ... ok
|
||||
cmovle_30 ... ok
|
||||
cmovle_31 ... ok
|
||||
cmovle_32 ... ok
|
||||
cmovna_9 ... ok
|
||||
cmovna_10 ... ok
|
||||
cmovna_11 ... ok
|
||||
cmovna_12 ... ok
|
||||
cmovna_13 ... ok
|
||||
cmovna_14 ... ok
|
||||
cmovna_15 ... ok
|
||||
cmovna_16 ... ok
|
||||
cmovnae_5 ... ok
|
||||
cmovnae_6 ... ok
|
||||
cmovnae_7 ... ok
|
||||
cmovnae_8 ... ok
|
||||
cmovnb_5 ... ok
|
||||
cmovnb_6 ... ok
|
||||
cmovnb_7 ... ok
|
||||
cmovnb_8 ... ok
|
||||
cmovnbe_9 ... ok
|
||||
cmovnbe_10 ... ok
|
||||
cmovnbe_11 ... ok
|
||||
cmovnbe_12 ... ok
|
||||
cmovnbe_13 ... ok
|
||||
cmovnbe_14 ... ok
|
||||
cmovnbe_15 ... ok
|
||||
cmovnbe_16 ... ok
|
||||
cmovnc_5 ... ok
|
||||
cmovnc_6 ... ok
|
||||
cmovnc_7 ... ok
|
||||
cmovnc_8 ... ok
|
||||
cmovne_5 ... ok
|
||||
cmovne_6 ... ok
|
||||
cmovne_7 ... ok
|
||||
cmovne_8 ... ok
|
||||
cmovng_17 ... ok
|
||||
cmovng_18 ... ok
|
||||
cmovng_19 ... ok
|
||||
cmovng_20 ... ok
|
||||
cmovng_21 ... ok
|
||||
cmovng_22 ... ok
|
||||
cmovng_23 ... ok
|
||||
cmovng_24 ... ok
|
||||
cmovng_25 ... ok
|
||||
cmovng_26 ... ok
|
||||
cmovng_27 ... ok
|
||||
cmovng_28 ... ok
|
||||
cmovng_29 ... ok
|
||||
cmovng_30 ... ok
|
||||
cmovng_31 ... ok
|
||||
cmovng_32 ... ok
|
||||
cmovnge_9 ... ok
|
||||
cmovnge_10 ... ok
|
||||
cmovnge_11 ... ok
|
||||
cmovnge_12 ... ok
|
||||
cmovnge_13 ... ok
|
||||
cmovnge_14 ... ok
|
||||
cmovnge_15 ... ok
|
||||
cmovnge_16 ... ok
|
||||
cmovnl_9 ... ok
|
||||
cmovnl_10 ... ok
|
||||
cmovnl_11 ... ok
|
||||
cmovnl_12 ... ok
|
||||
cmovnl_13 ... ok
|
||||
cmovnl_14 ... ok
|
||||
cmovnl_15 ... ok
|
||||
cmovnl_16 ... ok
|
||||
cmovnle_17 ... ok
|
||||
cmovnle_18 ... ok
|
||||
cmovnle_19 ... ok
|
||||
cmovnle_20 ... ok
|
||||
cmovnle_21 ... ok
|
||||
cmovnle_22 ... ok
|
||||
cmovnle_23 ... ok
|
||||
cmovnle_24 ... ok
|
||||
cmovnle_25 ... ok
|
||||
cmovnle_26 ... ok
|
||||
cmovnle_27 ... ok
|
||||
cmovnle_28 ... ok
|
||||
cmovnle_29 ... ok
|
||||
cmovnle_30 ... ok
|
||||
cmovnle_31 ... ok
|
||||
cmovnle_32 ... ok
|
||||
cmovno_5 ... ok
|
||||
cmovno_6 ... ok
|
||||
cmovno_7 ... ok
|
||||
cmovno_8 ... ok
|
||||
cmovnp_5 ... ok
|
||||
cmovnp_6 ... ok
|
||||
cmovnp_7 ... ok
|
||||
cmovnp_8 ... ok
|
||||
cmovns_5 ... ok
|
||||
cmovns_6 ... ok
|
||||
cmovns_7 ... ok
|
||||
cmovns_8 ... ok
|
||||
cmovnz_5 ... ok
|
||||
cmovnz_6 ... ok
|
||||
cmovnz_7 ... ok
|
||||
cmovnz_8 ... ok
|
||||
cmovo_5 ... ok
|
||||
cmovo_6 ... ok
|
||||
cmovo_7 ... ok
|
||||
cmovo_8 ... ok
|
||||
cmovp_5 ... ok
|
||||
cmovp_6 ... ok
|
||||
cmovp_7 ... ok
|
||||
cmovp_8 ... ok
|
||||
cmovs_5 ... ok
|
||||
cmovs_6 ... ok
|
||||
cmovs_7 ... ok
|
||||
cmovs_8 ... ok
|
||||
cmovz_5 ... ok
|
||||
cmovz_6 ... ok
|
||||
cmovz_7 ... ok
|
||||
cmovz_8 ... ok
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: ../../../none/tests/x86/insn_cmov
|
||||
prereq: ../../../tests/x86_amd64_features x86-cmov
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,452 @@
|
||||
fabs_1 ... ok
|
||||
fabs_2 ... ok
|
||||
fabs_3 ... ok
|
||||
fabs_4 ... ok
|
||||
fadds_1 ... ok
|
||||
fadds_2 ... ok
|
||||
fadds_3 ... ok
|
||||
fadds_4 ... ok
|
||||
faddl_1 ... ok
|
||||
faddl_2 ... ok
|
||||
faddl_3 ... ok
|
||||
faddl_4 ... ok
|
||||
fadd_1 ... ok
|
||||
fadd_2 ... ok
|
||||
fadd_3 ... ok
|
||||
fadd_4 ... ok
|
||||
fadd_5 ... ok
|
||||
fadd_6 ... ok
|
||||
fadd_7 ... ok
|
||||
fadd_8 ... ok
|
||||
fadd_9 ... ok
|
||||
fadd_10 ... ok
|
||||
fadd_11 ... ok
|
||||
fadd_12 ... ok
|
||||
fadd_13 ... ok
|
||||
fadd_14 ... ok
|
||||
fadd_15 ... ok
|
||||
fadd_16 ... ok
|
||||
faddp_1 ... ok
|
||||
faddp_2 ... ok
|
||||
faddp_3 ... ok
|
||||
faddp_4 ... ok
|
||||
faddp_5 ... ok
|
||||
faddp_6 ... ok
|
||||
faddp_7 ... ok
|
||||
faddp_8 ... ok
|
||||
faddp_9 ... ok
|
||||
faddp_10 ... ok
|
||||
faddp_11 ... ok
|
||||
faddp_12 ... ok
|
||||
faddp_13 ... ok
|
||||
faddp_14 ... ok
|
||||
faddp_15 ... ok
|
||||
faddp_16 ... ok
|
||||
fiadds_1 ... ok
|
||||
fiadds_2 ... ok
|
||||
fiadds_3 ... ok
|
||||
fiadds_4 ... ok
|
||||
fiadds_5 ... ok
|
||||
fiadds_6 ... ok
|
||||
fiadds_7 ... ok
|
||||
fiadds_8 ... ok
|
||||
fiaddl_1 ... ok
|
||||
fiaddl_2 ... ok
|
||||
fiaddl_3 ... ok
|
||||
fiaddl_4 ... ok
|
||||
fiaddl_5 ... ok
|
||||
fiaddl_6 ... ok
|
||||
fiaddl_7 ... ok
|
||||
fiaddl_8 ... ok
|
||||
fcomi_1 ... ok
|
||||
fcomi_2 ... ok
|
||||
fcomi_3 ... ok
|
||||
fcomi_4 ... ok
|
||||
fcomi_5 ... ok
|
||||
fcomi_6 ... ok
|
||||
fcomip_1 ... ok
|
||||
fcomip_2 ... ok
|
||||
fcomip_3 ... ok
|
||||
fcomip_4 ... ok
|
||||
fcomip_5 ... ok
|
||||
fcomip_6 ... ok
|
||||
fucomi_1 ... ok
|
||||
fucomi_2 ... ok
|
||||
fucomi_3 ... ok
|
||||
fucomi_4 ... ok
|
||||
fucomi_5 ... ok
|
||||
fucomi_6 ... ok
|
||||
fucomip_1 ... ok
|
||||
fucomip_2 ... ok
|
||||
fucomip_3 ... ok
|
||||
fucomip_4 ... ok
|
||||
fucomip_5 ... ok
|
||||
fucomip_6 ... ok
|
||||
fchs_1 ... ok
|
||||
fchs_2 ... ok
|
||||
fchs_3 ... ok
|
||||
fchs_4 ... ok
|
||||
fdivs_1 ... ok
|
||||
fdivs_2 ... ok
|
||||
fdivs_3 ... ok
|
||||
fdivs_4 ... ok
|
||||
fdivl_1 ... ok
|
||||
fdivl_2 ... ok
|
||||
fdivl_3 ... ok
|
||||
fdivl_4 ... ok
|
||||
fdiv_1 ... ok
|
||||
fdiv_2 ... ok
|
||||
fdiv_3 ... ok
|
||||
fdiv_4 ... ok
|
||||
fdiv_5 ... ok
|
||||
fdiv_6 ... ok
|
||||
fdiv_7 ... ok
|
||||
fdiv_8 ... ok
|
||||
fdiv_9 ... ok
|
||||
fdiv_10 ... ok
|
||||
fdiv_11 ... ok
|
||||
fdiv_12 ... ok
|
||||
fdiv_13 ... ok
|
||||
fdiv_14 ... ok
|
||||
fdiv_15 ... ok
|
||||
fdiv_16 ... ok
|
||||
fdivp_1 ... ok
|
||||
fdivp_2 ... ok
|
||||
fdivp_3 ... ok
|
||||
fdivp_4 ... ok
|
||||
fdivp_5 ... ok
|
||||
fdivp_6 ... ok
|
||||
fdivp_7 ... ok
|
||||
fdivp_8 ... ok
|
||||
fdivp_9 ... ok
|
||||
fdivp_10 ... ok
|
||||
fdivp_11 ... ok
|
||||
fdivp_12 ... ok
|
||||
fdivp_13 ... ok
|
||||
fdivp_14 ... ok
|
||||
fdivp_15 ... ok
|
||||
fdivp_16 ... ok
|
||||
fidivs_1 ... ok
|
||||
fidivs_2 ... ok
|
||||
fidivs_3 ... ok
|
||||
fidivs_4 ... ok
|
||||
fidivs_5 ... ok
|
||||
fidivs_6 ... ok
|
||||
fidivs_7 ... ok
|
||||
fidivs_8 ... ok
|
||||
fidivl_1 ... ok
|
||||
fidivl_2 ... ok
|
||||
fidivl_3 ... ok
|
||||
fidivl_4 ... ok
|
||||
fidivl_5 ... ok
|
||||
fidivl_6 ... ok
|
||||
fidivl_7 ... ok
|
||||
fidivl_8 ... ok
|
||||
fdivrs_1 ... ok
|
||||
fdivrs_2 ... ok
|
||||
fdivrs_3 ... ok
|
||||
fdivrs_4 ... ok
|
||||
fdivrl_1 ... ok
|
||||
fdivrl_2 ... ok
|
||||
fdivrl_3 ... ok
|
||||
fdivrl_4 ... ok
|
||||
fdivr_1 ... ok
|
||||
fdivr_2 ... ok
|
||||
fdivr_3 ... ok
|
||||
fdivr_4 ... ok
|
||||
fdivr_5 ... ok
|
||||
fdivr_6 ... ok
|
||||
fdivr_7 ... ok
|
||||
fdivr_8 ... ok
|
||||
fdivr_9 ... ok
|
||||
fdivr_10 ... ok
|
||||
fdivr_11 ... ok
|
||||
fdivr_12 ... ok
|
||||
fdivr_13 ... ok
|
||||
fdivr_14 ... ok
|
||||
fdivr_15 ... ok
|
||||
fdivr_16 ... ok
|
||||
fdivrp_1 ... ok
|
||||
fdivrp_2 ... ok
|
||||
fdivrp_3 ... ok
|
||||
fdivrp_4 ... ok
|
||||
fdivrp_5 ... ok
|
||||
fdivrp_6 ... ok
|
||||
fdivrp_7 ... ok
|
||||
fdivrp_8 ... ok
|
||||
fdivrp_9 ... ok
|
||||
fdivrp_10 ... ok
|
||||
fdivrp_11 ... ok
|
||||
fdivrp_12 ... ok
|
||||
fdivrp_13 ... ok
|
||||
fdivrp_14 ... ok
|
||||
fdivrp_15 ... ok
|
||||
fdivrp_16 ... ok
|
||||
fidivrs_1 ... ok
|
||||
fidivrs_2 ... ok
|
||||
fidivrs_3 ... ok
|
||||
fidivrs_4 ... ok
|
||||
fidivrs_5 ... ok
|
||||
fidivrs_6 ... ok
|
||||
fidivrs_7 ... ok
|
||||
fidivrs_8 ... ok
|
||||
fidivrl_1 ... ok
|
||||
fidivrl_2 ... ok
|
||||
fidivrl_3 ... ok
|
||||
fidivrl_4 ... ok
|
||||
fidivrl_5 ... ok
|
||||
fidivrl_6 ... ok
|
||||
fidivrl_7 ... ok
|
||||
fidivrl_8 ... ok
|
||||
filds_1 ... ok
|
||||
filds_2 ... ok
|
||||
filds_3 ... ok
|
||||
filds_4 ... ok
|
||||
fildl_1 ... ok
|
||||
fildl_2 ... ok
|
||||
fildl_3 ... ok
|
||||
fildl_4 ... ok
|
||||
fildq_1 ... ok
|
||||
fildq_2 ... ok
|
||||
fildq_3 ... ok
|
||||
fildq_4 ... ok
|
||||
fists_1 ... ok
|
||||
fists_2 ... ok
|
||||
fists_3 ... ok
|
||||
fists_4 ... ok
|
||||
fists_5 ... ok
|
||||
fists_6 ... ok
|
||||
fists_7 ... ok
|
||||
fists_8 ... ok
|
||||
fistl_1 ... ok
|
||||
fistl_2 ... ok
|
||||
fistl_3 ... ok
|
||||
fistl_4 ... ok
|
||||
fistl_5 ... ok
|
||||
fistl_6 ... ok
|
||||
fistl_7 ... ok
|
||||
fistl_8 ... ok
|
||||
fistps_1 ... ok
|
||||
fistps_2 ... ok
|
||||
fistps_3 ... ok
|
||||
fistps_4 ... ok
|
||||
fistps_5 ... ok
|
||||
fistps_6 ... ok
|
||||
fistps_7 ... ok
|
||||
fistps_8 ... ok
|
||||
fistpl_1 ... ok
|
||||
fistpl_2 ... ok
|
||||
fistpl_3 ... ok
|
||||
fistpl_4 ... ok
|
||||
fistpl_5 ... ok
|
||||
fistpl_6 ... ok
|
||||
fistpl_7 ... ok
|
||||
fistpl_8 ... ok
|
||||
fistpq_1 ... ok
|
||||
fistpq_2 ... ok
|
||||
fistpq_3 ... ok
|
||||
fistpq_4 ... ok
|
||||
fistpq_5 ... ok
|
||||
fistpq_6 ... ok
|
||||
fistpq_7 ... ok
|
||||
fistpq_8 ... ok
|
||||
flds_1 ... ok
|
||||
flds_2 ... ok
|
||||
fldl_1 ... ok
|
||||
fldl_2 ... ok
|
||||
fld_1 ... ok
|
||||
fld_2 ... ok
|
||||
fld_3 ... ok
|
||||
fld1_1 ... ok
|
||||
fldl2t_1 ... ok
|
||||
fldl2e_1 ... ok
|
||||
fldpi_1 ... ok
|
||||
fldlg2_1 ... ok
|
||||
fldln2_1 ... ok
|
||||
fldz_1 ... ok
|
||||
fmuls_1 ... ok
|
||||
fmuls_2 ... ok
|
||||
fmuls_3 ... ok
|
||||
fmuls_4 ... ok
|
||||
fmull_1 ... ok
|
||||
fmull_2 ... ok
|
||||
fmull_3 ... ok
|
||||
fmull_4 ... ok
|
||||
fmul_1 ... ok
|
||||
fmul_2 ... ok
|
||||
fmul_3 ... ok
|
||||
fmul_4 ... ok
|
||||
fmul_5 ... ok
|
||||
fmul_6 ... ok
|
||||
fmul_7 ... ok
|
||||
fmul_8 ... ok
|
||||
fmul_9 ... ok
|
||||
fmul_10 ... ok
|
||||
fmul_11 ... ok
|
||||
fmul_12 ... ok
|
||||
fmul_13 ... ok
|
||||
fmul_14 ... ok
|
||||
fmul_15 ... ok
|
||||
fmul_16 ... ok
|
||||
fmulp_1 ... ok
|
||||
fmulp_2 ... ok
|
||||
fmulp_3 ... ok
|
||||
fmulp_4 ... ok
|
||||
fmulp_5 ... ok
|
||||
fmulp_6 ... ok
|
||||
fmulp_7 ... ok
|
||||
fmulp_8 ... ok
|
||||
fmulp_9 ... ok
|
||||
fmulp_10 ... ok
|
||||
fmulp_11 ... ok
|
||||
fmulp_12 ... ok
|
||||
fmulp_13 ... ok
|
||||
fmulp_14 ... ok
|
||||
fmulp_15 ... ok
|
||||
fmulp_16 ... ok
|
||||
fimuls_1 ... ok
|
||||
fimuls_2 ... ok
|
||||
fimuls_3 ... ok
|
||||
fimuls_4 ... ok
|
||||
fimuls_5 ... ok
|
||||
fimuls_6 ... ok
|
||||
fimuls_7 ... ok
|
||||
fimuls_8 ... ok
|
||||
fimull_1 ... ok
|
||||
fimull_2 ... ok
|
||||
fimull_3 ... ok
|
||||
fimull_4 ... ok
|
||||
fimull_5 ... ok
|
||||
fimull_6 ... ok
|
||||
fimull_7 ... ok
|
||||
fimull_8 ... ok
|
||||
frndint_1 ... ok
|
||||
frndint_2 ... ok
|
||||
frndint_3 ... ok
|
||||
frndint_4 ... ok
|
||||
frndint_5 ... ok
|
||||
frndint_6 ... ok
|
||||
frndint_7 ... ok
|
||||
frndint_8 ... ok
|
||||
frndint_9 ... ok
|
||||
frndint_10 ... ok
|
||||
frndint_11 ... ok
|
||||
frndint_12 ... ok
|
||||
frndint_13 ... ok
|
||||
frndint_14 ... ok
|
||||
frndint_15 ... ok
|
||||
frndint_16 ... ok
|
||||
fsubs_1 ... ok
|
||||
fsubs_2 ... ok
|
||||
fsubs_3 ... ok
|
||||
fsubs_4 ... ok
|
||||
fsubl_1 ... ok
|
||||
fsubl_2 ... ok
|
||||
fsubl_3 ... ok
|
||||
fsubl_4 ... ok
|
||||
fsub_1 ... ok
|
||||
fsub_2 ... ok
|
||||
fsub_3 ... ok
|
||||
fsub_4 ... ok
|
||||
fsub_5 ... ok
|
||||
fsub_6 ... ok
|
||||
fsub_7 ... ok
|
||||
fsub_8 ... ok
|
||||
fsub_9 ... ok
|
||||
fsub_10 ... ok
|
||||
fsub_11 ... ok
|
||||
fsub_12 ... ok
|
||||
fsub_13 ... ok
|
||||
fsub_14 ... ok
|
||||
fsub_15 ... ok
|
||||
fsub_16 ... ok
|
||||
fsubp_1 ... ok
|
||||
fsubp_2 ... ok
|
||||
fsubp_3 ... ok
|
||||
fsubp_4 ... ok
|
||||
fsubp_5 ... ok
|
||||
fsubp_6 ... ok
|
||||
fsubp_7 ... ok
|
||||
fsubp_8 ... ok
|
||||
fsubp_9 ... ok
|
||||
fsubp_10 ... ok
|
||||
fsubp_11 ... ok
|
||||
fsubp_12 ... ok
|
||||
fsubp_13 ... ok
|
||||
fsubp_14 ... ok
|
||||
fsubp_15 ... ok
|
||||
fsubp_16 ... ok
|
||||
fisubs_1 ... ok
|
||||
fisubs_2 ... ok
|
||||
fisubs_3 ... ok
|
||||
fisubs_4 ... ok
|
||||
fisubs_5 ... ok
|
||||
fisubs_6 ... ok
|
||||
fisubs_7 ... ok
|
||||
fisubs_8 ... ok
|
||||
fisubl_1 ... ok
|
||||
fisubl_2 ... ok
|
||||
fisubl_3 ... ok
|
||||
fisubl_4 ... ok
|
||||
fisubl_5 ... ok
|
||||
fisubl_6 ... ok
|
||||
fisubl_7 ... ok
|
||||
fisubl_8 ... ok
|
||||
fsubrs_1 ... ok
|
||||
fsubrs_2 ... ok
|
||||
fsubrs_3 ... ok
|
||||
fsubrs_4 ... ok
|
||||
fsubrl_1 ... ok
|
||||
fsubrl_2 ... ok
|
||||
fsubrl_3 ... ok
|
||||
fsubrl_4 ... ok
|
||||
fsubr_1 ... ok
|
||||
fsubr_2 ... ok
|
||||
fsubr_3 ... ok
|
||||
fsubr_4 ... ok
|
||||
fsubr_5 ... ok
|
||||
fsubr_6 ... ok
|
||||
fsubr_7 ... ok
|
||||
fsubr_8 ... ok
|
||||
fsubr_9 ... ok
|
||||
fsubr_10 ... ok
|
||||
fsubr_11 ... ok
|
||||
fsubr_12 ... ok
|
||||
fsubr_13 ... ok
|
||||
fsubr_14 ... ok
|
||||
fsubr_15 ... ok
|
||||
fsubr_16 ... ok
|
||||
fsubrp_1 ... ok
|
||||
fsubrp_2 ... ok
|
||||
fsubrp_3 ... ok
|
||||
fsubrp_4 ... ok
|
||||
fsubrp_5 ... ok
|
||||
fsubrp_6 ... ok
|
||||
fsubrp_7 ... ok
|
||||
fsubrp_8 ... ok
|
||||
fsubrp_9 ... ok
|
||||
fsubrp_10 ... ok
|
||||
fsubrp_11 ... ok
|
||||
fsubrp_12 ... ok
|
||||
fsubrp_13 ... ok
|
||||
fsubrp_14 ... ok
|
||||
fsubrp_15 ... ok
|
||||
fsubrp_16 ... ok
|
||||
fisubrs_1 ... ok
|
||||
fisubrs_2 ... ok
|
||||
fisubrs_3 ... ok
|
||||
fisubrs_4 ... ok
|
||||
fisubrs_5 ... ok
|
||||
fisubrs_6 ... ok
|
||||
fisubrs_7 ... ok
|
||||
fisubrs_8 ... ok
|
||||
fisubrl_1 ... ok
|
||||
fisubrl_2 ... ok
|
||||
fisubrl_3 ... ok
|
||||
fisubrl_4 ... ok
|
||||
fisubrl_5 ... ok
|
||||
fisubrl_6 ... ok
|
||||
fisubrl_7 ... ok
|
||||
fisubrl_8 ... ok
|
||||
fxch_1 ... ok
|
||||
fxch_2 ... ok
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: ../../../none/tests/x86/insn_fpu
|
||||
prereq: ../../../tests/x86_amd64_features x86-fpu
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,103 @@
|
||||
movd_1 ... ok
|
||||
movd_2 ... ok
|
||||
movd_3 ... ok
|
||||
movd_4 ... ok
|
||||
movq_1 ... ok
|
||||
movq_2 ... ok
|
||||
movq_3 ... ok
|
||||
packssdw_1 ... ok
|
||||
packssdw_2 ... ok
|
||||
packsswb_1 ... ok
|
||||
packsswb_2 ... ok
|
||||
packuswb_1 ... ok
|
||||
packuswb_2 ... ok
|
||||
paddb_1 ... ok
|
||||
paddb_2 ... ok
|
||||
paddd_1 ... ok
|
||||
paddd_2 ... ok
|
||||
paddsb_1 ... ok
|
||||
paddsb_2 ... ok
|
||||
paddsw_1 ... ok
|
||||
paddsw_2 ... ok
|
||||
paddusb_1 ... ok
|
||||
paddusb_2 ... ok
|
||||
paddusw_1 ... ok
|
||||
paddusw_2 ... ok
|
||||
paddw_1 ... ok
|
||||
paddw_2 ... ok
|
||||
pand_1 ... ok
|
||||
pand_2 ... ok
|
||||
pandn_1 ... ok
|
||||
pandn_2 ... ok
|
||||
pcmpeqb_1 ... ok
|
||||
pcmpeqb_2 ... ok
|
||||
pcmpeqd_1 ... ok
|
||||
pcmpeqd_2 ... ok
|
||||
pcmpeqw_1 ... ok
|
||||
pcmpeqw_2 ... ok
|
||||
pcmpgtb_1 ... ok
|
||||
pcmpgtb_2 ... ok
|
||||
pcmpgtd_1 ... ok
|
||||
pcmpgtd_2 ... ok
|
||||
pcmpgtw_1 ... ok
|
||||
pcmpgtw_2 ... ok
|
||||
pmaddwd_1 ... ok
|
||||
pmaddwd_2 ... ok
|
||||
pmulhw_1 ... ok
|
||||
pmulhw_2 ... ok
|
||||
pmullw_1 ... ok
|
||||
pmullw_2 ... ok
|
||||
por_1 ... ok
|
||||
por_2 ... ok
|
||||
pslld_1 ... ok
|
||||
pslld_2 ... ok
|
||||
pslld_3 ... ok
|
||||
psllq_1 ... ok
|
||||
psllq_2 ... ok
|
||||
psllq_3 ... ok
|
||||
psllw_1 ... ok
|
||||
psllw_2 ... ok
|
||||
psllw_3 ... ok
|
||||
psrad_1 ... ok
|
||||
psrad_2 ... ok
|
||||
psrad_3 ... ok
|
||||
psraw_1 ... ok
|
||||
psraw_2 ... ok
|
||||
psraw_3 ... ok
|
||||
psrld_1 ... ok
|
||||
psrld_2 ... ok
|
||||
psrld_3 ... ok
|
||||
psrlq_1 ... ok
|
||||
psrlq_2 ... ok
|
||||
psrlq_3 ... ok
|
||||
psrlw_1 ... ok
|
||||
psrlw_2 ... ok
|
||||
psrlw_3 ... ok
|
||||
psubb_1 ... ok
|
||||
psubb_2 ... ok
|
||||
psubd_1 ... ok
|
||||
psubd_2 ... ok
|
||||
psubsb_1 ... ok
|
||||
psubsb_2 ... ok
|
||||
psubsw_1 ... ok
|
||||
psubsw_2 ... ok
|
||||
psubusb_1 ... ok
|
||||
psubusb_2 ... ok
|
||||
psubusw_1 ... ok
|
||||
psubusw_2 ... ok
|
||||
psubw_1 ... ok
|
||||
psubw_2 ... ok
|
||||
punpckhbw_1 ... ok
|
||||
punpckhbw_2 ... ok
|
||||
punpckhdq_1 ... ok
|
||||
punpckhdq_2 ... ok
|
||||
punpckhwd_1 ... ok
|
||||
punpckhwd_2 ... ok
|
||||
punpcklbw_1 ... ok
|
||||
punpcklbw_2 ... ok
|
||||
punpckldq_1 ... ok
|
||||
punpckldq_2 ... ok
|
||||
punpcklwd_1 ... ok
|
||||
punpcklwd_2 ... ok
|
||||
pxor_1 ... ok
|
||||
pxor_2 ... ok
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: ../../../none/tests/x86/insn_mmx
|
||||
prereq: ../../../tests/x86_amd64_features x86-mmx
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,29 @@
|
||||
movntq_1 ... ok
|
||||
pavgb_1 ... ok
|
||||
pavgb_2 ... ok
|
||||
pavgw_1 ... ok
|
||||
pavgw_2 ... ok
|
||||
pextrw_1 ... ok
|
||||
pextrw_2 ... ok
|
||||
pextrw_3 ... ok
|
||||
pextrw_4 ... ok
|
||||
pinsrw_1 ... ok
|
||||
pinsrw_2 ... ok
|
||||
pinsrw_3 ... ok
|
||||
pinsrw_4 ... ok
|
||||
pmaxsw_1 ... ok
|
||||
pmaxsw_2 ... ok
|
||||
pmaxub_1 ... ok
|
||||
pmaxub_2 ... ok
|
||||
pminsw_1 ... ok
|
||||
pminsw_2 ... ok
|
||||
pminub_1 ... ok
|
||||
pminub_2 ... ok
|
||||
pmovmskb_1 ... ok
|
||||
pmulhuw_1 ... ok
|
||||
pmulhuw_2 ... ok
|
||||
psadbw_1 ... ok
|
||||
psadbw_2 ... ok
|
||||
pshufw_1 ... ok
|
||||
pshufw_2 ... ok
|
||||
sfence_1 ... ok
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: ../../../none/tests/x86/insn_mmxext
|
||||
# mmxext is an old AMD subset of sse1, so either will do.
|
||||
prereq: ../../../tests/x86_amd64_features x86-mmxext || ../../../tests/x86_amd64_features x86-sse
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,154 @@
|
||||
addps_1 ... ok
|
||||
addps_2 ... ok
|
||||
addss_1 ... ok
|
||||
addss_2 ... ok
|
||||
andnps_1 ... ok
|
||||
andnps_2 ... ok
|
||||
andps_1 ... ok
|
||||
andps_2 ... ok
|
||||
cmpeqps_1 ... ok
|
||||
cmpeqps_2 ... ok
|
||||
cmpeqss_1 ... ok
|
||||
cmpeqss_2 ... ok
|
||||
cmpleps_1 ... ok
|
||||
cmpleps_2 ... ok
|
||||
cmpless_1 ... ok
|
||||
cmpless_2 ... ok
|
||||
cmpltps_1 ... ok
|
||||
cmpltps_2 ... ok
|
||||
cmpltss_1 ... ok
|
||||
cmpltss_2 ... ok
|
||||
cmpunordps_1 ... ok
|
||||
cmpunordps_2 ... ok
|
||||
cmpunordss_1 ... ok
|
||||
cmpunordss_2 ... ok
|
||||
cmpneqps_1 ... ok
|
||||
cmpneqps_2 ... ok
|
||||
cmpneqss_1 ... ok
|
||||
cmpneqss_2 ... ok
|
||||
cmpnleps_1 ... ok
|
||||
cmpnleps_2 ... ok
|
||||
cmpnless_1 ... ok
|
||||
cmpnless_2 ... ok
|
||||
cmpnltps_1 ... ok
|
||||
cmpnltps_2 ... ok
|
||||
cmpnltss_1 ... ok
|
||||
cmpnltss_2 ... ok
|
||||
cmpordps_1 ... ok
|
||||
cmpordps_2 ... ok
|
||||
cmpordss_1 ... ok
|
||||
cmpordss_2 ... ok
|
||||
comiss_1 ... ok
|
||||
comiss_2 ... ok
|
||||
comiss_3 ... ok
|
||||
comiss_4 ... ok
|
||||
comiss_5 ... ok
|
||||
comiss_6 ... ok
|
||||
cvtpi2ps_1 ... ok
|
||||
cvtpi2ps_2 ... ok
|
||||
cvtps2pi_1 ... ok
|
||||
cvtps2pi_2 ... ok
|
||||
cvtsi2ss_1 ... ok
|
||||
cvtsi2ss_2 ... ok
|
||||
cvtss2si_1 ... ok
|
||||
cvtss2si_2 ... ok
|
||||
cvttps2pi_1 ... ok
|
||||
cvttps2pi_2 ... ok
|
||||
cvttss2si_1 ... ok
|
||||
cvttss2si_2 ... ok
|
||||
divps_1 ... ok
|
||||
divps_2 ... ok
|
||||
divss_1 ... ok
|
||||
divss_2 ... ok
|
||||
maxps_1 ... ok
|
||||
maxps_2 ... ok
|
||||
maxss_1 ... ok
|
||||
maxss_2 ... ok
|
||||
minps_1 ... ok
|
||||
minps_2 ... ok
|
||||
minss_1 ... ok
|
||||
minss_2 ... ok
|
||||
movaps_1 ... ok
|
||||
movaps_2 ... ok
|
||||
movhlps_1 ... ok
|
||||
movhps_1 ... ok
|
||||
movhps_2 ... ok
|
||||
movlhps_1 ... ok
|
||||
movlps_1 ... ok
|
||||
movlps_2 ... ok
|
||||
movmskps_1 ... ok
|
||||
movntps_1 ... ok
|
||||
movntq_1 ... ok
|
||||
movss_1 ... ok
|
||||
movss_2 ... ok
|
||||
movss_3 ... ok
|
||||
movups_1 ... ok
|
||||
movups_2 ... ok
|
||||
mulps_1 ... ok
|
||||
mulps_2 ... ok
|
||||
mulss_1 ... ok
|
||||
mulss_2 ... ok
|
||||
orps_1 ... ok
|
||||
orps_2 ... ok
|
||||
pavgb_1 ... ok
|
||||
pavgb_2 ... ok
|
||||
pavgw_1 ... ok
|
||||
pavgw_2 ... ok
|
||||
pextrw_1 ... ok
|
||||
pextrw_2 ... ok
|
||||
pextrw_3 ... ok
|
||||
pextrw_4 ... ok
|
||||
pinsrw_1 ... ok
|
||||
pinsrw_2 ... ok
|
||||
pinsrw_3 ... ok
|
||||
pinsrw_4 ... ok
|
||||
pinsrw_5 ... ok
|
||||
pinsrw_6 ... ok
|
||||
pinsrw_7 ... ok
|
||||
pinsrw_8 ... ok
|
||||
pmaxsw_1 ... ok
|
||||
pmaxsw_2 ... ok
|
||||
pmaxub_1 ... ok
|
||||
pmaxub_2 ... ok
|
||||
pminsw_1 ... ok
|
||||
pminsw_2 ... ok
|
||||
pminub_1 ... ok
|
||||
pminub_2 ... ok
|
||||
pmovmskb_1 ... ok
|
||||
pmulhuw_1 ... ok
|
||||
pmulhuw_2 ... ok
|
||||
psadbw_1 ... ok
|
||||
psadbw_2 ... ok
|
||||
pshufw_1 ... ok
|
||||
pshufw_2 ... ok
|
||||
rcpps_1 ... ok
|
||||
rcpps_2 ... ok
|
||||
rcpss_1 ... ok
|
||||
rcpss_2 ... ok
|
||||
rsqrtps_1 ... ok
|
||||
rsqrtps_2 ... ok
|
||||
rsqrtss_1 ... ok
|
||||
rsqrtss_2 ... ok
|
||||
sfence_1 ... ok
|
||||
shufps_1 ... ok
|
||||
shufps_2 ... ok
|
||||
sqrtps_1 ... ok
|
||||
sqrtps_2 ... ok
|
||||
sqrtss_1 ... ok
|
||||
sqrtss_2 ... ok
|
||||
subps_1 ... ok
|
||||
subps_2 ... ok
|
||||
subss_1 ... ok
|
||||
subss_2 ... ok
|
||||
ucomiss_1 ... ok
|
||||
ucomiss_2 ... ok
|
||||
ucomiss_3 ... ok
|
||||
ucomiss_4 ... ok
|
||||
ucomiss_5 ... ok
|
||||
ucomiss_6 ... ok
|
||||
unpckhps_1 ... ok
|
||||
unpckhps_2 ... ok
|
||||
unpcklps_1 ... ok
|
||||
unpcklps_2 ... ok
|
||||
xorps_1 ... ok
|
||||
xorps_2 ... ok
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: ../../../none/tests/x86/insn_sse
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse && test -e ../../../none/tests/x86/insn_sse
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,343 @@
|
||||
addpd_1 ... ok
|
||||
addpd_2 ... ok
|
||||
addsd_1 ... ok
|
||||
addsd_2 ... ok
|
||||
andpd_1 ... ok
|
||||
andpd_2 ... ok
|
||||
andnpd_1 ... ok
|
||||
andnpd_2 ... ok
|
||||
cmpeqpd_1 ... ok
|
||||
cmpeqpd_2 ... ok
|
||||
cmpltpd_1 ... ok
|
||||
cmpltpd_2 ... ok
|
||||
cmplepd_1 ... ok
|
||||
cmplepd_2 ... ok
|
||||
cmpunordpd_1 ... ok
|
||||
cmpunordpd_2 ... ok
|
||||
cmpneqpd_1 ... ok
|
||||
cmpneqpd_2 ... ok
|
||||
cmpnltpd_1 ... ok
|
||||
cmpnltpd_2 ... ok
|
||||
cmpnlepd_1 ... ok
|
||||
cmpnlepd_2 ... ok
|
||||
cmpordpd_1 ... ok
|
||||
cmpordpd_2 ... ok
|
||||
cmpeqsd_1 ... ok
|
||||
cmpeqsd_2 ... ok
|
||||
cmpltsd_1 ... ok
|
||||
cmpltsd_2 ... ok
|
||||
cmplesd_1 ... ok
|
||||
cmplesd_2 ... ok
|
||||
cmpunordsd_1 ... ok
|
||||
cmpunordsd_2 ... ok
|
||||
cmpneqsd_1 ... ok
|
||||
cmpneqsd_2 ... ok
|
||||
cmpnltsd_1 ... ok
|
||||
cmpnltsd_2 ... ok
|
||||
cmpnlesd_1 ... ok
|
||||
cmpnlesd_2 ... ok
|
||||
cmpordsd_1 ... ok
|
||||
cmpordsd_2 ... ok
|
||||
comisd_1 ... ok
|
||||
comisd_2 ... ok
|
||||
comisd_3 ... ok
|
||||
comisd_4 ... ok
|
||||
comisd_5 ... ok
|
||||
comisd_6 ... ok
|
||||
cvtdq2pd_1 ... ok
|
||||
cvtdq2pd_2 ... ok
|
||||
cvtdq2ps_1 ... ok
|
||||
cvtdq2ps_2 ... ok
|
||||
cvtpd2dq_1 ... ok
|
||||
cvtpd2dq_2 ... ok
|
||||
cvtpd2pi_1 ... ok
|
||||
cvtpd2pi_2 ... ok
|
||||
cvtpd2ps_1 ... ok
|
||||
cvtpd2ps_2 ... ok
|
||||
cvtpi2pd_1 ... ok
|
||||
cvtpi2pd_2 ... ok
|
||||
cvtps2dq_1 ... ok
|
||||
cvtps2dq_2 ... ok
|
||||
cvtps2pd_1 ... ok
|
||||
cvtps2pd_2 ... ok
|
||||
cvtsd2si_1 ... ok
|
||||
cvtsd2si_2 ... ok
|
||||
cvtsd2ss_1 ... ok
|
||||
cvtsd2ss_2 ... ok
|
||||
cvtsi2sd_1 ... ok
|
||||
cvtsi2sd_2 ... ok
|
||||
cvtss2sd_1 ... ok
|
||||
cvtss2sd_2 ... ok
|
||||
cvttpd2pi_1 ... ok
|
||||
cvttpd2pi_2 ... ok
|
||||
cvttpd2dq_1 ... ok
|
||||
cvttpd2dq_2 ... ok
|
||||
cvttps2dq_1 ... ok
|
||||
cvttps2dq_2 ... ok
|
||||
cvttsd2si_1 ... ok
|
||||
cvttsd2si_2 ... ok
|
||||
divpd_1 ... ok
|
||||
divpd_2 ... ok
|
||||
divsd_1 ... ok
|
||||
divsd_2 ... ok
|
||||
lfence_1 ... ok
|
||||
maxpd_1 ... ok
|
||||
maxpd_2 ... ok
|
||||
maxsd_1 ... ok
|
||||
maxsd_2 ... ok
|
||||
mfence_1 ... ok
|
||||
minpd_1 ... ok
|
||||
minpd_2 ... ok
|
||||
minsd_1 ... ok
|
||||
minsd_2 ... ok
|
||||
movapd_1 ... ok
|
||||
movapd_2 ... ok
|
||||
movd_1 ... ok
|
||||
movd_2 ... ok
|
||||
movd_3 ... ok
|
||||
movd_4 ... ok
|
||||
movdqa_1 ... ok
|
||||
movdqa_2 ... ok
|
||||
movdqa_3 ... ok
|
||||
movdqu_1 ... ok
|
||||
movdqu_2 ... ok
|
||||
movdqu_3 ... ok
|
||||
movdq2q_1 ... ok
|
||||
movhpd_1 ... ok
|
||||
movhpd_2 ... ok
|
||||
movlpd_1 ... ok
|
||||
movlpd_2 ... ok
|
||||
movmskpd_1 ... ok
|
||||
movntdq_1 ... ok
|
||||
movnti_1 ... ok
|
||||
movntpd_1 ... ok
|
||||
movq_1 ... ok
|
||||
movq_2 ... ok
|
||||
movq_3 ... ok
|
||||
movq2dq_1 ... ok
|
||||
movsd_1 ... ok
|
||||
movsd_2 ... ok
|
||||
movsd_3 ... ok
|
||||
movupd_1 ... ok
|
||||
movupd_2 ... ok
|
||||
mulpd_1 ... ok
|
||||
mulpd_2 ... ok
|
||||
mulsd_1 ... ok
|
||||
mulsd_2 ... ok
|
||||
orpd_1 ... ok
|
||||
orpd_2 ... ok
|
||||
packssdw_1 ... ok
|
||||
packssdw_2 ... ok
|
||||
packsswb_1 ... ok
|
||||
packsswb_2 ... ok
|
||||
packuswb_1 ... ok
|
||||
packuswb_2 ... ok
|
||||
paddb_1 ... ok
|
||||
paddb_2 ... ok
|
||||
paddd_1 ... ok
|
||||
paddd_2 ... ok
|
||||
paddq_1 ... ok
|
||||
paddq_2 ... ok
|
||||
paddq_3 ... ok
|
||||
paddq_4 ... ok
|
||||
paddsb_1 ... ok
|
||||
paddsb_2 ... ok
|
||||
paddsw_1 ... ok
|
||||
paddsw_2 ... ok
|
||||
paddusb_1 ... ok
|
||||
paddusb_2 ... ok
|
||||
paddusw_1 ... ok
|
||||
paddusw_2 ... ok
|
||||
paddw_1 ... ok
|
||||
paddw_2 ... ok
|
||||
pand_1 ... ok
|
||||
pand_2 ... ok
|
||||
pandn_1 ... ok
|
||||
pandn_2 ... ok
|
||||
pavgb_1 ... ok
|
||||
pavgb_2 ... ok
|
||||
pavgw_1 ... ok
|
||||
pavgw_2 ... ok
|
||||
pcmpeqb_1 ... ok
|
||||
pcmpeqb_2 ... ok
|
||||
pcmpeqd_1 ... ok
|
||||
pcmpeqd_2 ... ok
|
||||
pcmpeqw_1 ... ok
|
||||
pcmpeqw_2 ... ok
|
||||
pcmpgtb_1 ... ok
|
||||
pcmpgtb_2 ... ok
|
||||
pcmpgtd_1 ... ok
|
||||
pcmpgtd_2 ... ok
|
||||
pcmpgtw_1 ... ok
|
||||
pcmpgtw_2 ... ok
|
||||
pextrw_1 ... ok
|
||||
pextrw_2 ... ok
|
||||
pextrw_3 ... ok
|
||||
pextrw_4 ... ok
|
||||
pextrw_5 ... ok
|
||||
pextrw_6 ... ok
|
||||
pextrw_7 ... ok
|
||||
pextrw_8 ... ok
|
||||
pinsrw_1 ... ok
|
||||
pinsrw_2 ... ok
|
||||
pinsrw_3 ... ok
|
||||
pinsrw_4 ... ok
|
||||
pinsrw_5 ... ok
|
||||
pinsrw_6 ... ok
|
||||
pinsrw_7 ... ok
|
||||
pinsrw_8 ... ok
|
||||
pinsrw_9 ... ok
|
||||
pinsrw_10 ... ok
|
||||
pinsrw_11 ... ok
|
||||
pinsrw_12 ... ok
|
||||
pinsrw_13 ... ok
|
||||
pinsrw_14 ... ok
|
||||
pinsrw_15 ... ok
|
||||
pinsrw_16 ... ok
|
||||
pmaddwd_1 ... ok
|
||||
pmaddwd_2 ... ok
|
||||
pmaxsw_1 ... ok
|
||||
pmaxsw_2 ... ok
|
||||
pmaxub_1 ... ok
|
||||
pmaxub_2 ... ok
|
||||
pminsw_1 ... ok
|
||||
pminsw_2 ... ok
|
||||
pminub_1 ... ok
|
||||
pminub_2 ... ok
|
||||
pmovmskb_1 ... ok
|
||||
pmulhuw_1 ... ok
|
||||
pmulhuw_2 ... ok
|
||||
pmulhw_1 ... ok
|
||||
pmulhw_2 ... ok
|
||||
pmullw_1 ... ok
|
||||
pmullw_2 ... ok
|
||||
pmuludq_1 ... ok
|
||||
pmuludq_2 ... ok
|
||||
pmuludq_3 ... ok
|
||||
pmuludq_4 ... ok
|
||||
por_1 ... ok
|
||||
por_2 ... ok
|
||||
psadbw_1 ... ok
|
||||
psadbw_2 ... ok
|
||||
pshufd_1 ... ok
|
||||
pshufd_2 ... ok
|
||||
pshufhw_1 ... ok
|
||||
pshufhw_2 ... ok
|
||||
pshuflw_1 ... ok
|
||||
pshuflw_2 ... ok
|
||||
pslld_1 ... ok
|
||||
pslld_2 ... ok
|
||||
pslld_3 ... ok
|
||||
pslldq_1 ... ok
|
||||
pslldq_2 ... ok
|
||||
pslldq_3 ... ok
|
||||
pslldq_4 ... ok
|
||||
pslldq_5 ... ok
|
||||
pslldq_6 ... ok
|
||||
pslldq_7 ... ok
|
||||
pslldq_8 ... ok
|
||||
pslldq_9 ... ok
|
||||
pslldq_10 ... ok
|
||||
pslldq_11 ... ok
|
||||
pslldq_12 ... ok
|
||||
pslldq_13 ... ok
|
||||
pslldq_14 ... ok
|
||||
pslldq_15 ... ok
|
||||
pslldq_16 ... ok
|
||||
pslldq_17 ... ok
|
||||
psllq_1 ... ok
|
||||
psllq_2 ... ok
|
||||
psllq_3 ... ok
|
||||
psllw_1 ... ok
|
||||
psllw_2 ... ok
|
||||
psllw_3 ... ok
|
||||
psrad_1 ... ok
|
||||
psrad_2 ... ok
|
||||
psrad_3 ... ok
|
||||
psraw_1 ... ok
|
||||
psraw_2 ... ok
|
||||
psraw_3 ... ok
|
||||
psrld_1 ... ok
|
||||
psrld_2 ... ok
|
||||
psrld_3 ... ok
|
||||
psrldq_1 ... ok
|
||||
psrldq_2 ... ok
|
||||
psrldq_3 ... ok
|
||||
psrldq_4 ... ok
|
||||
psrldq_5 ... ok
|
||||
psrldq_6 ... ok
|
||||
psrldq_7 ... ok
|
||||
psrldq_8 ... ok
|
||||
psrldq_9 ... ok
|
||||
psrldq_10 ... ok
|
||||
psrldq_11 ... ok
|
||||
psrldq_12 ... ok
|
||||
psrldq_13 ... ok
|
||||
psrldq_14 ... ok
|
||||
psrldq_15 ... ok
|
||||
psrldq_16 ... ok
|
||||
psrldq_17 ... ok
|
||||
psrlq_1 ... ok
|
||||
psrlq_2 ... ok
|
||||
psrlq_3 ... ok
|
||||
psrlw_1 ... ok
|
||||
psrlw_2 ... ok
|
||||
psrlw_3 ... ok
|
||||
psubb_1 ... ok
|
||||
psubb_2 ... ok
|
||||
psubd_1 ... ok
|
||||
psubd_2 ... ok
|
||||
psubq_1 ... ok
|
||||
psubq_2 ... ok
|
||||
psubq_3 ... ok
|
||||
psubq_4 ... ok
|
||||
psubsb_1 ... ok
|
||||
psubsb_2 ... ok
|
||||
psubsw_1 ... ok
|
||||
psubsw_2 ... ok
|
||||
psubusb_1 ... ok
|
||||
psubusb_2 ... ok
|
||||
psubusw_1 ... ok
|
||||
psubusw_2 ... ok
|
||||
psubw_1 ... ok
|
||||
psubw_2 ... ok
|
||||
punpckhbw_1 ... ok
|
||||
punpckhbw_2 ... ok
|
||||
punpckhdq_1 ... ok
|
||||
punpckhdq_2 ... ok
|
||||
punpckhqdq_1 ... ok
|
||||
punpckhqdq_2 ... ok
|
||||
punpckhwd_1 ... ok
|
||||
punpckhwd_2 ... ok
|
||||
punpcklbw_1 ... ok
|
||||
punpcklbw_2 ... ok
|
||||
punpckldq_1 ... ok
|
||||
punpckldq_2 ... ok
|
||||
punpcklqdq_1 ... ok
|
||||
punpcklqdq_2 ... ok
|
||||
punpcklwd_1 ... ok
|
||||
punpcklwd_2 ... ok
|
||||
pxor_1 ... ok
|
||||
pxor_2 ... ok
|
||||
shufpd_1 ... ok
|
||||
shufpd_2 ... ok
|
||||
sqrtpd_1 ... ok
|
||||
sqrtpd_2 ... ok
|
||||
sqrtsd_1 ... ok
|
||||
sqrtsd_2 ... ok
|
||||
subpd_1 ... ok
|
||||
subpd_2 ... ok
|
||||
subsd_1 ... ok
|
||||
subsd_2 ... ok
|
||||
ucomisd_1 ... ok
|
||||
ucomisd_2 ... ok
|
||||
ucomisd_3 ... ok
|
||||
ucomisd_4 ... ok
|
||||
ucomisd_5 ... ok
|
||||
ucomisd_6 ... ok
|
||||
unpckhpd_1 ... ok
|
||||
unpckhpd_2 ... ok
|
||||
unpcklpd_1 ... ok
|
||||
unpcklpd_2 ... ok
|
||||
xorpd_1 ... ok
|
||||
xorpd_2 ... ok
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: ../../../none/tests/x86/insn_sse2
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse2 && test -e ../../../none/tests/x86/insn_sse2
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,263 @@
|
||||
|
||||
/* Derived from: */
|
||||
|
||||
/*
|
||||
* x86 CPU test
|
||||
*
|
||||
* Copyright (c) 2003 Fabrice Bellard
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
#include <math.h>
|
||||
|
||||
/**********************************************/
|
||||
|
||||
void test_fops(double a, double b)
|
||||
{
|
||||
printf("a=%f b=%f a+b=%f\n", a, b, a + b);
|
||||
printf("a=%f b=%f a-b=%f\n", a, b, a - b);
|
||||
printf("a=%f b=%f a*b=%f\n", a, b, a * b);
|
||||
printf("a=%f b=%f a/b=%f\n", a, b, a / b);
|
||||
printf("a=%f b=%f fmod(a, b)=%f\n", a, b, fmod(a, b));
|
||||
printf("a=%f sqrt(a)=%f\n", a, sqrt(a));
|
||||
printf("a=%f sin(a)=%f\n", a, sin(a));
|
||||
printf("a=%f cos(a)=%f\n", a, cos(a));
|
||||
printf("a=%f tan(a)=%f\n", a, tan(a));
|
||||
printf("a=%f log(a)=%f\n", a, log(a));
|
||||
printf("a=%f exp(a)=%f\n", a, exp(a));
|
||||
printf("a=%f b=%f atan2(a, b)=%f\n", a, b, atan2(a, b));
|
||||
/* just to test some op combining */
|
||||
printf("a=%f asin(sin(a))=%f\n", a, asin(sin(a)));
|
||||
printf("a=%f acos(cos(a))=%f\n", a, acos(cos(a)));
|
||||
printf("a=%f atan(tan(a))=%f\n", a, atan(tan(a)));
|
||||
}
|
||||
#define CC_C 0x0001
|
||||
#define CC_P 0x0004
|
||||
#define CC_A 0x0010
|
||||
#define CC_Z 0x0040
|
||||
#define CC_S 0x0080
|
||||
#define CC_O 0x0800
|
||||
|
||||
|
||||
void test_fcmp(double a, double b)
|
||||
{
|
||||
printf("(%f<%f)=%d\n",
|
||||
a, b, a < b);
|
||||
printf("(%f<=%f)=%d\n",
|
||||
a, b, a <= b);
|
||||
printf("(%f==%f)=%d\n",
|
||||
a, b, a == b);
|
||||
printf("(%f>%f)=%d\n",
|
||||
a, b, a > b);
|
||||
printf("(%f<=%f)=%d\n",
|
||||
a, b, a >= b);
|
||||
{
|
||||
unsigned int eflags;
|
||||
/* test f(u)comi instruction */
|
||||
asm("fcomi %2, %1\n"
|
||||
"pushf\n"
|
||||
"pop %0\n"
|
||||
: "=r" (eflags)
|
||||
: "t" (a), "u" (b));
|
||||
printf("fcomi(%f %f)=%08x\n", a, b, eflags & (CC_Z | CC_P | CC_C));
|
||||
}
|
||||
}
|
||||
|
||||
void test_fcvt(double a)
|
||||
{
|
||||
float fa;
|
||||
long double la;
|
||||
int16_t fpuc;
|
||||
int i;
|
||||
int64_t lla;
|
||||
int ia;
|
||||
int16_t wa;
|
||||
double ra;
|
||||
|
||||
fa = a;
|
||||
la = a;
|
||||
printf("(float)%f = %f\n", a, fa);
|
||||
printf("(long double)%f = %Lf\n", a, la);
|
||||
printf("a=%016llx\n", *(long long *)&a);
|
||||
printf("la=%016llx %04x\n", *(long long *)&la,
|
||||
*(unsigned short *)((char *)(&la) + 8));
|
||||
|
||||
/* test all roundings */
|
||||
asm volatile ("fstcw %0" : "=m" (fpuc));
|
||||
for(i=0;i<4;i++) {
|
||||
int16_t tmp = (fpuc & ~0x0c00) | (i << 10);
|
||||
asm volatile ("fldcw %0" : : "m" (tmp));
|
||||
asm volatile ("fists %0" : "=m" (wa) : "t" (a));
|
||||
asm volatile ("fistl %0" : "=m" (ia) : "t" (a));
|
||||
asm volatile ("fistpll %0" : "=m" (lla) : "t" (a) : "st");
|
||||
asm volatile ("frndint ; fstl %0" : "=m" (ra) : "t" (a));
|
||||
asm volatile ("fldcw %0" : : "m" (fpuc));
|
||||
printf("(short)a = %d\n", wa);
|
||||
printf("(int)a = %d\n", ia);
|
||||
printf("(int64_t)a = %lld\n", lla);
|
||||
printf("rint(a) = %f\n", ra);
|
||||
}
|
||||
}
|
||||
|
||||
#define TEST(N) \
|
||||
asm("fld" #N : "=t" (a)); \
|
||||
printf("fld" #N "= %f\n", a);
|
||||
|
||||
void test_fconst(void)
|
||||
{
|
||||
double a;
|
||||
TEST(1);
|
||||
TEST(l2t);
|
||||
TEST(l2e);
|
||||
TEST(pi);
|
||||
TEST(lg2);
|
||||
TEST(ln2);
|
||||
TEST(z);
|
||||
}
|
||||
|
||||
void test_fbcd(double a)
|
||||
{
|
||||
unsigned short bcd[5];
|
||||
double b;
|
||||
|
||||
asm("fbstp %0" : "=m" (bcd[0]) : "t" (a) : "st");
|
||||
asm("fbld %1" : "=t" (b) : "m" (bcd[0]));
|
||||
printf("a=%f bcd=%04x%04x%04x%04x%04x b=%f\n",
|
||||
a, bcd[4], bcd[3], bcd[2], bcd[1], bcd[0], b);
|
||||
}
|
||||
|
||||
#define TEST_ENV(env, save, restore)\
|
||||
{\
|
||||
memset((env), 0xaa, sizeof(*(env)));\
|
||||
for(i=0;i<5;i++)\
|
||||
asm volatile ("fldl %0" : : "m" (dtab[i]));\
|
||||
asm(save " %0\n" : : "m" (*(env)));\
|
||||
asm(restore " %0\n": : "m" (*(env)));\
|
||||
for(i=0;i<5;i++)\
|
||||
asm volatile ("fstpl %0" : "=m" (rtab[i]));\
|
||||
for(i=0;i<5;i++)\
|
||||
printf("res[%d]=%f\n", i, rtab[i]);\
|
||||
printf("fpuc=%04x fpus=%04x fptag=%04x\n",\
|
||||
(env)->fpuc,\
|
||||
(env)->fpus & 0xff00,\
|
||||
(env)->fptag);\
|
||||
}
|
||||
|
||||
void test_fenv(void)
|
||||
{
|
||||
struct __attribute__((packed)) {
|
||||
uint16_t fpuc;
|
||||
uint16_t dummy1;
|
||||
uint16_t fpus;
|
||||
uint16_t dummy2;
|
||||
uint16_t fptag;
|
||||
uint16_t dummy3;
|
||||
uint32_t ignored[4];
|
||||
long double fpregs[8];
|
||||
} float_env32;
|
||||
struct __attribute__((packed)) {
|
||||
uint16_t fpuc;
|
||||
uint16_t fpus;
|
||||
uint16_t fptag;
|
||||
uint16_t ignored[4];
|
||||
long double fpregs[8];
|
||||
} float_env16;
|
||||
double dtab[8];
|
||||
double rtab[8];
|
||||
int i;
|
||||
|
||||
for(i=0;i<8;i++)
|
||||
dtab[i] = i + 1;
|
||||
|
||||
TEST_ENV(&float_env16, "data16/fnstenv", "data16/fldenv");
|
||||
TEST_ENV(&float_env16, "data16/fnsave", "data16/frstor");
|
||||
TEST_ENV(&float_env32, "fnstenv", "fldenv");
|
||||
TEST_ENV(&float_env32, "fnsave", "frstor");
|
||||
|
||||
/* test for ffree */
|
||||
for(i=0;i<5;i++)
|
||||
asm volatile ("fldl %0" : : "m" (dtab[i]));
|
||||
asm volatile("ffree %st(2)");
|
||||
asm volatile ("fnstenv %0\n" : : "m" (float_env32));
|
||||
asm volatile ("fninit");
|
||||
printf("fptag=%04x\n", float_env32.fptag);
|
||||
}
|
||||
|
||||
|
||||
#define TEST_FCMOV(a, b, eflags, CC)\
|
||||
{\
|
||||
double res;\
|
||||
asm("push %3\n"\
|
||||
"popf\n"\
|
||||
"fcmov" CC " %2, %0\n"\
|
||||
: "=t" (res)\
|
||||
: "0" (a), "u" (b), "g" (eflags));\
|
||||
printf("fcmov%s eflags=0x%04x-> %f\n", \
|
||||
CC, eflags, res);\
|
||||
}
|
||||
|
||||
void test_fcmov(void)
|
||||
{
|
||||
double a, b;
|
||||
int eflags, i;
|
||||
|
||||
a = 1.0;
|
||||
b = 2.0;
|
||||
for(i = 0; i < 4; i++) {
|
||||
eflags = 0;
|
||||
if (i & 1)
|
||||
eflags |= CC_C;
|
||||
if (i & 2)
|
||||
eflags |= CC_Z;
|
||||
TEST_FCMOV(a, b, eflags, "b");
|
||||
TEST_FCMOV(a, b, eflags, "e");
|
||||
TEST_FCMOV(a, b, eflags, "be");
|
||||
TEST_FCMOV(a, b, eflags, "nb");
|
||||
TEST_FCMOV(a, b, eflags, "ne");
|
||||
TEST_FCMOV(a, b, eflags, "nbe");
|
||||
}
|
||||
TEST_FCMOV(a, b, 0, "u");
|
||||
TEST_FCMOV(a, b, CC_P, "u");
|
||||
TEST_FCMOV(a, b, 0, "nu");
|
||||
TEST_FCMOV(a, b, CC_P, "nu");
|
||||
}
|
||||
|
||||
void test_floats(void)
|
||||
{
|
||||
test_fops(2, 3);
|
||||
test_fops(1.4, -5);
|
||||
test_fcmp(2, -1);
|
||||
test_fcmp(2, 2);
|
||||
test_fcmp(2, 3);
|
||||
test_fcvt(0.5);
|
||||
test_fcvt(-0.5);
|
||||
test_fcvt(1.0/7.0);
|
||||
test_fcvt(-1.0/9.0);
|
||||
test_fcvt(32768);
|
||||
test_fcvt(-1e20);
|
||||
test_fconst();
|
||||
}
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
test_floats();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
a=2.000000 b=3.000000 a+b=5.000000
|
||||
a=2.000000 b=3.000000 a-b=-1.000000
|
||||
a=2.000000 b=3.000000 a*b=6.000000
|
||||
a=2.000000 b=3.000000 a/b=0.666667
|
||||
a=2.000000 b=3.000000 fmod(a, b)=2.000000
|
||||
a=2.000000 sqrt(a)=1.414214
|
||||
a=2.000000 sin(a)=0.909297
|
||||
a=2.000000 cos(a)=-0.416147
|
||||
a=2.000000 tan(a)=-2.185040
|
||||
a=2.000000 log(a)=0.693147
|
||||
a=2.000000 exp(a)=7.389056
|
||||
a=2.000000 b=3.000000 atan2(a, b)=0.588003
|
||||
a=2.000000 asin(sin(a))=1.141593
|
||||
a=2.000000 acos(cos(a))=2.000000
|
||||
a=2.000000 atan(tan(a))=-1.141593
|
||||
a=1.400000 b=-5.000000 a+b=-3.600000
|
||||
a=1.400000 b=-5.000000 a-b=6.400000
|
||||
a=1.400000 b=-5.000000 a*b=-7.000000
|
||||
a=1.400000 b=-5.000000 a/b=-0.280000
|
||||
a=1.400000 b=-5.000000 fmod(a, b)=1.400000
|
||||
a=1.400000 sqrt(a)=1.183216
|
||||
a=1.400000 sin(a)=0.985450
|
||||
a=1.400000 cos(a)=0.169967
|
||||
a=1.400000 tan(a)=5.797884
|
||||
a=1.400000 log(a)=0.336472
|
||||
a=1.400000 exp(a)=4.055200
|
||||
a=1.400000 b=-5.000000 atan2(a, b)=2.868584
|
||||
a=1.400000 asin(sin(a))=1.400000
|
||||
a=1.400000 acos(cos(a))=1.400000
|
||||
a=1.400000 atan(tan(a))=1.400000
|
||||
(2.000000<-1.000000)=0
|
||||
(2.000000<=-1.000000)=0
|
||||
(2.000000==-1.000000)=0
|
||||
(2.000000>-1.000000)=1
|
||||
(2.000000<=-1.000000)=1
|
||||
fcomi(2.000000 -1.000000)=00000000
|
||||
(2.000000<2.000000)=0
|
||||
(2.000000<=2.000000)=1
|
||||
(2.000000==2.000000)=1
|
||||
(2.000000>2.000000)=0
|
||||
(2.000000<=2.000000)=1
|
||||
fcomi(2.000000 2.000000)=00000040
|
||||
(2.000000<3.000000)=1
|
||||
(2.000000<=3.000000)=1
|
||||
(2.000000==3.000000)=0
|
||||
(2.000000>3.000000)=0
|
||||
(2.000000<=3.000000)=0
|
||||
fcomi(2.000000 3.000000)=00000001
|
||||
(float)0.500000 = 0.500000
|
||||
(long double)0.500000 = 0.500000
|
||||
a=3fe0000000000000
|
||||
la=8000000000000000 3ffe
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(short)a = 1
|
||||
(int)a = 1
|
||||
(int64_t)a = 1
|
||||
rint(a) = 1.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(float)-0.500000 = -0.500000
|
||||
(long double)-0.500000 = -0.500000
|
||||
a=bfe0000000000000
|
||||
la=8000000000000000 bffe
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(short)a = -1
|
||||
(int)a = -1
|
||||
(int64_t)a = -1
|
||||
rint(a) = -1.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(float)0.142857 = 0.142857
|
||||
(long double)0.142857 = 0.142857
|
||||
a=3fc2492492492492
|
||||
la=9249249249249000 3ffc
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(short)a = 1
|
||||
(int)a = 1
|
||||
(int64_t)a = 1
|
||||
rint(a) = 1.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = 0.000000
|
||||
(float)-0.111111 = -0.111111
|
||||
(long double)-0.111111 = -0.111111
|
||||
a=bfbc71c71c71c71c
|
||||
la=e38e38e38e38e000 bffb
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(short)a = -1
|
||||
(int)a = -1
|
||||
(int64_t)a = -1
|
||||
rint(a) = -1.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(short)a = 0
|
||||
(int)a = 0
|
||||
(int64_t)a = 0
|
||||
rint(a) = -0.000000
|
||||
(float)32768.000000 = 32768.000000
|
||||
(long double)32768.000000 = 32768.000000
|
||||
a=40e0000000000000
|
||||
la=8000000000000000 400e
|
||||
(short)a = -32768
|
||||
(int)a = 32768
|
||||
(int64_t)a = 32768
|
||||
rint(a) = 32768.000000
|
||||
(short)a = -32768
|
||||
(int)a = 32768
|
||||
(int64_t)a = 32768
|
||||
rint(a) = 32768.000000
|
||||
(short)a = -32768
|
||||
(int)a = 32768
|
||||
(int64_t)a = 32768
|
||||
rint(a) = 32768.000000
|
||||
(short)a = -32768
|
||||
(int)a = 32768
|
||||
(int64_t)a = 32768
|
||||
rint(a) = 32768.000000
|
||||
(float)-100000000000000000000.000000 = -100000002004087734272.000000
|
||||
(long double)-100000000000000000000.000000 = -100000000000000000000.000000
|
||||
a=c415af1d78b58c40
|
||||
la=ad78ebc5ac620000 c041
|
||||
(short)a = -32768
|
||||
(int)a = -2147483648
|
||||
(int64_t)a = -9223372036854775808
|
||||
rint(a) = -100000000000000000000.000000
|
||||
(short)a = -32768
|
||||
(int)a = -2147483648
|
||||
(int64_t)a = -9223372036854775808
|
||||
rint(a) = -100000000000000000000.000000
|
||||
(short)a = -32768
|
||||
(int)a = -2147483648
|
||||
(int64_t)a = -9223372036854775808
|
||||
rint(a) = -100000000000000000000.000000
|
||||
(short)a = -32768
|
||||
(int)a = -2147483648
|
||||
(int64_t)a = -9223372036854775808
|
||||
rint(a) = -100000000000000000000.000000
|
||||
fld1= 1.000000
|
||||
fldl2t= 3.321928
|
||||
fldl2e= 1.442695
|
||||
fldpi= 3.141593
|
||||
fldlg2= 0.301030
|
||||
fldln2= 0.693147
|
||||
fldz= 0.000000
|
||||
@@ -0,0 +1,2 @@
|
||||
vgopts: -q
|
||||
prog: more_x86_fp
|
||||
@@ -0,0 +1,8 @@
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
at 0x........: fooble (...)
|
||||
by 0x........: main (pushfpopf_c.c:12)
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
at 0x........: fooble (...)
|
||||
by 0x........: main (pushfpopf_c.c:12)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
fooble: result is 22
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: pushfpopf
|
||||
stderr_filter: filter_pushfpopf
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
// in pushfpopf.s
|
||||
extern int fooble ( int, int );
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
int arr[2];
|
||||
arr[0] = 3;
|
||||
// arr[1] = 45;
|
||||
printf("fooble: result is %d\n", fooble(arr[0], arr[1]));
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
#include "tests/asm.h"
|
||||
|
||||
#if defined(VGO_linux) || defined(VGO_solaris)
|
||||
.version "01.01"
|
||||
#endif
|
||||
gcc2_compiled.:
|
||||
.text
|
||||
.align 4
|
||||
.globl VG_SYM_ASM(fooble)
|
||||
#if defined(VGO_linux) || defined(VGO_solaris)
|
||||
.type VG_SYM_ASM(fooble),@function
|
||||
#endif
|
||||
VG_SYM_ASM(fooble):
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
movl 8(%ebp), %eax
|
||||
|
||||
subl 12(%ebp), %eax
|
||||
# flags are now undef if either operand is
|
||||
# save possibly undef flags on stack
|
||||
pushfl
|
||||
|
||||
movl $0, %eax
|
||||
addl $0, %eax
|
||||
# flags are now definitely defined
|
||||
|
||||
popfl
|
||||
# resulting flag definedness depends on outcome of sub above
|
||||
# should override that created by 0 + 0 above
|
||||
# because Vex does an emulation-warning check on the popfl,
|
||||
# an error should be reported for the popfl
|
||||
|
||||
# now use the condition codes to generate a value
|
||||
# in a way which will cause undefinedness to get reported
|
||||
# (a second time)
|
||||
jz labelz
|
||||
movl $22, %eax
|
||||
jmp theend
|
||||
labelz:
|
||||
movl $33, %eax
|
||||
theend:
|
||||
popl %ebp
|
||||
ret
|
||||
.Lfe1:
|
||||
#if defined(VGO_linux) || defined(VGO_solaris)
|
||||
.size VG_SYM_ASM(fooble),.Lfe1-VG_SYM_ASM(fooble)
|
||||
#endif
|
||||
.ident "GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)"
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
/* Test case for http://bugs.kde.org/show_bug.cgi?id=157748 */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int arr[3];
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
/* eax points at arr[0] */
|
||||
__asm__ __volatile__(
|
||||
"movl %%esp,0(%%eax)\n\t"
|
||||
"pushfw\n\t"
|
||||
"movl %%esp,4(%%eax)\n\t"
|
||||
"popfw\n\t"
|
||||
"movl %%esp,8(%%eax)\n"
|
||||
: /*out*/ : /*in*/ "a"(&arr) : /*trash*/ "memory","cc"
|
||||
);
|
||||
|
||||
printf("%x %x %x\n", arr[0]-arr[0], arr[0]-arr[1], arr[0]-arr[2]);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
0 2 0
|
||||
@@ -0,0 +1,2 @@
|
||||
prog: pushfw_x86
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,62 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
unsigned int do32 ( unsigned int x )
|
||||
{
|
||||
unsigned int* y = malloc(sizeof(unsigned int));
|
||||
unsigned int* z = malloc(sizeof(unsigned int));
|
||||
unsigned int t;
|
||||
assert(y);
|
||||
assert(z);
|
||||
y[0] = x;
|
||||
__asm__ __volatile__(
|
||||
"pushl %0\n\t"
|
||||
"pushl %1\n\t"
|
||||
"popl %%ebx\n\t"
|
||||
"popl %%eax\n\t"
|
||||
"pushl 0(%%eax)\n\t"
|
||||
"popl 0(%%ebx)"
|
||||
: /*OUT*/
|
||||
: /*IN*/ "r"(y), "r"(z)
|
||||
: /*TRASH*/ "memory", "eax", "ebx"
|
||||
);
|
||||
t = z[0];
|
||||
free(y);
|
||||
free(z);
|
||||
return t;
|
||||
}
|
||||
|
||||
unsigned short do16 ( unsigned short x )
|
||||
{
|
||||
unsigned short* y = malloc(sizeof(unsigned short));
|
||||
unsigned short* z = malloc(sizeof(unsigned short));
|
||||
unsigned short t;
|
||||
assert(y);
|
||||
assert(z);
|
||||
y[0] = x;
|
||||
__asm__ __volatile__(
|
||||
"pushl %0\n\t"
|
||||
"pushl %1\n\t"
|
||||
"popl %%ebx\n\t"
|
||||
"popl %%eax\n\t"
|
||||
"pushw 0(%%eax)\n\t"
|
||||
"popw 0(%%ebx)"
|
||||
: /*OUT*/
|
||||
: /*IN*/ "r"(y), "r"(z)
|
||||
: /*TRASH*/ "memory", "eax", "ebx"
|
||||
);
|
||||
t = z[0];
|
||||
free(y);
|
||||
free(z);
|
||||
return t;
|
||||
}
|
||||
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
printf("do32: 0x%08X\n", do32(0xCafeBabe) );
|
||||
printf("do16: 0x%08X\n", (unsigned int)do16(0xfeBa) );
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
do32: 0xCAFEBABE
|
||||
do16: 0x0000FEBA
|
||||
@@ -0,0 +1,2 @@
|
||||
prog: pushpopmem
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,577 @@
|
||||
|
||||
sh-mem-vec128: config: little-endian, 32-bit word size
|
||||
|
||||
20537 136 171 75 38 63 139 23 5 110 66 421 194 86 232 115
|
||||
56 198 303 65 285 137 309 203 147 37 179 137 65 181 379 118
|
||||
91 235 54 135 110 40 362 74 146 108 159 174 313 106 292 271
|
||||
183 65 277 34 250 172 283 111 141 30 26 15 184 93 79 99
|
||||
75 89 153 157 9 113 189 58 90 31 81 79 133 132 61 113
|
||||
282 15 119 12 57 361 14 250 93 116 226 215 229 275 186 126
|
||||
209 371 84 74 93 159 286 179 84 112 60 137 116 117 394 217
|
||||
77 133 197 265 72 43 280 26 604 47 194 171 199 411 123 112
|
||||
281 26 47 64 236 89 223 86 68 125 47 391 18 171 124 110
|
||||
59 135 143 240 73 242 72 59 345 20 46 415 77 87 34 125
|
||||
152 85 107 117 334 183 8 131 63 70 27 238 6 181 71 108
|
||||
242 542 53 94 50 86 181 173 141 125 33 75 409 38 109 70
|
||||
52 179 48 94 212 60 330 150 147 26 462 307 88 171 85 76
|
||||
108 108 296 253 152 124 196 227 116 12 606 61 197 120 94 269
|
||||
121 38 37 167 138 92 172 234 138 67 96 19 346 10 56 241
|
||||
142 130 85 495 65 176 87 140 46 124 70 100 78 142 270 22165
|
||||
|
||||
160000 copies, 30739 d_aligned, 30741 s_aligned, 7092 both_aligned
|
||||
0 failures
|
||||
|
||||
Expect 2 x no error
|
||||
|
||||
Expect 2 x error
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes before a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
Invalid write of size 8
|
||||
...
|
||||
Address 0x........ is 1 bytes before a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
Expect 2 x no error
|
||||
|
||||
Expect 2 x error
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 79,985 bytes inside a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
Invalid write of size 8
|
||||
...
|
||||
Address 0x........ is 79,993 bytes inside a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 0 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dUddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 1 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddUddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 2 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddUddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 3 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 4 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 5 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 6 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 7 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 8 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 9 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 10 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 11 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 12 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 13 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 14 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 15 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 0 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddd
|
||||
|
||||
|
||||
------ PL Unaligned case with 0 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dUddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 1 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddUddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 2 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddUddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 3 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 4 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 5 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 6 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 7 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 8 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 9 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 10 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 11 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 12 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 13 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 14 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 15 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddd
|
||||
|
||||
|
||||
|
||||
HEAP SUMMARY:
|
||||
in use at exit: 0 bytes in 0 blocks
|
||||
total heap usage: 33 allocs, 33 frees, 82,048 bytes allocated
|
||||
|
||||
For a detailed leak analysis, rerun with: --leak-check=full
|
||||
|
||||
For counts of detected and suppressed errors, rerun with: -v
|
||||
Use --track-origins=yes to see where uninitialised values come from
|
||||
ERROR SUMMARY: 66 errors from 66 contexts (suppressed: 0 from 0)
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: sh-mem-vec128
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse
|
||||
args: -q
|
||||
vgopts: --partial-loads-ok=no
|
||||
@@ -0,0 +1,468 @@
|
||||
|
||||
sh-mem-vec128: config: little-endian, 32-bit word size
|
||||
|
||||
20537 136 171 75 38 63 139 23 5 110 66 421 194 86 232 115
|
||||
56 198 303 65 285 137 309 203 147 37 179 137 65 181 379 118
|
||||
91 235 54 135 110 40 362 74 146 108 159 174 313 106 292 271
|
||||
183 65 277 34 250 172 283 111 141 30 26 15 184 93 79 99
|
||||
75 89 153 157 9 113 189 58 90 31 81 79 133 132 61 113
|
||||
282 15 119 12 57 361 14 250 93 116 226 215 229 275 186 126
|
||||
209 371 84 74 93 159 286 179 84 112 60 137 116 117 394 217
|
||||
77 133 197 265 72 43 280 26 604 47 194 171 199 411 123 112
|
||||
281 26 47 64 236 89 223 86 68 125 47 391 18 171 124 110
|
||||
59 135 143 240 73 242 72 59 345 20 46 415 77 87 34 125
|
||||
152 85 107 117 334 183 8 131 63 70 27 238 6 181 71 108
|
||||
242 542 53 94 50 86 181 173 141 125 33 75 409 38 109 70
|
||||
52 179 48 94 212 60 330 150 147 26 462 307 88 171 85 76
|
||||
108 108 296 253 152 124 196 227 116 12 606 61 197 120 94 269
|
||||
121 38 37 167 138 92 172 234 138 67 96 19 346 10 56 241
|
||||
142 130 85 495 65 176 87 140 46 124 70 100 78 142 270 22165
|
||||
|
||||
160000 copies, 30739 d_aligned, 30741 s_aligned, 7092 both_aligned
|
||||
0 failures
|
||||
|
||||
Expect 2 x no error
|
||||
|
||||
Expect 2 x error
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes before a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
Invalid write of size 8
|
||||
...
|
||||
Address 0x........ is 1 bytes before a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
Expect 2 x no error
|
||||
|
||||
Expect 2 x error
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 79,985 bytes inside a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
Invalid write of size 8
|
||||
...
|
||||
Address 0x........ is 79,993 bytes inside a block of size 80,000 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 0 leading acc+def bytes ------
|
||||
|
||||
|
||||
UUdUUdUUdUUdUUdU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 1 leading acc+def bytes ------
|
||||
|
||||
|
||||
dUUdUUdUUdUUdUUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 2 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddUUdUUdUUdUUdUU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 3 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddUUdUUdUUdUUdU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 4 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddUUdUUdUUdUUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 5 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddUUdUUdUUdUU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 6 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddddUUdUUdUUdU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 7 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddddUUdUUdUUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 8 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddddddUUdUUdUU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 9 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddddddUUdUUdU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 10 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddddddddUUdUUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 11 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddddddddUUdUU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 12 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddddddddddUUdU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 13 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddddddddddUUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 14 leading acc+def bytes ------
|
||||
|
||||
|
||||
ddddddddddddddUU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Aligned case with 15 leading acc+def bytes ------
|
||||
|
||||
|
||||
dddddddddddddddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 0 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dUddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 1 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddUddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 2 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddUddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 3 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddUddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 4 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddUddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 5 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddUddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 6 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddUddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 7 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddUddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 8 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddUddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 9 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddUddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 10 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddUddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 11 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddUddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 12 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddUdd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 13 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
ddddddddddddddUd
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 14 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddU
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
...
|
||||
|
||||
|
||||
------ PL Unaligned case with 15 leading acc+def bytes ------
|
||||
|
||||
Invalid read of size 16
|
||||
...
|
||||
Address 0x........ is 1 bytes inside a block of size 64 alloc'd
|
||||
at 0x........: memalign (vg_replace_malloc.c:...)
|
||||
by 0x........: posix_memalign (vg_replace_malloc.c:...)
|
||||
...
|
||||
|
||||
|
||||
dddddddddddddddd
|
||||
|
||||
|
||||
|
||||
HEAP SUMMARY:
|
||||
in use at exit: 0 bytes in 0 blocks
|
||||
total heap usage: 33 allocs, 33 frees, 82,048 bytes allocated
|
||||
|
||||
For a detailed leak analysis, rerun with: --leak-check=full
|
||||
|
||||
For counts of detected and suppressed errors, rerun with: -v
|
||||
Use --track-origins=yes to see where uninitialised values come from
|
||||
ERROR SUMMARY: 51 errors from 51 contexts (suppressed: 0 from 0)
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: sh-mem-vec128
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse
|
||||
args: -q
|
||||
vgopts: --partial-loads-ok=yes
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
// Set up the 128-bit shadow memory test, by defining the
|
||||
// required vector-copy function, and then including the
|
||||
// template.
|
||||
|
||||
#define VECTOR_BYTES 16
|
||||
|
||||
static __attribute__((noinline))
|
||||
void vector_copy ( void* dst, void* src )
|
||||
{
|
||||
__asm__ __volatile__(
|
||||
"movups (%1), %%xmm7 ; movups %%xmm7, (%0)"
|
||||
: /*OUT*/ : /*IN*/ "r"(dst), "r"(src) : "memory","xmm7"
|
||||
);
|
||||
}
|
||||
|
||||
// Include the test body, which refers to the above function
|
||||
#include "../common/sh-mem-vec128.tmpl.c"
|
||||
@@ -0,0 +1,450 @@
|
||||
r addps 00571784494af2981ecac9199de37551 3bd127afa6e9c3690d6a95fac528657d 3bd127afa6e9c3690d6a95fac528657d
|
||||
r addps b244a056e51599fe2751bca75afbd2b6 382dccdbc2829139fd673a5c2148a319 2705ccdbe51599fefd673a5c5afbd2b6
|
||||
r addps e540bc6839c44b4a36ed3550df9899d8 979b83b70eb840d7856c13b8709950cb e540bc680eb840d736ed3550df9899d8
|
||||
r addps 5df605a7d127a7d31f195c53c95bf85f 3d6603cf39008e39979569ee6d5cbcd8 3d6603cfd127a7d3979569eed858f85f
|
||||
r addps 40ef72e29bf3afcf172ebcce16c982d1 6eb865944fab9d368adae4bb36b59768 40ef72e29bf3afcf172ebcce36b59768
|
||||
m addps a9c6e8f73d48698d0b635974bf639901 10985cc9e2b9c255b2683bbf21432695 a9c6e8f7e2b9c2550b63597421432695
|
||||
m addps 91fe3de1d5e7ca542a3193a81cbd8ee9 b3397de854eca15be4e02305a70c35f0 ab3c7de880efa15b2a3193a81d1135f0
|
||||
m addps f3807c7237dd6262f83fd8ce0401495f 6efeebb0fcde6db702921c5fc5455f0a f3807c7237dd626202921c5f0401495f
|
||||
m addps b4985c390f9bf2ac6aa872c5336e1ba8 e5f1216d47c3a621c1582e6bf6f3b5e9 e5f1216d0c9bf2acc1582e6bf6f3b5e9
|
||||
m addps 1870f7a36a759b08d466094bc52ab4ec 1cfdf65003ac2d2e35ecc3a818f7a873 1cfdf65003ac2d2ed466094b47f4a873
|
||||
r addss 77eca2665a8c4256d3eaa2736713076f 3f55e1b30e241fff59f1ebe418d2ba28 77eca2660e241fff59f1ebe418d2ba28
|
||||
r addss bc68bf9dda3685ee6fcaf40c7feb0484 3d83a1c16d0e812c2aea572c0f856fff 3d83a1c16d0e812c2aea572c0f856fff
|
||||
r addss 0ffd44c56f5bf82e3de842925d012f37 6b0c886e9a6f2728ff55ac7f3661970c 6b0c886e9a6f2728ff55ac7f3661970c
|
||||
r addss f4148b8c668ffa2bd27f73015eb678f0 6dfc0d09037a92aa8d0bf37d096a4357 fbf8898c037a92aa8d0bf37d096a4357
|
||||
r addss 50f94b806c444cdc23a9d13a3e4f30f5 473c0ac17342a347e9c893a36480e4c5 473c0ac17342a347e9c893a36480e4c5
|
||||
m addss 13c07bfc 68d59e108ccd1018845f04fa19ed086d 13c07bfc8ccd1018845f04fa19ed086d
|
||||
m addss 7db1178e 401df2e665e87126d6ae84b9dfb3fc8a 401df2e665e87126d6ae84b9dfb3fc8a
|
||||
m addss a9bf6c6c 389f65c305c2a505edfa5b770c3e56bc a9bf6c6c05c2a505edfa5b770c3e56bc
|
||||
m addss 6ecb050c 1422b7acb42ae1878fdd1cc5368e461a 1422b7acb42ae1878fdd1cc5368e461a
|
||||
m addss 1b359083 5fff99d7a9b4e28df5bdd1fa4c5ecf22 5fff99d7a9b4e28df5bdd1fa4c5ecf22
|
||||
r andnps 443f73f040ad0d2c61ae884291e3aaa7 30432cd563f36dc9b2ea89641387d1a5 443c5320000c00244104000280602a02
|
||||
r andnps ea668e9d02123abc7557571474b2685c b1632af828bac9f9424875f95ee85cdb 4a048405020032043517020420122004
|
||||
r andnps 5bf3e7541e5061cbe78942478ed82ba3 78a53c0cd84ecd8759d984472082c9f3 0352c35006102048a60042008e582200
|
||||
r andnps 26ba1f6b68e2ab9751e67b83c3a0ac0b 317c210968c8c152b2e205965f42f21b 06821e6200222a8541047a0180a00c00
|
||||
r andnps 356d361a1422a140b2f1924e57330304 e93afcc52c244e196b83aa0a7ef00f63 1445021a1002a1409070104401030004
|
||||
m andnps 5c14ef51466d1f2de1b67b62fc44eca9 d69e8d77b84a2bc2650c780eef9ca8da 080062004625142d80b2036010404421
|
||||
m andnps 1afa3f2cfac5cfee320edd02faa92f04 b6c0e377477491fe277a7c0a8fc576bd 083a1c08b8814e001004810070280900
|
||||
m andnps b6bafb70b121ff06a252bad487802d39 e0265bf2169d7db2145d50699c7aa2bc 1698a000a1208204a202aa9403800d01
|
||||
m andnps dcc8e315609cf752ecc5611ea9b4be77 c101739fda9df67ca9b70430db64c7c5 1cc88000200001024440610e20903832
|
||||
m andnps 997517f05b3160932e898407c40f1bcd 27660d13a72f64dac36c08476f0fdda5 981112e0581000012c81840080000248
|
||||
r andps 3c4569c5f2ee922b9e3e2c74dde43c0d 17fa87f9c4d4485011ac499ae9305710 144001c1c0c40000102c0810c9201400
|
||||
r andps 8e72280c8e55a6aed6cfa35d0b2e9d8a a49320e2b23ff24e04c4b3d2ac0fcc49 841220008215a20e04c4a350080e8c08
|
||||
r andps 099e4a1eb2bd2a8168a2fb893c18198b 132731bcf9e0fabbba0a45e4f4b07995 0106001cb0a02a812802418034101981
|
||||
r andps fa5e3012f06206a2b119265f14ac275e d2ea3c414c916736b17f0fd786bff6e3 d24a300040000622b119065704ac2642
|
||||
r andps 0d229ade3e5e83f16d77732599d5a031 aced2004c00ca23ec407819185c63c01 0c200004000c82304407010181c42001
|
||||
m andps 5ee4f7ba36cc3bfc8399502409f39c23 4f3da959f0ab492bb8dd94012f5cbd15 4e24a118308809288099100009509c01
|
||||
m andps 1874520a03f8a93b27dca0176f063932 2ce3dc39ba2460ef0f5099fa9aee16f6 086050080220202b075080120a061032
|
||||
m andps 4db77ec541924de22705705d7314e64c 71251614b28431bb4fb1f2f6ff13a4a3 41251604008001a2070170547310a400
|
||||
m andps 68e0faa0a3732e8fff15d0fcd7c83b5f 4af695624b6484efb3c370bce237bfcb 48e090200360048fb30150bcc2003b4b
|
||||
m andps 3801a9343e57b5c08bef30dac2ab313c 4429fb785b3f83c8d92844f328a421fc 0001a9301a1781c0892800d200a0213c
|
||||
r cmpeqps 4b70488e1571b565bd62fd201685e0a5 0b94b000eb9407e0077fdaf9c0d7f53a 00000000000000000000000000000000
|
||||
r cmpeqps ab5dddb90e3303c5bbd58dac4fe47615 86e09677057dd21680cdb5dd3e4d6621 00000000000000000000000000000000
|
||||
r cmpeqps 12637af13a9fb6c691c343dbd9abbb79 0081d96363852f4c78c03c3dce8fe4cc 00000000000000000000000000000000
|
||||
r cmpeqps 8cd5400befb17627594ed1d417a6e9e1 a669bb387c46e7e22e1d41dff508c8e9 00000000000000000000000000000000
|
||||
r cmpeqps 85e4afbee0434b859278479ecf7e963a 056adb4e223a22153d84f2699602c908 00000000000000000000000000000000
|
||||
m cmpeqps ce792ee54cea9bb41d7056ef7780c23e c9a4a7a1220f9f601725162024bfbc54 00000000000000000000000000000000
|
||||
m cmpeqps 65eb467435c59adc3617873f895bccaa 86076a2a2ab1381626170d209cd2b4dc 00000000000000000000000000000000
|
||||
m cmpeqps 946b13ef7bf503fb681ebd83c439bad3 47e097b0cca141e659f05e441b023562 00000000000000000000000000000000
|
||||
m cmpeqps 87e9d7cc92179f72ef45c780ae87e666 fae030693d3c42eeaf329813e5795953 00000000000000000000000000000000
|
||||
m cmpeqps cb39316250a3967f672fd7de2a8d07f3 ea9c946c11ba222c8341adf49f4397ff 00000000000000000000000000000000
|
||||
r cmpeqss c58484af3c382b7f925fed2c4e4ac994 61d51c4c6d365e1e6aaa3164ad00dd4a 000000006d365e1e6aaa3164ad00dd4a
|
||||
r cmpeqss 96eb210813af05a6f8ae09e355572620 ab0f011db4781cf689a66f0028275d88 00000000b4781cf689a66f0028275d88
|
||||
r cmpeqss cb05eb2f4bfab83f3330101f79164892 9176a863ad4121df66415e38c2a43fbb 00000000ad4121df66415e38c2a43fbb
|
||||
r cmpeqss 2fe3c3b9f8d3aec91ec973c6e01226b8 01bd13538decf5f9fdfe8e92bfa09a52 000000008decf5f9fdfe8e92bfa09a52
|
||||
r cmpeqss ef78e91e8fd5aea1f63a049f0cb41a41 4677a106e7b48241aa40f176c427e99c 00000000e7b48241aa40f176c427e99c
|
||||
m cmpeqss fe940736 9896fdb3e47ae1075727f251e447dbbb 00000000e47ae1075727f251e447dbbb
|
||||
m cmpeqss 40e145b6 1dcbf3fa837c83a75c6f941e16f101b0 00000000837c83a75c6f941e16f101b0
|
||||
m cmpeqss 085d8837 9a3af1d5585c20e055248ece232e5574 00000000585c20e055248ece232e5574
|
||||
m cmpeqss 8f75def2 05ca8a1db62c87a8471d2d4175174e7c 00000000b62c87a8471d2d4175174e7c
|
||||
m cmpeqss 8ea8ecfc 2584b8184328e11c714a7119f8afc782 000000004328e11c714a7119f8afc782
|
||||
r cmpleps c28bffa291993a8f3f76f2af6e814c51 5da4f5a995fd392de87075d3dd14f12e ffffffff00000000ffffffffffffffff
|
||||
r cmpleps 241bb873978d6bf70f39d016fe45918b fc48a71df177f17a99b62bfd6b813f43 ffffffff00000000ffffffff00000000
|
||||
r cmpleps 0e1a494a080077a704a85256a2e1685d 33ce5ff5619c0ae7300ce2d066e3d537 ffffffffffffffffffffffffffffffff
|
||||
r cmpleps d3825be401140fc5818fb07e8648113d 79d1e58f232e543a31ddf1f91cca1221 0000000000000000ffffffffffffffff
|
||||
r cmpleps 2a2ef7e0fecb42584c98827b374c2c82 a0cb622cd2ceff198273130837abb8f7 00000000ffffffffffffffffffffffff
|
||||
m cmpleps a37c7666df7e729c24bad0e050bfeefc 25d984bddb098247894cc01ca1a1bb62 ffffffff000000000000000000000000
|
||||
m cmpleps d1d01c8b9c1341152925de5044faf711 3a1ccdd9d5909f57bc17c41010d81ef3 ffffffff00000000ffffffffffffffff
|
||||
m cmpleps b03fa00d060ac8252bd8c5603ce29f7c 3d73f8728902c930c94446e63264142d 0000000000000000ffffffffffffffff
|
||||
m cmpleps b462ca495926d794af3dddbf87084756 62378fa7f2e29157f6fc5e0b1397c0e6 ffffffff0000000000000000ffffffff
|
||||
m cmpleps b3b5c47f310aa1069aa0defbcfe0ae93 3fa47a776e92e735e74a85ce1fa4a0d3 000000000000000000000000ffffffff
|
||||
r cmpless c7d401c0b9551d0ea018935f229e968d d400b1e4e39fdb8416aeee9b39a78086 ffffffffe39fdb8416aeee9b39a78086
|
||||
r cmpless 4fc1cd41f04de1098732c1cb4a77e288 e8a4dde1aef0fdf00c4e3a057e5d8d47 ffffffffaef0fdf00c4e3a057e5d8d47
|
||||
r cmpless 8c46e7988e7d462e5e41a7002202251c 0294c554cbe5869cf587dc480d1f8629 00000000cbe5869cf587dc480d1f8629
|
||||
r cmpless 921eb74371c7bb624bd13ece98f05f80 5729f05b35ff04101584ecd3f3428b01 0000000035ff04101584ecd3f3428b01
|
||||
r cmpless d6e206a1d5ed116cd34bdee2f8d5f1c9 7b9e47f54aa268b1114ee3f49cf61e86 ffffffff4aa268b1114ee3f49cf61e86
|
||||
m cmpless ea96b329 2b0dfbf1569378f2d9fa40cced239bee ffffffff569378f2d9fa40cced239bee
|
||||
m cmpless c66a8774 b08269bfca3fb2f858bc3c68c8fb2051 ffffffffca3fb2f858bc3c68c8fb2051
|
||||
m cmpless d5820bba 0fd84793ca3eccd27d1b4488cd1e1207 00000000ca3eccd27d1b4488cd1e1207
|
||||
m cmpless 6fe9ede2 2d2319072eaa0942c6b401c5390c860e 000000002eaa0942c6b401c5390c860e
|
||||
m cmpless 3209a6ad 86e6fb1a47fa9c107350c53bb01b4e47 0000000047fa9c107350c53bb01b4e47
|
||||
r cmpltps beea2d46daba91f9d97acd5af1f8a121 dc76ad89e13ce38b3c065dfedd4f9797 ffffffff00000000ffffffffffffffff
|
||||
r cmpltps ed001f2a6181d8f89f5591f734f65973 3cbd63dfe5f3fd995cb6e7820ad40980 ffffffff0000000000000000ffffffff
|
||||
r cmpltps 1a98a1fbe139b6b38d8c1c4f659a8c8c 44b32df8a3fd0c33fddfed0995528272 0000000000000000ffffffff00000000
|
||||
r cmpltps 63d562debdac643acf12acdaf77f00cd 321add9ca0c669086c12cda91404eb6a 00000000ffffffff0000000000000000
|
||||
r cmpltps 43ba73d9bb857b7bf2bae3edc020e073 a194a16fbf98cba656c14a5a7a068d47 00000000ffffffff00000000ffffffff
|
||||
m cmpltps 5b88a471a327cba18462b865cbab7f2a 982944d4fe4df244e235c1c0f2d6b39d ffffffff00000000ffffffffffffffff
|
||||
m cmpltps dcaa30b3bac2fdb4caa1bca94f08ec2d 9ee5a6950c712244ec18a76824dd624a 00000000000000000000000000000000
|
||||
m cmpltps 9e332830a3e9fc4c280f946749963a31 f290cac3c939c409bbd355dd4a4f3658 ffffffffffffffffffffffff00000000
|
||||
m cmpltps dde45dafe2072117ec419fb74f914f32 8fad3fe379d1f1025eb9ecf4b826d785 ffffffffffffffffffffffffffffffff
|
||||
m cmpltps 356000d65c6623a3c3a79e8f54137511 d39ff75dc143207d40feec64223d4d71 00000000000000000000000000000000
|
||||
r cmpltss 7aa74277a57a2aa92db335c49d4e0199 55cfd90b91d12d4cd06d64fd9992162b ffffffff91d12d4cd06d64fd9992162b
|
||||
r cmpltss a1e8d0578a40499553cb098a9ef4bc5c ec1602e7228965816f8eb4959221b122 ffffffff228965816f8eb4959221b122
|
||||
r cmpltss c365b2053440132e3d19070df9aaa6f9 690443a97a1ee8746c40247197544971 ffffffff7a1ee8746c40247197544971
|
||||
r cmpltss be005865c8038243d94e3183e3c9478e c71c2fd5ddbacc93d3d5d568fc2386d8 ffffffffddbacc93d3d5d568fc2386d8
|
||||
r cmpltss cd7c9440cbf6ef8372fee603f08d8919 64bfb5d2f0698b2c12804730756b70f5 fffffffff0698b2c12804730756b70f5
|
||||
m cmpltss d8c4a53f 8f7b943b2061117db69be783140fb379 ffffffff2061117db69be783140fb379
|
||||
m cmpltss 97875c66 4982fe3244b3fcf9263cce57fe80ebdd ffffffff44b3fcf9263cce57fe80ebdd
|
||||
m cmpltss cec6b0bd a843506d582c502c801513b7de4ebe1d 00000000582c502c801513b7de4ebe1d
|
||||
m cmpltss ca47b229 551bc293efedead4556b3f05b71fc8b0 ffffffffefedead4556b3f05b71fc8b0
|
||||
m cmpltss 4558d544 b805bc8f9e839073db99d9c43b391969 ffffffff9e839073db99d9c43b391969
|
||||
r cmpneqps e751bd824f7e331aa68f0b49dcea370d ac3c3f6204e41066cb413a4f04e2804f ffffffffffffffffffffffffffffffff
|
||||
r cmpneqps 45bd8db86b1097baae87e918609f0b0b 2302ddf4d677f5f8d8ab4e82afe45f9d ffffffffffffffffffffffffffffffff
|
||||
r cmpneqps 6f5de890c283f539f8eab6132006a671 286165f63e078ab299d3dd219fa3ec0b ffffffffffffffffffffffffffffffff
|
||||
r cmpneqps cafc061682c88d0ef751399a5ae2db05 3fc22e1787252ea9a0f4d12b328317fe ffffffffffffffffffffffffffffffff
|
||||
r cmpneqps 1b45813b37b3ff9080389beaa9d5d96e 4d71f0e55e44a3d4e328717e23c531bd ffffffffffffffffffffffffffffffff
|
||||
m cmpneqps f2c8b38122f0c866dd5d4e0c811623dc 86c251cbcdf64df6c8f865220a623131 ffffffffffffffffffffffffffffffff
|
||||
m cmpneqps 3d332ad9d9d2e77802601e18949a60fe 8eddcd779023d75563cd7e40d9ebd3b6 ffffffffffffffffffffffffffffffff
|
||||
m cmpneqps 2d6e6298be680e29f15942898694a3b7 1ae2b0cc2ead5ca446d13124d3b31042 ffffffffffffffffffffffffffffffff
|
||||
m cmpneqps 47e4b36e1c459c904082a25db267dc6d 6dfa1138b3e7febac4fe248b15dc98fe ffffffffffffffffffffffffffffffff
|
||||
m cmpneqps 70dfd5eaa0db53a3e2f68671d5545c68 2c31690b8a033d4d943061141b697dee ffffffffffffffffffffffffffffffff
|
||||
r cmpneqss 5b708f738213faf3c81f4f3ec13c2ef9 1d66995c105ecc4c14f57558143a429c ffffffff105ecc4c14f57558143a429c
|
||||
r cmpneqss 5f82be7ec60a7524d667b96644187be7 69d6defe288a805b36133a81bcf63325 ffffffff288a805b36133a81bcf63325
|
||||
r cmpneqss fc128d1be2bb4f369283c5cd409f975c 50686040b3cb87d1b897716627a8162d ffffffffb3cb87d1b897716627a8162d
|
||||
r cmpneqss 57aaf518c3d8885e30cdfd8fb35310e1 16453992bd740487ee7dc0c772749ddc ffffffffbd740487ee7dc0c772749ddc
|
||||
r cmpneqss f5b44e24b7f381b5467f48acf898d7db 6078e143b2b675318c9f3141195bd737 ffffffffb2b675318c9f3141195bd737
|
||||
m cmpneqss db3877cb b97c51cd687ff92fc7b3f102ccb03d91 ffffffff687ff92fc7b3f102ccb03d91
|
||||
m cmpneqss ef3319a0 d9d5416046e0da2d64e00a85e82b1682 ffffffff46e0da2d64e00a85e82b1682
|
||||
m cmpneqss be705933 b460795f4de78a6fea7d04e2c6809f9e ffffffff4de78a6fea7d04e2c6809f9e
|
||||
m cmpneqss c26cd295 f3c209ab619e06bbf1322d318714419f ffffffff619e06bbf1322d318714419f
|
||||
m cmpneqss 653d784a 7c4a292a4f638939fd8c8a2c9fa1effc ffffffff4f638939fd8c8a2c9fa1effc
|
||||
r cmpnleps cd8e7f927d6a3220965ad7b8486f885a 36ac08653a55fa978b1d76e34832ff38 ffffffff000000000000000000000000
|
||||
r cmpnleps 5f77a3d46afc570d5e1ce8ff52e6cb0f dac368a64846d0b456d8ce062846628f ffffffff00000000ffffffff00000000
|
||||
r cmpnleps 41c5f41aedbdde8af6947552be39eb18 285aad325eb896a0fa5488ed8a7a5fe9 ffffffff000000000000000000000000
|
||||
r cmpnleps 9f69b3da79468ff69c854f7610d24025 6b0334200ee7345cd5f595fc15d86f96 ffffffffffffffff0000000000000000
|
||||
r cmpnleps 0537816be3139490ea92a6132dfd83c3 5031c0664eedf3c4a2fd447ccc4a6ac4 0000000000000000ffffffff00000000
|
||||
m cmpnleps 296a1cfe71333b7d7d221529425ec6a9 61e15e03607e7475df3c0bb05ae3cc60 ffffffff0000000000000000ffffffff
|
||||
m cmpnleps 728f777f577c8e33711f8ce0bc3f092e fffaabb984c118a5d6e66fb13a8f944c 0000000000000000ffffffffffffffff
|
||||
m cmpnleps fced0ec35b7fa8b1d696bcd2d277bfae 8bf3288243f7c9ff8dd3215ed2ecb3b5 ffffffffffffffffffffffff00000000
|
||||
m cmpnleps 151440e0137772f60aea976528125f79 1120f637f31b2e3f1e25d3de88c462a8 ffffffffffffffff0000000000000000
|
||||
m cmpnleps 6779cece727d35e1c85c6ce0c2f9c2bc ffb3948d4706520608df95371ec23a16 ffffffffffffffffffffffffffffffff
|
||||
r cmpnless 20bfe51a54749bd226e3d74fbb6f32cc f97bbb7250bc3155de659a54f53737d4 ffffffff50bc3155de659a54f53737d4
|
||||
r cmpnless a23527558ffed200b5f46bede238a379 ac52f197bb08414f6f020c19e060cf1d 00000000bb08414f6f020c19e060cf1d
|
||||
r cmpnless 10e9fc96cc2021d052b57fb8776547ab e5c2b049da7e366a569924029b7196dc ffffffffda7e366a569924029b7196dc
|
||||
r cmpnless 578d65113f340f60f8a7a635c02234d1 b01e185d011ab864b14e95358c36c51d ffffffff011ab864b14e95358c36c51d
|
||||
r cmpnless c5b4c1de7e7486af052dcfcc6179e439 7b98a98ae4b6cfddfb236dba7658f5d1 ffffffffe4b6cfddfb236dba7658f5d1
|
||||
m cmpnless 17230d9f 04cfd1f37cfbcd9b358a4ac35e553013 000000007cfbcd9b358a4ac35e553013
|
||||
m cmpnless 92b8c022 27e744d3235cdf763539b7a62232b627 00000000235cdf763539b7a62232b627
|
||||
m cmpnless cf325c4a 3395762f27c097a75f39aeb459bc4017 0000000027c097a75f39aeb459bc4017
|
||||
m cmpnless 0ba58f61 60a5da31b4d1f8eaa6328b8cf898a98d 00000000b4d1f8eaa6328b8cf898a98d
|
||||
m cmpnless 55aab1c1 0d785fa52162f9dd936274c84d4dcb34 ffffffff2162f9dd936274c84d4dcb34
|
||||
r cmpnltps 758817a709c58c8ab6d6be70d26145fc 2a8ed76e2c33e07f68e578217be1b81a ffffffffffffffff00000000ffffffff
|
||||
r cmpnltps 6754a2513535faba739dc6e9689b418c 5aa490153647d21797b59c872733cad7 00000000ffffffffffffffff00000000
|
||||
r cmpnltps 431303f0c55e989a66849e9abbd9558b e401acefae21da161ce94dd64a85092a ffffffffffffffff00000000ffffffff
|
||||
r cmpnltps 7c5f03e2f70438ef13f5a03218ade00f 5dde15fcf123e8e29e8b065b5108f5cb 00000000ffffffffffffffff00000000
|
||||
r cmpnltps e7b2ca6565ca09615f3c83402b8aa310 ba56121abb904dc320869d4407d06f50 0000000000000000ffffffffffffffff
|
||||
m cmpnltps 872c457d93097d7e27f20ddc379c2594 b967e1980e319b758e82613101c3bf63 0000000000000000ffffffffffffffff
|
||||
m cmpnltps 4d5b3a7d86204d6ab14fd030d0a5ba78 85b92f7a4d9ce09445d3b155068ab4c0 0000000000000000ffffffff00000000
|
||||
m cmpnltps 87096ba97fb48a34a947fa647965d36c 42c1fee9df4f280289184dd907f163bc 00000000000000000000000000000000
|
||||
m cmpnltps c76ec000db292744b6e602c69c0ff124 427af7a4e16a24e6bd1c6dcc2fec0cce 00000000000000000000000000000000
|
||||
m cmpnltps 03a7816056c172e0db15c28508b6f538 3bc02048cff1e348a78aa81e0d4c504e 00000000ffffffffffffffffffffffff
|
||||
r cmpnltss 414ce45585c7d70c6aecf99c8cc32e70 4ee64b2102aba7536e38186eb26b4443 0000000002aba7536e38186eb26b4443
|
||||
r cmpnltss c9b80a2a40adcffb8cacb7f4f9e6094c 2200c58d9bc9baf4f0c5f9af1498abf8 000000009bc9baf4f0c5f9af1498abf8
|
||||
r cmpnltss a781bb039c46fdbaf0169ab6ff259fd8 fe09987d1ee6285e177efd490a1e24c3 ffffffff1ee6285e177efd490a1e24c3
|
||||
r cmpnltss 0ffe80019715f1d1dc53bc50add412eb 35fb6db2a924a2b6462f5c4ac0efef1d 00000000a924a2b6462f5c4ac0efef1d
|
||||
r cmpnltss 976d40218b7d9ca4f46f95106e25e23b 7db14ac8b78637034382b0a1c3dead5c 00000000b78637034382b0a1c3dead5c
|
||||
m cmpnltss ca530a48 32e6464337bf4d7c3c53fd240e2af05e 0000000037bf4d7c3c53fd240e2af05e
|
||||
m cmpnltss 331fd8f6 3cf369aef49be60969a03e6235653824 fffffffff49be60969a03e6235653824
|
||||
m cmpnltss 4f7fbc66 9615776bc1bd624225b531bdae44ca53 ffffffffc1bd624225b531bdae44ca53
|
||||
m cmpnltss 14d95b09 00fc27db671412a878bbe409560cfb1a 00000000671412a878bbe409560cfb1a
|
||||
m cmpnltss 8eeab9dd a6bc667e825f4ffb04fca550cb4ef1c0 ffffffff825f4ffb04fca550cb4ef1c0
|
||||
r cmpordps 362c5684f670e2a6d701c82a9ce9d2d5 e625c023baab3f09675e3b94cdd99761 ffffffffffffffffffffffffffffffff
|
||||
r cmpordps e6e9423d8527ce837ffe80a90dc68da5 50326ccf57d84320819fc44b471361c4 ffffffffffffffffffffffffffffffff
|
||||
r cmpordps 8e6312491f427f7cf88382ba2cad200d bc09e18720acc9022764afbe418aefdf ffffffffffffffffffffffffffffffff
|
||||
r cmpordps 6b5f976f472c4d408f2231768ed9730c 870d10b0b8324afec3df7aa170194b4f ffffffffffffffffffffffffffffffff
|
||||
r cmpordps 1a7d0156e22ff15df04f4cd12863ce80 6c7f4b9125559e432322078ce87bdd94 ffffffffffffffffffffffffffffffff
|
||||
m cmpordps c2cc5adb3e99a00d380a45e769b3c4bf 9742e18334768342275bf3a34e46db27 ffffffffffffffffffffffffffffffff
|
||||
m cmpordps d59ca39bf61204d100c21186422ed2e3 3e0e275ee20a7c3da279a8a2b45da1a1 ffffffffffffffffffffffffffffffff
|
||||
m cmpordps 83ee0fdef26bc259eab69558b31e7cb7 cc26252cf1d8b47d2dbc4a657063896b ffffffffffffffffffffffffffffffff
|
||||
m cmpordps 26248c0bd5ae53f363175313715dccda 5daa8a16c4a86410f4151a62f5f25be4 ffffffffffffffffffffffffffffffff
|
||||
m cmpordps 7d806d67a5c590ce39f92a4e90a72ac9 6f9f6620202624e58458b9f01884414a ffffffffffffffffffffffffffffffff
|
||||
r cmpordss dde52c312bdcedcbc83727450e74c2bd 800d6a99598c87476e7495dc7311d38f ffffffff598c87476e7495dc7311d38f
|
||||
r cmpordss e441aa116735176f0f45c5786afcc73a 404c3eb8921dd02006b87bf3a819cdfa ffffffff921dd02006b87bf3a819cdfa
|
||||
r cmpordss 20531165bb7b5c6004f3537e233799a1 7f8e2242441f313646d9a8464b47c1ae ffffffff441f313646d9a8464b47c1ae
|
||||
r cmpordss 8fa0f2b36ad8d20eb395f2308b1fdfae 5af5c55fd25ce1975aca5a4acf367809 ffffffffd25ce1975aca5a4acf367809
|
||||
r cmpordss 8b883e641858f3c58a5d2143598fa302 4d843814027f7932ce5b335809611949 ffffffff027f7932ce5b335809611949
|
||||
m cmpordss afa6a92d d35045bccce497b6545ec34d9f424e1b ffffffffcce497b6545ec34d9f424e1b
|
||||
m cmpordss 377fa52e 2450a2abba1aac53fe49a1158218b7e3 ffffffffba1aac53fe49a1158218b7e3
|
||||
m cmpordss d6b2bd03 ec0dbb47d2b2a0d408d88b0f685ebbe2 ffffffffd2b2a0d408d88b0f685ebbe2
|
||||
m cmpordss 8c99cf0f c8b9d6f33159b52ca61149ce8e328c35 ffffffff3159b52ca61149ce8e328c35
|
||||
m cmpordss 1c8e36a6 69977f95cc1dadcd078bb63bb5516510 ffffffffcc1dadcd078bb63bb5516510
|
||||
r cmpunordps 063ef4fc458c90f09069eacbbaf216ce 3d8553f21da663852dd63dacb73b26bb 00000000000000000000000000000000
|
||||
r cmpunordps 8985e4dc1fec23fd61acc865a4999b2f 69ae5858c57784d72462a4a56fedd38e 00000000000000000000000000000000
|
||||
r cmpunordps ea758dbdde5936c235bdf1fb240d9d40 95c2d26d0c4f3a08eff045b9285843a9 00000000000000000000000000000000
|
||||
r cmpunordps ad77484ccf632853a0d64f8b96b20e65 64cd3b815f6105cf435927875c7f8710 00000000000000000000000000000000
|
||||
r cmpunordps b6d6cc199e7fbaa9971329f5b8c93ee7 dcb86cc289bfc5c03459b48ee9440faa 00000000000000000000000000000000
|
||||
m cmpunordps 8654823e03440ab12db2d673a83c440f 4cbc339158fe0d9a6e6c27f6a575ddeb 00000000000000000000000000000000
|
||||
m cmpunordps 8d89a612184b2dab443e42ed525817df 1135f4046914a1dcd9be542ddabafc78 00000000000000000000000000000000
|
||||
m cmpunordps ace2198d65113dfc4604bf7b93e6056d 0a2be9a09dd15606eec2161933780c74 00000000000000000000000000000000
|
||||
m cmpunordps 866952ff54caba59e9de56bbe9e81fbf 9c674973222a6e8e20133718ed73dca7 00000000000000000000000000000000
|
||||
m cmpunordps 21092b95b387855b41866e2b2f40d6be 8b95ae6c84f089ca442bdf68a54e9eb5 00000000000000000000000000000000
|
||||
r cmpunordss fd400f59aed6a6f28e659728578ae227 b63384603388cb2c78b80d47f3abbb2e 000000003388cb2c78b80d47f3abbb2e
|
||||
r cmpunordss 74d1c6e9ef6f271b94fb46575f8b9862 c66956712184514672ba2d308909f0e7 000000002184514672ba2d308909f0e7
|
||||
r cmpunordss d7938aaaf12dcd3c4a0836d37a9211ad 225332a2cbe051bf2ea7bcc5dc9b6d87 00000000cbe051bf2ea7bcc5dc9b6d87
|
||||
r cmpunordss 69b0750bc362b72d03870f5bc5c2fd2f 2fbc53035d8f0b0f1f188165272004d5 000000005d8f0b0f1f188165272004d5
|
||||
r cmpunordss ce34ff5acf4166a27551da8cbb1e6eed b24f50816364208b1a89a54f083de477 000000006364208b1a89a54f083de477
|
||||
m cmpunordss c559ec8d 0c08ffc7e4ddbb33b422ffe63a89d2cf 00000000e4ddbb33b422ffe63a89d2cf
|
||||
m cmpunordss e128bbc3 149f00fce871c8b6082ece6f87f8b05e 00000000e871c8b6082ece6f87f8b05e
|
||||
m cmpunordss cc21d86e 61b28c5adc2722b3a1cb4dbb5f02f86e 00000000dc2722b3a1cb4dbb5f02f86e
|
||||
m cmpunordss 4a0b0597 24721bf747ca0520511d628c36c08057 0000000047ca0520511d628c36c08057
|
||||
m cmpunordss e93ff371 a5b2e2a9ecf4008dad243ef92717c06a 00000000ecf4008dad243ef92717c06a
|
||||
r comiss 1d039e4e050b2051a79be181f272b5d9 9cba30ee6ed75f66e513db5b3c2d4194 9cba30ee6ed75f66e513db5b3c2d4194
|
||||
r comiss 49662d8957554055317b6037cd37da2f f2ba097b025585951aaabd0f9eb6ea56 f2ba097b025585951aaabd0f9eb6ea56
|
||||
r comiss 6e5a6ea0003020b8e52c0f3f7b2c6918 fb45aa0bbe995943e2ff17ae54921b3b fb45aa0bbe995943e2ff17ae54921b3b
|
||||
r comiss d970c4a994d8a87a1f12e202a25adbe4 248e9553577ce10fba13f83e236c6c32 248e9553577ce10fba13f83e236c6c32
|
||||
r comiss 361bed9a0866207a9d6f27c444ae08c1 38a8a9ece1ba88777fc9d2a530ced509 38a8a9ece1ba88777fc9d2a530ced509
|
||||
m comiss 974975f3 91ad0c49afd632747a6490adc8f028bc 91ad0c49afd632747a6490adc8f028bc
|
||||
m comiss fa8fb278 d4b466968b2536a9d1541aac585a9f6e d4b466968b2536a9d1541aac585a9f6e
|
||||
m comiss a4056dec 200711f476b4b5f21b3f0fe847f25006 200711f476b4b5f21b3f0fe847f25006
|
||||
m comiss 465a1cf6 e3cc07ac97b1449492fbe66d95b33709 e3cc07ac97b1449492fbe66d95b33709
|
||||
m comiss 6e2827f7 ba2a0750cc5731db0a5623ef245b161d ba2a0750cc5731db0a5623ef245b161d
|
||||
r divps a243bdeb3ccc0e27e8d845b20d14bddb 1195bbb5028a7e7298c3bba7a1276f65 9db97d090000807ff8f3f23472e621c9
|
||||
r divps 53e9b07d7ad5d6b2e0175e473ea1aa76 d1b9c96387230ffd842f0eb902a8e734 31f491250000807f97e423b11eb70200
|
||||
r divps 82bc610379fbbf52b380c26298652f36 a0fe43e4f885c7f48ba888a166fb2df0 000080ff1e0785e1ef9e05805cef7df9
|
||||
r divps 0237fab9d5e0f9b0445e2793c9d20c12 727d71150ff1f5a0b21b018e99322030 cc12f79a8af77b2f9a7a453a2c9c915d
|
||||
r divps 09b302c08b071550d9dca648dc3a61e1 9c32fdb6e98b4b265e50b28ec941016a e6f77736fed2ae15c3c8888564ea12c8
|
||||
m divps cd746e859a0a81ad7a85f7b79241e6ef 2c6c6216f8d2049a1604b8cf3fd1b059 b91473d08dc0032cba513e57249644a9
|
||||
m divps 3ce99085a05e4803d8b5c3af7830395d 5e7c6298d88315d3ffc03557bda7d811 140e4852000080ff84beede600000000
|
||||
m divps d1b6f64f2a328e3e6b2b8d75f9aab031 f4ddac06473efa23f9dc56ee83b11b7f 06000000b342e1249ad142b80000807f
|
||||
m divps 83f6e8c2f2c9a3a635d22e37e2c02e01 a26a47fec205c390c801b3831ec118f9 e422db7aae6898299510038c000080ff
|
||||
m divps a4a4109d1646365f9c74df055f65f142 7edd9cff25bae00091bb45e47b88d0b7 7edddcff00000000000080ff25265db4
|
||||
r divss fbd27466ae20223bd87365c0e59aa4ce 91dcff908da766e2891e079295872f79 000000808da766e2891e079295872f79
|
||||
r divss eec1f674f8d9bae58274caa609695436 e2ec04945ec39d18554fed2f087c2100 000000805ec39d18554fed2f087c2100
|
||||
r divss 8c07ac4500673787d3e98d03f44700c4 af862a7c56a000db4a174ed45c5d85b6 47c3fd7556a000db4a174ed45c5d85b6
|
||||
r divss 69dd7fd9222e8b8671dc272612672a30 ac8379e6f2429f342c21c36e1cfbfdf0 67a5794cf2429f342c21c36e1cfbfdf0
|
||||
r divss 7a5db50e1b7006295e37713e30dcb20f ef9f5a500f89eb0820f745cd360987e5 0000807f0f89eb0820f745cd360987e5
|
||||
m divss 5bb97329 1283f9a2084f589601c6a25a7a98d7d8 2c0a03b9084f589601c6a25a7a98d7d8
|
||||
m divss 1cf5281c e8c9fe292265ed32714ba356e8295235 4f06414d2265ed32714ba356e8295235
|
||||
m divss d6077e35 b0923272069fb73c4c4afc2e2ad0dbda 18f5337c069fb73c4c4afc2e2ad0dbda
|
||||
m divss bb16e6ab 250edf64c3121fa3a53edc8974cb6eb5 a52c78f8c3121fa3a53edc8974cb6eb5
|
||||
m divss 9d8a016b fabf482e4014df3eb2ad7971bf0e2273 725cc6024014df3eb2ad7971bf0e2273
|
||||
r maxps 694c325536efe9b820c3582480c3d431 9841f4d69572feabf7dfc50657b2d8f7 694c32559572feab20c3582480c3d431
|
||||
r maxps bfa72b0dd661db94779734d2d571596d 11d7f319c37d2651dad3e9f3e7d1b8c5 11d7f319c37d2651779734d2d571596d
|
||||
r maxps 6922f97e23430bdc0b26dcc88c04bddf 093acc6ee1db68b1d41d0ef2cba78689 6922f97ee1db68b10b26dcc8cba78689
|
||||
r maxps 0660cd5004dd301c89e310ff9c964a67 3daccf1af3769ef9b1d0149918f0a9c2 0660cd5004dd301cb1d014999c964a67
|
||||
r maxps 90e43709bb5b64c5ff1ef14d5721a8c2 c74eaf455e17ff399fde3d5e4446ebcd c74eaf455e17ff399fde3d5e5721a8c2
|
||||
m maxps 6552b48afcd4c8c5bdaa99281af5517e 64102710efc71e23d70cff677380df8f 64102710efc71e23d70cff671af5517e
|
||||
m maxps 2063a8595d642710e5cd5775218c4d06 4027eeaaa30c3867dfbe1be6046d594c 2063a859a30c3867e5cd5775046d594c
|
||||
m maxps f1f9cfb1c67f7a0dbcfd6e4c94140f7c 3f4b3cff3bf4e99e4427853e7e83dd59 f1f9cfb1c67f7a0dbcfd6e4c94140f7c
|
||||
m maxps 955579d93b0e98ec0f4fbf428945fe5e de7f22147d29cbb69119ddc8b73c94f3 de7f22147d29cbb60f4fbf428945fe5e
|
||||
m maxps 289b57f722dcb9b90ab38acf73bbe40b f9a511d18d37d67fb34825b8e2f40739 f9a511d122dcb9b9b34825b8e2f40739
|
||||
r maxss ce80d8fcef8761a7f745bc2695e31d2a aff6c65167027b6f83f35ba02f631450 aff6c65167027b6f83f35ba02f631450
|
||||
r maxss f8b2a93c896527bc09836409c32620a3 3b3773a7be7bbd88408401aea77999f7 f8b2a93cbe7bbd88408401aea77999f7
|
||||
r maxss 74be14169dfa3f2df6543c36c1b6b865 833eff3012d06e8cf1834d0e21ef01e5 833eff3012d06e8cf1834d0e21ef01e5
|
||||
r maxss 9e0609f2d15121482becc564436eee0c 040c7cf127aa286b24c4df1771417559 040c7cf127aa286b24c4df1771417559
|
||||
r maxss 33ccda152a54a73c725ce02a5f082a18 988558d22294e3f1c3f9b9ffcbc97b71 33ccda152294e3f1c3f9b9ffcbc97b71
|
||||
m maxss bf299b91 503535a70bcf0917fa97cdfe881f34e7 bf299b910bcf0917fa97cdfe881f34e7
|
||||
m maxss 3b231c91 056b6d98b4e8ad97d1349eb071402dae 3b231c91b4e8ad97d1349eb071402dae
|
||||
m maxss 5d98ff0a dc6a24a7524545677d15ae237f995707 5d98ff0a524545677d15ae237f995707
|
||||
m maxss a94a7c10 b68eb6a80ee63651833d6ca80e6a9634 a94a7c100ee63651833d6ca80e6a9634
|
||||
m maxss 6f688b4c 90ad1195711329c671a3a690837a9fb7 6f688b4c711329c671a3a690837a9fb7
|
||||
r minps 76d99b7dbcfd57a590b52bdd6773ffe2 e3d4af4f3702e1bef00e38c31812f0d0 e3d4af4f3702e1be90b52bdd6773ffe2
|
||||
r minps dc20864159b943059a8d4647f5a78b7e 741fcb28bc0ad06a50432a8b3d1d4956 741fcb2859b9430550432a8b3d1d4956
|
||||
r minps c519a25447b32fd25b0eb54b95aba6cf c902f6a06bebf44c5af37eadff8397c8 c902f6a047b32fd25af37ead95aba6cf
|
||||
r minps 1410a844345fda04c752c0c804c29f1c e66408e413b92ef920da9ca73928490e e66408e413b92ef9c752c0c83928490e
|
||||
r minps 0f2eb0812b0d67703353117c5e0e288c 30123a04df66bfe818924cd929cd30ee 0f2eb081df66bfe818924cd929cd30ee
|
||||
m minps cfd70571d27e1279d812de744225bc08 597e325799f254cd54ecaf0721925024 597e325799f254cd54ecaf074225bc08
|
||||
m minps 53681ab05c745b456f7facb5f1539302 f8eb09f64b1f83b23ed702e6283089cc f8eb09f64b1f83b23ed702e6283089cc
|
||||
m minps b3c61485a9fd32bec8a0b448d494b760 503f6a6d6e88359665b0d578afaaa34a b3c61485a9fd32bec8a0b448afaaa34a
|
||||
m minps f3decf1f8529767bf5305eacc7cb970a 2525f1a98dfd09ce9fef4efc55a4ce44 2525f1a98dfd09ce9fef4efcc7cb970a
|
||||
m minps 7978818d1eed68f26cc9734008bb04c5 9b27947a953300911ff1f79014a09c41 7978818d1eed68f21ff1f79008bb04c5
|
||||
r minss 39afac8dd3bb7af67befb8324a00fba8 d6da9c2b9a0a8d1fb51090711889cc7b 39afac8d9a0a8d1fb51090711889cc7b
|
||||
r minss e109f272f30839f3a604dac2b2073ebf d83b5a60c1d6065446e4b0fa18fa73c7 d83b5a60c1d6065446e4b0fa18fa73c7
|
||||
r minss d85e7e96026d5d5ef42a05fd6ad714ac abbc7c64f0955aff2ddd262e31ff5360 d85e7e96f0955aff2ddd262e31ff5360
|
||||
r minss c3b9c9496c1c65ef1c3c4182ee728d76 13069b26b51928763e751c4c003c9cee 13069b26b51928763e751c4c003c9cee
|
||||
r minss a705abb9fe27343c31f4f7d01bbc1c03 35a5ae75fa1671f1ad0819718032dff7 a705abb9fa1671f1ad0819718032dff7
|
||||
m minss 79649cde e70c5df4e48108baa7edef442c778f1a e70c5df4e48108baa7edef442c778f1a
|
||||
m minss 9aa0572a 2031bc2ffc22c77a564ffd50497978e8 9aa0572afc22c77a564ffd50497978e8
|
||||
m minss 6a6caa7d 5ae32cae69b676f35e3ac2283c1bff33 5ae32cae69b676f35e3ac2283c1bff33
|
||||
m minss f922b8f4 d0a946610302f8daaef4d4b5e0423363 f922b8f40302f8daaef4d4b5e0423363
|
||||
m minss a7965a02 628d2719ec02d0258087dd5ebc040a7d a7965a02ec02d0258087dd5ebc040a7d
|
||||
r movaps e2c3bd5d426ac0b97121a09583e9cd92 6092c28d8a0d359f3e9bb6fd00da9eb0 e2c3bd5d426ac0b97121a09583e9cd92
|
||||
r movaps e506d80f210c91f03292d92a9715fe3f a74c9c98dbf85a01748ff9077bced038 e506d80f210c91f03292d92a9715fe3f
|
||||
r movaps 4d0c27530a1b2a269ad85518421b316f 2d65e0fd2a235420d9e3e4a2305f4373 4d0c27530a1b2a269ad85518421b316f
|
||||
r movaps c7466a20f3b1d438653464a68be6404f beee6e5189488c7c4c78e8b54318ee2d c7466a20f3b1d438653464a68be6404f
|
||||
r movaps 6108c24b31c937e7afc9b6fad44062ee 88da850b6e02cb740713d40638642a17 6108c24b31c937e7afc9b6fad44062ee
|
||||
m movaps d0bf50e297d20879dd7f7feeff5ea705 8584af8b773c5bcff69a5c1be2d4303b d0bf50e297d20879dd7f7feeff5ea705
|
||||
m movaps dc2845cce0b5c9145c56002c35bed95b 01cd1177d9c6a9701489c7f0da2ba405 dc2845cce0b5c9145c56002c35bed95b
|
||||
m movaps bfa7fb883d113765a3448273bdf4245b 01d42a85ce00ea284859c63e41b214f9 bfa7fb883d113765a3448273bdf4245b
|
||||
m movaps 464f52acc39fbceb8e2d73a9bb8a7fd3 126d990b296646352dac8badfab13ba7 464f52acc39fbceb8e2d73a9bb8a7fd3
|
||||
m movaps 9c118caee7f91f035bd2a596b3ea4473 204a60411e5246b7c005a5c34b542f7c 9c118caee7f91f035bd2a596b3ea4473
|
||||
r movss 78fdde3d42fed1ab5ec606e6d7a56bc8 dacdc4f57da1e9e2e2e254abc2bf1cd3 78fdde3d7da1e9e2e2e254abc2bf1cd3
|
||||
r movss c6fad4f48a8531f0c332fe5ea48fc5b8 8c7431f147d3c4edba64ede3e634809a c6fad4f447d3c4edba64ede3e634809a
|
||||
r movss 1791633f4ae10e450b6b3e4f16dc785c 5992ac87baee69063f7f720d8f0fb884 1791633fbaee69063f7f720d8f0fb884
|
||||
r movss d7f70bd236ed7147b374d5c2f1361aa2 cffad50dac6d016e0dd415d0a49b7f1f d7f70bd2ac6d016e0dd415d0a49b7f1f
|
||||
r movss d33ead456464c177972f349c5a29a657 da5daeba50a9144121e866b16802ecda d33ead4550a9144121e866b16802ecda
|
||||
m movss b625d01e 3757890f47dfc831f55f2da4d51e732c b625d01e000000000000000000000000
|
||||
m movss 6325b005 69f4ce9415f903b849591ec890164085 6325b005000000000000000000000000
|
||||
m movss ec870bb7 eeb2334bef6efac91caac7a91a4fb488 ec870bb7000000000000000000000000
|
||||
m movss 8419736c f41b124c5989f8ef1a7a29937fceb170 8419736c000000000000000000000000
|
||||
m movss 9215874c 312e9f315f979a73e06471b082577654 9215874c000000000000000000000000
|
||||
r movups 96e291c4b34bd6f074b25975738c6874 25afd08bfe8072b1f3ff3df567ba7e1d 96e291c4b34bd6f074b25975738c6874
|
||||
r movups 69ef3969c999dd1d2b5ebe969b9a4e7e 88f0472664fdbfe0addf9f3d58aa7c2e 69ef3969c999dd1d2b5ebe969b9a4e7e
|
||||
r movups 9c2c1d7018c0da484d291a1d178ad205 3b3608e38dde674475a1361bd5f8ad64 9c2c1d7018c0da484d291a1d178ad205
|
||||
r movups 22b485b85f011eb6e0fc4538b36ed3a0 54397a415705dcc46fcefa5ecc5510f4 22b485b85f011eb6e0fc4538b36ed3a0
|
||||
r movups 50821a00ba7f5a8f48a277f89a3992c5 4595689eff34ee251fd243b3895508f7 50821a00ba7f5a8f48a277f89a3992c5
|
||||
m movups 5735d08d1235385bb764129300c5c532 db6fe5e6a43d9dd94ac64a485bbeafca 5735d08d1235385bb764129300c5c532
|
||||
m movups 712fa3228155837eed703569fe0c650b d6374ee9fb1e597a09f1b6fae0af2ce7 712fa3228155837eed703569fe0c650b
|
||||
m movups f46598d14c90814e489664cd21689080 b8741d67fae35e3a0a9013ba779e6931 f46598d14c90814e489664cd21689080
|
||||
m movups f39117184fcaa4b1ec60988d558c46c9 53a07c9e3f2fdcbd33ec1a17cdfe26a0 f39117184fcaa4b1ec60988d558c46c9
|
||||
m movups e44ee857c7c4bc6e5f392958e70be7fb de16f1adc685648cc62fe380ed228309 e44ee857c7c4bc6e5f392958e70be7fb
|
||||
r mulps eb106793ec47e70c6a64e743453c0123 861620a385d713a26f1283a929f54d86 120000000000008017f2ecad00000080
|
||||
r mulps 6fa9262e6db9b4842176fe8fa05e8186 a946d5cf550abd67191b9f182ced5c9a fad88abe317405ad0000008000000000
|
||||
r mulps c0dcd53c64fb7d1a522f61732b7b44a6 c923c96e66da08c21ece848dd89b8354 3808286c3ac6079d69a369c147054abb
|
||||
r mulps 92827e5c501152d5c03aa8dc7366e9db bc2823bf54e924596176eb98db7182aa a23522dc8e5207efb9bb1a36a9dbed46
|
||||
r mulps f857890d0ddda39c9021cc9a64d1715b b5ae6de01db9a2b3283eeca740c47973 57087faebf50d01081603c030000807f
|
||||
m mulps 17aab2fdad3e3ee93b0dd267feba617f 68f4bfadd6224135464e255a4b4e3c3d 7af7056c24870fdf0000807f5c0a267d
|
||||
m mulps e1c333d37644565150721e14fe38830b b7d5477b49835c46c70d6cacd4500c77 000080ffb8903858e919128133d90f43
|
||||
m mulps c1c1ca14189e67c8d8ba0bbf3f2513b5 1754ab95628185565787b9fe0c2a01df 00000080649471dfca874a7ee07b9454
|
||||
m mulps 8b1ea1fe2ff0a2f2b62f52f76ff2d473 1fabd3f97d7fadcb9bc7859d5f0d9b2d 0000807fe9dadc7e58ad5b55e9f90062
|
||||
m mulps 73353fb1b9bb965830fb0c2c9af3e61b c3f5088657c024ed98b8a9ba9a0ebaf7 33000000000080fff6ee3aa72ada27d4
|
||||
r mulss 562df2fb0d669ae1b1245c62e91d9fb3 d389eba22b4e7b7ad31137bbb51f08bd 00d25e5f2b4e7b7ad31137bbb51f08bd
|
||||
r mulss 8e2c99f61b741fadacb53784d90debb7 380230490731f55f2fdc9e7aac58da9e 000080ff0731f55f2fdc9e7aac58da9e
|
||||
r mulss 80ae66f55dcc2639acf733ee56929f3b c8522835216ad4bab29be431e9202827 1cad17eb216ad4bab29be431e9202827
|
||||
r mulss 9e4c225810317d4c3754a94fac3d1a54 17b1bc62d55b0af30258802fd9ab740c 13416f7bd55b0af30258802fd9ab740c
|
||||
r mulss bf82f45cd046558a3115503589811df9 1a3c35b1e146e75021fd4ba149099ee5 d919adcee146e75021fd4ba149099ee5
|
||||
m mulss 230b6e35 17aa67209b8c407bde66410ff9b1c801 356a57169b8c407bde66410ff9b1c801
|
||||
m mulss ce78b7f0 c6486c3d05825f7a257f497b39fe61a2 8657a9ee05825f7a257f497b39fe61a2
|
||||
m mulss 44c145b8 c30cb2febaefeb2d209dee368b2ec375 3d8a8977baefeb2d209dee368b2ec375
|
||||
m mulss cba5c6ac a27d7cf484066f3509a32b202faadea6 b0ecc36184066f3509a32b202faadea6
|
||||
m mulss 75267bea 1275703db3c1b0e2668068c4d51ea4eb e8e66be8b3c1b0e2668068c4d51ea4eb
|
||||
r orps f3849d198e16109ed85644a9d06d35b3 026707610d39f83f8cb4b85f5a541ed7 f3e79f798f3ff8bfdcf6fcffda7d3ff7
|
||||
r orps b09b603250f104e6fd93f7126c3ce4a1 eaebe2525f75ecf5b5f3b686a00ce42d fafbe2725ff5ecf7fdf3f796ec3ce4ad
|
||||
r orps 7886d20d60b637a96650215d5a7c4666 a710127edea19e969b6c0076ca290b39 ff96d27ffeb7bfbfff7c217fda7d4f7f
|
||||
r orps c84904b1811143d6a05e61e06da68340 d578c88a7005c5b1ec925627cbc5dada dd79ccbbf115c7f7ecde77e7efe7dbda
|
||||
r orps 7cc76704d88c1f3c986fb9d3dc17234f 71a694fd5acd7bb3b3b8d96ff9dafacf 7de7f7fddacd7fbfbbfff9fffddffbcf
|
||||
m orps 1f20afe01e9494c6f6eae9b15a941e70 d1c1cacde99125889918884c39081090 dfe1efedff95b5cefffae9fd7b9c1ef0
|
||||
m orps c036b9369aee787adc70b910105db8d8 64db5fb3996c0c4950c98f407a9491e2 e4ffffb79bee7c7bdcf9bf507addb9fa
|
||||
m orps cea66f3d5d6ef21117e72db0c1c38bee 3196b53c2c46eeeec9d6ef88f3b54f03 ffb6ff3d7d6efeffdff7efb8f3f7cfef
|
||||
m orps e511039c4a5fb91955c4068961dfde91 9455bfce472b42c6727128d858465293 f555bfde4f7ffbdf77f52ed979dfde93
|
||||
m orps 02f905dba7ebe701a158637046ac5a7f 4a5ccbb0ee04e2fe17ac1bc8bf020410 4afdcffbefefe7ffb7fc7bf8ffae5e7f
|
||||
r rcpps 70cb8a09879c06a6e47b08cf9b822cd7 9bbe02cb3a35043218daf0a563587b53 00000075000080d8000080af000080a7
|
||||
r rcpps 81a60dded49e45ab66ae9042c142f328 571ab44585ddcc21fc82ba0183a5c0e7 000080a0000080d30000003c00000056
|
||||
r rcpps 5bd0c517fc949add89fab258669ce221 e5d081d9ccbc65eb3b3e3428f3bf1a42 00000067000000a1000000260000005d
|
||||
r rcpps 3a0a827a81e85cea99f1d1281ecae0c0 a14259efb2dd4ae1413fdfd067819204 000000040000809400000056000000be
|
||||
r rcpps bbf774ad4ae6435f4404aba8dde738e5 49b38bcd3d2a522edb999c90f5a58faa 000080d10000801f000000d600008099
|
||||
m rcpps ab89ef473287f9399d2bcf3bf317bc35 d91a2b379ab769ad968762aff9ed904d 00000037000000450000004300000049
|
||||
m rcpps 10a840d4987b21d62e49da7f72a4458a f2d69a7f16674621faac77f325b7f297 000080aa000080a80000807f000080f4
|
||||
m rcpps dfd803f412dff346b233ee065936bb9f c26c0fcac2dfb2ea3f85c90b76ffc542 0000808a0000003800000078000000df
|
||||
m rcpps 747d280e43bce8d9951b8c865da92712 65ff3c4003eae6168f05996d6161d4ac 00008070000000a5000000f80000806c
|
||||
m rcpps 8dd8016731ffd8bda414939591b6f162 589230e79d337a9479ff876fba564513 00008017000000c1000000e90000001c
|
||||
r rcpss 78085da5b5436632e7259549b638a297 f60a0811333102b79043d82c129b9c39 000080d9333102b79043d82c129b9c39
|
||||
r rcpss 01229341d087049f28092310e843d234 2838059c3add2f09128f1e880d563275 0000003d3add2f09128f1e880d563275
|
||||
r rcpss 8f830262d1480c69e61ef1bc479120cb a9f860a3898ac3a70b47fa2f46c71209 0000801c898ac3a70b47fa2f46c71209
|
||||
r rcpss 1fae3b8efeb096ff2fb71f22251c321a 966ecb4d8502f6a1a95ead9930890454 000080f08502f6a1a95ead9930890454
|
||||
r rcpss 0e062e2bfaca1bb070062efa38bf12bf 6a9c559ff3ef63e478a6d51ba0173195 00008053f3ef63e478a6d51ba0173195
|
||||
m rcpss 59c79b69 17cc2d7fcb8173a9741d00d994342838 00000015cb8173a9741d00d994342838
|
||||
m rcpss 13352663 725ab01f908ec3e791b87e435823e7b3 0000801b908ec3e791b87e435823e7b3
|
||||
m rcpss d94f4968 b975ed2344ddbf5225e7a6b88482adce 0000801644ddbf5225e7a6b88482adce
|
||||
m rcpss 7bfd34ee 59e07802d4adfaee30428dda2401fdb6 00008090d4adfaee30428dda2401fdb6
|
||||
m rcpss 8c2b9058 d36f2eaf049b843ab3ee62a5cbec63b0 00000026049b843ab3ee62a5cbec63b0
|
||||
r rsqrtps 2d489d0949c4b683e4a08a9b2509fd24 d36d1ea843617f049874e6ec6ddc6a45 0000005a000080ff000080ff0000804c
|
||||
r rsqrtps ee5a61937cdb9904eb46f436e17f0ad3 2d91666636185f7bb5924a96e88d0f16 000080ff0000805c00008043000080ff
|
||||
r rsqrtps 5ca42e2c658e4c4dc549f9dc0252e440 573075e5966725e17643366b3287c73d 0000004900008038000080ff0000803e
|
||||
r rsqrtps fd915d8450702d7406e6828ee7e57dd2 f455c272d37f50eb905fb40ac8cda3c1 000080ff00000025000080ff000080ff
|
||||
r rsqrtps b56ba52ae8f2ff6fa335d8284a7b24d0 09eb263bb674c03217a12cf186411388 00008049000000270000804a000080ff
|
||||
m rsqrtps 90a0e1f8dda2fa748d3394379201dc5e c75c1f8b3c68e214ef31a26a49368b61 000080ff00008024000000430000802f
|
||||
m rsqrtps c5d049253d90dd92c952fc62fe1da72a da7044f7b604561ba0b5ebf25f19c28b 0000804c000080ff0000802d00008049
|
||||
m rsqrtps e2b44f09a3cdfc18c13bc4b0d139ddc5 f190ec9b25d93b19ca7c193e6a073934 0000805a00008052000080ff000080ff
|
||||
m rsqrtps 8a566cf37c8cd9ba2ac8f6c188598f34 71875187b3d8d386e220f5aea6c1c123 000080ff000080ff000080ff00008044
|
||||
m rsqrtps c3a0791295e0541018b3fb1200602d5f 1e0009a8efd5bdb7bc1aa97fb0ea8bff 0000005600000057000080550000802f
|
||||
r rsqrtss 1d850ecec382fae48dc7bcd08305264d a537045ecb9674ebed619c3fcb8fbc68 000080ffcb9674ebed619c3fcb8fbc68
|
||||
r rsqrtss f381b9a77d71eb22e860189f7d748475 03073a672318dac92e96d878438d09be 000080ff2318dac92e96d878438d09be
|
||||
r rsqrtss 833ec1c1ca165068c30003cc5a7af5bd 7d1ccaa1068b0a17ff45d26e474def0a 000080ff068b0a17ff45d26e474def0a
|
||||
r rsqrtss 13e63f8bb5c24a8d73a228143739294b 7840ee1ba2e1434bd609537f14923d15 000080ffa2e1434bd609537f14923d15
|
||||
r rsqrtss 4684ad53aba85947aa1f8f178fb43126 b91e3fc282ed28bc875d83ea47fd2584 0000003582ed28bc875d83ea47fd2584
|
||||
m rsqrtss 29c0008f 2204e14879da5d2d7f339f5240cd7e35 000080ff79da5d2d7f339f5240cd7e35
|
||||
m rsqrtss 23cf520e 60517dff51fe6b311436236d0a2e1678 0000005851fe6b311436236d0a2e1678
|
||||
m rsqrtss 326740cb a9fc72262f35628a52cdc5b6153a5535 000080ff2f35628a52cdc5b6153a5535
|
||||
m rsqrtss eae1dadf fdc486e667d9cf3bddaabafba39c61d4 000080ff67d9cf3bddaabafba39c61d4
|
||||
m rsqrtss a627228d 740e40248f1592e51a5d8166a2c702b6 000080ff8f1592e51a5d8166a2c702b6
|
||||
r sqrtps 17f9aaceafe006efc8306f859eb8861d 39b3b2dbb093cff5d1b2451328e18390 0000c0ff0000c0ff0000c0ff4d51832e
|
||||
r sqrtps 1c9309feb70d3273a45ff40827f86f4c 5919ca0cea24715448c89f45271560db 0000c0ffae7f55596cdc3024e8daf745
|
||||
r sqrtps eb4d6a1ae65b6e687aeffcee53f7111e fc9bfb511b0a1042222bc1704b2c1459 7de9f42ca605f7530000c0ff694ec12e
|
||||
r sqrtps cfba3037d005a1cba644769dc7c1e7e2 8e6bc65efa20b45fdcdeba9d58d039f8 1db4543b0000c0ff0000c0ff0000c0ff
|
||||
r sqrtps 764c194d6926157be59fb35c883fc7c8 db9b09cc9a21c72852c3fcb1738dc788 261a46463867435d86a1174e0000c0ff
|
||||
m sqrtps e8e5ca240a53eaa8ace8f425306cf0ac ec55473107b9733653236451f93cecdc b22721320000c0fffb0db1320000c0ff
|
||||
m sqrtps 3542a5bd23a45049d3293412d2d4f5cc 9c083a9a5d97c19c6ed39884e063ed0f 0000c0ff541c67448ac2d6280000c0ff
|
||||
m sqrtps 9d72f0e14c838b71f66e9471b158a917 5478d320807c6a2a1192c1d9603ec22d 0000c0ffeca18558afd68958983a932b
|
||||
m sqrtps 8ca92c4639caa3c092bc234a91a1a67d 41965237e502353f7921ae19ff37c5e7 dc3dd2420000c0ff41bccc44350b925e
|
||||
m sqrtps cff83a83003302b381f45381973ae4ca ee37583760a34b1a422391e9a09aaeca 0000c0ff0000c0ff0000c0ff0000c0ff
|
||||
r sqrtss 490be45625ba35d86a1cfad189909544 10f3f660ea6959f40b0d52d1727f4c0a 8ad92a4bea6959f40b0d52d1727f4c0a
|
||||
r sqrtss 9da559abc981da7a4c6cd9355e25f2a5 5e4d9c618fb95bcb47985cef6c8b6542 0000c0ff8fb95bcb47985cef6c8b6542
|
||||
r sqrtss 9779752b421385dca5577f5e23429f1b 4b1c3ff6194690c3a3e9b3a918822a5e a8ae7a35194690c3a3e9b3a918822a5e
|
||||
r sqrtss 44d85aafe26bdcbe91009d713db2d4b4 05512095fdacbf3a5cc327c4f9d0f50e 0000c0fffdacbf3a5cc327c4f9d0f50e
|
||||
r sqrtss 10f589ec5e62e9be8d6843747120295f 17c0e0940f66126e0ec8e8e8f6c07ede 0000c0ff0f66126e0ec8e8e8f6c07ede
|
||||
m sqrtss 3a201ccd c8e3e178ccb4135b7672e050e21597ea 0000c0ffccb4135b7672e050e21597ea
|
||||
m sqrtss ef1ea169 338815d08845764f12f042169993a3cb d69b8f548845764f12f042169993a3cb
|
||||
m sqrtss 5f57a787 b23ef443b20b8b7da5a0f3e6a7c84c99 0000c0ffb20b8b7da5a0f3e6a7c84c99
|
||||
m sqrtss f5f4286e ef247e3c7fbe3c584770100dbc548127 34f9cf567fbe3c584770100dbc548127
|
||||
m sqrtss 4e19e4b1 146748fd2931fdedf858910fb5b1caff 0000c0ff2931fdedf858910fb5b1caff
|
||||
r subps fc45a0d2853355ed9a173b92f8d08b29 a9b5356caf44f6c90ab0cf9c1b4fdb50 a9b5356c8533556d04b0cf9c1b4fdb50
|
||||
r subps 2597aee0a0ba75e57213e4d06686fbb5 1f583521425f25fbf40c6842c85cfeac 2597ae60425f25fb7213e4502686fb35
|
||||
r subps c8cf40c24aa8cae3c1133b966adbb779 e215a7cacccbd0cbd78fcd0025e3e246 8215a7ca4aa8ca63c1133b166adbb7f9
|
||||
r subps 7b283e77de5e454f2c20b93372024129 a6c59204ca8b074177e497c3bfb72975 7b283ef7de5e45cf77e497c3bfb72975
|
||||
r subps 32bbf1dd191e386fb82637d44a0d785d 7e245f4f18823a41f995bc5b838cd36f 32bbf15d191e38ef6797bc5b838cd36f
|
||||
m subps 6776bd893f8be2d4185c4941abb82471 408400b2180c5169c8f0eb881ef09e8b 408400b2180c5169185c49c1abb824f1
|
||||
m subps 7d9a413f4290b78164acca7ccd62901d 5b5d75955629a3442127713e7a7c520a 7d9a41bf5629a34464accafccd62909d
|
||||
m subps f70f0fe1d59f6045c25cefc73840177f 9700b805b1599de6e956bfc44c649510 f70f0f61b1599de6665fec47384017ff
|
||||
m subps 8ab02e0e74baed26f5155010772458ee 69089260655d1017a2e82ecae03ac7b3 6908926074baeda6a2e82eca7724586e
|
||||
m subps 49370742fcc3ce0b2263e62677bf549f a4ef2ae40fd92d7c332777dce272aaeb a4ef2ae40fd92d7c332777dce272aaeb
|
||||
r subss 7f100ab1aa4e839cdf3db26a5e5d5e8d 08b6d3590487fd62c6d4d8bf74d44d23 08b6d3590487fd62c6d4d8bf74d44d23
|
||||
r subss 8ca61bc4941f04dd4b3658c3c22e6351 32bfbc6e243fe5e9f3af363ab5af3c21 32bfbc6e243fe5e9f3af363ab5af3c21
|
||||
r subss c1caa3fc8990ff867bfb4215d9f799cd 95cb4c07f8c1cdafa5bb347e049e111f c1caa37cf8c1cdafa5bb347e049e111f
|
||||
r subss 72784d17a5c127bed457a76dd1ac4276 a6734983bdd0867b62622b39ad332e32 72784d97bdd0867b62622b39ad332e32
|
||||
r subss 548920b565b7898a1af520bc351efda4 3933de21100e40f30eedd4f95ce15352 54892035100e40f30eedd4f95ce15352
|
||||
m subss 36557c1e 7bb98553a65299d2725fa7cff200cb8e 7bb98553a65299d2725fa7cff200cb8e
|
||||
m subss af025ce4 b750de59eae65bd34fc7f3795ba24551 b6025c64eae65bd34fc7f3795ba24551
|
||||
m subss c9229bdb a43dfe245eb297efef0f5ae43722dc0b c9229b5b5eb297efef0f5ae43722dc0b
|
||||
m subss 42e583ec 0b3e83ccebe85b56155dfe0837f7cf0b 42e5836cebe85b56155dfe0837f7cf0b
|
||||
m subss cacd5745 fb68d642a703d6b0f2efdbd21f5e4eee 821a51c5a703d6b0f2efdbd21f5e4eee
|
||||
r ucomiss 5b11b25dc8893e0780b90aef83db1954 07917c667e72c987fe79ee65045068fa 07917c667e72c987fe79ee65045068fa
|
||||
r ucomiss d7928a690fe2c8f55c5ef176573098fe d551a13973973f2976a143c812a9da82 d551a13973973f2976a143c812a9da82
|
||||
r ucomiss 747c4d20a181f34ee3265958ca63fb00 2f67f54e352674c6b1c78f8df2f27e61 2f67f54e352674c6b1c78f8df2f27e61
|
||||
r ucomiss 9033eae823733a628044c24b934d4df8 91d489ac88cb014d3dbf720a77a77dd6 91d489ac88cb014d3dbf720a77a77dd6
|
||||
r ucomiss e7f9b20999a2735f02cb0de5c4aaf465 d77bce399010e08c063beb77d7225ffe d77bce399010e08c063beb77d7225ffe
|
||||
m ucomiss 4be9a56a 96ef55a868d7d85394ad799ed314baa5 96ef55a868d7d85394ad799ed314baa5
|
||||
m ucomiss 350451ce 903f50b5e41314a09b0607de181ae4cc 903f50b5e41314a09b0607de181ae4cc
|
||||
m ucomiss 7aab9ba4 e2e98659d933d0464b543078a8186dac e2e98659d933d0464b543078a8186dac
|
||||
m ucomiss 6e310c10 3cd8a47842c8c31ffb28b5cdaee0879a 3cd8a47842c8c31ffb28b5cdaee0879a
|
||||
m ucomiss 3154eccb 6b74e81c78abe4ac080db23f5fc73827 6b74e81c78abe4ac080db23f5fc73827
|
||||
r unpckhps 4b5d08648a9cbedc8bfe47de14095eb5 1767ae8e1753ac91f1eecde400621c87 f1eecde48bfe47de00621c8714095eb5
|
||||
r unpckhps bfff17e1509f49c19aca3e58439cc2ae a63d5ed0b6d2ab7248450b6db7fbbd1a 48450b6d9aca3e58b7fbbd1a439cc2ae
|
||||
r unpckhps 85e3a7bc3870242331cdd87d558e046c c93a6cc04fba2f9917a9fb5fdb81a2a9 17a9fb5f31cdd87ddb81a2a9558e046c
|
||||
r unpckhps 82557085ee8210f942245f2b06247536 8447b28db11e199b73d3053b47d43c1c 73d3053b42245f2b47d43c1c06247536
|
||||
r unpckhps fb7d8caa7f272c1a25c87c20727fc532 3b30674606f2a9efd15df15d38b85b39 d15df15d25c87c2038b85b39727fc532
|
||||
m unpckhps 77ce98b46673b191cdd687195e993c84 936973795793f93c8b9435fb16a10667 8b9435fbcdd6871916a106675e993c84
|
||||
m unpckhps f9e9405c0ae00a915b66a11b9f555b8a 4f00fc2143d758f68b42f53bcf6ea7bc 8b42f53b5b66a11bcf6ea7bc9f555b8a
|
||||
m unpckhps 27631faa416f414f793a457fe3b51705 950f62b06fe689be986d833ed8a778f7 986d833e793a457fd8a778f7e3b51705
|
||||
m unpckhps 05250dcdd73235613c0cdbc4089bdfdb 27403c1668922deb888f0843cff0abbe 888f08433c0cdbc4cff0abbe089bdfdb
|
||||
m unpckhps f8fa42d3fa1d273d19782b474bca83d4 2c1c831f1a8f44b38e030d67b0cbd098 8e030d6719782b47b0cbd0984bca83d4
|
||||
r unpcklps 270f8f7bd26d2e2c3f047aabd899d8eb 842870520c4f06d2e09c2aea42bdd582 84287052270f8f7b0c4f06d2d26d2e2c
|
||||
r unpcklps fd6418b83ca1ad4e8fac97eb029f12fe a4b5e28f6d31afdb8733b6d3f45ce47a a4b5e28ffd6418b86d31afdb3ca1ad4e
|
||||
r unpcklps f2433846647de0efd4f40ee74cfe2ff8 64f008aca697826b547ee9788e207cd1 64f008acf2433846a697826b647de0ef
|
||||
r unpcklps abb96771b83248c4c1b9e53c32b841df 8a857a97445220d71af9ea16aeaccd2b 8a857a97abb96771445220d7b83248c4
|
||||
r unpcklps 2cb07d6a04d4c6656cb4876b90b1b799 3afe311e331589570ffe43cc50816811 3afe311e2cb07d6a3315895704d4c665
|
||||
m unpcklps 9b160408461908261c927676b3a75a1b daf2b33d73559b494880bcd0a3aa62ed daf2b33d9b16040873559b4946190826
|
||||
m unpcklps 9e17de5c9c1a7cffea914e8ade995737 7929a1db948766c52a98abab08477281 7929a1db9e17de5c948766c59c1a7cff
|
||||
m unpcklps 59ff4486625771d6f57ea4508a673528 2fe14011521e28104655de1abb0978dd 2fe1401159ff4486521e2810625771d6
|
||||
m unpcklps 9279ce7626a0890213d1a20853b52597 7e83e88df9ab414132f23d1c18546565 7e83e88d9279ce76f9ab414126a08902
|
||||
m unpcklps 6d0f75fbd2aac4b977e7cfcf3705b608 4d5a52df37a1734fe18b108edc698862 4d5a52df6d0f75fb37a1734fd2aac4b9
|
||||
r xorps de9196751752de0ea9190131236c93f9 e218ba86739c05135c77a2f74258f684 3c892cf364cedb1df56ea3c66134657d
|
||||
r xorps d8322d9d06f101383d7617a16b5e9631 d5740069f99d8a8fd5a7ce2c90f7e56c 0d462df4ff6c8bb7e8d1d98dfba9735d
|
||||
r xorps 3e27ef86d291be60b25ebb5e8f2301f1 f588cfddb3ba5e52a1b415ecc4742193 cbaf205b612be03213eaaeb24b572062
|
||||
r xorps 753c153ea52456ff7d6bb6c6cc7ca5fe c8bf7f8ff085e17254db60373a329c5f bd836ab155a1b78d29b0d6f1f64e39a1
|
||||
r xorps 411a38b40d7c686b71172f17be0db200 3163c90e5b72d5e7e234f7ecaf72a518 7079f1ba560ebd8c9323d8fb117f1718
|
||||
m xorps 116c57adf9f0649b575bdfbc27d44199 c74d4fb6f74df5dac5beb0706357ba7d d621181b0ebd914192e56fcc4483fbe4
|
||||
m xorps d66c755663402496e724c6cadef68d54 8b3eb3f3ae275e620b9821d015beabdb 5d52c6a5cd677af4ecbce71acb48268f
|
||||
m xorps e25df4879b638a51e202a15c13ad80c7 72381df9df7f63fb39c1cb169383d862 9065e97e441ce9aadbc36a4a802e58a5
|
||||
m xorps b8a92cefededf8e1dc315971225d0957 c166a63897a7257aa33456fef8caf036 79cf8ad77a4add9b7f050f8fda97f961
|
||||
m xorps 3c99d71c05512e3ec9cb34e7c948784b 1bd2c5fc42d02396fecbca29c2940460 274b12e047810da83700fece0bdc7c2b
|
||||
@@ -0,0 +1,4 @@
|
||||
prog: sse_memory
|
||||
vgopts: -q
|
||||
args: sse1
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
prog: sse_memory
|
||||
vgopts: -q
|
||||
args: sse2
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse2
|
||||
@@ -0,0 +1,623 @@
|
||||
|
||||
/* A program to test that SSE/SSE2 insns do not read memory they
|
||||
should not. Covers insns of the form OP %xmm, %xmm and OP memory,
|
||||
%xmm only. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "tests/malloc.h"
|
||||
#include <string.h>
|
||||
|
||||
typedef unsigned char V128[16];
|
||||
typedef unsigned int UInt;
|
||||
typedef signed int Int;
|
||||
typedef unsigned char UChar;
|
||||
|
||||
typedef
|
||||
struct {
|
||||
V128 arg1;
|
||||
V128 arg2;
|
||||
V128 res;
|
||||
}
|
||||
RRArgs;
|
||||
|
||||
typedef
|
||||
struct {
|
||||
V128 arg1;
|
||||
V128 res;
|
||||
}
|
||||
RMArgs;
|
||||
|
||||
static UChar randUChar ( void )
|
||||
{
|
||||
static UInt seed = 80021;
|
||||
seed = 1103515245 * seed + 12345;
|
||||
return (seed >> 17) & 0xFF;
|
||||
}
|
||||
|
||||
static void randomise ( UChar* p, Int n )
|
||||
{
|
||||
Int i;
|
||||
for (i = 0; i < n; i++)
|
||||
p[i] = randUChar();
|
||||
}
|
||||
|
||||
static void randV128 ( V128* v )
|
||||
{
|
||||
Int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
(*v)[i] = randUChar();
|
||||
}
|
||||
|
||||
static void randRRArgs ( RRArgs* rra )
|
||||
{
|
||||
randV128(&rra->arg1);
|
||||
randV128(&rra->arg2);
|
||||
randV128(&rra->res);
|
||||
}
|
||||
|
||||
static void randRMArgs ( RMArgs* rra )
|
||||
{
|
||||
randV128(&rra->arg1);
|
||||
randV128(&rra->res);
|
||||
}
|
||||
|
||||
static void showV128 ( V128* v )
|
||||
{
|
||||
Int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
printf("%02x", (Int)(*v)[i]);
|
||||
}
|
||||
|
||||
static void showMaskedV128 ( V128* v, V128* mask )
|
||||
{
|
||||
Int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
printf("%02x", (Int)( ((*v)[i]) & ((*mask)[i]) ));
|
||||
}
|
||||
|
||||
static void showRR ( char* op, RRArgs* rra, V128* rmask )
|
||||
{
|
||||
printf("r %10s ", op);
|
||||
showV128(&rra->arg1);
|
||||
printf(" ");
|
||||
showV128(&rra->arg2);
|
||||
printf(" ");
|
||||
showMaskedV128(&rra->res, rmask);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void showRM ( char* op, RMArgs* rra, UChar* mem, Int nMem, V128* rmask )
|
||||
{
|
||||
Int i;
|
||||
assert(nMem == 4 || nMem == 8 || nMem == 16 || nMem==0);
|
||||
printf("m %10s ", op);
|
||||
for (i = 0; i < nMem; i++)
|
||||
printf("%02x", (Int)mem[i]);
|
||||
printf(" ");
|
||||
showV128(&rra->arg1);
|
||||
printf(" ");
|
||||
showMaskedV128(&rra->res, rmask );
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
#define Wrapper_RegReg(OP) \
|
||||
void r_r_##OP ( RRArgs* p ) \
|
||||
{ \
|
||||
__asm__ __volatile__("\n" \
|
||||
"\tmovups 0(%0), %%xmm6\n" \
|
||||
"\tmovups 16(%0), %%xmm7\n" \
|
||||
"\t" #OP " %%xmm6, %%xmm7\n" \
|
||||
"\tmovups %%xmm7, 32(%0)\n" \
|
||||
: \
|
||||
: "r" (p) \
|
||||
: "memory", "xmm6", "xmm7", "cc" \
|
||||
); \
|
||||
}
|
||||
|
||||
#define Wrapper_RegMem(OP) \
|
||||
void r_m_##OP ( RMArgs* p, void* mem ) \
|
||||
{ \
|
||||
__asm__ __volatile__("\n" \
|
||||
"\tmovups 0(%0), %%xmm7\n" \
|
||||
"\t" #OP " 0(%1), %%xmm7\n" \
|
||||
"\tmovups %%xmm7, 16(%0)\n" \
|
||||
: \
|
||||
: "r" (p), "r" (mem) \
|
||||
: "memory", "xmm7", "cc" \
|
||||
); \
|
||||
}
|
||||
|
||||
|
||||
#define TEST_INSN(res_mask,mem_size,insn) \
|
||||
\
|
||||
Wrapper_RegReg(insn) \
|
||||
Wrapper_RegMem(insn) \
|
||||
\
|
||||
void do_##insn ( void ) \
|
||||
{ \
|
||||
Int i; \
|
||||
UChar* buf; \
|
||||
RRArgs rargs __attribute__((aligned(16))); \
|
||||
RMArgs margs __attribute__((aligned(16))); \
|
||||
for (i = 0; i < 5; i++) { \
|
||||
randRRArgs(&rargs); \
|
||||
r_r_##insn(&rargs); \
|
||||
showRR(#insn, &rargs, res_mask); \
|
||||
} \
|
||||
for (i = 0; i < 5; i++) { \
|
||||
randRMArgs(&margs); \
|
||||
buf = memalign16(mem_size); \
|
||||
randomise(buf,mem_size); \
|
||||
r_m_##insn(&margs,buf); \
|
||||
showRM(#insn, &margs, buf, mem_size, res_mask);\
|
||||
free(buf); \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Note: these are little endian. Hence first byte is the least
|
||||
significant byte of lane zero. */
|
||||
|
||||
/* Mask for insns where all result bits are non-approximated. */
|
||||
static V128 AllMask = { 0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF };
|
||||
|
||||
/* Mark for insns which produce approximated vector short results. */
|
||||
static V128 ApproxPS = { 0x00,0x00,0x80,0xFF, 0x00,0x00,0x80,0xFF,
|
||||
0x00,0x00,0x80,0xFF, 0x00,0x00,0x80,0xFF };
|
||||
|
||||
/* Mark for insns which produce approximated scalar short results. */
|
||||
static V128 ApproxSS = { 0x00,0x00,0x80,0xFF, 0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF };
|
||||
|
||||
#define PD 16
|
||||
#define SD 8
|
||||
#define PS 16
|
||||
#define SS 4
|
||||
|
||||
/* ------------------------ SSE1 ------------------------ */
|
||||
TEST_INSN( &AllMask, PS,addps)
|
||||
TEST_INSN( &AllMask, SS,addss)
|
||||
TEST_INSN( &AllMask, PS,andnps)
|
||||
TEST_INSN( &AllMask, PS,andps)
|
||||
TEST_INSN( &AllMask, PS,cmpeqps)
|
||||
TEST_INSN( &AllMask, SS,cmpeqss)
|
||||
TEST_INSN( &AllMask, PS,cmpleps)
|
||||
TEST_INSN( &AllMask, SS,cmpless)
|
||||
TEST_INSN( &AllMask, PS,cmpltps)
|
||||
TEST_INSN( &AllMask, SS,cmpltss)
|
||||
TEST_INSN( &AllMask, PS,cmpneqps)
|
||||
TEST_INSN( &AllMask, SS,cmpneqss)
|
||||
TEST_INSN( &AllMask, PS,cmpnleps)
|
||||
TEST_INSN( &AllMask, SS,cmpnless)
|
||||
TEST_INSN( &AllMask, PS,cmpnltps)
|
||||
TEST_INSN( &AllMask, SS,cmpnltss)
|
||||
TEST_INSN( &AllMask, PS,cmpordps)
|
||||
TEST_INSN( &AllMask, SS,cmpordss)
|
||||
TEST_INSN( &AllMask, PS,cmpunordps)
|
||||
TEST_INSN( &AllMask, SS,cmpunordss)
|
||||
TEST_INSN( &AllMask, SS,comiss)
|
||||
//TEST_INSN( &AllMask, 0,cvtpi2ps)
|
||||
//TEST_INSN( &AllMask, 0,cvtps2pi)
|
||||
//TEST_INSN( &AllMask, 0,cvtsi2ss)
|
||||
//TEST_INSN( &AllMask, 0,cvtss2si)
|
||||
//TEST_INSN( &AllMask, 0,cvttps2pi)
|
||||
//TEST_INSN( &AllMask, 0,cvttss2si)
|
||||
TEST_INSN( &AllMask, PS,divps)
|
||||
TEST_INSN( &AllMask, SS,divss)
|
||||
TEST_INSN( &AllMask, PS,maxps)
|
||||
TEST_INSN( &AllMask, SS,maxss)
|
||||
TEST_INSN( &AllMask, PS,minps)
|
||||
TEST_INSN( &AllMask, SS,minss)
|
||||
TEST_INSN( &AllMask, 16,movaps)
|
||||
//TEST_INSN( &AllMask, 0,movhlps)
|
||||
//TEST_INSN( &AllMask, 0,movhps)
|
||||
//TEST_INSN( &AllMask, 0,movlhps)
|
||||
//TEST_INSN( &AllMask, 0,movlps)
|
||||
//TEST_INSN( &AllMask, 0,movmskps)
|
||||
//TEST_INSN( &AllMask, 0,movntps)
|
||||
//TEST_INSN( &AllMask, 0,movntq)
|
||||
TEST_INSN( &AllMask, 4,movss)
|
||||
TEST_INSN( &AllMask, 16,movups)
|
||||
TEST_INSN( &AllMask, PS,mulps)
|
||||
TEST_INSN( &AllMask, SS,mulss)
|
||||
TEST_INSN( &AllMask, PS,orps)
|
||||
//TEST_INSN( &AllMask, 0,pavgb) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pavgw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pextrw)
|
||||
//TEST_INSN( &AllMask, 0,pinsrw)
|
||||
//TEST_INSN( &AllMask, 0,pmaxsw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pmaxub) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pminsw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pminub) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pmovmskb)
|
||||
//TEST_INSN( &AllMask, 0,pmulhuw) -- dup with sse2?
|
||||
TEST_INSN( &AllMask, 16,psadbw) // -- XXXXXXXXXXXXXXXX sse2 (xmm variant) not implemented!
|
||||
//TEST_INSN( &AllMask, 0,pshufw)
|
||||
TEST_INSN(&ApproxPS, PS,rcpps)
|
||||
TEST_INSN(&ApproxSS, SS,rcpss)
|
||||
TEST_INSN(&ApproxPS, PS,rsqrtps)
|
||||
TEST_INSN(&ApproxSS, SS,rsqrtss)
|
||||
//TEST_INSN( &AllMask, PS,shufps)
|
||||
TEST_INSN( &AllMask, PS,sqrtps)
|
||||
TEST_INSN( &AllMask, SS,sqrtss)
|
||||
TEST_INSN( &AllMask, PS,subps)
|
||||
TEST_INSN( &AllMask, SS,subss)
|
||||
TEST_INSN( &AllMask, SS,ucomiss)
|
||||
TEST_INSN( &AllMask, PS,unpckhps)
|
||||
TEST_INSN( &AllMask, PS,unpcklps)
|
||||
TEST_INSN( &AllMask, PS,xorps)
|
||||
|
||||
|
||||
/* ------------------------ SSE2 ------------------------ */
|
||||
TEST_INSN( &AllMask, PD,addpd)
|
||||
TEST_INSN( &AllMask, SD,addsd)
|
||||
TEST_INSN( &AllMask, PD,andnpd)
|
||||
TEST_INSN( &AllMask, PD,andpd)
|
||||
TEST_INSN( &AllMask, PD,cmpeqpd)
|
||||
TEST_INSN( &AllMask, SD,cmpeqsd)
|
||||
TEST_INSN( &AllMask, PD,cmplepd)
|
||||
TEST_INSN( &AllMask, SD,cmplesd)
|
||||
TEST_INSN( &AllMask, PD,cmpltpd)
|
||||
TEST_INSN( &AllMask, SD,cmpltsd)
|
||||
TEST_INSN( &AllMask, PD,cmpneqpd)
|
||||
TEST_INSN( &AllMask, SD,cmpneqsd)
|
||||
TEST_INSN( &AllMask, PD,cmpnlepd)
|
||||
TEST_INSN( &AllMask, SD,cmpnlesd)
|
||||
TEST_INSN( &AllMask, PD,cmpnltpd)
|
||||
TEST_INSN( &AllMask, SD,cmpnltsd)
|
||||
TEST_INSN( &AllMask, PD,cmpordpd)
|
||||
TEST_INSN( &AllMask, SD,cmpordsd)
|
||||
TEST_INSN( &AllMask, PD,cmpunordpd)
|
||||
TEST_INSN( &AllMask, SD,cmpunordsd)
|
||||
TEST_INSN( &AllMask, SD,comisd)
|
||||
TEST_INSN( &AllMask, 8,cvtdq2pd)
|
||||
TEST_INSN( &AllMask, 16,cvtdq2ps)
|
||||
TEST_INSN( &AllMask, 16,cvtpd2dq)
|
||||
//TEST_INSN( &AllMask, 0,cvtpd2pi)
|
||||
TEST_INSN( &AllMask, 16,cvtpd2ps) /* reads 16 */
|
||||
//TEST_INSN( &AllMask, 0,cvtpi2pd)
|
||||
TEST_INSN( &AllMask, 16,cvtps2dq) /* reads 16 */
|
||||
TEST_INSN( &AllMask, 8,cvtps2pd) /* reads 8 */
|
||||
//TEST_INSN( &AllMask, 0,cvtsd2si)
|
||||
TEST_INSN( &AllMask, SD,cvtsd2ss) /* reads SD */
|
||||
//TEST_INSN( &AllMask, 0,cvtsi2sd)
|
||||
TEST_INSN( &AllMask, SS,cvtss2sd) /* reads SS */
|
||||
TEST_INSN( &AllMask, 16,cvttpd2dq)
|
||||
//TEST_INSN( &AllMask, 0,cvttpd2pi)
|
||||
TEST_INSN( &AllMask, 16,cvttps2dq)
|
||||
//TEST_INSN( &AllMask, 0,cvttsd2si)
|
||||
TEST_INSN( &AllMask, PD,divpd)
|
||||
TEST_INSN( &AllMask, SD,divsd)
|
||||
TEST_INSN( &AllMask, PD,maxpd)
|
||||
TEST_INSN( &AllMask, SD,maxsd)
|
||||
TEST_INSN( &AllMask, PD,minpd)
|
||||
TEST_INSN( &AllMask, SD,minsd)
|
||||
TEST_INSN( &AllMask, PD,movapd)
|
||||
//TEST_INSN( &AllMask, 8,movd)
|
||||
//TEST_INSN( &AllMask, 0,movdq2q)
|
||||
TEST_INSN( &AllMask, 16,movdqa)
|
||||
TEST_INSN( &AllMask, 16,movdqu)
|
||||
//TEST_INSN( &AllMask, 16,movhpd)
|
||||
//TEST_INSN( &AllMask, 16,movlpd)
|
||||
//TEST_INSN( &AllMask, 0,movmskpd)
|
||||
//TEST_INSN( &AllMask, 0,movntdq)
|
||||
//TEST_INSN( &AllMask, 0,movnti)
|
||||
//TEST_INSN( &AllMask, 0,movntpd)
|
||||
TEST_INSN( &AllMask, 8,movq)
|
||||
//TEST_INSN( &AllMask, 0,movq2dq)
|
||||
TEST_INSN( &AllMask, 8,movsd)
|
||||
TEST_INSN( &AllMask, 16,movupd)
|
||||
TEST_INSN( &AllMask, PD,mulpd)
|
||||
TEST_INSN( &AllMask, SD,mulsd)
|
||||
TEST_INSN( &AllMask, PD,orpd)
|
||||
TEST_INSN( &AllMask, 16,packssdw)
|
||||
TEST_INSN( &AllMask, 16,packsswb)
|
||||
TEST_INSN( &AllMask, 16,packuswb)
|
||||
TEST_INSN( &AllMask, 16,paddb)
|
||||
TEST_INSN( &AllMask, 16,paddd)
|
||||
TEST_INSN( &AllMask, 16,paddq)
|
||||
TEST_INSN( &AllMask, 16,paddsb)
|
||||
TEST_INSN( &AllMask, 16,paddsw)
|
||||
TEST_INSN( &AllMask, 16,paddusb)
|
||||
TEST_INSN( &AllMask, 16,paddusw)
|
||||
TEST_INSN( &AllMask, 16,paddw)
|
||||
TEST_INSN( &AllMask, 16,pand)
|
||||
TEST_INSN( &AllMask, 16,pandn)
|
||||
TEST_INSN( &AllMask, 16,pavgb)
|
||||
TEST_INSN( &AllMask, 16,pavgw)
|
||||
TEST_INSN( &AllMask, 16,pcmpeqb)
|
||||
TEST_INSN( &AllMask, 16,pcmpeqd)
|
||||
TEST_INSN( &AllMask, 16,pcmpeqw)
|
||||
TEST_INSN( &AllMask, 16,pcmpgtb)
|
||||
TEST_INSN( &AllMask, 16,pcmpgtd)
|
||||
TEST_INSN( &AllMask, 16,pcmpgtw)
|
||||
//TEST_INSN( &AllMask, 16,pextrw)
|
||||
//TEST_INSN( &AllMask, 16,pinsrw)
|
||||
TEST_INSN( &AllMask, 16,pmaxsw)
|
||||
TEST_INSN( &AllMask, 16,pmaxub)
|
||||
TEST_INSN( &AllMask, 16,pminsw)
|
||||
TEST_INSN( &AllMask, 16,pminub)
|
||||
//TEST_INSN( &AllMask, 0,pmovmskb)
|
||||
TEST_INSN( &AllMask, 16,pmulhuw)
|
||||
TEST_INSN( &AllMask, 16,pmulhw)
|
||||
TEST_INSN( &AllMask, 16,pmullw)
|
||||
TEST_INSN( &AllMask, 16,pmuludq)
|
||||
TEST_INSN( &AllMask, 16,por)
|
||||
//TEST_INSN( &AllMask, 16,pshufd)
|
||||
//TEST_INSN( &AllMask, 16,pshufhw)
|
||||
//TEST_INSN( &AllMask, 16,pshuflw)
|
||||
TEST_INSN( &AllMask, 16,pslld)
|
||||
//TEST_INSN( &AllMask, 16,pslldq)
|
||||
TEST_INSN( &AllMask, 16,psllq)
|
||||
TEST_INSN( &AllMask, 16,psllw)
|
||||
TEST_INSN( &AllMask, 16,psrad)
|
||||
TEST_INSN( &AllMask, 16,psraw)
|
||||
TEST_INSN( &AllMask, 16,psrld)
|
||||
//TEST_INSN( &AllMask, 16,psrldq)
|
||||
TEST_INSN( &AllMask, 16,psrlq)
|
||||
TEST_INSN( &AllMask, 16,psrlw)
|
||||
TEST_INSN( &AllMask, 16,psubb)
|
||||
TEST_INSN( &AllMask, 16,psubd)
|
||||
TEST_INSN( &AllMask, 16,psubq)
|
||||
TEST_INSN( &AllMask, 16,psubsb)
|
||||
TEST_INSN( &AllMask, 16,psubsw)
|
||||
TEST_INSN( &AllMask, 16,psubusb)
|
||||
TEST_INSN( &AllMask, 16,psubusw)
|
||||
TEST_INSN( &AllMask, 16,psubw)
|
||||
TEST_INSN( &AllMask, 16,punpckhbw)
|
||||
TEST_INSN( &AllMask, 16,punpckhdq)
|
||||
TEST_INSN( &AllMask, 16,punpckhqdq)
|
||||
TEST_INSN( &AllMask, 16,punpckhwd)
|
||||
TEST_INSN( &AllMask, 16,punpcklbw)
|
||||
TEST_INSN( &AllMask, 16,punpckldq)
|
||||
TEST_INSN( &AllMask, 16,punpcklqdq)
|
||||
TEST_INSN( &AllMask, 16,punpcklwd)
|
||||
TEST_INSN( &AllMask, 16,pxor)
|
||||
//TEST_INSN( &AllMask, PD,shufpd)
|
||||
TEST_INSN( &AllMask, PD,sqrtpd)
|
||||
TEST_INSN( &AllMask, SD,sqrtsd)
|
||||
TEST_INSN( &AllMask, PD,subpd)
|
||||
TEST_INSN( &AllMask, SD,subsd)
|
||||
TEST_INSN( &AllMask, SD,ucomisd)
|
||||
TEST_INSN( &AllMask, PD,unpckhpd)
|
||||
TEST_INSN( &AllMask, PD,unpcklpd)
|
||||
TEST_INSN( &AllMask, PD,xorpd)
|
||||
|
||||
|
||||
int main ( int argc, char** argv )
|
||||
{
|
||||
Int sse1 = 0, sse2 = 0;
|
||||
|
||||
if (argc == 2 && 0==strcmp(argv[1], "sse1")) {
|
||||
sse1 = 1;
|
||||
}
|
||||
else
|
||||
if (argc == 2 && 0==strcmp(argv[1], "sse2")) {
|
||||
sse2 = 1;
|
||||
}
|
||||
else
|
||||
if (argc == 2 && 0==strcmp(argv[1], "all")) {
|
||||
sse1 = sse2 = 1;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "usage: sse_memory [sse1|sse2|all]\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ------------------------ SSE1 ------------------------ */
|
||||
if (sse1) {
|
||||
do_addps();
|
||||
do_addss();
|
||||
do_andnps();
|
||||
do_andps();
|
||||
do_cmpeqps();
|
||||
do_cmpeqss();
|
||||
do_cmpleps();
|
||||
do_cmpless();
|
||||
do_cmpltps();
|
||||
do_cmpltss();
|
||||
do_cmpneqps();
|
||||
do_cmpneqss();
|
||||
do_cmpnleps();
|
||||
do_cmpnless();
|
||||
do_cmpnltps();
|
||||
do_cmpnltss();
|
||||
do_cmpordps();
|
||||
do_cmpordss();
|
||||
do_cmpunordps();
|
||||
do_cmpunordss();
|
||||
do_comiss();
|
||||
//TEST_INSN( &AllMask, 0,cvtpi2ps)
|
||||
//TEST_INSN( &AllMask, 0,cvtps2pi)
|
||||
//TEST_INSN( &AllMask, 0,cvtsi2ss)
|
||||
//TEST_INSN( &AllMask, 0,cvtss2si)
|
||||
//TEST_INSN( &AllMask, 0,cvttps2pi)
|
||||
//TEST_INSN( &AllMask, 0,cvttss2si)
|
||||
do_divps();
|
||||
do_divss();
|
||||
do_maxps();
|
||||
do_maxss();
|
||||
do_minps();
|
||||
do_minss();
|
||||
do_movaps();
|
||||
//TEST_INSN( &AllMask, 0,movhlps)
|
||||
//TEST_INSN( &AllMask, 0,movhps)
|
||||
//TEST_INSN( &AllMask, 0,movlhps)
|
||||
//TEST_INSN( &AllMask, 0,movlps)
|
||||
//TEST_INSN( &AllMask, 0,movmskps)
|
||||
//TEST_INSN( &AllMask, 0,movntps)
|
||||
//TEST_INSN( &AllMask, 0,movntq)
|
||||
do_movss();
|
||||
do_movups();
|
||||
do_mulps();
|
||||
do_mulss();
|
||||
do_orps();
|
||||
//TEST_INSN( &AllMask, 0,pavgb) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pavgw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pextrw)
|
||||
//TEST_INSN( &AllMask, 0,pinsrw)
|
||||
//TEST_INSN( &AllMask, 0,pmaxsw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pmaxub) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pminsw) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pminub) -- dup with sse2?
|
||||
//TEST_INSN( &AllMask, 0,pmovmskb)
|
||||
//TEST_INSN( &AllMask, 0,pmulhuw) -- dup with sse2?
|
||||
//do_psadbw(); -- XXXXXXXXXXXXXXXX sse2 (xmm variant) not implemented!
|
||||
//TEST_INSN( &AllMask, 0,pshufw)
|
||||
do_rcpps();
|
||||
do_rcpss();
|
||||
do_rsqrtps();
|
||||
do_rsqrtss();
|
||||
//TEST_INSN( &AllMask, PS,shufps)
|
||||
do_sqrtps();
|
||||
do_sqrtss();
|
||||
do_subps();
|
||||
do_subss();
|
||||
do_ucomiss();
|
||||
do_unpckhps();
|
||||
do_unpcklps();
|
||||
do_xorps();
|
||||
}
|
||||
|
||||
/* ------------------------ SSE2 ------------------------ */
|
||||
if (sse2) {
|
||||
do_addpd();
|
||||
do_addsd();
|
||||
do_andnpd();
|
||||
do_andpd();
|
||||
do_cmpeqpd();
|
||||
do_cmpeqsd();
|
||||
do_cmplepd();
|
||||
do_cmplesd();
|
||||
do_cmpltpd();
|
||||
do_cmpltsd();
|
||||
do_cmpneqpd();
|
||||
do_cmpneqsd();
|
||||
do_cmpnlepd();
|
||||
do_cmpnlesd();
|
||||
do_cmpnltpd();
|
||||
do_cmpnltsd();
|
||||
do_cmpordpd();
|
||||
do_cmpordsd();
|
||||
do_cmpunordpd();
|
||||
do_cmpunordsd();
|
||||
do_comisd();
|
||||
do_cvtdq2pd();
|
||||
do_cvtdq2ps();
|
||||
do_cvtpd2dq();
|
||||
//TEST_INSN( &AllMask, 0,cvtpd2pi)
|
||||
do_cvtpd2ps();
|
||||
//TEST_INSN( &AllMask, 0,cvtpi2pd)
|
||||
do_cvtps2dq();
|
||||
do_cvtps2pd();
|
||||
//TEST_INSN( &AllMask, 0,cvtsd2si)
|
||||
do_cvtsd2ss();
|
||||
//TEST_INSN( &AllMask, 0,cvtsi2sd)
|
||||
do_cvtss2sd();
|
||||
do_cvttpd2dq();
|
||||
//TEST_INSN( &AllMask, 0,cvttpd2pi)
|
||||
do_cvttps2dq();
|
||||
//TEST_INSN( &AllMask, 0,cvttsd2si)
|
||||
do_divpd();
|
||||
do_divsd();
|
||||
do_maxpd();
|
||||
do_maxsd();
|
||||
do_minpd();
|
||||
do_minsd();
|
||||
do_movapd();
|
||||
//TEST_INSN( &AllMask, 8,movd)
|
||||
//TEST_INSN( &AllMask, 0,movdq2q)
|
||||
do_movdqa();
|
||||
do_movdqu();
|
||||
//TEST_INSN( &AllMask, 16,movhpd)
|
||||
//TEST_INSN( &AllMask, 16,movlpd)
|
||||
//TEST_INSN( &AllMask, 0,movmskpd)
|
||||
//TEST_INSN( &AllMask, 0,movntdq)
|
||||
//TEST_INSN( &AllMask, 0,movnti)
|
||||
//TEST_INSN( &AllMask, 0,movntpd)
|
||||
do_movq();
|
||||
//TEST_INSN( &AllMask, 0,movq2dq)
|
||||
do_movsd();
|
||||
do_movupd();
|
||||
do_mulpd();
|
||||
do_mulsd();
|
||||
do_orpd();
|
||||
do_packssdw();
|
||||
do_packsswb();
|
||||
do_packuswb();
|
||||
do_paddb();
|
||||
do_paddd();
|
||||
do_paddq();
|
||||
do_paddsb();
|
||||
do_paddsw();
|
||||
do_paddusb();
|
||||
do_paddusw();
|
||||
do_paddw();
|
||||
do_pand();
|
||||
do_pandn();
|
||||
do_pavgb();
|
||||
do_pavgw();
|
||||
do_pcmpeqb();
|
||||
do_pcmpeqd();
|
||||
do_pcmpeqw();
|
||||
do_pcmpgtb();
|
||||
do_pcmpgtd();
|
||||
do_pcmpgtw();
|
||||
//TEST_INSN( &AllMask, 16,pextrw)
|
||||
//TEST_INSN( &AllMask, 16,pinsrw)
|
||||
do_pmaxsw();
|
||||
do_pmaxub();
|
||||
do_pminsw();
|
||||
do_pminub();
|
||||
//TEST_INSN( &AllMask, 0,pmovmskb)
|
||||
do_pmulhuw();
|
||||
do_pmulhw();
|
||||
do_pmullw();
|
||||
do_pmuludq();
|
||||
do_por();
|
||||
//TEST_INSN( &AllMask, 16,pshufd)
|
||||
//TEST_INSN( &AllMask, 16,pshufhw)
|
||||
//TEST_INSN( &AllMask, 16,pshuflw)
|
||||
do_pslld();
|
||||
//TEST_INSN( &AllMask, 16,pslldq)
|
||||
do_psllq();
|
||||
do_psllw();
|
||||
do_psrad();
|
||||
do_psraw();
|
||||
do_psrld();
|
||||
//TEST_INSN( &AllMask, 16,psrldq)
|
||||
do_psrlq();
|
||||
do_psrlw();
|
||||
do_psubb();
|
||||
do_psubd();
|
||||
do_psubq();
|
||||
do_psubsb();
|
||||
do_psubsw();
|
||||
do_psubusb();
|
||||
do_psubusw();
|
||||
do_psubw();
|
||||
do_punpckhbw();
|
||||
do_punpckhdq();
|
||||
do_punpckhqdq();
|
||||
do_punpckhwd();
|
||||
do_punpcklbw();
|
||||
do_punpckldq();
|
||||
do_punpcklqdq();
|
||||
do_punpcklwd();
|
||||
do_pxor();
|
||||
//TEST_INSN( &AllMask, PD,shufpd)
|
||||
do_sqrtpd();
|
||||
do_sqrtsd();
|
||||
do_subpd();
|
||||
do_subsd();
|
||||
do_ucomisd();
|
||||
do_unpckhpd();
|
||||
do_unpcklpd();
|
||||
do_xorpd();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
|
||||
2006-05-21: vex r1619 finally causes the x86->IR front end to state
|
||||
exactly the %eflags dataflow surrounding 'cmpb $0, ... ; js ..'
|
||||
and so memcheck no longer gives a false positive on this test.
|
||||
|
||||
-----------
|
||||
|
||||
(original comments)
|
||||
Assembly derived from the following program compiled with -O2.
|
||||
This fools Valgrind, causing it to give a false error.
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
struct Foo
|
||||
{
|
||||
int a1 : 1;
|
||||
int a2 : 1;
|
||||
int a3 : 1;
|
||||
int a4 : 1;
|
||||
int a5 : 1;
|
||||
int a6 : 1;
|
||||
int a7 : 1;
|
||||
int bleh : 1;
|
||||
};
|
||||
|
||||
struct Foo* foo;
|
||||
|
||||
void set()
|
||||
{
|
||||
foo->bleh = 1;
|
||||
}
|
||||
|
||||
void get()
|
||||
{
|
||||
if ( foo->bleh == 0 )
|
||||
printf( "blieb\n" );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
foo = malloc(sizeof(struct Foo));
|
||||
set();
|
||||
|
||||
get();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
#include "tests/asm.h"
|
||||
|
||||
.file "tronical.c"
|
||||
#if defined(VGO_linux) || defined(VGO_solaris)
|
||||
.version "01.01"
|
||||
#endif
|
||||
gcc2_compiled.:
|
||||
.text
|
||||
.align 4
|
||||
.globl set
|
||||
set:
|
||||
pushl %ebp
|
||||
movl foo, %eax
|
||||
orb $128, (%eax)
|
||||
movl %esp, %ebp
|
||||
popl %ebp
|
||||
ret
|
||||
.Lfe1:
|
||||
.LC0:
|
||||
.ascii "blieb\n"
|
||||
.text
|
||||
.align 4
|
||||
.globl get
|
||||
get:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $8, %esp
|
||||
movl foo, %eax
|
||||
cmpb $0, (%eax)
|
||||
js .L4
|
||||
subl $12, %esp
|
||||
pushl $.LC0
|
||||
call VG_SYM_ASM(printf)
|
||||
addl $16, %esp
|
||||
.L4:
|
||||
leave
|
||||
ret
|
||||
.Lfe2:
|
||||
.align 4
|
||||
.globl VG_SYM_ASM(main)
|
||||
VG_SYM_ASM(main):
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $20, %esp
|
||||
pushl $4
|
||||
call VG_SYM_ASM(malloc)
|
||||
movl %eax, foo
|
||||
call set
|
||||
call get
|
||||
xorl %eax, %eax
|
||||
leave
|
||||
ret
|
||||
.Lfe3:
|
||||
.comm foo,4,4
|
||||
.ident "GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)"
|
||||
@@ -0,0 +1,3 @@
|
||||
prog: tronical
|
||||
stderr_filter: filter_tronical
|
||||
vgopts: -q
|
||||
@@ -0,0 +1,157 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define JZ_NEXT ".byte 0x74,0x00" /* jz the-next-insn */
|
||||
|
||||
int main ( void )
|
||||
{
|
||||
char* junk = malloc(48);
|
||||
assert(junk);
|
||||
|
||||
|
||||
/* --- INTEGER --- */
|
||||
|
||||
printf("\nComplain int32\n");
|
||||
__asm__ __volatile__(
|
||||
"movl 0(%0), %%eax\n\t"
|
||||
"movl 8(%0), %%edi\n\t"
|
||||
"xorl %%edi, %%eax\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "edi", "eax", "cc"
|
||||
);
|
||||
|
||||
printf("\nNo complain int32\n");
|
||||
__asm__ __volatile__(
|
||||
"movl 0(%0), %%eax\n\t"
|
||||
"movl 8(%0), %%edi\n\t"
|
||||
"xorl %%eax, %%eax\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "edi", "eax", "cc"
|
||||
);
|
||||
|
||||
|
||||
/* --- MMX --- */
|
||||
|
||||
printf("\nComplain mmx\n");
|
||||
__asm__ __volatile__(
|
||||
"emms\n\t"
|
||||
"movq 0(%0), %%mm0\n\t"
|
||||
"movq 8(%0), %%mm7\n\t"
|
||||
"pxor %%mm7, %%mm0\n\t"
|
||||
"movq %%mm0, 16(%0)\n\t"
|
||||
"movl 16(%0), %%esi\n\t"
|
||||
"addl 20(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "mm7", "mm0", "cc", "memory"
|
||||
);
|
||||
|
||||
printf("\nNo complain mmx\n");
|
||||
__asm__ __volatile__(
|
||||
"emms\n\t"
|
||||
"movq 0(%0), %%mm0\n\t"
|
||||
"movq 8(%0), %%mm7\n\t"
|
||||
"pxor %%mm0, %%mm0\n\t"
|
||||
"movq %%mm0, 16(%0)\n\t"
|
||||
"movl 16(%0), %%esi\n\t"
|
||||
"addl 20(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "mm7", "mm0", "cc", "memory"
|
||||
);
|
||||
|
||||
|
||||
/* --- SSE1 --- */
|
||||
|
||||
printf("\nComplain sse xorps\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"xorps %%xmm7, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
|
||||
printf("\nNo complain sse xorps\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"xorps %%xmm0, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
|
||||
|
||||
/* --- SSE2 --- */
|
||||
#if 0
|
||||
printf("\nComplain sse2 pxor\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"pxor %%xmm7, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
|
||||
printf("\nNo complain sse2 pxor\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"pxor %%xmm0, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
|
||||
|
||||
printf("\nComplain sse2 xorpd\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"xorpd %%xmm7, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
|
||||
printf("\nNo complain sse2 xorpd\n");
|
||||
__asm__ __volatile__(
|
||||
"movups 0(%0), %%xmm0\n\t"
|
||||
"movups 16(%0), %%xmm7\n\t"
|
||||
"xorpd %%xmm0, %%xmm0\n\t"
|
||||
"movups %%xmm0, 32(%0)\n\t"
|
||||
"movl 32(%0), %%esi\n\t"
|
||||
"addl 36(%0), %%esi\n\t"
|
||||
"addl 40(%0), %%esi\n\t"
|
||||
"addl 44(%0), %%esi\n\t"
|
||||
JZ_NEXT
|
||||
: : "r"(junk) : "esi", "xmm7", "xmm0", "cc", "memory"
|
||||
);
|
||||
#endif
|
||||
|
||||
free(junk);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
at 0x........: main (xor-undef-x86.c:17)
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
at 0x........: main (xor-undef-x86.c:38)
|
||||
|
||||
Conditional jump or move depends on uninitialised value(s)
|
||||
at 0x........: main (xor-undef-x86.c:67)
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
Complain int32
|
||||
|
||||
No complain int32
|
||||
|
||||
Complain mmx
|
||||
|
||||
No complain mmx
|
||||
|
||||
Complain sse xorps
|
||||
|
||||
No complain sse xorps
|
||||
@@ -0,0 +1,3 @@
|
||||
vgopts: -q
|
||||
prog: xor-undef-x86
|
||||
prereq: ../../../tests/x86_amd64_features x86-sse
|
||||
Reference in New Issue
Block a user