1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <stdio.h> 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "const.h" 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "macro_int.h" 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef enum { 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov DROTR=0, DROTR32, DROTRV, DSLL, 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov DSLL32, DSLLV, DSRA, DSRA32, 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov DSRAV, DSRL, DSRL32, DSRLV, 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ROTR, ROTRV, SLL, SLLV, 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov SRA, SRAV, SRL, SRLV 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} logical_op; 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovint main() 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{ 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov logical_op op; 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int i; 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov init_reg_val2(); 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov for (op = DROTR; op <= SRLV; op++) { 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov for (i = 0; i < N; i++) { 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov switch(op) { 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DROTR: 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Release 2 Only */ 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (__mips == 64) && (__mips_isa_rev >= 2) 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DROTR32: 35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Release 2 Only */ 36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (__mips == 64) && (__mips_isa_rev >= 2) 37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("drotr32 $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DROTRV: 48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Release 2 Only */ 49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (__mips == 64) && (__mips_isa_rev >= 2) 50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("drotrv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("drotrv $s0, $s1, $s2", reg_val2[i], reg_val2[N-i-1], 53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s0, s1, s2); 54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSLL: 57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSLL32: 68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 74436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 75436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsll32 $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 76436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 77436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 78436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSLLV: 79436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsllv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 80436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 81436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsllv $s0, $s1, $s2", reg_val2[i], reg_val2[N-i-1], 82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s0, s1, s2); 83436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 84436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRA: 86436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 87436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 88436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 89436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 90436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 95436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 96436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRA32: 97436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 98436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 99436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 100436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 101436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 102436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 103436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 104436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsra32 $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRAV: 108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsrav $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsrav $s0, $s1, $s2", reg_val2[i], reg_val2[N-i-1], 111436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s0, s1, s2); 112436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 113436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 114436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRL: 115436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 116436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 117436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 118436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 119436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 120436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 123436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 124436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 125436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRL32: 126436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 127436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 128436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 129436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 130436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 131436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 132436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 133436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("dsrl32 $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 134436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 135436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case DSRLV: 137436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsrlv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 138436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 139436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("dsrlv $s0, $s1, $s2", reg_val2[i], reg_val2[N-i-1], 140436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s0, s1, s2); 141436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 142436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 143436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case ROTR: 144436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Release 2 Only */ 145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (__mips == 64) && (__mips_isa_rev >= 2) 146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("rotr $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 147436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("rotr $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 148436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("rotr $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 149436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("rotr $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 150436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 151436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 152436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case ROTRV: 153436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* Release 2 Only */ 154436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (__mips == 64) && (__mips_isa_rev >= 2) 155436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("rotrv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 156436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 157436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 158436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 159436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SLL: 160436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 161436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $t0, $t1, 0x00", reg_val2[i], 0x00, t0, t1); 165436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $t2, $t3, 0x1f", reg_val2[i], 0x1f, t2, t3); 166436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $a0, $a1, 0x0f", reg_val2[i], 0x0f, a0, a1); 167436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sll $s0, $s1, 0x03", reg_val2[i], 0x03, s0, s1); 168436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 169436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 170436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SLLV: 171436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("sllv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 172436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 173436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("sllv $s0, $s1, $s2", reg_val2[i], reg_val2[N-i-1], 174436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s0, s1, s2); 175436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 176436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 177436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SRA: 178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sra $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sra $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sra $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 181436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("sra $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 182436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 183436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 184436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SRAV: 185436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("srav $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 186436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 187436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 188436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 189436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SRL: 190436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("srl $t0, $t1, 0x00", reg_val1[i], 0x00, t0, t1); 191436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("srl $t2, $t3, 0x1f", reg_val1[i], 0x1f, t2, t3); 192436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("srl $a0, $a1, 0x0f", reg_val1[i], 0x0f, a0, a1); 193436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST2("srl $s0, $s1, 0x03", reg_val1[i], 0x03, s0, s1); 194436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 195436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 196436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov case SRLV: 197436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov TEST1("srlv $t0, $t1, $t2", reg_val1[i], reg_val1[N-i-1], 198436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov t0, t1, t2); 199436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov break; 200436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 201436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } 202436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } 203436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } 204436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov return 0; 205436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} 206