VexRiscvBPluginGenerator/aes256ctrstandalone-rv32/comp.c

897 lines
51 KiB
C

#include <stdio.h>
#include <stdlib.h>
#define ASM2MACRO(N, O) asm(".macro "#N" rd, rs1, rs2\n" \
".word ("#O" | (\\rd << 7) | (\\rs1 << 15) | (\\rs2 << 20))\n" \
".endm\n");
asm("#define reg_zero 0\n");
#define ASM2FMACRO(N, O) asm(".macro "#N" rt, rs2\n" \
".word ("#O" | (\\rt << 15) | (\\rs2 << 20))\n" \
".endm\n");
asm("#define reg_ra 1\n");
asm("#define reg_sp 2\n");
asm("#define reg_gp 3\n");
asm("#define reg_tp 4\n");
asm("#define reg_t0 5\n");
asm("#define reg_t1 6\n");
asm("#define reg_t2 7\n");
asm("#define reg_s0 8\n");
asm("#define reg_s1 9\n");
asm("#define reg_a0 10\n");
asm("#define reg_a1 11\n");
asm("#define reg_a2 12\n");
asm("#define reg_a3 13\n");
asm("#define reg_a4 14\n");
asm("#define reg_a5 15\n");
asm("#define reg_a6 16\n");
asm("#define reg_a7 17\n");
asm("#define reg_s2 18\n");
asm("#define reg_s3 19\n");
asm("#define reg_s4 20\n");
asm("#define reg_s5 21\n");
asm("#define reg_s6 22\n");
asm("#define reg_s7 23\n");
asm("#define reg_s8 24\n");
asm("#define reg_s9 25\n");
asm("#define reg_s10 26\n");
asm("#define reg_s11 27\n");
asm("#define reg_t3 28\n");
asm("#define reg_t4 29\n");
asm("#define reg_t5 30\n");
asm("#define reg_t6 31\n");
#define FUN2(NAME, ASNAME) \
static inline uint32_t NAME(uint32_t rs1, uint32_t rs2) { \
uint32_t r; \
asm (#ASNAME " reg_%0, reg_%1, reg_%2\n" \
: "=r" (r) \
: "r" (rs1), "r" (rs2)); \
return r; \
}
#define FUN2F(NAME, ASNAME) \
static inline uint32_t NAME(uint32_t rs1, uint32_t rs2) { \
uint32_t r = rs1; \
asm (#ASNAME " reg_%0, reg_%1\n" \
: "+&r" (r) \
: "r" (rs2)); \
return r; \
}
ASM2FMACRO(AES32ESMI0,0x36000033)
ASM2FMACRO(AES32ESMI1,0x76000033)
ASM2FMACRO(AES32ESMI2,0xb6000033)
ASM2FMACRO(AES32ESMI3,0xf6000033)
ASM2FMACRO(AES32ESI0,0x32000033)
ASM2FMACRO(AES32ESI1,0x72000033)
ASM2FMACRO(AES32ESI2,0xb2000033)
ASM2FMACRO(AES32ESI3,0xf2000033)
FUN2F(aes32esmi0,AES32ESMI0)
FUN2F(aes32esmi1,AES32ESMI1)
FUN2F(aes32esmi2,AES32ESMI2)
FUN2F(aes32esmi3,AES32ESMI3)
FUN2F(aes32esi0,AES32ESI0)
FUN2F(aes32esi1,AES32ESI1)
FUN2F(aes32esi2,AES32ESI2)
FUN2F(aes32esi3,AES32ESI3)
/*
~/LITEX/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc -march=rv32ima -mabi=ilp32 -Os -S comp.c -o comp.S && ~/LITEX/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc -march=rv32ima -mabi=ilp32 -Os -c comp.S -o comp.o && ~/LITEX/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc -march=rv32ima -mabi=ilp32 -Os comp.o -o comp
*/
#define TEST_RRI_OP(fun, res, rs1, rs2) \
do { \
uint32_t a = rs1, b = rs2; \
uint32_t c = fun(a,b); \
uint32_t d = c ^ res; \
if (d) printf("ERR: " #fun " 0x%08x, 0x%08x -> 0x%08x (expected 0x%08x)\n", \
a, b, c, res); \
} while (0)
int main(int argc, char** argv) {
// directly lifted from K compliance suite
TEST_RRI_OP(aes32esmi0,0xae4b1321,0xe880d8ac,0xd101b159);
TEST_RRI_OP(aes32esmi0,0x67402134,0xa20362b2,0x4406c564);
TEST_RRI_OP(aes32esmi0,0x108c0bd1,0x880d8ac8,0x101b1591);
TEST_RRI_OP(aes32esmi0,0xdb968b78,0x20362b23,0x406c5647);
TEST_RRI_OP(aes32esmi0,0xdb186c14,0x80d8ac8f,0x1b1591f);
TEST_RRI_OP(aes32esmi0,0x6eb06080,0x362b23f,0x6c5647f);
TEST_RRI_OP(aes32esmi0,0xf1de9c56,0xd8ac8fe,0x1b1591fd);
TEST_RRI_OP(aes32esmi0,0x8e434b2b,0x362b23fb,0x6c5647f7);
TEST_RRI_OP(aes32esmi0,0x806d4e77,0xd8ac8fee,0xb1591fdd);
TEST_RRI_OP(aes32esmi0,0xcf20ad85,0x62b23fba,0xc5647f74);
TEST_RRI_OP(aes32esmi0,0xc8f6c094,0x8ac8fee8,0x1591fdd1);
TEST_RRI_OP(aes32esmi0,0xd0835bf8,0x2b23fba3,0x5647f747);
TEST_RRI_OP(aes32esmi0,0x131372ad,0xac8fee8e,0x591fdd1c);
TEST_RRI_OP(aes32esmi0,0x416eeb9a,0xb23fba38,0x647f7470);
TEST_RRI_OP(aes32esmi0,0xbad0c6bd,0xc8fee8e1,0x91fdd1c3);
TEST_RRI_OP(aes32esmi0,0x3a055d61,0x23fba386,0x47f7470c);
TEST_RRI_OP(aes32esmi0,0xd12d4d84,0x8fee8e19,0x1fdd1c33);
TEST_RRI_OP(aes32esmi0,0xe2f173f0,0x3fba3866,0x7f7470cc);
TEST_RRI_OP(aes32esmi0,0xa02b2204,0xfee8e199,0xfdd1c333);
TEST_RRI_OP(aes32esmi0,0x7d280d6a,0xfba38667,0xf7470cce);
TEST_RRI_OP(aes32esmi0,0xd89c0bb8,0xee8e199c,0xdd1c3339);
TEST_RRI_OP(aes32esmi0,0xcae1bfdb,0xba386672,0x7470cce5);
TEST_RRI_OP(aes32esmi0,0x96cbb39e,0xe8e199ca,0xd1c33395);
TEST_RRI_OP(aes32esmi0,0xc3a6476a,0xa386672a,0x470cce54);
TEST_RRI_OP(aes32esmi0,0xe6c84d11,0x8e199ca8,0x1c333951);
TEST_RRI_OP(aes32esmi0,0x157d6994,0x386672a2,0x70cce544);
TEST_RRI_OP(aes32esmi0,0x7c1b4897,0xe199ca88,0xc3339511);
TEST_RRI_OP(aes32esmi0,0x683d7097,0x86672a23,0xcce5446);
TEST_RRI_OP(aes32esmi0,0xf33307c8,0x199ca88d,0x3339511b);
TEST_RRI_OP(aes32esmi0,0x85da0a7c,0x6672a237,0xcce5446f);
TEST_RRI_OP(aes32esmi0,0x36afed14,0x99ca88de,0x339511bc);
TEST_RRI_OP(aes32esmi0,0x9f8b8221,0x672a2378,0xce5446f1);
TEST_RRI_OP(aes32esmi0,0x6d0e2bb5,0x9ca88de2,0x39511bc5);
TEST_RRI_OP(aes32esmi0,0x7952c770,0x72a2378b,0xe5446f17);
TEST_RRI_OP(aes32esmi0,0x804711aa,0xca88de2f,0x9511bc5f);
TEST_RRI_OP(aes32esmi0,0x47f1aa00,0x2a2378bf,0x5446f17f);
TEST_RRI_OP(aes32esmi0,0x633d5285,0xa88de2fe,0x511bc5fc);
TEST_RRI_OP(aes32esmi0,0x2dbb07fb,0xa2378bf8,0x446f17f0);
TEST_RRI_OP(aes32esmi0,0xe7fb0aab,0x88de2fe1,0x11bc5fc2);
TEST_RRI_OP(aes32esmi0,0x2079be86,0x2378bf84,0x46f17f09);
TEST_RRI_OP(aes32esmi0,0xccddc16c,0x8de2fe12,0x1bc5fc25);
TEST_RRI_OP(aes32esmi0,0x9c1b6870,0x378bf84b,0x6f17f096);
TEST_RRI_OP(aes32esmi0,0x9516d85f,0xde2fe12d,0xbc5fc25b);
TEST_RRI_OP(aes32esmi0,0x9b172cfc,0x78bf84b7,0xf17f096f);
TEST_RRI_OP(aes32esmi0,0x6c84682a,0xe2fe12de,0xc5fc25bd);
TEST_RRI_OP(aes32esmi0,0x4dba09ff,0x8bf84b7b,0x17f096f6);
TEST_RRI_OP(aes32esmi0,0x70d41886,0x2fe12dec,0x5fc25bd9);
TEST_RRI_OP(aes32esmi0,0x2b0132a2,0xbf84b7b3,0x7f096f67);
TEST_RRI_OP(aes32esmi0,0x87cc0069,0xfe12dece,0xfc25bd9c);
TEST_RRI_OP(aes32esmi0,0x6e8d865,0xf84b7b38,0xf096f671);
TEST_RRI_OP(aes32esmi0,0x108b4ab5,0xe12dece2,0xc25bd9c5);
TEST_RRI_OP(aes32esmi0,0x6feeea38,0x84b7b38a,0x96f6715);
TEST_RRI_OP(aes32esmi0,0xd2232c9,0x12dece2a,0x25bd9c55);
TEST_RRI_OP(aes32esmi0,0x2b5b18ea,0x4b7b38aa,0x96f67154);
TEST_RRI_OP(aes32esmi0,0x453d3311,0x2dece2a8,0x5bd9c551);
TEST_RRI_OP(aes32esmi0,0x59e9d017,0xb7b38aa3,0x6f671546);
TEST_RRI_OP(aes32esmi0,0xb91afe3f,0xdece2a8c,0xbd9c5519);
TEST_RRI_OP(aes32esmi0,0xbe7be9b4,0x7b38aa32,0xf6715464);
TEST_RRI_OP(aes32esmi0,0x4c82c808,0xece2a8c8,0xd9c55190);
TEST_RRI_OP(aes32esmi0,0xc7a68f79,0xb38aa321,0x67154642);
TEST_RRI_OP(aes32esmi0,0xb301a7d3,0xce2a8c85,0x9c55190b);
TEST_RRI_OP(aes32esmi0,0x7bf273d,0x38aa3217,0x7154642f);
TEST_RRI_OP(aes32esmi0,0x6cd2b2aa,0xe2a8c85e,0xc55190bd);
TEST_RRI_OP(aes32esmi0,0xbb45c7ad,0x8aa3217a,0x154642f5);
TEST_RRI_OP(aes32esmi0,0x2b7a731c,0x2a8c85eb,0x55190bd6);
TEST_RRI_OP(aes32esmi0,0xe10b2edf,0xaa3217ad,0x54642f5b);
TEST_RRI_OP(aes32esmi0,0x4b60f6fc,0xa8c85eb7,0x5190bd6f);
TEST_RRI_OP(aes32esmi0,0x2d5b002a,0xa3217ade,0x4642f5bd);
TEST_RRI_OP(aes32esmi0,0x34ed83ab,0x8c85eb7b,0x190bd6f7);
TEST_RRI_OP(aes32esmi0,0x6ad66c77,0x3217adee,0x642f5bdd);
TEST_RRI_OP(aes32esmi0,0x65cc2585,0xc85eb7ba,0x90bd6f74);
TEST_RRI_OP(aes32esmi0,0x6344e094,0x217adee8,0x42f5bdd1);
TEST_RRI_OP(aes32esmi0,0x3785157e,0x85eb7ba2,0xbd6f745);
TEST_RRI_OP(aes32esmi0,0x1c5d1e70,0x17adee8b,0x2f5bdd17);
TEST_RRI_OP(aes32esmi0,0x80fdf0ba,0x5eb7ba2e,0xbd6f745c);
TEST_RRI_OP(aes32esmi0,0x898fb91a,0x7adee8b8,0xf5bdd170);
TEST_RRI_OP(aes32esmi0,0x3ec1188f,0xeb7ba2e0,0xd6f745c0);
TEST_RRI_OP(aes32esmi0,0x88de846,0xadee8b80,0x5bdd1700);
TEST_RRI_OP(aes32esmi0,0x12d94dc6,0xb7ba2e00,0x6f745c00);
TEST_RRI_OP(aes32esmi0,0x5393c3f7,0xdee8b801,0xbdd17003);
TEST_RRI_OP(aes32esmi0,0xe1d496eb,0x7ba2e007,0xf745c00f);
TEST_RRI_OP(aes32esmi0,0x71fef5f5,0xee8b801f,0xdd17003f);
TEST_RRI_OP(aes32esmi0,0x6c95bb12,0xba2e007f,0x745c00fe);
TEST_RRI_OP(aes32esmi0,0xf9b70ee3,0xe8b801fd,0xd17003fb);
TEST_RRI_OP(aes32esmi0,0x5db5525c,0xa2e007f6,0x45c00fed);
TEST_RRI_OP(aes32esmi0,0x6b29b692,0x8b801fdb,0x17003fb7);
TEST_RRI_OP(aes32esmi0,0x76c1bef7,0x2e007f6e,0x5c00fedd);
TEST_RRI_OP(aes32esmi0,0xbcf4084a,0xb801fdbb,0x7003fb77);
TEST_RRI_OP(aes32esmi0,0x718170f9,0xe007f6ee,0xc00feddc);
TEST_RRI_OP(aes32esmi0,0x405f9b39,0x801fdbb9,0x3fb772);
TEST_RRI_OP(aes32esmi0,0x7ca2b345,0x7f6ee4,0xfeddc9);
TEST_RRI_OP(aes32esmi0,0x5bcb8dfe,0x1fdbb92,0x3fb7724);
TEST_RRI_OP(aes32esmi0,0xd6b9a1d7,0x7f6ee49,0xfeddc92);
TEST_RRI_OP(aes32esmi0,0xe989eb80,0x1fdbb924,0x3fb77248);
TEST_RRI_OP(aes32esmi0,0xd1fd77ac,0x7f6ee491,0xfeddc922);
TEST_RRI_OP(aes32esmi0,0xaa7f56d7,0xfdbb9244,0xfb772488);
TEST_RRI_OP(aes32esmi0,0x3459fe65,0xf6ee4910,0xeddc9220);
TEST_RRI_OP(aes32esmi0,0xf455c882,0xdbb92441,0xb7724883);
TEST_RRI_OP(aes32esmi0,0x771a6fe1,0x6ee49106,0xddc9220c);
TEST_RRI_OP(aes32esmi0,0xdeb1675f,0xbb924419,0x77248832);
TEST_RRI_OP(aes32esmi1,0x59fe65a6,0xee491064,0xdc9220c9);
TEST_RRI_OP(aes32esmi1,0x55c882bd,0xb9244192,0x72488325);
TEST_RRI_OP(aes32esmi1,0x1a6fe152,0xe491064b,0xc9220c97);
TEST_RRI_OP(aes32esmi1,0xb1675f4b,0x9244192e,0x2488325c);
TEST_RRI_OP(aes32esmi1,0x94cdc5c4,0x491064b8,0x9220c970);
TEST_RRI_OP(aes32esmi1,0x1b7eeca1,0x244192e0,0x488325c0);
TEST_RRI_OP(aes32esmi1,0x198e4003,0x91064b80,0x220c9701);
TEST_RRI_OP(aes32esmi1,0xe53badd,0x44192e03,0x88325c06);
TEST_RRI_OP(aes32esmi1,0x41351afe,0x1064b80d,0x20c9701a);
TEST_RRI_OP(aes32esmi1,0xfb288fe0,0x4192e035,0x8325c06b);
TEST_RRI_OP(aes32esmi1,0x7a377852,0x64b80d6,0xc9701ad);
TEST_RRI_OP(aes32esmi1,0x7641ddea,0x192e035b,0x325c06b7);
TEST_RRI_OP(aes32esmi1,0xc61a5293,0x64b80d6e,0xc9701adc);
TEST_RRI_OP(aes32esmi1,0xed9fcb39,0x92e035b8,0x25c06b70);
TEST_RRI_OP(aes32esmi1,0xde15e744,0x4b80d6e0,0x9701adc0);
TEST_RRI_OP(aes32esmi1,0x87aa1261,0x2e035b81,0x5c06b703);
TEST_RRI_OP(aes32esmi1,0x3e8b7997,0xb80d6e06,0x701adc0c);
TEST_RRI_OP(aes32esmi1,0xb1641aeb,0xe035b818,0xc06b7030);
TEST_RRI_OP(aes32esmi1,0x3a6c8fb5,0x80d6e060,0x1adc0c1);
TEST_RRI_OP(aes32esmi1,0x7820770f,0x35b8182,0x6b70305);
TEST_RRI_OP(aes32esmi1,0xf390e113,0xd6e060a,0x1adc0c14);
TEST_RRI_OP(aes32esmi1,0x31bc1024,0x35b81828,0x6b703051);
TEST_RRI_OP(aes32esmi1,0xae98902a,0xd6e060a2,0xadc0c145);
TEST_RRI_OP(aes32esmi1,0x30ea5437,0x5b81828a,0xb7030515);
TEST_RRI_OP(aes32esmi1,0x94fce53f,0x6e060a2a,0xdc0c1455);
TEST_RRI_OP(aes32esmi1,0x69c991c2,0xb81828aa,0x70305154);
TEST_RRI_OP(aes32esmi1,0x8e0e7e1b,0xe060a2a9,0xc0c14553);
TEST_RRI_OP(aes32esmi1,0xd8db384c,0x81828aa7,0x305154f);
TEST_RRI_OP(aes32esmi1,0xfaf6c981,0x60a2a9e,0xc14553d);
TEST_RRI_OP(aes32esmi1,0x3808ea1b,0x1828aa7b,0x305154f7);
TEST_RRI_OP(aes32esmi1,0x8d4f68c2,0x60a2a9ee,0xc14553dc);
TEST_RRI_OP(aes32esmi1,0x60eb42e,0x828aa7b9,0x5154f72);
TEST_RRI_OP(aes32esmi1,0x2d0dd08c,0xa2a9ee5,0x14553dca);
TEST_RRI_OP(aes32esmi1,0x40c2ab2d,0x28aa7b95,0x5154f72a);
TEST_RRI_OP(aes32esmi1,0x242ff9c4,0xa2a9ee55,0x4553dcab);
TEST_RRI_OP(aes32esmi1,0xcae73996,0x8aa7b956,0x154f72ad);
TEST_RRI_OP(aes32esmi1,0x5eea0dc7,0x2a9ee55b,0x553dcab6);
TEST_RRI_OP(aes32esmi1,0x4f9e4458,0xaa7b956c,0x54f72ad8);
TEST_RRI_OP(aes32esmi1,0xcb8c9117,0xa9ee55b1,0x53dcab63);
TEST_RRI_OP(aes32esmi1,0x322c6762,0xa7b956c6,0x4f72ad8d);
TEST_RRI_OP(aes32esmi1,0xd0abc7c8,0x9ee55b1a,0x3dcab635);
TEST_RRI_OP(aes32esmi1,0x1af4aec8,0x7b956c6b,0xf72ad8d6);
TEST_RRI_OP(aes32esmi1,0x15ae5cbb,0xee55b1ad,0xdcab635a);
TEST_RRI_OP(aes32esmi1,0xe40b7c52,0xb956c6b5,0x72ad8d6a);
TEST_RRI_OP(aes32esmi1,0x73cd2d75,0xe55b1ad4,0xcab635a9);
TEST_RRI_OP(aes32esmi1,0x639a9c52,0x956c6b53,0x2ad8d6a6);
TEST_RRI_OP(aes32esmi1,0xeb0fca94,0x55b1ad4d,0xab635a9a);
TEST_RRI_OP(aes32esmi1,0x54c4b133,0x56c6b535,0xad8d6a6b);
TEST_RRI_OP(aes32esmi1,0x88c969b9,0x5b1ad4d7,0xb635a9ae);
TEST_RRI_OP(aes32esmi1,0x484f1b31,0x6c6b535d,0xd8d6a6ba);
TEST_RRI_OP(aes32esmi1,0x91526a7,0xb1ad4d74,0x635a9ae8);
TEST_RRI_OP(aes32esmi1,0xb9cacb51,0xc6b535d0,0x8d6a6ba0);
TEST_RRI_OP(aes32esmi1,0xfe300477,0x1ad4d740,0x35a9ae80);
TEST_RRI_OP(aes32esmi1,0x9fa7ae06,0x6b535d01,0xd6a6ba03);
TEST_RRI_OP(aes32esmi1,0x36d659b0,0xad4d7406,0x5a9ae80c);
TEST_RRI_OP(aes32esmi1,0x55d50b23,0xb535d018,0x6a6ba030);
TEST_RRI_OP(aes32esmi1,0x191ac12d,0xd4d74061,0xa9ae80c2);
TEST_RRI_OP(aes32esmi1,0x2826f708,0x535d0185,0xa6ba030b);
TEST_RRI_OP(aes32esmi1,0xb38ae10f,0x4d740616,0x9ae80c2c);
TEST_RRI_OP(aes32esmi1,0x31d41054,0x35d01858,0x6ba030b0);
TEST_RRI_OP(aes32esmi1,0xf2652b0e,0xd7406161,0xae80c2c2);
TEST_RRI_OP(aes32esmi1,0x762ad3f9,0x5d018584,0xba030b08);
TEST_RRI_OP(aes32esmi1,0x577f482,0x74061611,0xe80c2c23);
TEST_RRI_OP(aes32esmi1,0x37ff8d75,0xd0185847,0xa030b08f);
TEST_RRI_OP(aes32esmi1,0x65442b71,0x4061611e,0x80c2c23c);
TEST_RRI_OP(aes32esmi1,0x31b5e429,0x1858479,0x30b08f3);
TEST_RRI_OP(aes32esmi1,0x20305d8c,0x61611e6,0xc2c23cd);
TEST_RRI_OP(aes32esmi1,0x6b2ba10f,0x1858479a,0x30b08f35);
TEST_RRI_OP(aes32esmi1,0x8a8ad34c,0x61611e6a,0xc2c23cd4);
TEST_RRI_OP(aes32esmi1,0x888963be,0x858479a9,0xb08f352);
TEST_RRI_OP(aes32esmi1,0xabac8779,0x1611e6a5,0x2c23cd4b);
TEST_RRI_OP(aes32esmi1,0xced1ad36,0x58479a97,0xb08f352e);
TEST_RRI_OP(aes32esmi1,0x2956fa84,0x611e6a5c,0xc23cd4b8);
TEST_RRI_OP(aes32esmi1,0x8479a970,0x8479a970,0x8f352e0);
TEST_RRI_OP(aes32esmi1,0xa255d80f,0x11e6a5c1,0x23cd4b82);
TEST_RRI_OP(aes32esmi1,0x76abf556,0x479a9705,0x8f352e0b);
TEST_RRI_OP(aes32esmi1,0x720684a2,0x1e6a5c16,0x3cd4b82c);
TEST_RRI_OP(aes32esmi1,0x9848a960,0x79a97058,0xf352e0b1);
TEST_RRI_OP(aes32esmi1,0xf5b6e757,0xe6a5c162,0xcd4b82c5);
TEST_RRI_OP(aes32esmi1,0xb1bc53f7,0x9a97058a,0x352e0b14);
TEST_RRI_OP(aes32esmi1,0x1b2df4ba,0x6a5c1629,0xd4b82c53);
TEST_RRI_OP(aes32esmi1,0x61b8d3e5,0xa97058a6,0x52e0b14d);
TEST_RRI_OP(aes32esmi1,0x367356b,0xa5c1629a,0x4b82c534);
TEST_RRI_OP(aes32esmi1,0x6dff657d,0x97058a68,0x2e0b14d1);
TEST_RRI_OP(aes32esmi1,0xb1fbe88f,0x5c1629a3,0xb82c5346);
TEST_RRI_OP(aes32esmi1,0x93bb7bb3,0x7058a68d,0xe0b14d1b);
TEST_RRI_OP(aes32esmi1,0xd97aaa1e,0xc1629a36,0x82c5346d);
TEST_RRI_OP(aes32esmi1,0x3bb41498,0x58a68da,0xb14d1b5);
TEST_RRI_OP(aes32esmi1,0x4c731785,0x1629a36b,0x2c5346d7);
TEST_RRI_OP(aes32esmi1,0xf709c844,0x58a68dae,0xb14d1b5c);
TEST_RRI_OP(aes32esmi1,0x5ea64efd,0x629a36b9,0xc5346d73);
TEST_RRI_OP(aes32esmi1,0x5fbd6b82,0x8a68dae6,0x14d1b5cd);
TEST_RRI_OP(aes32esmi1,0x27ad7789,0x29a36b9b,0x5346d737);
TEST_RRI_OP(aes32esmi1,0xecc73ab0,0xa68dae6e,0x4d1b5cdc);
TEST_RRI_OP(aes32esmi1,0x15b9bc32,0x9a36b9b8,0x346d7370);
TEST_RRI_OP(aes32esmi1,0xd567873d,0x68dae6e1,0xd1b5cdc3);
TEST_RRI_OP(aes32esmi1,0x39f1b433,0xa36b9b86,0x46d7370d);
TEST_RRI_OP(aes32esmi1,0xb28798a,0x8dae6e1b,0x1b5cdc36);
TEST_RRI_OP(aes32esmi1,0x67e81a9e,0x36b9b86d,0x6d7370da);
TEST_RRI_OP(aes32esmi1,0xf4c8bdc6,0xdae6e1b4,0xb5cdc368);
TEST_RRI_OP(aes32esmi2,0xf1b4334b,0x6b9b86d1,0xd7370da3);
TEST_RRI_OP(aes32esmi2,0x28798ac0,0xae6e1b46,0x5cdc368d);
TEST_RRI_OP(aes32esmi2,0xe81a9e4a,0xb9b86d1b,0x7370da36);
TEST_RRI_OP(aes32esmi2,0xc8bdc642,0xe6e1b46c,0xcdc368d8);
TEST_RRI_OP(aes32esmi2,0x4c33b366,0x9b86d1b1,0x370da362);
TEST_RRI_OP(aes32esmi2,0x6b1149c0,0x6e1b46c5,0xdc368d8b);
TEST_RRI_OP(aes32esmi2,0xefc3e241,0xb86d1b16,0x70da362d);
TEST_RRI_OP(aes32esmi2,0xa43ea31e,0xe1b46c5b,0xc368d8b6);
TEST_RRI_OP(aes32esmi2,0x8cc5af67,0x86d1b16d,0xda362da);
TEST_RRI_OP(aes32esmi2,0x46fc22e9,0x1b46c5b4,0x368d8b68);
TEST_RRI_OP(aes32esmi2,0x681119d5,0x6d1b16d0,0xda362da0);
TEST_RRI_OP(aes32esmi2,0xd5aef821,0xb46c5b40,0x68d8b680);
TEST_RRI_OP(aes32esmi2,0x7bfe88aa,0xd1b16d00,0xa362da00);
TEST_RRI_OP(aes32esmi2,0x7bbff33d,0x46c5b400,0x8d8b6800);
TEST_RRI_OP(aes32esmi2,0xc3bda3d9,0x1b16d001,0x362da003);
TEST_RRI_OP(aes32esmi2,0x22c79249,0x6c5b4007,0xd8b6800e);
TEST_RRI_OP(aes32esmi2,0xe6c3f94a,0xb16d001d,0x62da003b);
TEST_RRI_OP(aes32esmi2,0x803ecf33,0xc5b40076,0x8b6800ed);
TEST_RRI_OP(aes32esmi2,0xf60b3a3b,0x16d001db,0x2da003b6);
TEST_RRI_OP(aes32esmi2,0x96c14ba1,0x5b40076c,0xb6800ed8);
TEST_RRI_OP(aes32esmi2,0xec6b8d2,0x6d001db1,0xda003b63);
TEST_RRI_OP(aes32esmi2,0xd7c6d3a4,0xb40076c7,0x6800ed8f);
TEST_RRI_OP(aes32esmi2,0xabf75665,0xd001db1e,0xa003b63c);
TEST_RRI_OP(aes32esmi2,0xeb4a8ad2,0x40076c79,0x800ed8f3);
TEST_RRI_OP(aes32esmi2,0xe2c28c05,0x1db1e7,0x3b63ce);
TEST_RRI_OP(aes32esmi2,0x55dc38c9,0x76c79c,0xed8f39);
TEST_RRI_OP(aes32esmi2,0x4f47cc3c,0x1db1e72,0x3b63ce5);
TEST_RRI_OP(aes32esmi2,0x66aedaab,0x76c79ca,0xed8f394);
TEST_RRI_OP(aes32esmi2,0xe65cf1d3,0x1db1e728,0x3b63ce51);
TEST_RRI_OP(aes32esmi2,0x52109d1,0x76c79ca2,0xed8f3945);
TEST_RRI_OP(aes32esmi2,0x30d35461,0xdb1e728a,0xb63ce514);
TEST_RRI_OP(aes32esmi2,0x6163dd25,0x6c79ca28,0xd8f39451);
TEST_RRI_OP(aes32esmi2,0x3aeaae28,0xb1e728a3,0x63ce5146);
TEST_RRI_OP(aes32esmi2,0xd5b8949f,0xc79ca28d,0x8f39451a);
TEST_RRI_OP(aes32esmi2,0xc7dbfaec,0x1e728a35,0x3ce5146a);
TEST_RRI_OP(aes32esmi2,0x5b8e4ef6,0x79ca28d4,0xf39451a8);
TEST_RRI_OP(aes32esmi2,0x3691cb80,0xe728a351,0xce5146a3);
TEST_RRI_OP(aes32esmi2,0xf27e3f29,0x9ca28d47,0x39451a8e);
TEST_RRI_OP(aes32esmi2,0x886520e7,0x728a351d,0xe5146a3b);
TEST_RRI_OP(aes32esmi2,0x1b91bca6,0xca28d477,0x9451a8ee);
TEST_RRI_OP(aes32esmi2,0x7217bf86,0x28a351dc,0x5146a3b9);
TEST_RRI_OP(aes32esmi2,0xd2bad1,0xa28d4773,0x451a8ee7);
TEST_RRI_OP(aes32esmi2,0x88311bcc,0x8a351dce,0x146a3b9d);
TEST_RRI_OP(aes32esmi2,0xea4b2af8,0x28d4773a,0x51a8ee75);
TEST_RRI_OP(aes32esmi2,0xa945c2e0,0xa351dcea,0x46a3b9d4);
TEST_RRI_OP(aes32esmi2,0x947558b0,0x8d4773a9,0x1a8ee752);
TEST_RRI_OP(aes32esmi2,0xd7c2f347,0x351dcea5,0x6a3b9d4b);
TEST_RRI_OP(aes32esmi2,0xfc2742bf,0xd4773a97,0xa8ee752e);
TEST_RRI_OP(aes32esmi2,0x770100b,0x51dcea5d,0xa3b9d4bb);
TEST_RRI_OP(aes32esmi2,0xd3400ee2,0x4773a976,0x8ee752ec);
TEST_RRI_OP(aes32esmi2,0x43724786,0x1dcea5d8,0x3b9d4bb0);
TEST_RRI_OP(aes32esmi2,0xea1b2bfd,0x773a9760,0xee752ec1);
TEST_RRI_OP(aes32esmi2,0x947a85cb,0xdcea5d83,0xb9d4bb06);
TEST_RRI_OP(aes32esmi2,0x73a9760c,0x73a9760c,0xe752ec19);
TEST_RRI_OP(aes32esmi2,0x7dd81681,0xcea5d832,0x9d4bb065);
TEST_RRI_OP(aes32esmi2,0xbf533fb,0x3a9760ca,0x752ec195);
TEST_RRI_OP(aes32esmi2,0x92a6c0,0xea5d832a,0xd4bb0654);
TEST_RRI_OP(aes32esmi2,0x67f14566,0xa9760ca8,0x52ec1950);
TEST_RRI_OP(aes32esmi2,0x420d0046,0xa5d832a1,0x4bb06542);
TEST_RRI_OP(aes32esmi2,0xef9042fc,0x9760ca84,0x2ec19508);
TEST_RRI_OP(aes32esmi2,0x325d9b7f,0x5d832a10,0xbb065420);
TEST_RRI_OP(aes32esmi2,0xa2bfcf95,0x760ca841,0xec195083);
TEST_RRI_OP(aes32esmi2,0x95a8764a,0xd832a107,0xb065420e);
TEST_RRI_OP(aes32esmi2,0x4a9efa37,0x60ca841d,0xc195083b);
TEST_RRI_OP(aes32esmi2,0xa36a7057,0x832a1077,0x65420ee);
TEST_RRI_OP(aes32esmi2,0x5f0eb48e,0xca841dd,0x195083ba);
TEST_RRI_OP(aes32esmi2,0x1ef97359,0x32a10775,0x65420eea);
TEST_RRI_OP(aes32esmi2,0xfae44de5,0xca841dd5,0x95083baa);
TEST_RRI_OP(aes32esmi2,0x9d65b5e3,0x2a107754,0x5420eea8);
TEST_RRI_OP(aes32esmi2,0x4482f2bd,0xa841dd51,0x5083baa2);
TEST_RRI_OP(aes32esmi2,0xa4a93ee,0xa1077545,0x420eea8a);
TEST_RRI_OP(aes32esmi2,0x66c2e8f7,0x841dd515,0x83baa2a);
TEST_RRI_OP(aes32esmi2,0x38272c7c,0x10775454,0x20eea8a9);
TEST_RRI_OP(aes32esmi2,0xb52e56a6,0x41dd5152,0x83baa2a5);
TEST_RRI_OP(aes32esmi2,0x8060d7cc,0x775454b,0xeea8a97);
TEST_RRI_OP(aes32esmi2,0xb196fa83,0x1dd5152f,0x3baa2a5e);
TEST_RRI_OP(aes32esmi2,0xb5cb097e,0x775454bc,0xeea8a978);
TEST_RRI_OP(aes32esmi2,0xe7251cca,0xdd5152f0,0xbaa2a5e1);
TEST_RRI_OP(aes32esmi2,0xbb9c9bd,0x75454bc3,0xea8a9786);
TEST_RRI_OP(aes32esmi2,0x30c41be9,0xd5152f0c,0xaa2a5e19);
TEST_RRI_OP(aes32esmi2,0x87e9d2e0,0x5454bc33,0xa8a97866);
TEST_RRI_OP(aes32esmi2,0x575efacb,0x5152f0cd,0xa2a5e19b);
TEST_RRI_OP(aes32esmi2,0xcd4040be,0x454bc336,0x8a97866d);
TEST_RRI_OP(aes32esmi2,0x4d9fe482,0x152f0cda,0x2a5e19b4);
TEST_RRI_OP(aes32esmi2,0xe8dfecd4,0x54bc3368,0xa97866d1);
TEST_RRI_OP(aes32esmi2,0xaa1bde5b,0x52f0cda3,0xa5e19b47);
TEST_RRI_OP(aes32esmi2,0xf4bfaca,0x4bc3368e,0x97866d1d);
TEST_RRI_OP(aes32esmi2,0xfbbfbdee,0x2f0cda3a,0x5e19b475);
TEST_RRI_OP(aes32esmi2,0x8f553dd8,0xbc3368eb,0x7866d1d6);
TEST_RRI_OP(aes32esmi2,0xe4e59fb8,0xf0cda3ac,0xe19b4759);
TEST_RRI_OP(aes32esmi2,0xff4eca8e,0xc3368eb2,0x866d1d65);
TEST_RRI_OP(aes32esmi2,0x81dbb646,0xcda3acb,0x19b47596);
TEST_RRI_OP(aes32esmi2,0xd14a912,0x3368eb2c,0x66d1d659);
TEST_RRI_OP(aes32esmi2,0x6df85713,0xcda3acb3,0x9b475966);
TEST_RRI_OP(aes32esmi2,0x92dd4568,0x368eb2cc,0x6d1d6598);
TEST_RRI_OP(aes32esmi2,0x471b77ad,0xda3acb30,0xb4759660);
TEST_RRI_OP(aes32esmi2,0x9e1c2d36,0x68eb2cc0,0xd1d65981);
TEST_RRI_OP(aes32esmi2,0x6821f5c9,0xa3acb302,0x47596605);
TEST_RRI_OP(aes32esmi2,0xc3281b46,0x8eb2cc0b,0x1d659816);
TEST_RRI_OP(aes32esmi2,0xaaf09bbc,0x3acb302c,0x75966058);
TEST_RRI_OP(aes32esmi3,0x1c2d3646,0xeb2cc0b0,0xd6598160);
TEST_RRI_OP(aes32esmi3,0x21f5c90a,0xacb302c1,0x59660583);
TEST_RRI_OP(aes32esmi3,0x281b464a,0xb2cc0b07,0x6598160f);
TEST_RRI_OP(aes32esmi3,0xf09bbc8e,0xcb302c1e,0x9660583d);
TEST_RRI_OP(aes32esmi3,0xa1867bb0,0x2cc0b07b,0x598160f6);
TEST_RRI_OP(aes32esmi3,0xd557f2de,0xb302c1ed,0x660583da);
TEST_RRI_OP(aes32esmi3,0x40c141f3,0xcc0b07b5,0x98160f6a);
TEST_RRI_OP(aes32esmi3,0x8b47ce04,0x302c1ed4,0x60583da9);
TEST_RRI_OP(aes32esmi3,0xd8a4775f,0xc0b07b53,0x8160f6a6);
TEST_RRI_OP(aes32esmi3,0xd47c8626,0x2c1ed4d,0x583da9b);
TEST_RRI_OP(aes32esmi3,0x85cef271,0xb07b536,0x160f6a6d);
TEST_RRI_OP(aes32esmi3,0xf8a0beb1,0x2c1ed4db,0x583da9b6);
TEST_RRI_OP(aes32esmi3,0xb1083bc,0xb07b536c,0x60f6a6d8);
TEST_RRI_OP(aes32esmi3,0x2c2a15d,0xc1ed4db1,0x83da9b63);
TEST_RRI_OP(aes32esmi3,0xeb2f40b1,0x7b536c7,0xf6a6d8f);
TEST_RRI_OP(aes32esmi3,0x50bdfc38,0x1ed4db1f,0x3da9b63e);
TEST_RRI_OP(aes32esmi3,0xff952e3e,0x7b536c7c,0xf6a6d8f8);
TEST_RRI_OP(aes32esmi3,0x43b4e6a7,0xed4db1f0,0xda9b63e1);
TEST_RRI_OP(aes32esmi3,0xb130c5c0,0xb536c7c2,0x6a6d8f85);
TEST_RRI_OP(aes32esmi3,0x69b5ccd9,0xd4db1f0a,0xa9b63e14);
TEST_RRI_OP(aes32esmi3,0x1b00580c,0x536c7c28,0xa6d8f851);
TEST_RRI_OP(aes32esmi3,0x658de4b6,0x4db1f0a2,0x9b63e144);
TEST_RRI_OP(aes32esmi3,0x4e83feb4,0x36c7c288,0x6d8f8510);
TEST_RRI_OP(aes32esmi3,0x47cd446e,0xdb1f0a20,0xb63e1441);
TEST_RRI_OP(aes32esmi3,0xaedf49e2,0x6c7c2883,0xd8f85107);
TEST_RRI_OP(aes32esmi3,0x5ce659f5,0xb1f0a20e,0x63e1441d);
TEST_RRI_OP(aes32esmi3,0x2157fb49,0xc7c2883a,0x8f851074);
TEST_RRI_OP(aes32esmi3,0x60c7925b,0x1f0a20e9,0x3e1441d3);
TEST_RRI_OP(aes32esmi3,0xfeebc2e7,0x7c2883a6,0xf851074c);
TEST_RRI_OP(aes32esmi3,0x1bb1f661,0xf0a20e99,0xe1441d33);
TEST_RRI_OP(aes32esmi3,0xf72aadf0,0xc2883a67,0x851074cf);
TEST_RRI_OP(aes32esmi3,0xe5351365,0xa20e99f,0x1441d33f);
TEST_RRI_OP(aes32esmi3,0x91eb77af,0x2883a67e,0x51074cfd);
TEST_RRI_OP(aes32esmi3,0x942382e0,0xa20e99fb,0x441d33f7);
TEST_RRI_OP(aes32esmi3,0x77fad24,0x883a67ee,0x1074cfdd);
TEST_RRI_OP(aes32esmi3,0x3d771c39,0x20e99fba,0x41d33f74);
TEST_RRI_OP(aes32esmi3,0x12f2bb2d,0x83a67ee8,0x74cfdd0);
TEST_RRI_OP(aes32esmi3,0x5d6e5f04,0xe99fba0,0x1d33f740);
TEST_RRI_OP(aes32esmi3,0x5ca7c13,0x3a67ee81,0x74cfdd02);
TEST_RRI_OP(aes32esmi3,0x2535dc63,0xe99fba05,0xd33f740a);
TEST_RRI_OP(aes32esmi3,0xf405c13c,0xa67ee815,0x4cfdd02b);
TEST_RRI_OP(aes32esmi3,0x4a56394,0x99fba057,0x33f740ae);
TEST_RRI_OP(aes32esmi3,0x686b0bd6,0x67ee815c,0xcfdd02b9);
TEST_RRI_OP(aes32esmi3,0x75257007,0x9fba0572,0x3f740ae5);
TEST_RRI_OP(aes32esmi3,0xd614419e,0x7ee815ca,0xfdd02b94);
TEST_RRI_OP(aes32esmi3,0x2b183f41,0xfba05729,0xf740ae53);
TEST_RRI_OP(aes32esmi3,0x77d99d66,0xee815ca7,0xdd02b94f);
TEST_RRI_OP(aes32esmi3,0x85a8e00d,0xba05729f,0x740ae53f);
TEST_RRI_OP(aes32esmi3,0x885ba0e,0xe815ca7e,0xd02b94fc);
TEST_RRI_OP(aes32esmi3,0xb24c20f1,0xa05729f8,0x40ae53f1);
TEST_RRI_OP(aes32esmi3,0x6fc5d095,0x815ca7e2,0x2b94fc4);
TEST_RRI_OP(aes32esmi3,0xcbdbf8ee,0x5729f89,0xae53f12);
TEST_RRI_OP(aes32esmi3,0xecc28fd5,0x15ca7e24,0x2b94fc48);
TEST_RRI_OP(aes32esmi3,0x841e1c74,0x5729f890,0xae53f121);
TEST_RRI_OP(aes32esmi3,0xf05db414,0x5ca7e242,0xb94fc484);
TEST_RRI_OP(aes32esmi3,0xdbef50d0,0x729f8909,0xe53f1213);
TEST_RRI_OP(aes32esmi3,0x8e180604,0xca7e2426,0x94fc484d);
TEST_RRI_OP(aes32esmi3,0xe8d47d76,0x29f8909b,0x53f12137);
TEST_RRI_OP(aes32esmi3,0xb475c6eb,0xa7e2426f,0x4fc484de);
TEST_RRI_OP(aes32esmi3,0x75167cc8,0x9f8909bd,0x3f12137a);
TEST_RRI_OP(aes32esmi3,0x5ef9645,0x7e2426f5,0xfc484dea);
TEST_RRI_OP(aes32esmi3,0xa1683a75,0xf8909bd4,0xf12137a9);
TEST_RRI_OP(aes32esmi3,0xda66734f,0xe2426f53,0xc484dea7);
TEST_RRI_OP(aes32esmi3,0x497486,0x8909bd4f,0x12137a9f);
TEST_RRI_OP(aes32esmi3,0x80d0a76c,0x2426f53e,0x484dea7c);
TEST_RRI_OP(aes32esmi3,0x71872905,0x909bd4f8,0x2137a9f1);
TEST_RRI_OP(aes32esmi3,0xfc8e0cbd,0x426f53e2,0x84dea7c4);
TEST_RRI_OP(aes32esmi3,0xf33a32f4,0x9bd4f89,0x137a9f12);
TEST_RRI_OP(aes32esmi3,0xfbcbddc7,0x26f53e24,0x4dea7c49);
TEST_RRI_OP(aes32esmi3,0xb4616208,0x9bd4f892,0x37a9f124);
TEST_RRI_OP(aes32esmi3,0x5574ff54,0x6f53e249,0xdea7c493);
TEST_RRI_OP(aes32esmi3,0x123a53fc,0xbd4f8926,0x7a9f124c);
TEST_RRI_OP(aes32esmi3,0xe0aca31f,0xf53e2498,0xea7c4930);
TEST_RRI_OP(aes32esmi3,0x699641b3,0xd4f89260,0xa9f124c0);
TEST_RRI_OP(aes32esmi3,0xeb0615dc,0x53e24980,0xa7c49301);
TEST_RRI_OP(aes32esmi3,0xe2fffdd9,0x4f892602,0x9f124c05);
TEST_RRI_OP(aes32esmi3,0x1e14881a,0x3e24980a,0x7c493014);
TEST_RRI_OP(aes32esmi3,0xa16ac189,0xf8926028,0xf124c051);
TEST_RRI_OP(aes32esmi3,0xda6d9cbf,0xe24980a3,0xc4930147);
TEST_RRI_OP(aes32esmi3,0x66cb46,0x8926028f,0x124c051e);
TEST_RRI_OP(aes32esmi3,0x52d53106,0x24980a3d,0x4930147b);
TEST_RRI_OP(aes32esmi3,0xfe3a1ec1,0x926028f7,0x24c051ee);
TEST_RRI_OP(aes32esmi3,0xeaff7f01,0x4980a3dd,0x930147bb);
TEST_RRI_OP(aes32esmi3,0x7479a65e,0x26028f77,0x4c051eee);
TEST_RRI_OP(aes32esmi3,0x900639d9,0x980a3ddd,0x30147bba);
TEST_RRI_OP(aes32esmi3,0xffd4dcf,0x6028f775,0xc051eeea);
TEST_RRI_OP(aes32esmi3,0x7827a1a8,0x80a3ddd4,0x147bba8);
TEST_RRI_OP(aes32esmi3,0xd4321c3b,0x28f7750,0x51eeea0);
TEST_RRI_OP(aes32esmi3,0xe52827ba,0xa3ddd40,0x147bba81);
TEST_RRI_OP(aes32esmi3,0x919fa4d3,0x28f77502,0x51eeea04);
TEST_RRI_OP(aes32esmi3,0xf82674a9,0xa3ddd409,0x47bba812);
TEST_RRI_OP(aes32esmi3,0x6be12256,0x8f775024,0x1eeea048);
TEST_RRI_OP(aes32esmi3,0x7fbe61b0,0x3ddd4091,0x7bba8123);
TEST_RRI_OP(aes32esmi3,0xa70d2a6f,0xf7750247,0xeeea048e);
TEST_RRI_OP(aes32esmi3,0x12f1e3f7,0xddd4091d,0xbba8123a);
TEST_RRI_OP(aes32esmi3,0x27280c5d,0x77502475,0xeea048eb);
TEST_RRI_OP(aes32esmi3,0x2e476522,0xdd4091d6,0xba8123ac);
TEST_RRI_OP(aes32esmi3,0x6090c0de,0x75024759,0xea048eb3);
TEST_RRI_OP(aes32esmi3,0x4b54dfa5,0xd4091d67,0xa8123acf);
TEST_RRI_OP(aes32esmi3,0x8b1f957f,0x5024759f,0xa048eb3f);
TEST_RRI_OP(aes32esi0,0x7bb6d922,0x7bb6d96a,0xf76db2d4);
TEST_RRI_OP(aes32esi0,0xeedb6579,0xeedb65a8,0xddb6cb51);
TEST_RRI_OP(aes32esi0,0xbb6d96f9,0xbb6d96a3,0x76db2d46);
TEST_RRI_OP(aes32esi0,0xedb65a22,0xedb65a8d,0xdb6cb51b);
TEST_RRI_OP(aes32esi0,0xb6d96a66,0xb6d96a36,0x6db2d46c);
TEST_RRI_OP(aes32esi0,0xdb65a8b4,0xdb65a8d9,0xb6cb51b3);
TEST_RRI_OP(aes32esi0,0x6d96a3ec,0x6d96a367,0xdb2d46ce);
TEST_RRI_OP(aes32esi0,0xb65a8d1d,0xb65a8d9d,0x6cb51b3a);
TEST_RRI_OP(aes32esi0,0xd96a36ef,0xd96a3674,0xb2d46ce8);
TEST_RRI_OP(aes32esi0,0x65a8d9eb,0x65a8d9d1,0xcb51b3a2);
TEST_RRI_OP(aes32esi0,0x96a36780,0x96a36744,0x2d46ce88);
TEST_RRI_OP(aes32esi0,0x5a8d9da7,0x5a8d9d10,0xb51b3a20);
TEST_RRI_OP(aes32esi0,0x6a367452,0x6a367441,0xd46ce882);
TEST_RRI_OP(aes32esi0,0xa8d9d162,0xa8d9d105,0x51b3a20a);
TEST_RRI_OP(aes32esi0,0xa3674420,0xa3674414,0x46ce8828);
TEST_RRI_OP(aes32esi0,0x8d9d1062,0x8d9d1050,0x1b3a20a1);
TEST_RRI_OP(aes32esi0,0x3674411d,0x36744142,0x6ce88284);
TEST_RRI_OP(aes32esi0,0xd9d105c0,0xd9d10509,0xb3a20a12);
TEST_RRI_OP(aes32esi0,0x67441496,0x67441425,0xce88284b);
TEST_RRI_OP(aes32esi0,0x9d105082,0x9d105097,0x3a20a12f);
TEST_RRI_OP(aes32esi0,0x744142f1,0x7441425f,0xe88284be);
TEST_RRI_OP(aes32esi0,0xd10509e5,0xd105097c,0xa20a12f9);
TEST_RRI_OP(aes32esi0,0x4414252b,0x441425f2,0x88284be5);
TEST_RRI_OP(aes32esi0,0x1050975b,0x105097cb,0x20a12f96);
TEST_RRI_OP(aes32esi0,0x41425f46,0x41425f2c,0x8284be58);
TEST_RRI_OP(aes32esi0,0x5097c4a,0x5097cb1,0xa12f963);
TEST_RRI_OP(aes32esi0,0x1425f2a2,0x1425f2c6,0x284be58c);
TEST_RRI_OP(aes32esi0,0x5097cb1c,0x5097cb18,0xa12f9630);
TEST_RRI_OP(aes32esi0,0x425f2cda,0x425f2c60,0x84be58c0);
TEST_RRI_OP(aes32esi0,0x97cb1fc,0x97cb180,0x12f96301);
TEST_RRI_OP(aes32esi0,0x25f2c6f0,0x25f2c602,0x4be58c04);
TEST_RRI_OP(aes32esi0,0x97cb18c0,0x97cb1809,0x2f963012);
TEST_RRI_OP(aes32esi0,0x5f2c60f3,0x5f2c6025,0xbe58c04a);
TEST_RRI_OP(aes32esi0,0x7cb18031,0x7cb18094,0xf9630129);
TEST_RRI_OP(aes32esi0,0xf2c6020f,0xf2c60253,0xe58c04a7);
TEST_RRI_OP(aes32esi0,0xcb180994,0xcb18094f,0x9630129f);
TEST_RRI_OP(aes32esi0,0x2c60252e,0x2c60253e,0x58c04a7c);
TEST_RRI_OP(aes32esi0,0xb1809459,0xb18094f8,0x630129f1);
TEST_RRI_OP(aes32esi0,0xc6025325,0xc60253e3,0x8c04a7c7);
TEST_RRI_OP(aes32esi0,0x18094ffd,0x18094f8f,0x30129f1e);
TEST_RRI_OP(aes32esi0,0x60253ee7,0x60253e3d,0xc04a7c7a);
TEST_RRI_OP(aes32esi0,0x8094f8ea,0x8094f8f4,0x129f1e9);
TEST_RRI_OP(aes32esi0,0x253e3d4,0x253e3d2,0x4a7c7a5);
TEST_RRI_OP(aes32esi0,0x94f8f60,0x94f8f4a,0x129f1e95);
TEST_RRI_OP(aes32esi0,0x253e3d70,0x253e3d2b,0x4a7c7a57);
TEST_RRI_OP(aes32esi0,0x94f8f4f7,0x94f8f4af,0x29f1e95e);
TEST_RRI_OP(aes32esi0,0x53e3d20a,0x53e3d2bc,0xa7c7a579);
TEST_RRI_OP(aes32esi0,0x4f8f4a2b,0x4f8f4af2,0x9f1e95e5);
TEST_RRI_OP(aes32esi0,0x3e3d2be8,0x3e3d2bca,0x7c7a5794);
TEST_RRI_OP(aes32esi0,0xf8f4afc4,0xf8f4af29,0xf1e95e53);
TEST_RRI_OP(aes32esi0,0xe3d2bc8f,0xe3d2bca6,0xc7a5794c);
TEST_RRI_OP(aes32esi0,0x8f4af25f,0x8f4af298,0x1e95e531);
TEST_RRI_OP(aes32esi0,0x3d2bcaa5,0x3d2bca63,0x7a5794c7);
TEST_RRI_OP(aes32esi0,0xf4af292a,0xf4af298e,0xe95e531d);
TEST_RRI_OP(aes32esi0,0xd2bca6a7,0xd2bca63a,0xa5794c75);
TEST_RRI_OP(aes32esi0,0x4af298e5,0x4af298eb,0x95e531d7);
TEST_RRI_OP(aes32esi0,0x2bca63e2,0x2bca63ae,0x5794c75d);
TEST_RRI_OP(aes32esi0,0xaf298e83,0xaf298ebb,0x5e531d76);
TEST_RRI_OP(aes32esi0,0xbca63a54,0xbca63aed,0x794c75db);
TEST_RRI_OP(aes32esi0,0xf298ebe6,0xf298ebb6,0xe531d76c);
TEST_RRI_OP(aes32esi0,0xca63ae3f,0xca63aed8,0x94c75db0);
TEST_RRI_OP(aes32esi0,0x298ebb4f,0x298ebb61,0x531d76c3);
TEST_RRI_OP(aes32esi0,0xa63aed51,0xa63aed86,0x4c75db0d);
TEST_RRI_OP(aes32esi0,0x98ebb68c,0x98ebb61a,0x31d76c35);
TEST_RRI_OP(aes32esi0,0x63aed865,0x63aed86b,0xc75db0d7);
TEST_RRI_OP(aes32esi0,0x8ebb61f7,0x8ebb61af,0x1d76c35e);
TEST_RRI_OP(aes32esi0,0x3aed860a,0x3aed86bc,0x75db0d79);
TEST_RRI_OP(aes32esi0,0xebb61a7d,0xebb61af3,0xd76c35e6);
TEST_RRI_OP(aes32esi0,0xaed86b75,0xaed86bcd,0x5db0d79a);
TEST_RRI_OP(aes32esi0,0xbb61af71,0xbb61af34,0x76c35e68);
TEST_RRI_OP(aes32esi0,0xed86bce2,0xed86bcd0,0xdb0d79a1);
TEST_RRI_OP(aes32esi0,0xb61af31d,0xb61af342,0x6c35e684);
TEST_RRI_OP(aes32esi0,0xd86bcd74,0xd86bcd09,0xb0d79a13);
TEST_RRI_OP(aes32esi0,0x61af34a3,0x61af3427,0xc35e684f);
TEST_RRI_OP(aes32esi0,0x86bcd02d,0x86bcd09f,0xd79a13e);
TEST_RRI_OP(aes32esi0,0x1af342e5,0x1af3427c,0x35e684f9);
TEST_RRI_OP(aes32esi0,0x6bcd092b,0x6bcd09f2,0xd79a13e5);
TEST_RRI_OP(aes32esi0,0xaf3427e0,0xaf3427ca,0x5e684f95);
TEST_RRI_OP(aes32esi0,0xbcd09f0a,0xbcd09f2a,0x79a13e54);
TEST_RRI_OP(aes32esi0,0xf3427ca9,0xf3427ca9,0xe684f952);
TEST_RRI_OP(aes32esi0,0xcd09f29f,0xcd09f2a4,0x9a13e549);
TEST_RRI_OP(aes32esi0,0x3427caa4,0x3427ca92,0x684f9524);
TEST_RRI_OP(aes32esi0,0xd09f2ac9,0xd09f2a48,0xa13e5491);
TEST_RRI_OP(aes32esi0,0x427ca983,0x427ca923,0x84f95247);
TEST_RRI_OP(aes32esi0,0x9f2a412,0x9f2a48e,0x13e5491c);
TEST_RRI_OP(aes32esi0,0x27ca92b6,0x27ca9239,0x4f952473);
TEST_RRI_OP(aes32esi0,0x9f2a485b,0x9f2a48e6,0x3e5491cd);
TEST_RRI_OP(aes32esi0,0x7ca92301,0x7ca9239b,0xf9524737);
TEST_RRI_OP(aes32esi0,0xf2a48e72,0xf2a48e6f,0xe5491cde);
TEST_RRI_OP(aes32esi0,0xca92390a,0xca9239bc,0x95247379);
TEST_RRI_OP(aes32esi0,0x2a48e67d,0x2a48e6f3,0x5491cde6);
TEST_RRI_OP(aes32esi0,0xa9239bd9,0xa9239bcd,0x5247379b);
TEST_RRI_OP(aes32esi0,0xa48e6f66,0xa48e6f36,0x491cde6c);
TEST_RRI_OP(aes32esi0,0x9239bc3f,0x9239bcd8,0x247379b0);
TEST_RRI_OP(aes32esi0,0x48e6f344,0x48e6f361,0x91cde6c2);
TEST_RRI_OP(aes32esi0,0x239bcdb4,0x239bcd84,0x47379b08);
TEST_RRI_OP(aes32esi0,0x8e6f3637,0x8e6f3611,0x1cde6c23);
TEST_RRI_OP(aes32esi0,0x39bcd822,0x39bcd846,0x7379b08c);
TEST_RRI_OP(aes32esi0,0xe6f361da,0xe6f36119,0xcde6c233);
TEST_RRI_OP(aes32esi0,0x9bcd842d,0x9bcd8466,0x379b08cc);
TEST_RRI_OP(aes32esi1,0x6f363798,0x6f361198,0xde6c2331);
TEST_RRI_OP(aes32esi1,0xbcd82263,0xbcd84663,0x79b08cc7);
TEST_RRI_OP(aes32esi1,0xf361da8f,0xf361198f,0xe6c2331e);
TEST_RRI_OP(aes32esi1,0xcd842d3c,0xcd84663c,0x9b08cc79);
TEST_RRI_OP(aes32esi1,0x36115ff2,0x361198f2,0x6c2331e5);
TEST_RRI_OP(aes32esi1,0xd846a5ca,0xd84663ca,0xb08cc794);
TEST_RRI_OP(aes32esi1,0x6119fd29,0x61198f29,0xc2331e53);
TEST_RRI_OP(aes32esi1,0x84668aa6,0x84663ca6,0x8cc794d);
TEST_RRI_OP(aes32esi1,0x11982b9b,0x1198f29b,0x2331e536);
TEST_RRI_OP(aes32esi1,0x4663e86c,0x4663ca6c,0x8cc794d9);
TEST_RRI_OP(aes32esi1,0x198fc4b2,0x198f29b2,0x331e5365);
TEST_RRI_OP(aes32esi1,0x663c45cb,0x663ca6cb,0xcc794d97);
TEST_RRI_OP(aes32esi1,0x98f29e2e,0x98f29b2e,0x31e5365d);
TEST_RRI_OP(aes32esi1,0x63ca59ba,0x63ca6cba,0xc794d975);
TEST_RRI_OP(aes32esi1,0x8f29ffea,0x8f29b2ea,0x1e5365d5);
TEST_RRI_OP(aes32esi1,0x3ca643ab,0x3ca6cbab,0x794d9757);
TEST_RRI_OP(aes32esi1,0xf29b62ae,0xf29b2eae,0xe5365d5c);
TEST_RRI_OP(aes32esi1,0xca6c27b8,0xca6cbab8,0x94d97570);
TEST_RRI_OP(aes32esi1,0x29b2e9e1,0x29b2eae1,0x5365d5c2);
TEST_RRI_OP(aes32esi1,0xa6cbf084,0xa6cbab84,0x4d975709);
TEST_RRI_OP(aes32esi1,0x9b2ee413,0x9b2eae13,0x365d5c26);
TEST_RRI_OP(aes32esi1,0x6cbae94d,0x6cbab84d,0xd975709a);
TEST_RRI_OP(aes32esi1,0xb2eac435,0xb2eae135,0x65d5c26b);
TEST_RRI_OP(aes32esi1,0xcbab85d6,0xcbab84d6,0x975709ad);
TEST_RRI_OP(aes32esi1,0x2eaee45a,0x2eae135a,0x5d5c26b4);
TEST_RRI_OP(aes32esi1,0xbab8f568,0xbab84d68,0x75709ad0);
TEST_RRI_OP(aes32esi1,0xeae14aa1,0xeae135a1,0xd5c26b43);
TEST_RRI_OP(aes32esi1,0xab844387,0xab84d687,0x5709ad0f);
TEST_RRI_OP(aes32esi1,0xae13d71e,0xae135a1e,0x5c26b43c);
TEST_RRI_OP(aes32esi1,0xb84d1879,0xb84d6879,0x709ad0f2);
TEST_RRI_OP(aes32esi1,0xe135bbe5,0xe135a1e5,0xc26b43cb);
TEST_RRI_OP(aes32esi1,0x84d6f196,0x84d68796,0x9ad0f2c);
TEST_RRI_OP(aes32esi1,0x135af559,0x135a1e59,0x26b43cb3);
TEST_RRI_OP(aes32esi1,0x4d68f067,0x4d687967,0x9ad0f2cf);
TEST_RRI_OP(aes32esi1,0x35a1fa9f,0x35a1e59f,0x6b43cb3f);
TEST_RRI_OP(aes32esi1,0xd687e77e,0xd687967e,0xad0f2cfc);
TEST_RRI_OP(aes32esi1,0x5a1e34f9,0x5a1e59f9,0xb43cb3f3);
TEST_RRI_OP(aes32esi1,0x6879ede6,0x687967e6,0xd0f2cfcc);
TEST_RRI_OP(aes32esi1,0xa1e5ea98,0xa1e59f98,0x43cb3f30);
TEST_RRI_OP(aes32esi1,0x8796ce60,0x87967e60,0xf2cfcc1);
TEST_RRI_OP(aes32esi1,0x1e59f482,0x1e59f982,0x3cb3f305);
TEST_RRI_OP(aes32esi1,0x7967ad0a,0x7967e60a,0xf2cfcc14);
TEST_RRI_OP(aes32esi1,0xe59f9c29,0xe59f9829,0xcb3f3052);
TEST_RRI_OP(aes32esi1,0x967e18a5,0x967e60a5,0x2cfcc14b);
TEST_RRI_OP(aes32esi1,0x59f9e997,0x59f98297,0xb3f3052f);
TEST_RRI_OP(aes32esi1,0x67e6f05e,0x67e60a5e,0xcfcc14bc);
TEST_RRI_OP(aes32esi1,0x9f982979,0x9f982979,0x3f3052f2);
TEST_RRI_OP(aes32esi1,0x7e6016e4,0x7e60a5e4,0xfcc14bc9);
TEST_RRI_OP(aes32esi1,0xf9828292,0xf9829792,0xf3052f24);
TEST_RRI_OP(aes32esi1,0xe60a3b49,0xe60a5e49,0xcc14bc92);
TEST_RRI_OP(aes32esi1,0x9829f024,0x98297924,0x3052f248);
TEST_RRI_OP(aes32esi1,0x60a53990,0x60a5e490,0xc14bc921);
TEST_RRI_OP(aes32esi1,0x8297a442,0x82979242,0x52f2484);
TEST_RRI_OP(aes32esi1,0xa5e0609,0xa5e4909,0x14bc9213);
TEST_RRI_OP(aes32esi1,0x29797627,0x29792427,0x52f2484f);
TEST_RRI_OP(aes32esi1,0xa5e46d9f,0xa5e4909f,0x4bc9213e);
TEST_RRI_OP(aes32esi1,0x97921d7d,0x9792427d,0x2f2484fa);
TEST_RRI_OP(aes32esi1,0x5e4974f4,0x5e4909f4,0xbc9213e8);
TEST_RRI_OP(aes32esi1,0x7924a3d1,0x792427d1,0xf2484fa2);
TEST_RRI_OP(aes32esi1,0xe4902d44,0xe4909f44,0xc9213e89);
TEST_RRI_OP(aes32esi1,0x92425013,0x92427d13,0x2484fa27);
TEST_RRI_OP(aes32esi1,0x49096f4e,0x4909f44e,0x9213e89d);
TEST_RRI_OP(aes32esi1,0x2427eb3a,0x2427d13a,0x484fa274);
TEST_RRI_OP(aes32esi1,0x909fe3e8,0x909f44e8,0x213e89d1);
TEST_RRI_OP(aes32esi1,0x427ddfa2,0x427d13a2,0x84fa2744);
TEST_RRI_OP(aes32esi1,0x9f41088,0x9f44e88,0x13e89d11);
TEST_RRI_OP(aes32esi1,0x27d1a822,0x27d13a22,0x4fa27445);
TEST_RRI_OP(aes32esi1,0x9f44d68a,0x9f44e88a,0x3e89d114);
TEST_RRI_OP(aes32esi1,0x7d13b928,0x7d13a228,0xfa274450);
TEST_RRI_OP(aes32esi1,0xf44e0aa0,0xf44e88a0,0xe89d1141);
TEST_RRI_OP(aes32esi1,0xd13a4c82,0xd13a2282,0xa2744505);
TEST_RRI_OP(aes32esi1,0x44e8700b,0x44e88a0b,0x89d11417);
TEST_RRI_OP(aes32esi1,0x13a27b2f,0x13a2282f,0x2744505f);
TEST_RRI_OP(aes32esi1,0x4e8823be,0x4e88a0be,0x9d11417d);
TEST_RRI_OP(aes32esi1,0x3a22e9fa,0x3a2282fa,0x744505f4);
TEST_RRI_OP(aes32esi1,0xe88afbe8,0xe88a0be8,0xd11417d1);
TEST_RRI_OP(aes32esi1,0xa228e0a2,0xa2282fa2,0x44505f45);
TEST_RRI_OP(aes32esi1,0x88a0418b,0x88a0be8b,0x11417d16);
TEST_RRI_OP(aes32esi1,0x2282452d,0x2282fa2d,0x4505f45b);
TEST_RRI_OP(aes32esi1,0x8a0bd6b6,0x8a0be8b6,0x1417d16c);
TEST_RRI_OP(aes32esi1,0x282fccd8,0x282fa2d8,0x505f45b1);
TEST_RRI_OP(aes32esi1,0xa0becc63,0xa0be8b63,0x417d16c6);
TEST_RRI_OP(aes32esi1,0x82fa148c,0x82fa2d8c,0x5f45b18);
TEST_RRI_OP(aes32esi1,0xbe8e631,0xbe8b631,0x17d16c62);
TEST_RRI_OP(aes32esi1,0x2fa210c5,0x2fa2d8c5,0x5f45b18a);
TEST_RRI_OP(aes32esi1,0xbe8bd715,0xbe8b6315,0x7d16c62a);
TEST_RRI_OP(aes32esi1,0xfa2d2155,0xfa2d8c55,0xf45b18ab);
TEST_RRI_OP(aes32esi1,0xe8b69b57,0xe8b63157,0xd16c62ae);
TEST_RRI_OP(aes32esi1,0xa2d8bb5d,0xa2d8c55d,0x45b18aba);
TEST_RRI_OP(aes32esi1,0x8b63f074,0x8b631574,0x16c62ae8);
TEST_RRI_OP(aes32esi1,0x2d8c37d0,0x2d8c55d0,0x5b18aba0);
TEST_RRI_OP(aes32esi1,0xb631b340,0xb6315740,0x6c62ae80);
TEST_RRI_OP(aes32esi1,0xd8c5a901,0xd8c55d01,0xb18aba02);
TEST_RRI_OP(aes32esi1,0x6315ef04,0x63157404,0xc62ae808);
TEST_RRI_OP(aes32esi1,0x8c553010,0x8c55d010,0x18aba021);
TEST_RRI_OP(aes32esi1,0x31578d42,0x31574042,0x62ae8085);
TEST_RRI_OP(aes32esi1,0xc55d760a,0xc55d010a,0x8aba0214);
TEST_RRI_OP(aes32esi1,0x15743428,0x15740428,0x2ae80851);
TEST_RRI_OP(aes32esi1,0x55d0eda2,0x55d010a2,0xaba02145);
TEST_RRI_OP(aes32esi1,0x5740d58b,0x5740428b,0xae808516);
TEST_RRI_OP(aes32esi2,0x5d760a2c,0x5d010a2c,0xba021458);
TEST_RRI_OP(aes32esi2,0x743428b1,0x740428b1,0xe8085163);
TEST_RRI_OP(aes32esi2,0xd0eda2c7,0xd010a2c7,0xa021458f);
TEST_RRI_OP(aes32esi2,0x40d58b1e,0x40428b1e,0x8085163d);
TEST_RRI_OP(aes32esi2,0x1f02c7a,0x10a2c7a,0x21458f5);
TEST_RRI_OP(aes32esi2,0x4f9b1eb,0x428b1eb,0x85163d7);
TEST_RRI_OP(aes32esi2,0x10ccc7ae,0x10a2c7ae,0x21458f5c);
TEST_RRI_OP(aes32esi2,0x42cc1eb8,0x428b1eb8,0x85163d70);
TEST_RRI_OP(aes32esi2,0xa467ae1,0xa2c7ae1,0x1458f5c2);
TEST_RRI_OP(aes32esi2,0x284aeb85,0x28b1eb85,0x5163d70a);
TEST_RRI_OP(aes32esi2,0xa2b4ae14,0xa2c7ae14,0x458f5c29);
TEST_RRI_OP(aes32esi2,0x8b39b853,0x8b1eb853,0x163d70a7);
TEST_RRI_OP(aes32esi2,0x2c9ce14f,0x2c7ae14f,0x58f5c29f);
TEST_RRI_OP(aes32esi2,0xb1e5853f,0xb1eb853f,0x63d70a7e);
TEST_RRI_OP(aes32esi2,0xc7e414fd,0xc7ae14fd,0x8f5c29fb);
TEST_RRI_OP(aes32esi2,0x1ee953f7,0x1eb853f7,0x3d70a7ef);
TEST_RRI_OP(aes32esi2,0x7ac44fdf,0x7ae14fdf,0xf5c29fbf);
TEST_RRI_OP(aes32esi2,0xebe23f7f,0xeb853f7f,0xd70a7eff);
TEST_RRI_OP(aes32esi2,0xaeb1fdff,0xae14fdff,0x5c29fbff);
TEST_RRI_OP(aes32esi2,0xb80ff7ff,0xb853f7ff,0x70a7efff);
TEST_RRI_OP(aes32esi2,0xe194dfff,0xe14fdfff,0xc29fbfff);
TEST_RRI_OP(aes32esi2,0x85cc7fff,0x853f7fff,0xa7efffe);
TEST_RRI_OP(aes32esi2,0x14f2fffc,0x14fdfffc,0x29fbfff9);
TEST_RRI_OP(aes32esi2,0x5328fff2,0x53f7fff2,0xa7efffe4);
TEST_RRI_OP(aes32esi2,0x4fd7ffc8,0x4fdfffc8,0x9fbfff90);
TEST_RRI_OP(aes32esi2,0x3f69ff20,0x3f7fff20,0x7efffe41);
TEST_RRI_OP(aes32esi2,0xfde9fc82,0xfdfffc82,0xfbfff905);
TEST_RRI_OP(aes32esi2,0xf7e9f20b,0xf7fff20b,0xefffe416);
TEST_RRI_OP(aes32esi2,0xdfe9c82d,0xdfffc82d,0xbfff905b);
TEST_RRI_OP(aes32esi2,0x7f4420b6,0x7fff20b6,0xfffe416c);
TEST_RRI_OP(aes32esi2,0xff6582d8,0xfffc82d8,0xfff905b0);
TEST_RRI_OP(aes32esi2,0xff9b0b60,0xfff20b60,0xffe416c0);
TEST_RRI_OP(aes32esi2,0xffa82d80,0xffc82d80,0xff905b01);
TEST_RRI_OP(aes32esi2,0xffa3b602,0xff20b602,0xfe416c05);
TEST_RRI_OP(aes32esi2,0xfce9d80a,0xfc82d80a,0xf905b014);
TEST_RRI_OP(aes32esi2,0xf24c6029,0xf20b6029,0xe416c052);
TEST_RRI_OP(aes32esi2,0xc81480a4,0xc82d80a4,0x905b0148);
TEST_RRI_OP(aes32esi2,0x20e60291,0x20b60291,0x416c0522);
TEST_RRI_OP(aes32esi2,0x823f0a44,0x82d80a44,0x5b01489);
TEST_RRI_OP(aes32esi2,0xbda2912,0xb602912,0x16c05224);
TEST_RRI_OP(aes32esi2,0x2dfca448,0x2d80a448,0x5b014890);
TEST_RRI_OP(aes32esi2,0xb6699120,0xb6029120,0x6c052241);
TEST_RRI_OP(aes32esi2,0xd8f04483,0xd80a4483,0xb0148907);
TEST_RRI_OP(aes32esi2,0x6029120f,0x6029120f,0xc052241f);
TEST_RRI_OP(aes32esi2,0x80f6483f,0x80a4483f,0x148907e);
TEST_RRI_OP(aes32esi2,0x20220fd,0x29120fd,0x52241fb);
TEST_RRI_OP(aes32esi2,0xae383f7,0xa4483f7,0x148907ee);
TEST_RRI_OP(aes32esi2,0x29240fdd,0x29120fdd,0x52241fbb);
TEST_RRI_OP(aes32esi2,0xa4283f77,0xa4483f77,0x48907eef);
TEST_RRI_OP(aes32esi2,0x91a3fdde,0x9120fdde,0x2241fbbd);
TEST_RRI_OP(aes32esi2,0x4446f77b,0x4483f77b,0x8907eef6);
TEST_RRI_OP(aes32esi2,0x12cfddec,0x120fddec,0x241fbbd8);
TEST_RRI_OP(aes32esi2,0x48cc77b0,0x483f77b0,0x907eef61);
TEST_RRI_OP(aes32esi2,0x20f2dec3,0x20fddec3,0x41fbbd87);
TEST_RRI_OP(aes32esi2,0x83df7b0f,0x83f77b0f,0x7eef61e);
TEST_RRI_OP(aes32esi2,0xf37ec3c,0xfddec3c,0x1fbbd878);
TEST_RRI_OP(aes32esi2,0x3fa8b0f1,0x3f77b0f1,0x7eef61e2);
TEST_RRI_OP(aes32esi2,0xfda4c3c4,0xfddec3c4,0xfbbd8789);
TEST_RRI_OP(aes32esi2,0xf7390f13,0xf77b0f13,0xeef61e26);
TEST_RRI_OP(aes32esi2,0xdd8d3c4d,0xddec3c4d,0xbbd8789b);
TEST_RRI_OP(aes32esi2,0x775ff137,0x77b0f137,0xef61e26f);
TEST_RRI_OP(aes32esi2,0xded4c4de,0xdec3c4de,0xbd8789bc);
TEST_RRI_OP(aes32esi2,0x7b7d1379,0x7b0f1379,0xf61e26f3);
TEST_RRI_OP(aes32esi2,0xec804de7,0xec3c4de7,0xd8789bce);
TEST_RRI_OP(aes32esi2,0xb069379d,0xb0f1379d,0x61e26f3b);
TEST_RRI_OP(aes32esi2,0xc363de77,0xc3c4de77,0x8789bcef);
TEST_RRI_OP(aes32esi2,0xfe479df,0xf1379df,0x1e26f3be);
TEST_RRI_OP(aes32esi2,0x3c59e77c,0x3c4de77c,0x789bcef8);
TEST_RRI_OP(aes32esi2,0xf19f9df0,0xf1379df0,0xe26f3be0);
TEST_RRI_OP(aes32esi2,0xc4bb77c0,0xc4de77c0,0x89bcef81);
TEST_RRI_OP(aes32esi2,0x1374df03,0x1379df03,0x26f3be07);
TEST_RRI_OP(aes32esi2,0x4d6c7c0f,0x4de77c0f,0x9bcef81f);
TEST_RRI_OP(aes32esi2,0x377ff03f,0x379df03f,0x6f3be07e);
TEST_RRI_OP(aes32esi2,0xdea8c0fc,0xde77c0fc,0xbcef81f8);
TEST_RRI_OP(aes32esi2,0x797103f0,0x79df03f0,0xf3be07e0);
TEST_RRI_OP(aes32esi2,0xe73d0fc0,0xe77c0fc0,0xcef81f80);
TEST_RRI_OP(aes32esi2,0x9d113f00,0x9df03f00,0x3be07e00);
TEST_RRI_OP(aes32esi2,0x77ccfc01,0x77c0fc01,0xef81f803);
TEST_RRI_OP(aes32esi2,0xdfc6f007,0xdf03f007,0xbe07e00f);
TEST_RRI_OP(aes32esi2,0x7ccfc01f,0x7c0fc01f,0xf81f803e);
TEST_RRI_OP(aes32esi2,0xf0cc007c,0xf03f007c,0xe07e00f8);
TEST_RRI_OP(aes32esi2,0xc0bd01f0,0xc0fc01f0,0x81f803e0);
TEST_RRI_OP(aes32esi2,0x31107c0,0x3f007c0,0x7e00f81);
TEST_RRI_OP(aes32esi2,0xf0d1f02,0xfc01f02,0x1f803e05);
TEST_RRI_OP(aes32esi2,0x3f637c0b,0x3f007c0b,0x7e00f816);
TEST_RRI_OP(aes32esi2,0xfc7af02d,0xfc01f02d,0xf803e05a);
TEST_RRI_OP(aes32esi2,0xf071c0b4,0xf007c0b4,0xe00f8169);
TEST_RRI_OP(aes32esi2,0xc0ad02d2,0xc01f02d2,0x803e05a4);
TEST_RRI_OP(aes32esi2,0x3d0b48,0x7c0b48,0xf81691);
TEST_RRI_OP(aes32esi2,0x1112d22,0x1f02d22,0x3e05a44);
TEST_RRI_OP(aes32esi2,0x7ccb489,0x7c0b489,0xf816913);
TEST_RRI_OP(aes32esi2,0x1f69d226,0x1f02d226,0x3e05a44d);
TEST_RRI_OP(aes32esi2,0x7c4c489b,0x7c0b489b,0xf8169136);
TEST_RRI_OP(aes32esi2,0xf093226c,0xf02d226c,0xe05a44d8);
TEST_RRI_OP(aes32esi2,0xc04d89b1,0xc0b489b1,0x81691363);
TEST_RRI_OP(aes32esi2,0x29b26c6,0x2d226c6,0x5a44d8d);
TEST_RRI_OP(aes32esi2,0xbc99b1a,0xb489b1a,0x16913635);
TEST_RRI_OP(aes32esi2,0x2d396c6b,0x2d226c6b,0x5a44d8d7);
TEST_RRI_OP(aes32esi2,0xb4f4b1ae,0xb489b1ae,0x6913635c);
TEST_RRI_OP(aes32esi2,0xd2c5c6b8,0xd226c6b8,0xa44d8d70);
TEST_RRI_OP(aes32esi3,0xc99b1ae1,0x489b1ae1,0x913635c3);
TEST_RRI_OP(aes32esi3,0x396c6b86,0x226c6b86,0x44d8d70c);
TEST_RRI_OP(aes32esi3,0xf4b1ae18,0x89b1ae18,0x13635c30);
TEST_RRI_OP(aes32esi3,0xc5c6b861,0x26c6b861,0x4d8d70c3);
TEST_RRI_OP(aes32esi3,0x9e1ae186,0x9b1ae186,0x3635c30c);
TEST_RRI_OP(aes32esi3,0xd6b8619,0x6c6b8619,0xd8d70c32);
TEST_RRI_OP(aes32esi3,0x4aae1864,0xb1ae1864,0x635c30c8);
TEST_RRI_OP(aes32esi3,0x9bb86190,0xc6b86190,0x8d70c320);
TEST_RRI_OP(aes32esi3,0x8ce18640,0x1ae18640,0x35c30c81);
TEST_RRI_OP(aes32esi3,0x65861903,0x6b861903,0xd70c3206);
TEST_RRI_OP(aes32esi3,0xe418640c,0xae18640c,0x5c30c819);
TEST_RRI_OP(aes32esi3,0xe9619032,0xb8619032,0x70c32065);
TEST_RRI_OP(aes32esi3,0xcf8640cb,0xe18640cb,0xc30c8197);
TEST_RRI_OP(aes32esi3,0x7819032f,0x8619032f,0xc32065f);
TEST_RRI_OP(aes32esi3,0x1c640cbf,0x18640cbf,0x30c8197f);
TEST_RRI_OP(aes32esi3,0x4f9032fe,0x619032fe,0xc32065fd);
TEST_RRI_OP(aes32esi3,0x7840cbfb,0x8640cbfb,0xc8197f7);
TEST_RRI_OP(aes32esi3,0x3a032fee,0x19032fee,0x32065fdd);
TEST_RRI_OP(aes32esi3,0x8c0cbfbb,0x640cbfbb,0xc8197f76);
TEST_RRI_OP(aes32esi3,0x2732feec,0x9032feec,0x2065fdd8);
TEST_RRI_OP(aes32esi3,0x4ccbfbb1,0x40cbfbb1,0x8197f763);
TEST_RRI_OP(aes32esi3,0x6c2feec7,0x32feec7,0x65fdd8f);
TEST_RRI_OP(aes32esi3,0xd8bfbb1e,0xcbfbb1e,0x197f763c);
TEST_RRI_OP(aes32esi3,0x7ffeec79,0x32feec79,0x65fdd8f2);
TEST_RRI_OP(aes32esi3,0x43fbb1e4,0xcbfbb1e4,0x97f763c8);
TEST_RRI_OP(aes32esi3,0xe0eec790,0x2feec790,0x5fdd8f21);
TEST_RRI_OP(aes32esi3,0x6dbb1e43,0xbfbb1e43,0x7f763c86);
TEST_RRI_OP(aes32esi3,0xaaec790c,0xfeec790c,0xfdd8f218);
TEST_RRI_OP(aes32esi3,0x93b1e431,0xfbb1e431,0xf763c863);
TEST_RRI_OP(aes32esi3,0x2fc790c6,0xeec790c6,0xdd8f218c);
TEST_RRI_OP(aes32esi3,0x831e4319,0xbb1e4319,0x763c8632);
TEST_RRI_OP(aes32esi3,0x8d790c64,0xec790c64,0xd8f218c8);
TEST_RRI_OP(aes32esi3,0x4ae43190,0xb1e43190,0x63c86320);
TEST_RRI_OP(aes32esi3,0xb490c640,0xc790c640,0x8f218c81);
TEST_RRI_OP(aes32esi3,0xf5431903,0x1e431903,0x3c863206);
TEST_RRI_OP(aes32esi3,0xf00c640d,0x790c640d,0xf218c81b);
TEST_RRI_OP(aes32esi3,0xc319037,0xe4319037,0xc863206e);
TEST_RRI_OP(aes32esi3,0x6dc640dd,0x90c640dd,0x218c81ba);
TEST_RRI_OP(aes32esi3,0x7190375,0x43190375,0x863206eb);
TEST_RRI_OP(aes32esi3,0xa1640dd6,0xc640dd6,0x18c81bac);
TEST_RRI_OP(aes32esi3,0xca903758,0x31903758,0x63206eb0);
TEST_RRI_OP(aes32esi3,0xa240dd61,0xc640dd61,0x8c81bac2);
TEST_RRI_OP(aes32esi3,0x3a037584,0x19037584,0x3206eb08);
TEST_RRI_OP(aes32esi3,0x8c0dd610,0x640dd610,0xc81bac20);
TEST_RRI_OP(aes32esi3,0x27375841,0x90375841,0x206eb083);
TEST_RRI_OP(aes32esi3,0x4cdd6107,0x40dd6107,0x81bac20e);
TEST_RRI_OP(aes32esi3,0x6c75841d,0x375841d,0x6eb083a);
TEST_RRI_OP(aes32esi3,0xa2d61074,0xdd61074,0x1bac20e8);
TEST_RRI_OP(aes32esi3,0xa85841d1,0x375841d1,0x6eb083a3);
TEST_RRI_OP(aes32esi3,0x29610747,0xdd610747,0xbac20e8e);
TEST_RRI_OP(aes32esi3,0x9c841d1c,0x75841d1c,0xeb083a38);
TEST_RRI_OP(aes32esi3,0x47107471,0xd6107471,0xac20e8e2);
TEST_RRI_OP(aes32esi3,0xbf41d1c5,0x5841d1c5,0xb083a38b);
TEST_RRI_OP(aes32esi3,0x44074717,0x61074717,0xc20e8e2e);
TEST_RRI_OP(aes32esi3,0xb41d1c5c,0x841d1c5c,0x83a38b9);
TEST_RRI_OP(aes32esi3,0xa7747172,0x10747172,0x20e8e2e4);
TEST_RRI_OP(aes32esi3,0xadd1c5c9,0x41d1c5c9,0x83a38b93);
TEST_RRI_OP(aes32esi3,0xac471726,0x7471726,0xe8e2e4d);
TEST_RRI_OP(aes32esi3,0x9d1c5c9b,0x1d1c5c9b,0x3a38b936);
TEST_RRI_OP(aes32esi3,0xef71726c,0x7471726c,0xe8e2e4d9);
TEST_RRI_OP(aes32esi3,0xdbc5c9b3,0xd1c5c9b3,0xa38b9367);
TEST_RRI_OP(aes32esi3,0x5e1726cf,0x471726cf,0x8e2e4d9e);
TEST_RRI_OP(aes32esi3,0x1b5c9b3d,0x1c5c9b3d,0x38b9367b);
TEST_RRI_OP(aes32esi3,0xe9726cf7,0x71726cf7,0xe2e4d9ef);
TEST_RRI_OP(aes32esi3,0xf8c9b3de,0xc5c9b3de,0x8b9367bc);
TEST_RRI_OP(aes32esi3,0x2626cf79,0x1726cf79,0x2e4d9ef2);
TEST_RRI_OP(aes32esi3,0xa9b3de5,0x5c9b3de5,0xb9367bcb);
TEST_RRI_OP(aes32esi3,0x1b6cf796,0x726cf796,0xe4d9ef2c);
TEST_RRI_OP(aes32esi3,0x15b3de59,0xc9b3de59,0x9367bcb3);
TEST_RRI_OP(aes32esi3,0xc5cf7966,0x26cf7966,0x4d9ef2cd);
TEST_RRI_OP(aes32esi3,0x9e3de59b,0x9b3de59b,0x367bcb36);
TEST_RRI_OP(aes32esi3,0x59f7966c,0x6cf7966c,0xd9ef2cd9);
TEST_RRI_OP(aes32esi3,0x36de59b3,0xb3de59b3,0x67bcb367);
TEST_RRI_OP(aes32esi3,0xc47966cf,0xcf7966cf,0x9ef2cd9e);
TEST_RRI_OP(aes32esi3,0x1ce59b3d,0x3de59b3d,0x7bcb367a);
TEST_RRI_OP(aes32esi3,0x28966cf5,0xf7966cf5,0xef2cd9ea);
TEST_RRI_OP(aes32esi3,0xbb59b3d5,0xde59b3d5,0xbcb367aa);
TEST_RRI_OP(aes32esi3,0xf066cf55,0x7966cf55,0xf2cd9eaa);
TEST_RRI_OP(aes32esi3,0xfa9b3d54,0xe59b3d54,0xcb367aa9);
TEST_RRI_OP(aes32esi3,0xe76cf553,0x966cf553,0x2cd9eaa6);
TEST_RRI_OP(aes32esi3,0x34b3d54d,0x59b3d54d,0xb367aa9a);
TEST_RRI_OP(aes32esi3,0xdbcf5535,0x66cf5535,0xcd9eaa6b);
TEST_RRI_OP(aes32esi3,0x9e3d54d7,0x9b3d54d7,0x367aa9ae);
TEST_RRI_OP(aes32esi3,0x59f5535c,0x6cf5535c,0xd9eaa6b9);
TEST_RRI_OP(aes32esi3,0x36d54d73,0xb3d54d73,0x67aa9ae7);
TEST_RRI_OP(aes32esi3,0xc45535cf,0xcf5535cf,0x9eaa6b9f);
TEST_RRI_OP(aes32esi3,0xe754d73e,0x3d54d73e,0x7aa9ae7d);
TEST_RRI_OP(aes32esi3,0x72535cfa,0xf5535cfa,0xeaa6b9f4);
TEST_RRI_OP(aes32esi3,0x794d73e8,0xd54d73e8,0xaa9ae7d1);
TEST_RRI_OP(aes32esi3,0xf935cfa2,0x5535cfa2,0xaa6b9f44);
TEST_RRI_OP(aes32esi3,0x87d73e88,0x54d73e88,0xa9ae7d10);
TEST_RRI_OP(aes32esi3,0x775cfa20,0x535cfa20,0xa6b9f440);
TEST_RRI_OP(aes32esi3,0xf573e880,0x4d73e880,0x9ae7d101);
TEST_RRI_OP(aes32esi3,0x4acfa203,0x35cfa203,0x6b9f4406);
TEST_RRI_OP(aes32esi3,0x333e880d,0xd73e880d,0xae7d101b);
TEST_RRI_OP(aes32esi3,0xafa2036,0x5cfa2036,0xb9f4406c);
TEST_RRI_OP(aes32esi3,0xe7e880d8,0x73e880d8,0xe7d101b1);
TEST_RRI_OP(aes32esi3,0x14a20362,0xcfa20362,0x9f4406c5);
TEST_RRI_OP(aes32esi3,0xc1880d8a,0x3e880d8a,0x7d101b15);
TEST_RRI_OP(aes32esi3,0x4520362b,0xfa20362b,0xf4406c56);
return 0;
}