128-bit Binary Integer Operation tests

This commit is contained in:
Carl Love 2020-10-06 12:00:07 -05:00
parent 7a52b46d1a
commit 62f62b7ce6
6 changed files with 3443 additions and 5 deletions

View File

@ -52,11 +52,10 @@ EXTRA_DIST = \
test_isa_3_1_RT.vgtest test_isa_3_1_RT.stderr.exp test_isa_3_1_RT.stdout.exp \
test_isa_3_1_XT.vgtest test_isa_3_1_XT.stderr.exp test_isa_3_1_XT.stdout.exp \
test_isa_3_1_VRT.vgtest test_isa_3_1_VRT.stderr.exp test_isa_3_1_VRT.stdout.exp \
test_isa_3_1_Misc.vgtest \
test_isa_3_1_Misc.vgtest test_isa_3_1_Misc.stderr.exp test_isa_3_1_Misc.stdout.exp \
test_isa_3_1_AT.vgtest \
subnormal_test.stderr.exp subnormal_test.stdout.exp \
subnormal_test.vgtest
# test_isa_3_1_Misc.vgtest test_isa_3_1_Misc.stderr.exp test_isa_3_1_Misc.stdout.exp
# test_isa_3_1_AT.vgtest test_isa_3_1_AT.stderr.exp test_isa_3_1_AT.stdout.exp
check_PROGRAMS = \
@ -67,11 +66,12 @@ check_PROGRAMS = \
test_isa_2_07_part1 test_isa_2_07_part2 \
test_isa_3_0 \
test_isa_3_1_RT test_isa_3_1_XT test_isa_3_1_VRT \
test_isa_3_1_Misc \
subnormal_test \
test_tm test_touch_tm ldst_multiple data-cache-instructions \
power6_mf_gpr std_reg_imm \
twi_tdi tw_td power6_bcmp
# test_isa_3_1_Misc test_isa_3_1_AT
# test_isa_3_1_AT
AM_CFLAGS += @FLAG_M64@
AM_CXXFLAGS += @FLAG_M64@
@ -82,9 +82,9 @@ allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
test_isa_3_1_XT_SOURCES = test_isa_3_1_XT.c test_isa_3_1_common.c
test_isa_3_1_RT_SOURCES = test_isa_3_1_RT.c test_isa_3_1_common.c
test_isa_3_1_VRT_SOURCES = test_isa_3_1_VRT.c test_isa_3_1_common.c
test_isa_3_1_Misc_SOURCES = test_isa_3_1_Misc.c test_isa_3_1_common.c
#test_isa_3_1_AT_SOURCES = test_isa_3_1_AT.c test_isa_3_1_common.c
#test_isa_3_1_Misc_SOURCES = test_isa_3_1_Misc.c test_isa_3_1_common.c
if HAS_ALTIVEC
BUILD_FLAG_ALTIVEC = -maltivec
@ -189,6 +189,7 @@ test_isa_3_1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(ISA_3_1_FL
test_isa_3_1_RT_CFLAGS = $(test_isa_3_1_CFLAGS)
test_isa_3_1_XT_CFLAGS = $(test_isa_3_1_CFLAGS)
test_isa_3_1_VRT_CFLAGS = $(test_isa_3_1_CFLAGS)
test_isa_3_1_Misc_CFLAGS = $(test_isa_3_1_CFLAGS)
subnormal_test_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) $(ISA_2_06_FLAG) \
@FLAG_M64@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX) $(BUILD_FLAGS_ISA_2_06)

View File

