From: Julian Seward Date: Wed, 11 May 2005 11:21:29 +0000 (+0000) Subject: Regression tests for amd64 instructions. X-Git-Tag: svn/VALGRIND_3_0_0~660 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cdd95c8e38396077b41a5d322179b03b1973992;p=thirdparty%2Fvalgrind.git Regression tests for amd64 instructions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3658 --- diff --git a/none/tests/amd64/Makefile.am b/none/tests/amd64/Makefile.am index e69de29bb2..69eb279424 100644 --- a/none/tests/amd64/Makefile.am +++ b/none/tests/amd64/Makefile.am @@ -0,0 +1,27 @@ + +noinst_SCRIPTS = filter_cpuid filter_stderr filter_int gen_insn_test.pl + +CLEANFILES = $(addsuffix .c,$(INSN_TESTS)) +INSN_TESTS=insn_mmx insn_sse insn_sse2 + +EXTRA_DIST = $(noinst_SCRIPTS) \ + $(addsuffix .stderr.exp,$(INSN_TESTS)) \ + $(addsuffix .stdout.exp,$(INSN_TESTS)) \ + $(addsuffix .vgtest,$(INSN_TESTS)) + +check_PROGRAMS = \ + $(INSN_TESTS) + +AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include +AM_CXXFLAGS = $(AM_CFLAGS) + +# generic C ones +insn_mmx_SOURCES = insn_mmx.def +insn_mmx_LDADD = -lm +insn_sse_SOURCES = insn_sse.def +insn_sse_LDADD = -lm +insn_sse2_SOURCES = insn_sse2.def +insn_sse2_LDADD = -lm + +.def.c: $(srcdir)/gen_insn_test.pl + $(PERL) $(srcdir)/gen_insn_test.pl < $< > $@ diff --git a/none/tests/amd64/filter_cpuid b/none/tests/amd64/filter_cpuid new file mode 100755 index 0000000000..be90891d54 --- /dev/null +++ b/none/tests/amd64/filter_cpuid @@ -0,0 +1,5 @@ +#! /bin/sh + +dir=`dirname $0` + +$dir/filter_stderr diff --git a/none/tests/amd64/filter_int b/none/tests/amd64/filter_int new file mode 100755 index 0000000000..3b86431db2 --- /dev/null +++ b/none/tests/amd64/filter_int @@ -0,0 +1,6 @@ +#! /bin/sh + +dir=`dirname $0` + +$dir/filter_stderr | $dir/../../../tests/filter_addresses + diff --git a/none/tests/amd64/filter_stderr b/none/tests/amd64/filter_stderr new file mode 100755 index 0000000000..616ce05e19 --- /dev/null +++ b/none/tests/amd64/filter_stderr @@ -0,0 +1,4 @@ +#! /bin/sh + +../filter_stderr + diff --git a/none/tests/amd64/insn_mmx.stderr.exp b/none/tests/amd64/insn_mmx.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/amd64/insn_mmx.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/amd64/insn_mmx.stdout.exp b/none/tests/amd64/insn_mmx.stdout.exp new file mode 100644 index 0000000000..cd65b68a02 --- /dev/null +++ b/none/tests/amd64/insn_mmx.stdout.exp @@ -0,0 +1,105 @@ +movd_1 ... ok +movd_2 ... ok +movd_3 ... ok +movd_4 ... ok +movd_5 ... ok +movd_6 ... 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 diff --git a/none/tests/amd64/insn_mmx.vgtest b/none/tests/amd64/insn_mmx.vgtest new file mode 100644 index 0000000000..7a5ecbb725 --- /dev/null +++ b/none/tests/amd64/insn_mmx.vgtest @@ -0,0 +1 @@ +prog: insn_mmx diff --git a/none/tests/amd64/insn_sse.stderr.exp b/none/tests/amd64/insn_sse.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/amd64/insn_sse.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/amd64/insn_sse.stdout.exp b/none/tests/amd64/insn_sse.stdout.exp new file mode 100644 index 0000000000..ae892af087 --- /dev/null +++ b/none/tests/amd64/insn_sse.stdout.exp @@ -0,0 +1,146 @@ +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 +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 +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 diff --git a/none/tests/amd64/insn_sse.vgtest b/none/tests/amd64/insn_sse.vgtest new file mode 100644 index 0000000000..a3b690b2fc --- /dev/null +++ b/none/tests/amd64/insn_sse.vgtest @@ -0,0 +1 @@ +prog: insn_sse diff --git a/none/tests/amd64/insn_sse2.stderr.exp b/none/tests/amd64/insn_sse2.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/amd64/insn_sse2.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/amd64/insn_sse2.stdout.exp b/none/tests/amd64/insn_sse2.stdout.exp new file mode 100644 index 0000000000..6bafbf92d4 --- /dev/null +++ b/none/tests/amd64/insn_sse2.stdout.exp @@ -0,0 +1,328 @@ +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 +cmpneqpd_1 ... ok +cmpneqpd_2 ... ok +cmpnltpd_1 ... ok +cmpnltpd_2 ... ok +cmpnlepd_1 ... ok +cmpnlepd_2 ... ok +cmpeqsd_1 ... ok +cmpeqsd_2 ... ok +cmpltsd_1 ... ok +cmpltsd_2 ... ok +cmplesd_1 ... ok +cmplesd_2 ... ok +cmpneqsd_1 ... ok +cmpneqsd_2 ... ok +cmpnltsd_1 ... ok +cmpnltsd_2 ... ok +cmpnlesd_1 ... ok +cmpnlesd_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 +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 +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 +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 diff --git a/none/tests/amd64/insn_sse2.vgtest b/none/tests/amd64/insn_sse2.vgtest new file mode 100644 index 0000000000..a4dfcf3956 --- /dev/null +++ b/none/tests/amd64/insn_sse2.vgtest @@ -0,0 +1 @@ +prog: insn_sse2