From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30710 invoked by alias); 29 Mar 2010 02:18:08 -0000 Received: (qmail 30678 invoked by uid 22791); 29 Mar 2010 02:18:06 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN X-Spam-Check-By: sourceware.org Received: from smtp-outbound-1.vmware.com (HELO smtp-outbound-1.vmware.com) (65.115.85.69) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Mar 2010 02:18:00 +0000 Received: from mailhost4.vmware.com (mailhost4.vmware.com [10.16.67.124]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 7A19713032; Sun, 28 Mar 2010 19:17:59 -0700 (PDT) Received: from msnyder-server.eng.vmware.com (promd-2s-dhcp138.eng.vmware.com [10.20.124.138]) by mailhost4.vmware.com (Postfix) with ESMTP id 6F409C9A2C; Sun, 28 Mar 2010 19:17:59 -0700 (PDT) Message-ID: <4BB00DD7.1040608@vmware.com> Date: Mon, 29 Mar 2010 02:18:00 -0000 From: Michael Snyder User-Agent: Thunderbird 2.0.0.22 (X11/20090609) MIME-Version: 1.0 To: Hui Zhu CC: Joel Brobecker , gdb-patches ml Subject: Re: [RFA/i386] Prec x86 MMX 3DNow! SSE SSE2 SSE3 SSSE3 SSE4 support References: <4B26825B.7000209@vmware.com> <4B2BDAEC.7090207@vmware.com> <20100109122833.GB2007@adacore.com> <4B4BD2AE.7030405@vmware.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------090409080309010608050802" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-03/txt/msg00976.txt.bz2 This is a multi-part message in MIME format. --------------090409080309010608050802 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 306 One more thing. ;-) It's not good to have 20 or 30 tests that all report the same pass/fail message, eg: "verify xmm0". It makes it hard to determine which one is failing. Therefore we require that each test within a given test file has a unique output. Take a look at this and see if you like it: --------------090409080309010608050802 Content-Type: text/plain; name="i386-sse-reverse.exp" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="i386-sse-reverse.exp" Content-length: 22591 # Copyright 2009, 2010 Free Software Foundation, Inc. # 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 3 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, see . # This file is part of the gdb testsuite. # # This test tests some i386 general instructions for reverse execution. # if ![target_info exists gdb,can_reverse] { return } if $tracelevel { strace $tracelevel } set prms_id 0 set bug_id 0 if ![istarget "*86*-*linux*"] then { verbose "Skipping i386 reverse tests." return } set testfile "i386-sse-reverse" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} # some targets have leading underscores on assembly symbols. # TODO: detect this automatically set additional_flags "" if [istarget "i?86-*-cygwin*"] then { set additional_flags "additional_flags=-DSYMBOL_PREFIX=\"_\"" } if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } { untested i386-sse-reverse return -1 } set end_of_main [gdb_get_line_number " end of main "] set end_sse_test [gdb_get_line_number " end sse_test "] # Get things started. gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} runto main if [target_info exists gdb,use_precord] { # Activate process record/replay gdb_test "record" "" "Turn on process record" # FIXME: command ought to acknowledge, so we can test if it succeeded. } global hex global decimal gdb_test "break $end_sse_test" \ "Breakpoint $decimal at .* line $end_sse_test\." \ "set breakpoint at end of sse_test" gdb_test "continue" \ " end sse_test .*" \ "continue to end of sse_test" gdb_test "reverse-step" "xorps.*" "reverse-step to xorps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x7f7f7f007fff7fff7f7f7f007fff7fff.*" \ "verify xmm0 at end of sse_test" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x008000ff00000000008000ff00000000.*" \ "verify xmm1 at end of sse_test" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 at end of sse_test" gdb_test "reverse-step" "xorpd.*" "reverse-step to xorpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x7f7f7f007fff7fff7f7f7f007fff7fff.*" \ "verify xmm0 after reverse xorps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ "verify xmm1 after reverse xorps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse xorps" gdb_test "reverse-step" "unpckhps.*" "reverse-step to unpckhps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x7fff7fff7fff7fff0108200001400000.*" \ "verify xmm0 after reverse xorpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ "verify xmm1 after reverse xorpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse xorpd" gdb_test "reverse-step" "unpckhpd.*" "reverse-step to unpckhpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm0 after reverse unpckhps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ "verify xmm1 after reverse unpckhps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse unpckhps" gdb_test "reverse-step" "ucomiss.*" "reverse-step to ucomiss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm0 after reverse unpckhpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ "verify xmm1 after reverse unpckhpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse unpckhpd" gdb_test "reverse-step" "ucomisd.*" "reverse-step to ucomisd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm0 after reverse ucomiss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ "verify xmm1 after reverse ucomiss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse ucomiss" gdb_test "reverse-step" "packssdw.*" "reverse-step to packssdw" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm0 after reverse ucomisd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm1 after reverse ucomisd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x7f7f7f007f7f7f007f7f7f007f7f7f00.*" \ "verify xmm2 after reverse ucomisd" gdb_test "reverse-step" "packsswb.*" "reverse-step to packsswb" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm0 after reverse packssdw" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm1 after reverse packssdw" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm2 after reverse packssdw" gdb_test "reverse-step" "pabsd.*" "reverse-step to pabsd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xfff02000ffc000008ff03ffeff800000.*" \ "verify xmm0 after reverse packsswb" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm1 after reverse packsswb" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm2 after reverse packsswb" gdb_test "reverse-step" "pabsw.*" "reverse-step to pabsw" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xfff02000ffc000008ff03ffeff800000.*" \ "verify xmm0 after reverse pabsd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff82000ffc000009ff07ffeff800000.*" \ "verify xmm1 after reverse pabsd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x010820000140000061107f0201800000.*" \ "verify xmm2 after reverse pabsd" gdb_test "reverse-step" "pabsb.*" "reverse-step to pabsb" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xfff02000ffc000008ff03ffeff800000.*" \ "verify xmm0 after reverse pabsw" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff82000ffc000009ff07ffeff800000.*" \ "verify xmm1 after reverse pabsw" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff00000ffc000008f402ffc80000000.*" \ "verify xmm2 after reverse pabsw" gdb_test "reverse-step" "orps.*" "reverse-step to orps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xfff02000ffc000008ff03ffeff800000.*" \ "verify xmm0 after reverse pabsb" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff80000ffc000001dd0505c79000000.*" \ "verify xmm1 after reverse pabsb" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff00000ffc000008f402ffc80000000.*" \ "verify xmm2 after reverse pabsb" gdb_test "reverse-step" "orpd.*" "reverse-step to orpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffeff800000.*" \ "verify xmm0 after reverse orps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff80000ffc000001dd0505c79000000.*" \ "verify xmm1 after reverse orps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff00000ffc000008f402ffc80000000.*" \ "verify xmm2 after reverse orps" gdb_test "reverse-step" "mulss.*" "reverse-step to mulss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffefe811010.*" \ "verify xmm0 after reverse orpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff80000ffc000001dd0505c79000000.*" \ "verify xmm1 after reverse orpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff00000ffc000008f402ffc80000000.*" \ "verify xmm2 after reverse orpd" gdb_test "reverse-step" "mulsd.*" "reverse-step to mulsd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffefe811010.*" \ "verify xmm0 after reverse mulss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff80000ffc00000ce80200000000000.*" \ "verify xmm1 after reverse mulss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff00000ffc000008f402ffc80000000.*" \ "verify xmm2 after reverse mulss" gdb_test "reverse-step" "mulps.*" "reverse-step to mulps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffefe811010.*" \ "verify xmm0 after reverse mulsd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff80000ffc00000ce80200000000000.*" \ "verify xmm1 after reverse mulsd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff0000000000000005ffffe80000000.*" \ "verify xmm2 after reverse mulsd" gdb_test "reverse-step" "mulpd.*" "reverse-step to mulpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffefe811010.*" \ "verify xmm0 after reverse mulps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff00000ffc00000ff800000ff800000.*" \ "verify xmm1 after reverse mulps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff0000000000000005ffffe80000000.*" \ "verify xmm2 after reverse mulps" gdb_test "reverse-step" "divss.*" "reverse-step to divss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce802000000000000ef01ffefe811010.*" \ "verify xmm0 after reverse mulpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff00000ffc00000ff800000ff800000.*" \ "verify xmm1 after reverse mulpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff0000000000000005ffffe01001fe0.*" \ "verify xmm2 after reverse mulpd" gdb_test "reverse-step" "divsd.*" "reverse-step to divsd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm0 after reverse divss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xfff00000ffc00000ff800000ff800000.*" \ "verify xmm1 after reverse divss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff0000000000000005ffffe01001fe0.*" \ "verify xmm2 after reverse divss" gdb_test "reverse-step" "divps.*" "reverse-step to divps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm0 after reverse divsd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ff800000ff800000.*" \ "verify xmm1 after reverse divsd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xfff0000000000000005ffffe01001fe0.*" \ "verify xmm2 after reverse divsd" gdb_test "reverse-step" "divpd.*" "reverse-step to divpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm0 after reverse divps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ff800000ff800000.*" \ "verify xmm1 after reverse divps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \ "verify xmm2 after reverse divps" gdb_test "reverse-step" "cvtpd2ps.*" "reverse-step to cvtpd2ps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm0 after reverse divpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm1 after reverse divpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \ "verify xmm2 after reverse divpd" gdb_test "reverse-step" "cvtdq2ps.*" "reverse-step to cvtdq2ps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \ "verify xmm0 after reverse cvtpd2ps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm1 after reverse cvtpd2ps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \ "verify xmm2 after reverse cvtpd2ps" gdb_test "reverse-step" "cvtpd2dq.*" "reverse-step to cvtpd2dq" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a090827262524ffffffff.*" \ "verify xmm0 after reverse cvtdq2ps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0xce80200000000000ce80200000000000.*" \ "verify xmm1 after reverse cvtdq2ps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \ "verify xmm2 after reverse cvtdq2ps" gdb_test "reverse-step" "cvtdq2ps.*" "reverse-step to cvtdq2ps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a090827262524ffffffff.*" \ "verify xmm0 after reverse cvtpd2dq" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \ "verify xmm1 after reverse cvtpd2dq" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \ "verify xmm2 after reverse cvtpd2dq" gdb_test "reverse-step" "cvtdq2pd.*" "reverse-step to cvtdq2pd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a090827262524ffffffff.*" \ "verify xmm0 after reverse cvtdq2ps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \ "verify xmm1 after reverse cvtdq2ps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \ "verify xmm2 after reverse cvtdq2ps" gdb_test "reverse-step" "comiss.*" "reverse-step to comiss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a090827262524ffffffff.*" \ "verify xmm0 after reverse cvtdq2pd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \ "verify xmm1 after reverse cvtdq2pd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \ "verify xmm2 after reverse cvtdq2pd" gdb_test "reverse-step" "comisd.*" "reverse-step to comisd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a090827262524ffffffff.*" \ "verify xmm0 after reverse comiss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \ "verify xmm1 after reverse comiss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \ "verify xmm2 after reverse comiss" gdb_test "reverse-step" "cmpss.*" "reverse-step to cmpss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse comisd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \ "verify xmm1 after reverse comisd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \ "verify xmm2 after reverse comisd" gdb_test "reverse-step" "cmpsd.*" "reverse-step to cmpsd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse cmpss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \ "verify xmm1 after reverse cmpss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \ "verify xmm2 after reverse cmpss" gdb_test "reverse-step" "cmpps.*" "reverse-step to cmpps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse cmpsd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \ "verify xmm1 after reverse cmpsd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse cmpsd" gdb_test "reverse-step" "cmppd.*" "reverse-step to cmppd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse cmpps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm1 after reverse cmpps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse cmpps" gdb_test "reverse-step" "blendvps.*" "reverse-step to blendvps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse cmppd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm1 after reverse cmppd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse cmppd" gdb_test "reverse-step" "blendvpd.*" "reverse-step to blendvpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse blendvps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm1 after reverse blendvps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse blendvps" gdb_test "reverse-step" "blendps.*" "reverse-step to blendps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm0 after reverse blendvpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm1 after reverse blendvpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse blendvpd" gdb_test "reverse-step" "blendpd.*" "reverse-step to blendpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \ "verify xmm0 after reverse blendps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm1 after reverse blendps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse blendps" gdb_test "reverse-step" "andps.*" "reverse-step to andps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \ "verify xmm0 after reverse blendpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252400000000.*" \ "verify xmm1 after reverse blendpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \ "verify xmm2 after reverse blendpd" gdb_test "reverse-step" "andpd.*" "reverse-step to andpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \ "verify xmm0 after reverse andps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252400000000.*" \ "verify xmm1 after reverse andps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse andps" gdb_test "reverse-step" "addsubps.*" "reverse-step to addsubps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \ "verify xmm0 after reverse andpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \ "verify xmm1 after reverse andpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse andpd" gdb_test "reverse-step" "addsubpd.*" "reverse-step to addsubpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \ "verify xmm0 after reverse addsubps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \ "verify xmm1 after reverse addsubps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse addsubps" gdb_test "reverse-step" "addss.*" "reverse-step to addss" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ "verify xmm0 after reverse addsubpd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \ "verify xmm1 after reverse addsubpd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse addsubpd" gdb_test "reverse-step" "addsd.*" "reverse-step to addsd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ "verify xmm0 after reverse addss" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ "verify xmm1 after reverse addss" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse addss" gdb_test "reverse-step" "addps.*" "reverse-step to addps" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ "verify xmm0 after reverse addsd" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ "verify xmm1 after reverse addsd" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse addsd" gdb_test "reverse-step" "addpd.*" "reverse-step to addpd" gdb_test "info register xmm0" \ "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ "verify xmm0 after reverse addps" gdb_test "info register xmm1" \ "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ "verify xmm1 after reverse addps" gdb_test "info register xmm2" \ "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ "verify xmm2 after reverse addps" --------------090409080309010608050802--