summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2008-06-30 12:59:14 -0700
committerDavid Schleef <ds@schleef.org>2008-06-30 12:59:14 -0700
commit6b4c918198f6c2c8574cc6b357a9bbb8ce0cdd5f (patch)
treecf321e9cd5b6e7d479468b02f39e473b8de22c7d
parent995e3d8db82044cfed4ca1bce37fdb0ff29f6753 (diff)
make mmx test a bit more accurate
-rw-r--r--testsuite/mmx_engine.c40
1 files changed, 36 insertions, 4 deletions
diff --git a/testsuite/mmx_engine.c b/testsuite/mmx_engine.c
index d6eae61..2462acb 100644
--- a/testsuite/mmx_engine.c
+++ b/testsuite/mmx_engine.c
@@ -136,6 +136,14 @@ void mmx_engine_test(void)
" " #insn " %%mm5, %%mm6\n" \
" " #insn " %%mm6, %%mm7\n" \
" " #insn " %%mm7, %%mm0\n" \
+ " " #insn " %%mm0, %%mm1\n" \
+ " " #insn " %%mm1, %%mm2\n" \
+ " " #insn " %%mm2, %%mm3\n" \
+ " " #insn " %%mm3, %%mm4\n" \
+ " " #insn " %%mm4, %%mm5\n" \
+ " " #insn " %%mm5, %%mm6\n" \
+ " " #insn " %%mm6, %%mm7\n" \
+ " " #insn " %%mm7, %%mm0\n" \
" decl %%ecx\n" \
" jne 1b\n" \
" emms\n" \
@@ -144,7 +152,7 @@ void mmx_engine_test(void)
} \
oil_profile_get_ave_std(&prof, &ave, &std); \
ave -= OFFSET; \
- sci_sprint_alt(s,ave/16000,std/16000); \
+ sci_sprint_alt(s,ave/24000,std/24000); \
printf("latency of " #insn ": %s\n", s);
CHECK_LATENCY(packssdw)
@@ -218,6 +226,14 @@ void mmx_engine_test(void)
" " #insn " %%mm5, %%mm5\n" \
" " #insn " %%mm6, %%mm6\n" \
" " #insn " %%mm7, %%mm7\n" \
+ " " #insn " %%mm0, %%mm0\n" \
+ " " #insn " %%mm1, %%mm1\n" \
+ " " #insn " %%mm2, %%mm2\n" \
+ " " #insn " %%mm3, %%mm3\n" \
+ " " #insn " %%mm4, %%mm4\n" \
+ " " #insn " %%mm5, %%mm5\n" \
+ " " #insn " %%mm6, %%mm6\n" \
+ " " #insn " %%mm7, %%mm7\n" \
" decl %%ecx\n" \
" jne 1b\n" \
" emms\n" \
@@ -226,7 +242,7 @@ void mmx_engine_test(void)
} \
oil_profile_get_ave_std(&prof, &ave, &std); \
ave -= OFFSET; \
- sci_sprint_alt(s,ave/16000,std/16000); \
+ sci_sprint_alt(s,ave/24000,std/24000); \
printf("throughput of " #insn ": %s\n", s);
CHECK_THROUGHPUT(packssdw)
@@ -314,6 +330,14 @@ void sse2_engine_test(void)
" " #insn " %%xmm5, %%xmm6\n" \
" " #insn " %%xmm6, %%xmm7\n" \
" " #insn " %%xmm7, %%xmm0\n" \
+ " " #insn " %%xmm0, %%xmm1\n" \
+ " " #insn " %%xmm1, %%xmm2\n" \
+ " " #insn " %%xmm2, %%xmm3\n" \
+ " " #insn " %%xmm3, %%xmm4\n" \
+ " " #insn " %%xmm4, %%xmm5\n" \
+ " " #insn " %%xmm5, %%xmm6\n" \
+ " " #insn " %%xmm6, %%xmm7\n" \
+ " " #insn " %%xmm7, %%xmm0\n" \
" decl %%ecx\n" \
" jne 1b\n" \
:::"ecx"); \
@@ -321,7 +345,7 @@ void sse2_engine_test(void)
} \
oil_profile_get_ave_std(&prof, &ave, &std); \
ave -= OFFSET; \
- sci_sprint_alt(s,ave/16000,std/16000); \
+ sci_sprint_alt(s,ave/24000,std/24000); \
printf("latency of " #insn ": %s\n", s);
CHECK_LATENCY(packssdw)
@@ -397,6 +421,14 @@ void sse2_engine_test(void)
" " #insn " %%xmm5, %%xmm5\n" \
" " #insn " %%xmm6, %%xmm6\n" \
" " #insn " %%xmm7, %%xmm7\n" \
+ " " #insn " %%xmm0, %%xmm0\n" \
+ " " #insn " %%xmm1, %%xmm1\n" \
+ " " #insn " %%xmm2, %%xmm2\n" \
+ " " #insn " %%xmm3, %%xmm3\n" \
+ " " #insn " %%xmm4, %%xmm4\n" \
+ " " #insn " %%xmm5, %%xmm5\n" \
+ " " #insn " %%xmm6, %%xmm6\n" \
+ " " #insn " %%xmm7, %%xmm7\n" \
" decl %%ecx\n" \
" jne 1b\n" \
:::"ecx"); \
@@ -404,7 +436,7 @@ void sse2_engine_test(void)
} \
oil_profile_get_ave_std(&prof, &ave, &std); \
ave -= OFFSET; \
- sci_sprint_alt(s,ave/16000,std/16000); \
+ sci_sprint_alt(s,ave/24000,std/24000); \
printf("throughput of " #insn ": %s\n", s);
CHECK_THROUGHPUT(packssdw)