@ -0,0 +1,273 @@
/*
* Valgrind testcase for PowerPC ISA 3.1
*
* Copyright (C) 2019-2020 Will Schmidt <will_schmidt@vnet.ibm.com>
*
* 64bit build:
* gcc -Winline -Wall -g -O -mregnames -maltivec -m64
*/
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#ifdef HAS_ISA_3_1
#include <stdint.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <altivec.h>
#include <malloc.h>
#include <string.h>
#include <signal.h>
#include <setjmp.h>
/* Condition Register fields.
These are used to capture the condition register values immediately after
the instruction under test is executed. This is done to help prevent other
test overhead (switch statements, result compares, etc) from disturbing
the test case results. */
unsigned long current_cr;
unsigned long current_fpscr;
struct test_list_t current_test;
#include "isa_3_1_helpers.h"
static void test_vcmpsq (void) {
SET_CR_ZERO;
__asm__ __volatile__ ("vcmpsq 3, %0, %1" :: "v" (vra), "v" (vrb) );
GET_CR(current_cr); SET_CR_ZERO;
}
static void test_vcmpuq (void) {
SET_CR_ZERO;
__asm__ __volatile__ ("vcmpuq 3, %0, %1" :: "v" (vra), "v" (vrb) );
GET_CR(current_cr); SET_CR_ZERO;
}
static test_list_t testgroup_generic[] = {
{ &test_vcmpsq, "vcmpsq", "BF,VRA,VRB"}, /* bcs */
{ &test_vcmpuq, "vcmpuq", "BF,VRA,VRB"}, /* bcs */
{ NULL, NULL },
};
/* Allow skipping of tests. */
unsigned long test_count=0xffff;
unsigned long skip_count=0;
unsigned long setup_only=0;
/* Set up a setjmp/longjmp to gently handle our SIGILLs and SIGSEGVs. */
static jmp_buf mybuf;
/* This (testfunction_generic) is meant to handle all of the instruction
variations. The helpers set up the register and iterator values
as is appropriate for the instruction being tested. */
static void testfunction_generic (const char* instruction_name,
test_func_t test_function,
unsigned int ignore_flags,
char * cur_form) {
identify_form_components (instruction_name , cur_form);
debug_show_form (instruction_name, cur_form);
set_up_iterators ();
debug_show_iter_ranges ();
initialize_buffer (0);
debug_dump_buffer ();
for (vrai = a_start; vrai < a_iters ; vrai+=a_inc) {
for (vrbi = b_start; vrbi < b_iters ; vrbi+=b_inc) {
for (vrci = c_start; vrci < c_iters ; vrci+=c_inc) {
for (vrmi = m_start; (vrmi < m_iters) ; vrmi+=m_inc) {
CHECK_OVERRIDES
debug_show_current_iteration ();
// Be sure to initialize the target registers first.
initialize_target_registers ();
initialize_source_registers ();
printf ("%s", instruction_name);
print_register_header ();
printf( " =>"); fflush (stdout);
if (!setup_only) {
if (enable_setjmp) {
if ( setjmp ( mybuf ) ) {
printf("signal tripped. (FIXME)\n");
continue;
}
}
(*test_function) ();
}
print_register_footer ();
print_result_buffer ();
printf ("\n");
}
}
}
}
}
void mykillhandler ( int x ) { longjmp (mybuf, 1); }
void mysegvhandler ( int x ) { longjmp (mybuf, 1); }
static void do_tests ( void )
{
int groupcount;
char * cur_form;
test_group_t group_function = &testfunction_generic;
test_list_t *tests = testgroup_generic;
struct sigaction kill_action, segv_action;
struct sigaction old_kill_action, old_segv_action;
if (enable_setjmp) {
kill_action.sa_handler = mykillhandler;
segv_action.sa_handler = mysegvhandler;
sigemptyset ( &kill_action.sa_mask );
sigemptyset ( &segv_action.sa_mask );
kill_action.sa_flags = SA_NODEFER;
segv_action.sa_flags = SA_NODEFER;
sigaction ( SIGILL, &kill_action, &old_kill_action);
sigaction ( SIGSEGV, &segv_action, &old_segv_action);
}
for (groupcount = 0; tests[groupcount].name != NULL; groupcount++) {
cur_form = strdup(tests[groupcount].form);
current_test = tests[groupcount];
if (groupcount < skip_count) continue;
if (verbose) printf("Test #%d ,", groupcount);
if (verbose > 1) printf(" instruction %s (v=%d)", current_test.name, verbose);
(*group_function) (current_test.name, current_test.func, 0, cur_form );
printf ("\n");
if (groupcount >= (skip_count+test_count)) break;
}
if (debug_show_labels) printf("\n");
printf ("All done. Tested %d different instruction groups\n", groupcount);
}
static void usage (void)
{
fprintf(stderr,
"Usage: test_isa_XXX [OPTIONS]\n"
"\t-h: display this help and exit\n"
"\t-v: increase verbosity\n"
"\t-a <foo> : limit number of a-iterations to <foo>\n"
"\t-b <foo> : limit number of b-iterations to <foo>\n"
"\t-c <foo> : limit number of c-iterations to <foo>\n"
"\t-n <foo> : limit to this number of tests.\n"
"\t-r <foo>: run only test # <foo> \n"
"\t\n"
"\t-j :enable setjmp to recover from illegal insns. \n"
"\t-m :(dev only?) lock VRM value to zero.\n"
"\t-z :(dev only?) lock MC value to zero.\n"
"\t-p :(dev only?) disable prefix instructions\n"
"\t-s <foo>: skip <foo> tests \n"
"\t-c <foo>: stop after running <foo> # of tests \n"
"\t-f : Do the test setup but do not actually execute the test instruction. \n"
);
}
int main (int argc, char **argv)
{
int c;
while ((c = getopt(argc, argv, "dhjvmpfzs:a:b:c:n:r:")) != -1) {
switch (c) {
case 'h':
usage();
return 0;
case 'v':
verbose++;
break;
/* Options related to limiting the test iterations. */
case 'a':
a_limit=atoi (optarg);
printf ("limiting a-iters to %ld.\n", a_limit);
break;
case 'b':
b_limit=atoi (optarg);
printf ("limiting b-iters to %ld.\n", b_limit);
break;
case 'c':
c_limit=atoi (optarg);
printf ("limiting c-iters to %ld.\n", c_limit);
break;
case 'n': // run this number of tests.
test_count=atoi (optarg);
printf ("limiting to %ld tests\n", test_count);
break;
case 'r': // run just test #<foo>.
skip_count=atoi (optarg);
test_count=0;
if (verbose) printf("Running only test number %ld\n", skip_count);
break;
case 's': // skip this number of tests.
skip_count=atoi (optarg);
printf ("skipping %ld tests\n", skip_count);
break;
/* debug options. */
case 'd':
dump_tables=1;
printf("DEBUG:dump_tables.\n");
break;
case 'f':
setup_only=1;
printf("DEBUG:setup_only.\n");
break;
case 'j':
enable_setjmp=1;
printf ("DEBUG:setjmp enabled.\n");
break;
case 'm':
vrm_override=1;
printf ("DEBUG:vrm override enabled.\n");
break;
case 'p':
prefix_override=1;
printf ("DEBUG:prefix override enabled.\n");
break;
case 'z':
mc_override=1;
printf ("DEBUG:MC override enabled.\n");
break;
default:
usage();
fprintf(stderr, "Unknown argument: '%c'\n", c);
}
}
generic_prologue ();
build_vsx_table ();
build_args_table ();
build_float_vsx_tables ();
if (dump_tables) {
dump_float_vsx_tables ();
dump_vsxargs ();
}
do_tests ();
return 0;
}
#else // HAS_ISA_3_1
int main (int argc, char **argv)
{
printf("NO ISA 3.1 SUPPORT\n");
return 0;
}
#endif

View File

@ -0,0 +1,2 @@

View File

@ -0,0 +1,341 @@
vcmpsq 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [00020000]
vcmpsq 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 fff0000000000000,2208400000000000 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 0000000000000009,ffff000180000001 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 ffff000180000001,0000000000000000 => [00080000]
vcmpsq 7f800000ff800000,ff8000007f800000 0000000000000000,8000000000000000 => [00040000]
vcmpsq 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe ff8000007f800000,ff7ffffe7f7ffffe => [00020000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 7ff0000000000000,fff0000000000000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 2208400000000000,0000000000000009 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 0000000000000009,ffff000180000001 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe ffff000180000001,0000000000000000 => [00080000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [00040000]
vcmpsq ff8000007f800000,ff7ffffe7f7ffffe 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e ff7ffffe7f7ffffe,0080000e8080000e => [00020000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 0180055e0180077e,0000111e8000222e => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e fff0000000000000,2208400000000000 => [00080000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 2208400000000000,0000000000000009 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 0000000000000009,ffff000180000001 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e ffff000180000001,0000000000000000 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 0000000000000000,8000000000000000 => [00040000]
vcmpsq ff7ffffe7f7ffffe,0080000e8080000e 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 0080000e8080000e,0180055e0180077e 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e 0080000e8080000e,0180055e0180077e => [00020000]
vcmpsq 0080000e8080000e,0180055e0180077e 0180055e0180077e,0000111e8000222e => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 0080000e8080000e,0180055e0180077e 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e fff0000000000000,2208400000000000 => [00080000]
vcmpsq 0080000e8080000e,0180055e0180077e 2208400000000000,0000000000000009 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e 0000000000000009,ffff000180000001 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e ffff000180000001,0000000000000000 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e 0000000000000000,8000000000000000 => [00040000]
vcmpsq 0080000e8080000e,0180055e0180077e 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 0180055e0180077e,0000111e8000222e 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => [00020000]
vcmpsq 0180055e0180077e,0000111e8000222e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 0180055e0180077e,0000111e8000222e 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e fff0000000000000,2208400000000000 => [00080000]
vcmpsq 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e 0000000000000009,ffff000180000001 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e ffff000180000001,0000000000000000 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e 0000000000000000,8000000000000000 => [00040000]
vcmpsq 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 0000111e8000222e,7ff0000000000000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 0000111e8000222e,7ff0000000000000 => [00020000]
vcmpsq 0000111e8000222e,7ff0000000000000 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 2208400000000000,0000000000000009 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 0000000000000009,ffff000180000001 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [00040000]
vcmpsq 0000111e8000222e,7ff0000000000000 8000000000000000,7f800000ff800000 => [00040000]
vcmpsq 7ff0000000000000,fff0000000000000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 7ff0000000000000,fff0000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 7ff0000000000000,fff0000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 7ff0000000000000,fff0000000000000 => [00020000]
vcmpsq 7ff0000000000000,fff0000000000000 fff0000000000000,2208400000000000 => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 2208400000000000,0000000000000009 => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 ffff000180000001,0000000000000000 => [00080000]
vcmpsq 7ff0000000000000,fff0000000000000 0000000000000000,8000000000000000 => [00040000]
vcmpsq 7ff0000000000000,fff0000000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq fff0000000000000,2208400000000000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq fff0000000000000,2208400000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq fff0000000000000,2208400000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpsq fff0000000000000,2208400000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpsq fff0000000000000,2208400000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpsq fff0000000000000,2208400000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq fff0000000000000,2208400000000000 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq fff0000000000000,2208400000000000 fff0000000000000,2208400000000000 => [00020000]
vcmpsq fff0000000000000,2208400000000000 2208400000000000,0000000000000009 => [00040000]
vcmpsq fff0000000000000,2208400000000000 0000000000000009,ffff000180000001 => [00040000]
vcmpsq fff0000000000000,2208400000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpsq fff0000000000000,2208400000000000 0000000000000000,8000000000000000 => [00040000]
vcmpsq fff0000000000000,2208400000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 2208400000000000,0000000000000009 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 2208400000000000,0000000000000009 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 2208400000000000,0000000000000009 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq 2208400000000000,0000000000000009 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 2208400000000000,0000000000000009 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 2208400000000000,0000000000000009 fff0000000000000,2208400000000000 => [00080000]
vcmpsq 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => [00020000]
vcmpsq 2208400000000000,0000000000000009 0000000000000009,ffff000180000001 => [00040000]
vcmpsq 2208400000000000,0000000000000009 ffff000180000001,0000000000000000 => [00040000]
vcmpsq 2208400000000000,0000000000000009 0000000000000000,8000000000000000 => [00040000]
vcmpsq 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 0000000000000009,ffff000180000001 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 0000000000000009,ffff000180000001 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 0000000000000009,ffff000180000001 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 0000000000000009,ffff000180000001 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq 0000000000000009,ffff000180000001 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 0000000000000009,ffff000180000001 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [00080000]
vcmpsq 0000000000000009,ffff000180000001 2208400000000000,0000000000000009 => [00080000]
vcmpsq 0000000000000009,ffff000180000001 0000000000000009,ffff000180000001 => [00020000]
vcmpsq 0000000000000009,ffff000180000001 ffff000180000001,0000000000000000 => [00080000]
vcmpsq 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [00040000]
vcmpsq 0000000000000009,ffff000180000001 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq ffff000180000001,0000000000000000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq ffff000180000001,0000000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq ffff000180000001,0000000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq ffff000180000001,0000000000000000 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq ffff000180000001,0000000000000000 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq ffff000180000001,0000000000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq ffff000180000001,0000000000000000 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq ffff000180000001,0000000000000000 fff0000000000000,2208400000000000 => [00080000]
vcmpsq ffff000180000001,0000000000000000 2208400000000000,0000000000000009 => [00080000]
vcmpsq ffff000180000001,0000000000000000 0000000000000009,ffff000180000001 => [00040000]
vcmpsq ffff000180000001,0000000000000000 ffff000180000001,0000000000000000 => [00020000]
vcmpsq ffff000180000001,0000000000000000 0000000000000000,8000000000000000 => [00040000]
vcmpsq ffff000180000001,0000000000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpsq 0000000000000000,8000000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpsq 0000000000000000,8000000000000000 0080000e8080000e,0180055e0180077e => [00080000]
vcmpsq 0000000000000000,8000000000000000 0180055e0180077e,0000111e8000222e => [00080000]
vcmpsq 0000000000000000,8000000000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 fff0000000000000,2208400000000000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 2208400000000000,0000000000000009 => [00080000]
vcmpsq 0000000000000000,8000000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpsq 0000000000000000,8000000000000000 ffff000180000001,0000000000000000 => [00080000]
vcmpsq 0000000000000000,8000000000000000 0000000000000000,8000000000000000 => [00020000]
vcmpsq 0000000000000000,8000000000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpsq 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpsq 8000000000000000,7f800000ff800000 7ff0000000000000,fff0000000000000 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 fff0000000000000,2208400000000000 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 0000000000000009,ffff000180000001 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 ffff000180000001,0000000000000000 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => [00040000]
vcmpsq 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [00020000]
vcmpuq 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [00020000]
vcmpuq 7f800000ff800000,ff8000007f800000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 0000111e8000222e,7ff0000000000000 => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 7f800000ff800000,ff8000007f800000 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 7f800000ff800000,ff8000007f800000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 0000000000000000,8000000000000000 => [00040000]
vcmpuq 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe ff8000007f800000,ff7ffffe7f7ffffe => [00020000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 0000111e8000222e,7ff0000000000000 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 2208400000000000,0000000000000009 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 0000000000000009,ffff000180000001 => [00080000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe ffff000180000001,0000000000000000 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [00040000]
vcmpuq ff8000007f800000,ff7ffffe7f7ffffe 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e ff7ffffe7f7ffffe,0080000e8080000e => [00020000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 0080000e8080000e,0180055e0180077e => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e fff0000000000000,2208400000000000 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 2208400000000000,0000000000000009 => [00040000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 0000000000000009,ffff000180000001 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e ffff000180000001,0000000000000000 => [00040000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 0000000000000000,8000000000000000 => [00080000]
vcmpuq ff7ffffe7f7ffffe,0080000e8080000e 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 0080000e8080000e,0180055e0180077e 0080000e8080000e,0180055e0180077e => [00020000]
vcmpuq 0080000e8080000e,0180055e0180077e 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 0080000e8080000e,0180055e0180077e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e fff0000000000000,2208400000000000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e 2208400000000000,0000000000000009 => [00040000]
vcmpuq 0080000e8080000e,0180055e0180077e 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e ffff000180000001,0000000000000000 => [00040000]
vcmpuq 0080000e8080000e,0180055e0180077e 0000000000000000,8000000000000000 => [00080000]
vcmpuq 0080000e8080000e,0180055e0180077e 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 0080000e8080000e,0180055e0180077e => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => [00020000]
vcmpuq 0180055e0180077e,0000111e8000222e 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e fff0000000000000,2208400000000000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => [00040000]
vcmpuq 0180055e0180077e,0000111e8000222e 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e ffff000180000001,0000000000000000 => [00040000]
vcmpuq 0180055e0180077e,0000111e8000222e 0000000000000000,8000000000000000 => [00080000]
vcmpuq 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 0000111e8000222e,7ff0000000000000 => [00020000]
vcmpuq 0000111e8000222e,7ff0000000000000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 2208400000000000,0000000000000009 => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [00080000]
vcmpuq 0000111e8000222e,7ff0000000000000 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 0000111e8000222e,7ff0000000000000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 7ff0000000000000,fff0000000000000 => [00020000]
vcmpuq 7ff0000000000000,fff0000000000000 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 2208400000000000,0000000000000009 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 7ff0000000000000,fff0000000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 0000000000000000,8000000000000000 => [00040000]
vcmpuq 7ff0000000000000,fff0000000000000 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq fff0000000000000,2208400000000000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq fff0000000000000,2208400000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq fff0000000000000,2208400000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq fff0000000000000,2208400000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq fff0000000000000,2208400000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq fff0000000000000,2208400000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq fff0000000000000,2208400000000000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq fff0000000000000,2208400000000000 fff0000000000000,2208400000000000 => [00020000]
vcmpuq fff0000000000000,2208400000000000 2208400000000000,0000000000000009 => [00040000]
vcmpuq fff0000000000000,2208400000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq fff0000000000000,2208400000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq fff0000000000000,2208400000000000 0000000000000000,8000000000000000 => [00080000]
vcmpuq fff0000000000000,2208400000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 2208400000000000,0000000000000009 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpuq 2208400000000000,0000000000000009 0080000e8080000e,0180055e0180077e => [00080000]
vcmpuq 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => [00080000]
vcmpuq 2208400000000000,0000000000000009 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 fff0000000000000,2208400000000000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => [00020000]
vcmpuq 2208400000000000,0000000000000009 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 2208400000000000,0000000000000009 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 2208400000000000,0000000000000009 0000000000000000,8000000000000000 => [00080000]
vcmpuq 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 0000000000000009,ffff000180000001 7f800000ff800000,ff8000007f800000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 ff8000007f800000,ff7ffffe7f7ffffe => [00040000]
vcmpuq 0000000000000009,ffff000180000001 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 0000000000000009,ffff000180000001 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 0000000000000009,ffff000180000001 0000111e8000222e,7ff0000000000000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 7ff0000000000000,fff0000000000000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 2208400000000000,0000000000000009 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 0000000000000009,ffff000180000001 => [00020000]
vcmpuq 0000000000000009,ffff000180000001 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [00040000]
vcmpuq 0000000000000009,ffff000180000001 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq ffff000180000001,0000000000000000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq ffff000180000001,0000000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq ffff000180000001,0000000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00080000]
vcmpuq ffff000180000001,0000000000000000 0080000e8080000e,0180055e0180077e => [00080000]
vcmpuq ffff000180000001,0000000000000000 0180055e0180077e,0000111e8000222e => [00080000]
vcmpuq ffff000180000001,0000000000000000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq ffff000180000001,0000000000000000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq ffff000180000001,0000000000000000 fff0000000000000,2208400000000000 => [00080000]
vcmpuq ffff000180000001,0000000000000000 2208400000000000,0000000000000009 => [00080000]
vcmpuq ffff000180000001,0000000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq ffff000180000001,0000000000000000 ffff000180000001,0000000000000000 => [00020000]
vcmpuq ffff000180000001,0000000000000000 0000000000000000,8000000000000000 => [00080000]
vcmpuq ffff000180000001,0000000000000000 8000000000000000,7f800000ff800000 => [00080000]
vcmpuq 0000000000000000,8000000000000000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 0000000000000000,8000000000000000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 0000000000000000,8000000000000000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 0000000000000000,8000000000000000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 0000000000000000,8000000000000000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 0000000000000000,8000000000000000 0000111e8000222e,7ff0000000000000 => [00040000]
vcmpuq 0000000000000000,8000000000000000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 0000000000000000,8000000000000000 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 0000000000000000,8000000000000000 2208400000000000,0000000000000009 => [00040000]
vcmpuq 0000000000000000,8000000000000000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 0000000000000000,8000000000000000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 0000000000000000,8000000000000000 0000000000000000,8000000000000000 => [00020000]
vcmpuq 0000000000000000,8000000000000000 8000000000000000,7f800000ff800000 => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 ff8000007f800000,ff7ffffe7f7ffffe => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 ff7ffffe7f7ffffe,0080000e8080000e => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 0080000e8080000e,0180055e0180077e => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 0000111e8000222e,7ff0000000000000 => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 7ff0000000000000,fff0000000000000 => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 fff0000000000000,2208400000000000 => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 0000000000000009,ffff000180000001 => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 ffff000180000001,0000000000000000 => [00040000]
vcmpuq 8000000000000000,7f800000ff800000 0000000000000000,8000000000000000 => [00080000]
vcmpuq 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [00020000]
All done. Tested 2 different instruction groups

View File

@ -117,6 +117,76 @@ static void test_vmodud (void) {
__asm__ __volatile__ ("vmodud %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vmulesd (void) {
__asm__ __volatile__ ("vmulesd %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vmuleud (void) {
__asm__ __volatile__ ("vmuleud %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vmulosd (void) {
__asm__ __volatile__ ("vmulosd %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vmuloud (void) {
__asm__ __volatile__ ("vmuloud %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vextsd2q (void) {
__asm__ __volatile__ ("vextsd2q %0, %1 " : "=v" (vrt) : "v" (vrb) );
}
static void test_vcmpequq (void) {
__asm__ __volatile__ ("vcmpequq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_dotted_vcmpequq (void) {
SET_CR_ZERO;
__asm__ __volatile__ ("vcmpequq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
GET_CR(current_cr); SET_CR_ZERO;
}
static void test_vcmpgtsq (void) {
__asm__ __volatile__ ("vcmpgtsq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_dotted_vcmpgtsq (void) {
SET_CR_ZERO;
__asm__ __volatile__ ("vcmpgtsq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
GET_CR(current_cr); SET_CR_ZERO;
}
static void test_vcmpgtuq (void) {
__asm__ __volatile__ ("vcmpgtuq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_dotted_vcmpgtuq (void) {
SET_CR_ZERO;
__asm__ __volatile__ ("vcmpgtuq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
GET_CR(current_cr); SET_CR_ZERO;
}
static void test_vrlq (void) {
__asm__ __volatile__ ("vrlq %0, %1, %2" : "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vrlqmi (void) {
__asm__ __volatile__ ("vrlqmi %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vrlqnm (void) {
__asm__ __volatile__ ("vrlqnm %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vslq (void) {
__asm__ __volatile__ ("vslq %0, %1, %2" : "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vsraq (void) {
__asm__ __volatile__ ("vsraq %0, %1, %2"
: "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vsrq (void) {
__asm__ __volatile__ ("vsrq %0, %1, %2" : "=v" (vrt) : "v" (vra), "v" (vrb) );
}
static void test_vextdubvlx (void) {
__asm__ __volatile__ ("vextdubvlx %0, %1, %2, %3"
: "=v" (vrt) : "v" (vra), "v" (vrb), "r" (rc) );
@ -255,6 +325,12 @@ static void test_xsmincqp (void) {
}
static test_list_t testgroup_generic[] = {
{ &test_dotted_vcmpequq, "vcmpequq.", "VRT,VRA,VRB"}, /* bcs */
{ &test_dotted_vcmpgtsq, "vcmpgtsq.", "VRT,VRA,VRB"}, /* bcs */
{ &test_dotted_vcmpgtuq, "vcmpgtuq.", "VRT,VRA,VRB"}, /* bcs */
{ &test_vcmpequq, "vcmpequq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vcmpgtsq, "vcmpgtsq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vcmpgtuq, "vcmpgtuq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vdivesd, "vdivesd", "VRT,VRA,VRB"}, /* bcs */
{ &test_vdivesw, "vdivesw", "VRT,VRA,VRB"}, /* bcs */
{ &test_vdiveud, "vdiveud", "VRT,VRA,VRB"}, /* bcs */
@ -271,6 +347,7 @@ static test_list_t testgroup_generic[] = {
{ &test_vextduhvrx, "vextduhvrx", "VRT,VRA,VRB,RC"}, /* bcs */
{ &test_vextduwvlx, "vextduwvlx", "VRT,VRA,VRB,RC"}, /* bcs */
{ &test_vextduwvrx, "vextduwvrx", "VRT,VRA,VRB,RC"}, /* bcs */
{ &test_vextsd2q, "vextsd2q", "VRT,VRB"}, /* bcs */
{ &test_vinsblx, "vinsblx", "VRT,RA,RB"}, /* bcs */
{ &test_vinsbrx, "vinsbrx", "VRT,RA,RB"}, /* bcs */
{ &test_vinsbvlx, "vinsbvlx", "VRT,RA,VRB"}, /* bcs */
@ -293,15 +370,25 @@ static test_list_t testgroup_generic[] = {
{ &test_vmodsw, "vmodsw", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmodud, "vmodud", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmoduw, "vmoduw", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulesd, "vmulesd", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmuleud, "vmuleud", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulhsd, "vmulhsd", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulhsw, "vmulhsw", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulhud, "vmulhud", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulhuw, "vmulhuw", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulld, "vmulld", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmulosd, "vmulosd", "VRT,VRA,VRB"}, /* bcs */
{ &test_vmuloud, "vmuloud", "VRT,VRA,VRB"}, /* bcs */
{ &test_vrlqmi, "vrlqmi", "VRT,VRA,VRB"}, /* bcs */
{ &test_vrlqnm, "vrlqnm", "VRT,VRA,VRB"}, /* bcs */
{ &test_vrlq, "vrlq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vsldbi_0, "vsldbi 0", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vsldbi_4, "vsldbi 4", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vslq, "vslq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vsraq, "vsraq", "VRT,VRA,VRB"}, /* bcs */
{ &test_vsrdbi_0, "vsrdbi 0", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vsrdbi_4, "vsrdbi 4", "VRT,VRA,VRB,SH"}, /* bcwp */
{ &test_vsrq, "vsrq", "VRT,VRA,VRB"}, /* bcs */
{ &test_xscmpeqqp, "xscmpeqqp", "VRT,VRA,VRB"}, /* bcs */
{ &test_xscmpgeqp, "xscmpgeqp", "VRT,VRA,VRB"}, /* bcs */
{ &test_xscmpgtqp, "xscmpgtqp", "VRT,VRA,VRB"}, /* bcs */

File diff suppressed because it is too large Load Diff