152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 252bae2fcc174535edd254f8a9b6d0af908a76480sewardj/* To compile: 352bae2fcc174535edd254f8a9b6d0af908a76480sewardj aarch64-linux-gnu-gcc -Wall -g -O0 -o memory none/tests/arm64/memory.c 452bae2fcc174535edd254f8a9b6d0af908a76480sewardj*/ 552bae2fcc174535edd254f8a9b6d0af908a76480sewardj 652bae2fcc174535edd254f8a9b6d0af908a76480sewardj#include <stdio.h> 752bae2fcc174535edd254f8a9b6d0af908a76480sewardj#include <malloc.h> // memalign 852bae2fcc174535edd254f8a9b6d0af908a76480sewardj#include <string.h> // memset 952bae2fcc174535edd254f8a9b6d0af908a76480sewardj#include <assert.h> 1052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1152bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned char UChar; 1252bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned short int UShort; 1352bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned int UInt; 1452bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef signed int Int; 1552bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned char UChar; 1652bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef signed long long int Long; 1752bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned long long int ULong; 1852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1952bae2fcc174535edd254f8a9b6d0af908a76480sewardjtypedef unsigned char Bool; 2052bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define False ((Bool)0) 2152bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define True ((Bool)1) 2252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 2352bae2fcc174535edd254f8a9b6d0af908a76480sewardj__attribute__((noinline)) 2452bae2fcc174535edd254f8a9b6d0af908a76480sewardjstatic void* memalign16(size_t szB) 2552bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 2652bae2fcc174535edd254f8a9b6d0af908a76480sewardj void* x; 2752bae2fcc174535edd254f8a9b6d0af908a76480sewardj x = memalign(16, szB); 2852bae2fcc174535edd254f8a9b6d0af908a76480sewardj assert(x); 2952bae2fcc174535edd254f8a9b6d0af908a76480sewardj assert(0 == ((16-1) & (unsigned long)x)); 3052bae2fcc174535edd254f8a9b6d0af908a76480sewardj return x; 3152bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 3252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 3352bae2fcc174535edd254f8a9b6d0af908a76480sewardjstatic inline UChar randUChar ( void ) 3452bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 3552bae2fcc174535edd254f8a9b6d0af908a76480sewardj static UInt seed = 80021; 3652bae2fcc174535edd254f8a9b6d0af908a76480sewardj seed = 1103515245 * seed + 12345; 3752bae2fcc174535edd254f8a9b6d0af908a76480sewardj return (seed >> 17) & 0xFF; 3852bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 3952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 4052bae2fcc174535edd254f8a9b6d0af908a76480sewardjstatic ULong randULong ( void ) 4152bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 4252bae2fcc174535edd254f8a9b6d0af908a76480sewardj Int i; 4352bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong r = 0; 4452bae2fcc174535edd254f8a9b6d0af908a76480sewardj for (i = 0; i < 8; i++) { 4552bae2fcc174535edd254f8a9b6d0af908a76480sewardj r = (r << 8) | (ULong)(0xFF & randUChar()); 4652bae2fcc174535edd254f8a9b6d0af908a76480sewardj } 4752bae2fcc174535edd254f8a9b6d0af908a76480sewardj return r; 4852bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 4952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 5052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 5152bae2fcc174535edd254f8a9b6d0af908a76480sewardj// Same as TESTINST2 except it doesn't print the RN value, since 5252bae2fcc174535edd254f8a9b6d0af908a76480sewardj// that may differ between runs (it's a stack address). Also, 5352bae2fcc174535edd254f8a9b6d0af908a76480sewardj// claim it trashes x28 so that can be used as scratch if needed. 5452bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define TESTINST2_hide2(instruction, RNval, RD, RN, carryin) \ 5552bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ \ 5652bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong out; \ 5752bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong nzcv_out; \ 5852bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong nzcv_in = (carryin ? (1<<29) : 0); \ 5952bae2fcc174535edd254f8a9b6d0af908a76480sewardj __asm__ __volatile__( \ 6052bae2fcc174535edd254f8a9b6d0af908a76480sewardj "msr nzcv,%3;" \ 6152bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mov " #RN ",%2;" \ 6252bae2fcc174535edd254f8a9b6d0af908a76480sewardj instruction ";" \ 6352bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mov %0," #RD ";" \ 6452bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mrs %1,nzcv;" \ 6552bae2fcc174535edd254f8a9b6d0af908a76480sewardj : "=&r" (out), "=&r" (nzcv_out) \ 6652bae2fcc174535edd254f8a9b6d0af908a76480sewardj : "r" (RNval), "r" (nzcv_in) \ 6752bae2fcc174535edd254f8a9b6d0af908a76480sewardj : #RD, #RN, "cc", "memory", "x28" \ 6852bae2fcc174535edd254f8a9b6d0af908a76480sewardj ); \ 6952bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("%s :: rd %016llx rn (hidden), " \ 7052bae2fcc174535edd254f8a9b6d0af908a76480sewardj "cin %d, nzcv %08llx %c%c%c%c\n", \ 7152bae2fcc174535edd254f8a9b6d0af908a76480sewardj instruction, out, \ 7252bae2fcc174535edd254f8a9b6d0af908a76480sewardj carryin ? 1 : 0, \ 7352bae2fcc174535edd254f8a9b6d0af908a76480sewardj nzcv_out & 0xffff0000, \ 7452bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<31) & nzcv_out) ? 'N' : ' ', \ 7552bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<30) & nzcv_out) ? 'Z' : ' ', \ 7652bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<29) & nzcv_out) ? 'C' : ' ', \ 7752bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<28) & nzcv_out) ? 'V' : ' ' \ 7852bae2fcc174535edd254f8a9b6d0af908a76480sewardj ); \ 7952bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 8052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 8152bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define TESTINST3_hide2and3(instruction, RMval, RNval, RD, RM, RN, carryin) \ 8252bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ \ 8352bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong out; \ 8452bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong nzcv_out; \ 8552bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong nzcv_in = (carryin ? (1<<29) : 0); \ 8652bae2fcc174535edd254f8a9b6d0af908a76480sewardj __asm__ __volatile__( \ 8752bae2fcc174535edd254f8a9b6d0af908a76480sewardj "msr nzcv,%4;" \ 8852bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mov " #RM ",%2;" \ 8952bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mov " #RN ",%3;" \ 9052bae2fcc174535edd254f8a9b6d0af908a76480sewardj instruction ";" \ 9152bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mov %0," #RD ";" \ 9252bae2fcc174535edd254f8a9b6d0af908a76480sewardj "mrs %1,nzcv;" \ 9352bae2fcc174535edd254f8a9b6d0af908a76480sewardj : "=&r" (out), "=&r" (nzcv_out) \ 9452bae2fcc174535edd254f8a9b6d0af908a76480sewardj : "r" (RMval), "r" (RNval), "r" (nzcv_in) \ 9552bae2fcc174535edd254f8a9b6d0af908a76480sewardj : #RD, #RM, #RN, "cc", "memory" \ 9652bae2fcc174535edd254f8a9b6d0af908a76480sewardj ); \ 9752bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("%s :: rd %016llx rm (hidden), rn (hidden), " \ 9852bae2fcc174535edd254f8a9b6d0af908a76480sewardj "cin %d, nzcv %08llx %c%c%c%c\n", \ 9952bae2fcc174535edd254f8a9b6d0af908a76480sewardj instruction, out, \ 10052bae2fcc174535edd254f8a9b6d0af908a76480sewardj carryin ? 1 : 0, \ 10152bae2fcc174535edd254f8a9b6d0af908a76480sewardj nzcv_out & 0xffff0000, \ 10252bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<31) & nzcv_out) ? 'N' : ' ', \ 10352bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<30) & nzcv_out) ? 'Z' : ' ', \ 10452bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<29) & nzcv_out) ? 'C' : ' ', \ 10552bae2fcc174535edd254f8a9b6d0af908a76480sewardj ((1<<28) & nzcv_out) ? 'V' : ' ' \ 10652bae2fcc174535edd254f8a9b6d0af908a76480sewardj ); \ 10752bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 10852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 10952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 11052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 11152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 11252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 113011dafb61cf25ff3337043315b2975986af226cfsewardj// // 114011dafb61cf25ff3337043315b2975986af226cfsewardj// test_memory_old // 115011dafb61cf25ff3337043315b2975986af226cfsewardj// // 11652bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 11752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 11852bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 11952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 120011dafb61cf25ff3337043315b2975986af226cfsewardjstatic __attribute((noinline)) void test_memory_old ( void ) 12152bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 12252bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("Integer loads\n"); 12352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 12452bae2fcc174535edd254f8a9b6d0af908a76480sewardjunsigned char area[512]; 12552bae2fcc174535edd254f8a9b6d0af908a76480sewardj 12652bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define RESET \ 12752bae2fcc174535edd254f8a9b6d0af908a76480sewardj do { int i; for (i = 0; i < sizeof(area); i++) \ 12852bae2fcc174535edd254f8a9b6d0af908a76480sewardj area[i] = i | 0x80; \ 12952bae2fcc174535edd254f8a9b6d0af908a76480sewardj } while (0) 13052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 13152bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define AREA_MID (((ULong)(&area[(sizeof(area)/2)-1])) & (~(ULong)0xF)) 13252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 13352bae2fcc174535edd254f8a9b6d0af908a76480sewardjRESET; 13452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 13552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 13652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR,STR (immediate, uimm12) (STR cases are MISSING)"); 13752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldr x21, [x22, #24]", AREA_MID, x21,x22,0); 13852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldr w21, [x22, #20]", AREA_MID, x21,x22,0); 13952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrh w21, [x22, #44]", AREA_MID, x21,x22,0); 14052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrb w21, [x22, #56]", AREA_MID, x21,x22,0); 14152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 14252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 14352bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDUR,STUR (immediate, simm9) (STR cases and wb check are MISSING)\n"); 14452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldr x21, [x22], #-24", AREA_MID, x21,x22,0); 14552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldr x21, [x22, #-40]!", AREA_MID, x21,x22,0); 14652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldr x21, [x22, #-48]", AREA_MID, x21,x22,0); 14752bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDUR,STUR (immediate, simm9): STR cases are MISSING"); 14852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 14952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 15052bae2fcc174535edd254f8a9b6d0af908a76480sewardj// TESTINST2_hide2 allows use of x28 as scratch 15152bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDP,STP (immediate, simm7) (STR cases and wb check is MISSING)\n"); 15252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 15352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22], #-24 ; add x21,x21,x28", AREA_MID, x21,x22,0); 15452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22], #-24 ; eor x21,x21,x28", AREA_MID, x21,x22,0); 15552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22, #-40]! ; add x21,x21,x28", AREA_MID, x21,x22,0); 15652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22, #-40]! ; eor x21,x21,x28", AREA_MID, x21,x22,0); 15752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22, #-40] ; add x21,x21,x28", AREA_MID, x21,x22,0); 15852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp x21, x28, [x22, #-40] ; eor x21,x21,x28", AREA_MID, x21,x22,0); 15952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 16052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22], #-24 ; add x21,x21,x28", AREA_MID, x21,x22,0); 16152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22], #-24 ; eor x21,x21,x28", AREA_MID, x21,x22,0); 16252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22, #-40]! ; add x21,x21,x28", AREA_MID, x21,x22,0); 16352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22, #-40]! ; eor x21,x21,x28", AREA_MID, x21,x22,0); 16452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22, #-40] ; add x21,x21,x28", AREA_MID, x21,x22,0); 16552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldp w21, w28, [x22, #-40] ; eor x21,x21,x28", AREA_MID, x21,x22,0); 16652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 16752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 16852bae2fcc174535edd254f8a9b6d0af908a76480sewardj// This is a bit tricky. We load the value from just before and 16952bae2fcc174535edd254f8a9b6d0af908a76480sewardj// just after the actual instruction. Because TESTINSN2_hide2 17052bae2fcc174535edd254f8a9b6d0af908a76480sewardj// generates two fixed insns either side of the test insn, these 17152bae2fcc174535edd254f8a9b6d0af908a76480sewardj// should be constant and hence "safe" to check. 17252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 17352bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR (literal, int reg)\n"); 17452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy00: ldr x21, xyzzy00 - 8", AREA_MID, x21,x22,0); 17552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy01: ldr x21, xyzzy01 + 0", AREA_MID, x21,x22,0); 17652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy02: ldr x21, xyzzy02 + 8", AREA_MID, x21,x22,0); 17752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 17852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy03: ldr x21, xyzzy03 - 4", AREA_MID, x21,x22,0); 17952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy04: ldr x21, xyzzy04 + 0", AREA_MID, x21,x22,0); 18052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("xyzzy05: ldr x21, xyzzy05 + 4", AREA_MID, x21,x22,0); 18152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 18252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 18352bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("{LD,ST}R (integer register) (entirely MISSING)\n"); 18452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 18552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 18652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (uimm12)\n"); 18752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsw x21, [x22, #24]", AREA_MID, x21,x22,0); 18852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh x21, [x22, #20]", AREA_MID, x21,x22,0); 18952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh w21, [x22, #44]", AREA_MID, x21,x22,0); 19052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb x21, [x22, #88]", AREA_MID, x21,x22,0); 19152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb w21, [x22, #56]", AREA_MID, x21,x22,0); 19252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 19352bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 19452bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (simm9, upd) (upd check is MISSING)\n"); 19552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsw x21, [x22, #-24]!", AREA_MID, x21,x22,0); 19652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh x21, [x22, #-20]!", AREA_MID, x21,x22,0); 19752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh w21, [x22, #-44]!", AREA_MID, x21,x22,0); 19852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb x21, [x22, #-88]!", AREA_MID, x21,x22,0); 19952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb w21, [x22, #-56]!", AREA_MID, x21,x22,0); 20052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 20152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsw x21, [x22], #-24", AREA_MID, x21,x22,0); 20252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh x21, [x22], #-20", AREA_MID, x21,x22,0); 20352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh w21, [x22], #-44", AREA_MID, x21,x22,0); 20452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb x21, [x22], #-88", AREA_MID, x21,x22,0); 20552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb w21, [x22], #-56", AREA_MID, x21,x22,0); 20652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 20752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 20852bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (simm9, noUpd)\n"); 20952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsw x21, [x22, #-24]", AREA_MID, x21,x22,0); 21052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh x21, [x22, #-20]", AREA_MID, x21,x22,0); 21152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsh w21, [x22, #-44]", AREA_MID, x21,x22,0); 21252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb x21, [x22, #-88]", AREA_MID, x21,x22,0); 21352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldrsb w21, [x22, #-56]", AREA_MID, x21,x22,0); 21452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 21552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 21652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDP,STP (immediate, simm7) (FP&VEC) (entirely MISSING)\n"); 21752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 21852bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 21952bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("{LD,ST}R (vector register) (entirely MISSING)\n"); 22052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 22152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 22252bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (integer register, SX)\n"); 22352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 22452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,x23]", AREA_MID, 5, x21,x22,x23,0); 22552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,x23, lsl #2]", AREA_MID, 5, x21,x22,x23,0); 22652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 22752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,w23,uxtw #2]", AREA_MID, 5, x21,x22,x23,0); 22852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 22952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsw x21, [x22,w23,sxtw #2]", AREA_MID, -5ULL, x21,x22,x23,0); 23052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 23152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,x23]", AREA_MID, 5, x21,x22,x23,0); 23252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,x23, lsl #1]", AREA_MID, 5, x21,x22,x23,0); 23352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 23452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,w23,uxtw #1]", AREA_MID, 5, x21,x22,x23,0); 23552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 23652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh x21, [x22,w23,sxtw #1]", AREA_MID, -5ULL, x21,x22,x23,0); 23752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 23852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,x23]", AREA_MID, 5, x21,x22,x23,0); 23952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,x23, lsl #1]", AREA_MID, 5, x21,x22,x23,0); 24052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 24152bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,w23,uxtw #1]", AREA_MID, 5, x21,x22,x23,0); 24252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 24352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsh w21, [x22,w23,sxtw #1]", AREA_MID, -5ULL, x21,x22,x23,0); 24452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 24552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,x23]", AREA_MID, 5, x21,x22,x23,0); 24652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,x23, lsl #0]", AREA_MID, 5, x21,x22,x23,0); 24752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 24852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 24952bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 25052bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb x21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 25152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 25252bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,x23]", AREA_MID, 5, x21,x22,x23,0); 25352bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,x23, lsl #0]", AREA_MID, 5, x21,x22,x23,0); 25452bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 25552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,w23,uxtw #0]", AREA_MID, 5, x21,x22,x23,0); 25652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 25752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST3_hide2and3("ldrsb w21, [x22,w23,sxtw #0]", AREA_MID, -5ULL, x21,x22,x23,0); 25852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 25952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 26052bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR/STR (immediate, SIMD&FP, unsigned offset) (entirely MISSING)\n"); 26152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 26252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 26352bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR/STR (immediate, SIMD&FP, pre/post index) (entirely MISSING)\n"); 26452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 26552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 26652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDUR/STUR (unscaled offset, SIMD&FP) (entirely MISSING)\n"); 26752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 26852bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 26952bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR (literal, SIMD&FP) (entirely MISSING)\n"); 27052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 27152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 27252bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LD1/ST1 (single structure, no offset) (entirely MISSING)\n"); 27352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 27452bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 27552bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LD1/ST1 (single structure, post index) (entirely MISSING)\n"); 27652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 27752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 27852bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LD{,A}X{R,RH,RB} (entirely MISSING)\n"); 27952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 28052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 28152bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("ST{,L}X{R,RH,RB} (entirely MISSING)\n"); 28252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 28352bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 28452bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDA{R,RH,RB}\n"); 28552bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldar x21, [x22]", AREA_MID, x21,x22,0); 28652bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldar w21, [x22]", AREA_MID, x21,x22,0); 28752bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldarh w21, [x22]", AREA_MID, x21,x22,0); 28852bae2fcc174535edd254f8a9b6d0af908a76480sewardjTESTINST2_hide2("ldarb w21, [x22]", AREA_MID, x21,x22,0); 28952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 29052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 29152bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("STL{R,RH,RB} (entirely MISSING)\n"); 292011dafb61cf25ff3337043315b2975986af226cfsewardj} /* end of test_memory_old() */ 29352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 29452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 29552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 29652bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 29752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 298011dafb61cf25ff3337043315b2975986af226cfsewardj// // 299011dafb61cf25ff3337043315b2975986af226cfsewardj// test_memory_new // 300011dafb61cf25ff3337043315b2975986af226cfsewardj// // 30152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 30252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 30352bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 30452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 30552bae2fcc174535edd254f8a9b6d0af908a76480sewardjstatic void show_block_xor ( UChar* block1, UChar* block2, Int n ) 30652bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 30752bae2fcc174535edd254f8a9b6d0af908a76480sewardj Int i; 30852bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" "); 30952bae2fcc174535edd254f8a9b6d0af908a76480sewardj for (i = 0; i < n; i++) { 31052bae2fcc174535edd254f8a9b6d0af908a76480sewardj if (i > 0 && 0 == (i & 15)) printf("\n "); 31152bae2fcc174535edd254f8a9b6d0af908a76480sewardj if (0 == (i & 15)) printf("[%3d] ", i); 31252bae2fcc174535edd254f8a9b6d0af908a76480sewardj UInt diff = 0xFF & (UInt)(block1[i] - block2[i]); 31352bae2fcc174535edd254f8a9b6d0af908a76480sewardj if (diff == 0) 31452bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(".. "); 31552bae2fcc174535edd254f8a9b6d0af908a76480sewardj else 31652bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("%02x ", diff); 31752bae2fcc174535edd254f8a9b6d0af908a76480sewardj } 31852bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("\n"); 31952bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 32052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 32152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 32252bae2fcc174535edd254f8a9b6d0af908a76480sewardj// In: rand: 32352bae2fcc174535edd254f8a9b6d0af908a76480sewardj// memory area, xferred vec regs, xferred int regs, 32452bae2fcc174535edd254f8a9b6d0af908a76480sewardj// caller spec: 32552bae2fcc174535edd254f8a9b6d0af908a76480sewardj// addr reg1, addr reg2 32652bae2fcc174535edd254f8a9b6d0af908a76480sewardj// 32752bae2fcc174535edd254f8a9b6d0af908a76480sewardj// Out: memory area, xferred vec regs, xferred int regs, addr reg1, addr reg2 32852bae2fcc174535edd254f8a9b6d0af908a76480sewardj// 32952bae2fcc174535edd254f8a9b6d0af908a76480sewardj// INSN may mention the following regs as containing load/store data: 33052bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x13 x23 v17 v18 v19 v20 33152bae2fcc174535edd254f8a9b6d0af908a76480sewardj// and 33252bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x5 as containing the base address 33352bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x6 as containing an offset, if required 33452bae2fcc174535edd254f8a9b6d0af908a76480sewardj// A memory area is filled with random data, and x13, x23, v17, v18, v19, v20 33552bae2fcc174535edd254f8a9b6d0af908a76480sewardj// are loaded with random data too. INSN is then executed, with 33652bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x5 set to the middle of the memory area + AREG1OFF, and x6 set to AREG2VAL. 33752bae2fcc174535edd254f8a9b6d0af908a76480sewardj// 33852bae2fcc174535edd254f8a9b6d0af908a76480sewardj// What is printed out: the XOR of the new and old versions of the 33952bae2fcc174535edd254f8a9b6d0af908a76480sewardj// following: 34052bae2fcc174535edd254f8a9b6d0af908a76480sewardj// the memory area 34152bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x13 x23 v17 v18 v19 v20 34252bae2fcc174535edd254f8a9b6d0af908a76480sewardj// and the SUB of the new and old values of the following: 34352bae2fcc174535edd254f8a9b6d0af908a76480sewardj// x5 x6 34452bae2fcc174535edd254f8a9b6d0af908a76480sewardj// If the insn modifies its base register then (obviously) the x5 "new - old" 34552bae2fcc174535edd254f8a9b6d0af908a76480sewardj// value will be nonzero. 34652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 34752bae2fcc174535edd254f8a9b6d0af908a76480sewardj#define MEM_TEST(INSN, AREG1OFF, AREG2VAL) { \ 34852bae2fcc174535edd254f8a9b6d0af908a76480sewardj int i; \ 34952bae2fcc174535edd254f8a9b6d0af908a76480sewardj const int N = 256; \ 35052bae2fcc174535edd254f8a9b6d0af908a76480sewardj UChar* area = memalign16(N); \ 35152bae2fcc174535edd254f8a9b6d0af908a76480sewardj UChar area2[N]; \ 35252bae2fcc174535edd254f8a9b6d0af908a76480sewardj for (i = 0; i < N; i++) area[i] = area2[i] = randUChar(); \ 35352bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong block[12]; \ 35452bae2fcc174535edd254f8a9b6d0af908a76480sewardj /* 0:x13 1:x23 2:v17.d[0] 3:v17.d[1] 4:v18.d[0] 5:v18.d[1] */ \ 35552bae2fcc174535edd254f8a9b6d0af908a76480sewardj /* 6:v19.d[0] 7:v19.d[1] 8:v20.d[0] 9:v20.d[1] 10:x5 11:x6 */ \ 35652bae2fcc174535edd254f8a9b6d0af908a76480sewardj for (i = 0; i < 12; i++) block[i] = randULong(); \ 35752bae2fcc174535edd254f8a9b6d0af908a76480sewardj block[10] = (ULong)(&area[128]) + (Long)(Int)AREG1OFF; \ 35852bae2fcc174535edd254f8a9b6d0af908a76480sewardj block[11] = (Long)AREG2VAL; \ 35952bae2fcc174535edd254f8a9b6d0af908a76480sewardj ULong block2[12]; \ 36052bae2fcc174535edd254f8a9b6d0af908a76480sewardj for (i = 0; i < 12; i++) block2[i] = block[i]; \ 36152bae2fcc174535edd254f8a9b6d0af908a76480sewardj __asm__ __volatile__( \ 36252bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr x13, [%0, #0] ; " \ 36352bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr x23, [%0, #8] ; " \ 36452bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr q17, [%0, #16] ; " \ 36552bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr q18, [%0, #32] ; " \ 36652bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr q19, [%0, #48] ; " \ 36752bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr q20, [%0, #64] ; " \ 36852bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr x5, [%0, #80] ; " \ 36952bae2fcc174535edd254f8a9b6d0af908a76480sewardj "ldr x6, [%0, #88] ; " \ 37052bae2fcc174535edd254f8a9b6d0af908a76480sewardj INSN " ; " \ 37152bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str x13, [%0, #0] ; " \ 37252bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str x23, [%0, #8] ; " \ 37352bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str q17, [%0, #16] ; " \ 37452bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str q18, [%0, #32] ; " \ 37552bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str q19, [%0, #48] ; " \ 37652bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str q20, [%0, #64] ; " \ 37752bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str x5, [%0, #80] ; " \ 37852bae2fcc174535edd254f8a9b6d0af908a76480sewardj "str x6, [%0, #88] ; " \ 37952bae2fcc174535edd254f8a9b6d0af908a76480sewardj : : "r"(&block[0]) : "x5", "x6", "x13", "x23", \ 38052bae2fcc174535edd254f8a9b6d0af908a76480sewardj "v17", "v18", "v19", "v20", "memory", "cc" \ 38152bae2fcc174535edd254f8a9b6d0af908a76480sewardj ); \ 38252bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("%s with x5 = middle_of_block+%lld, x6=%lld\n", \ 38352bae2fcc174535edd254f8a9b6d0af908a76480sewardj INSN, (Long)AREG1OFF, (Long)AREG2VAL); \ 38452bae2fcc174535edd254f8a9b6d0af908a76480sewardj show_block_xor(&area2[0], area, 256); \ 38552bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx x13 (xor, xfer intreg #1)\n", block[0] ^ block2[0]); \ 38652bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx x23 (xor, xfer intreg #2)\n", block[1] ^ block2[1]); \ 38752bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v17.d[0] (xor, xfer vecreg #1)\n", block[2] ^ block2[2]); \ 38852bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v17.d[1] (xor, xfer vecreg #1)\n", block[3] ^ block2[3]); \ 38952bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v18.d[0] (xor, xfer vecreg #2)\n", block[4] ^ block2[4]); \ 39052bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v18.d[1] (xor, xfer vecreg #2)\n", block[5] ^ block2[5]); \ 39152bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v19.d[0] (xor, xfer vecreg #3)\n", block[6] ^ block2[6]); \ 39252bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v19.d[1] (xor, xfer vecreg #3)\n", block[7] ^ block2[7]); \ 39352bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v20.d[0] (xor, xfer vecreg #3)\n", block[8] ^ block2[8]); \ 39452bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %016llx v20.d[1] (xor, xfer vecreg #3)\n", block[9] ^ block2[9]); \ 39552bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %16lld x5 (sub, base reg)\n", block[10] - block2[10]); \ 39652bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf(" %16lld x6 (sub, index reg)\n", block[11] - block2[11]); \ 39752bae2fcc174535edd254f8a9b6d0af908a76480sewardj printf("\n"); \ 39852bae2fcc174535edd254f8a9b6d0af908a76480sewardj free(area); \ 39952bae2fcc174535edd254f8a9b6d0af908a76480sewardj } 40052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 401011dafb61cf25ff3337043315b2975986af226cfsewardj 402011dafb61cf25ff3337043315b2975986af226cfsewardjstatic __attribute__((noinline)) void test_memory_new ( void ) 40352bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 40452bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 40552bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR,STR (immediate, uimm12)"); 40652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, #24]", -1, 0); 40752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, #20]", 1, 0); 40852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, #44]", 2, 0); 40952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, #56]", 3, 0); 41052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, #24]", -3, 0); 41152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, #20]", 5, 0); 41252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, #44]", 6, 0); 41352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, #56]", 7, 0); 41452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 41552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 41652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDUR,STUR (immediate, simm9)\n"); 41752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5], #-24", 0, 0); 41852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, #-40]!", 0, 0); 41952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, #-48]", 0, 0); 42052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5], #-24", 0, 0); 42152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, #-40]!", 0, 0); 42252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, #-48]", 0, 0); 42352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 42452bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 42552bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDP,STP (immediate, simm7)\n"); 42652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp x13, x23, [x5], #-24", 0, 0); 42752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp x13, x23, [x5, #-40]!", 0, 0); 42852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp x13, x23, [x5, #-40]", 0, 0); 42952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp x13, x23, [x5], #-24", 0, 0); 43052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp x13, x23, [x5, #-40]!", 0, 0); 43152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp x13, x23, [x5, #-40]", 0, 0); 43252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 43352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp w13, w23, [x5], #-24", 0, 0); 43452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp w13, w23, [x5, #-40]!", 0, 0); 43552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldp w13, w23, [x5, #-40]", 0, 0); 43652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp w13, w23, [x5], #-24", 0, 0); 43752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp w13, w23, [x5, #-40]!", 0, 0); 43852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("stp w13, w23, [x5, #-40]", 0, 0); 43952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 44052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 441011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LDR (literal, int reg) (done above by test_memory_old)\n"); 44252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 44352bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 444011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("{LD,ST}R (integer register)\n"); 44552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, x6]", 12, -4); 44652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, x6, lsl #3]", 12, -4); 44752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, w6, uxtw]", 12, 4); 44852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, w6, uxtw #3]", 12, 4); 44952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, w6, sxtw]", 12, 4); 45052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str x13, [x5, w6, sxtw #3]", 12, -4); 45152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, x6]", 12, -4); 45252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, x6, lsl #3]", 12, -4); 45352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, w6, uxtw]", 12, 4); 45452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, w6, uxtw #3]", 12, 4); 45552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, w6, sxtw]", 12, 4); 45652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr x13, [x5, w6, sxtw #3]", 12, -4); 45752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 45852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, x6]", 12, -4); 45952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, x6, lsl #2]", 12, -4); 46052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, w6, uxtw]", 12, 4); 46152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, w6, uxtw #2]", 12, 4); 46252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, w6, sxtw]", 12, 4); 46352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str w13, [x5, w6, sxtw #2]", 12, -4); 46452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, x6]", 12, -4); 46552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, x6, lsl #2]", 12, -4); 46652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, w6, uxtw]", 12, 4); 46752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, w6, uxtw #2]", 12, 4); 46852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, w6, sxtw]", 12, 4); 46952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr w13, [x5, w6, sxtw #2]", 12, -4); 47052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 47152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, x6]", 12, -4); 47252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, x6, lsl #1]", 12, -4); 47352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, w6, uxtw]", 12, 4); 47452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, w6, uxtw #1]", 12, 4); 47552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, w6, sxtw]", 12, 4); 47652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strh w13, [x5, w6, sxtw #1]", 12, -4); 47752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, x6]", 12, -4); 47852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, x6, lsl #1]", 12, -4); 47952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, w6, uxtw]", 12, 4); 48052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, w6, uxtw #1]", 12, 4); 48152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, w6, sxtw]", 12, 4); 48252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrh w13, [x5, w6, sxtw #1]", 12, -4); 48352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 48452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, x6]", 12, -4); 48552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, x6, lsl #0]", 12, -4); 48652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, w6, uxtw]", 12, 4); 48752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, w6, uxtw #0]", 12, 4); 48852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, w6, sxtw]", 12, 4); 48952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("strb w13, [x5, w6, sxtw #0]", 12, -4); 49052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, x6]", 12, -4); 49152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, x6, lsl #0]", 12, -4); 49252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, w6, uxtw]", 12, 4); 49352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, w6, uxtw #0]", 12, 4); 49452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, w6, sxtw]", 12, 4); 49552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrb w13, [x5, w6, sxtw #0]", 12, -4); 49652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 49752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 49852bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (uimm12)\n"); 49952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5, #24]", -16, 4); 50052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5, #20]", -16, 4); 50152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5, #44]", -16, 4); 50252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5, #72]", -16, 4); 50352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5, #56]", -16, 4); 50452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 50552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 506011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LDRS{B,H,W} (simm9, upd)\n"); 50752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5, #-24]!", -16, 4); 50852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5, #-20]!", -16, 4); 50952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5, #-44]!", -16, 4); 51052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5, #-72]!", -16, 4); 51152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5, #-56]!", -16, 4); 51252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 51352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5], #-24", -16, 4); 51452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5], #-20", -16, 4); 51552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5], #-44", -16, 4); 51652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5], #-72", -16, 4); 51752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5], #-56", -16, 4); 51852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 51952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 52052bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (simm9, noUpd)\n"); 52152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5, #-24]", -16, 4); 52252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5, #-20]", -16, 4); 52352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5, #-44]", -16, 4); 52452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5, #-72]", -16, 4); 52552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5, #-56]", -16, 4); 52652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 52752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 52852bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDP,STP (immediate, simm7) (FP&VEC)\n"); 52952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 530011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp q17, q18, [x5, 16]", -15, 4); 531011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp q19, q18, [x5, 32]!", -11, 4); 532011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp q20, q17, [x5], -48", -7, 4); 53352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 534011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp d18, d17, [x5, 16]", -15, 4); 535011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp d17, d19, [x5, 32]!", -11, 4); 536011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp d20, d18, [x5], -48", -7, 4); 53752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 538011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp s17, s18, [x5, 16]", -15, 4); 539011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp s19, s18, [x5, 32]!", -11, 4); 540011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stp s20, s17, [x5], -48", -7, 4); 54152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 542011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp q17, q18, [x5, 16]", -15, 4); 543011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp q18, q19, [x5, 32]!", -11, 4); 544011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp q19, q20, [x5], -48", -7, 4); 545011dafb61cf25ff3337043315b2975986af226cfsewardj 546011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp d20, d17, [x5, 16]", -15, 4); 547011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp d17, d18, [x5, 32]!", -11, 4); 548011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp d18, d19, [x5], -48", -7, 4); 549011dafb61cf25ff3337043315b2975986af226cfsewardj 550011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp s19, s20, [x5, 16]", -15, 4); 551011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp s20, s17, [x5, 32]!", -11, 4); 552011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldp s17, s18, [x5], -48", -7, 4); 553011dafb61cf25ff3337043315b2975986af226cfsewardj 554011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 555011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LDNP,STNP (immediate, simm7) (FP&VEC, w/ nontemporal hint)\n"); 55652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 557011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stnp q18, q17, [x5, 16]", -15, 4); 558011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stnp d20, d19, [x5, 40]", -15, 4); 559011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("stnp s19, s18, [x5, 68]", -15, 4); 56052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 561011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldnp q18, q17, [x5, 16]", -15, 4); 562011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldnp d17, d20, [x5, 40]", -15, 4); 563011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldnp s20, s19, [x5, 68]", -15, 4); 56452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 56552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 56652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("{LD,ST}R (vector register)\n"); 56752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 56852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, x6]", 12, -4); 56952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, x6, lsl #4]", 12, -4); 57052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, w6, uxtw]", 12, 4); 57152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, w6, uxtw #4]", 12, 4); 57252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, w6, sxtw]", 12, 4); 57352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, w6, sxtw #4]", 12, -4); 57452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, x6]", 12, -4); 57552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, x6, lsl #4]", 12, -4); 57652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, w6, uxtw]", 12, 4); 57752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, w6, uxtw #4]", 12, 4); 57852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, w6, sxtw]", 12, 4); 57952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, w6, sxtw #4]", 12, -4); 58052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 58152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, x6]", 12, -4); 58252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, x6, lsl #3]", 12, -4); 58352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, w6, uxtw]", 12, 4); 58452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, w6, uxtw #3]", 12, 4); 58552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, w6, sxtw]", 12, 4); 58652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, w6, sxtw #3]", 12, -4); 58752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, x6]", 12, -4); 58852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, x6, lsl #3]", 12, -4); 58952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, w6, uxtw]", 12, 4); 59052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, w6, uxtw #3]", 12, 4); 59152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, w6, sxtw]", 12, 4); 59252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, w6, sxtw #3]", 12, -4); 59352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 59452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, x6]", 12, -4); 59552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, x6, lsl #2]", 12, -4); 59652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, w6, uxtw]", 12, 4); 59752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, w6, uxtw #2]", 12, 4); 59852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, w6, sxtw]", 12, 4); 59952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, w6, sxtw #2]", 12, -4); 60052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, x6]", 12, -4); 60152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, x6, lsl #2]", 12, -4); 60252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, w6, uxtw]", 12, 4); 60352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, w6, uxtw #2]", 12, 4); 60452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, w6, sxtw]", 12, 4); 60552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, w6, sxtw #2]", 12, -4); 60652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 60752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, x6]", 12, -4); 60852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, x6, lsl #1]", 12, -4); 60952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, w6, uxtw]", 12, 4); 61052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, w6, uxtw #1]", 12, 4); 61152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, w6, sxtw]", 12, 4); 61252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str h17, [x5, w6, sxtw #1]", 12, -4); 61352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, x6]", 12, -4); 61452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, x6, lsl #1]", 12, -4); 61552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, w6, uxtw]", 12, 4); 61652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, w6, uxtw #1]", 12, 4); 61752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, w6, sxtw]", 12, 4); 61852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr h17, [x5, w6, sxtw #1]", 12, -4); 61952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 62052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, x6]", 12, -4); 62152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, x6, lsl #0]", 12, -4); 62252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, w6, uxtw]", 12, 4); 62352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, w6, uxtw #0]", 12, 4); 62452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, w6, sxtw]", 12, 4); 62552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str b17, [x5, w6, sxtw #0]", 12, -4); 62652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, x6]", 12, -4); 62752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, x6, lsl #0]", 12, -4); 62852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, w6, uxtw]", 12, 4); 62952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, w6, uxtw #0]", 12, 4); 63052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, w6, sxtw]", 12, 4); 63152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr b17, [x5, w6, sxtw #0]", 12, -4); 63252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 63352bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 63452bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDRS{B,H,W} (integer register, SX)\n"); 63552bae2fcc174535edd254f8a9b6d0af908a76480sewardj 63652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,x6]", 12, -4); 63752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,x6, lsl #2]", 12, -4); 63852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,w6,uxtw #0]", 12, 4); 63952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,w6,uxtw #2]", 12, 4); 64052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,w6,sxtw #0]", 12, 4); 64152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsw x13, [x5,w6,sxtw #2]", 12, -4); 64252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 64352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,x6]", 12, -4); 64452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,x6, lsl #1]", 12, -4); 64552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,w6,uxtw #0]", 12, 4); 64652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,w6,uxtw #1]", 12, 4); 64752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,w6,sxtw #0]", 12, 4); 64852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh x13, [x5,w6,sxtw #1]", 12, -4); 64952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 65052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,x6]", 12, -4); 65152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,x6, lsl #1]", 12, -4); 65252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,w6,uxtw #0]", 12, 4); 65352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,w6,uxtw #1]", 12, 4); 65452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,w6,sxtw #0]", 12, 4); 65552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsh w13, [x5,w6,sxtw #1]", 12, -4); 65652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 65752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,x6]", 12, -4); 65852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,x6, lsl #0]", 12, -4); 65952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,w6,uxtw #0]", 12, 4); 66052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,w6,uxtw #0]", 12, 4); 66152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,w6,sxtw #0]", 12, 4); 66252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb x13, [x5,w6,sxtw #0]", 12, -4); 66352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 66452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,x6]", 12, -4); 66552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,x6, lsl #0]", 12, -4); 66652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,w6,uxtw #0]", 12, 4); 66752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,w6,uxtw #0]", 12, 4); 66852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,w6,sxtw #0]", 12, 4); 66952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldrsb w13, [x5,w6,sxtw #0]", 12, -4); 67052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 67152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 67252bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR/STR (immediate, SIMD&FP, unsigned offset)\n"); 673011dafb61cf25ff3337043315b2975986af226cfsewardj 67452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, #-32]", 16, 0); 67552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, #-32]", 16, 0); 67652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, #-32]", 16, 0); 677011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str h17, [x5, #-32]", 16, 0); 678011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str b17, [x5, #-32]", 16, 0); 67952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, #-32]", 16, 0); 68052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, #-32]", 16, 0); 68152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, #-32]", 16, 0); 682011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr h17, [x5, #-32]", 16, 0); 683011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr b17, [x5, #-32]", 16, 0); 68452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 68552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 68652bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR/STR (immediate, SIMD&FP, pre/post index)\n"); 687011dafb61cf25ff3337043315b2975986af226cfsewardj 68852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5], #-32", 16, 0); 68952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5], #-32", 16, 0); 69052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5], #-32", 16, 0); 691011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str h17, [x5], #-32", 16, 0); 692011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str b17, [x5], #-32", 16, 0); 69352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5], #-32", 16, 0); 69452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5], #-32", 16, 0); 69552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5], #-32", 16, 0); 696011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr h17, [x5], #-32", 16, 0); 697011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr b17, [x5], #-32", 16, 0); 69852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 69952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, #-32]!", 16, 0); 70052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, #-32]!", 16, 0); 70152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, #-32]!", 16, 0); 702011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str h17, [x5, #-32]!", 16, 0); 703011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str b17, [x5, #-32]!", 16, 0); 70452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, #-32]!", 16, 0); 70552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, #-32]!", 16, 0); 70652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, #-32]!", 16, 0); 707011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr h17, [x5, #-32]!", 16, 0); 708011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr b17, [x5, #-32]!", 16, 0); 70952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 71052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 71152bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDUR/STUR (unscaled offset, SIMD&FP)\n"); 712011dafb61cf25ff3337043315b2975986af226cfsewardj 71352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str q17, [x5, #-13]", 16, 0); 71452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str d17, [x5, #-13]", 16, 0); 71552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("str s17, [x5, #-13]", 16, 0); 716011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str h17, [x5, #-13]", 16, 0); 717011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("str b17, [x5, #-13]", 16, 0); 71852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr q17, [x5, #-13]", 16, 0); 71952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr d17, [x5, #-13]", 16, 0); 72052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ldr s17, [x5, #-13]", 16, 0); 721011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr h17, [x5, #-13]", 16, 0); 722011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ldr b17, [x5, #-13]", 16, 0); 72352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 72452bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 72552bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LDR (literal, SIMD&FP) (entirely MISSING)\n"); 72652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 727011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("xyzzy10: ldr s17, xyzzy10 - 8", 0, 0) 728011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("xyzzy11: ldr d17, xyzzy11 + 8", 0, 0) 729011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("xyzzy12: ldr q17, xyzzy12 + 4", 0, 0) 730011dafb61cf25ff3337043315b2975986af226cfsewardj 73152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 732011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD1/ST1 (multiple 1-elem structs to/from 1 reg\n"); 733011dafb61cf25ff3337043315b2975986af226cfsewardj 734011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2d}, [x5]", 17, 7) 735011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2d}, [x5], #16", 9, 9) 736011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2d}, [x5], x6", -13, -5) 737011dafb61cf25ff3337043315b2975986af226cfsewardj 738011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.1d}, [x5]", 17, 7) 739011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.1d}, [x5], #8", 9, 9) 740011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.1d}, [x5], x6", -13, -5) 741011dafb61cf25ff3337043315b2975986af226cfsewardj 742011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4s}, [x5]", 17, 7) 743011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4s}, [x5], #16", 9, 9) 744011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4s}, [x5], x6", -13, -5) 745011dafb61cf25ff3337043315b2975986af226cfsewardj 746011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2s}, [x5]", 17, 7) 747011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2s}, [x5], #8", 9, 9) 748011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.2s}, [x5], x6", -13, -5) 749011dafb61cf25ff3337043315b2975986af226cfsewardj 750011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8h}, [x5]", 17, 7) 751011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8h}, [x5], #16", 9, 9) 752011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8h}, [x5], x6", -13, -5) 753011dafb61cf25ff3337043315b2975986af226cfsewardj 754011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4h}, [x5]", 17, 7) 755011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4h}, [x5], #8", 9, 9) 756011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.4h}, [x5], x6", -13, -5) 757011dafb61cf25ff3337043315b2975986af226cfsewardj 758011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.16b}, [x5]", 17, 7) 759011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.16b}, [x5], #16", 9, 9) 760011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.16b}, [x5], x6", -13, -5) 761011dafb61cf25ff3337043315b2975986af226cfsewardj 762011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8b}, [x5]", 17, 7) 763011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8b}, [x5], #8", 9, 9) 764011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v18.8b}, [x5], x6", -13, -5) 765011dafb61cf25ff3337043315b2975986af226cfsewardj 766011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2d}, [x5]", 17, 7) 767011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2d}, [x5], #16", 9, 9) 768011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2d}, [x5], x6", -13, -5) 769011dafb61cf25ff3337043315b2975986af226cfsewardj 770011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.1d}, [x5]", 17, 7) 771011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.1d}, [x5], #8", 9, 9) 772011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.1d}, [x5], x6", -13, -5) 773011dafb61cf25ff3337043315b2975986af226cfsewardj 774011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4s}, [x5]", 17, 7) 775011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4s}, [x5], #16", 9, 9) 776011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4s}, [x5], x6", -13, -5) 777011dafb61cf25ff3337043315b2975986af226cfsewardj 778011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2s}, [x5]", 17, 7) 779011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2s}, [x5], #8", 9, 9) 780011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.2s}, [x5], x6", -13, -5) 781011dafb61cf25ff3337043315b2975986af226cfsewardj 782011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8h}, [x5]", 17, 7) 783011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8h}, [x5], #16", 9, 9) 784011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8h}, [x5], x6", -13, -5) 785011dafb61cf25ff3337043315b2975986af226cfsewardj 786011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4h}, [x5]", 17, 7) 787011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4h}, [x5], #8", 9, 9) 788011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.4h}, [x5], x6", -13, -5) 789011dafb61cf25ff3337043315b2975986af226cfsewardj 790011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.16b}, [x5]", 17, 7) 791011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.16b}, [x5], #16", 9, 9) 792011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.16b}, [x5], x6", -13, -5) 793011dafb61cf25ff3337043315b2975986af226cfsewardj 794011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8b}, [x5]", 17, 7) 795011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8b}, [x5], #8", 9, 9) 796011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v18.8b}, [x5], x6", -13, -5) 797011dafb61cf25ff3337043315b2975986af226cfsewardj 798011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 799011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD2/ST2 (multiple 2-elem structs to/from 2 regs\n"); 800011dafb61cf25ff3337043315b2975986af226cfsewardj 801011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2d, v19.2d}, [x5]", 17, 7) 802011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2d, v19.2d}, [x5], #32", 9, 9) 803011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2d, v19.2d}, [x5], x6", -13, -5) 804011dafb61cf25ff3337043315b2975986af226cfsewardj 805011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 806011dafb61cf25ff3337043315b2975986af226cfsewardj 807011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4s, v19.4s}, [x5]", 17, 7) 808011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4s, v19.4s}, [x5], #32", 9, 9) 809011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4s, v19.4s}, [x5], x6", -13, -5) 810011dafb61cf25ff3337043315b2975986af226cfsewardj 811011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2s, v19.2s}, [x5]", 17, 7) 812011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2s, v19.2s}, [x5], #16", 9, 9) 813011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.2s, v19.2s}, [x5], x6", -13, -5) 814011dafb61cf25ff3337043315b2975986af226cfsewardj 815011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8h, v19.8h}, [x5]", 17, 7) 816011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8h, v19.8h}, [x5], #32", 9, 9) 817011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8h, v19.8h}, [x5], x6", -13, -5) 818011dafb61cf25ff3337043315b2975986af226cfsewardj 819011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4h, v19.4h}, [x5]", 17, 7) 820011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4h, v19.4h}, [x5], #16", 9, 9) 821011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.4h, v19.4h}, [x5], x6", -13, -5) 822011dafb61cf25ff3337043315b2975986af226cfsewardj 823011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.16b, v19.16b}, [x5]", 17, 7) 824011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.16b, v19.16b}, [x5], #32", 9, 9) 825011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.16b, v19.16b}, [x5], x6", -13, -5) 826011dafb61cf25ff3337043315b2975986af226cfsewardj 827011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8b, v19.8b}, [x5]", 17, 7) 828011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8b, v19.8b}, [x5], #16", 9, 9) 829011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st2 {v18.8b, v19.8b}, [x5], x6", -13, -5) 830011dafb61cf25ff3337043315b2975986af226cfsewardj 831011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2d, v19.2d}, [x5]", 17, 7) 832011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2d, v19.2d}, [x5], #32", 9, 9) 833011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2d, v19.2d}, [x5], x6", -13, -5) 834011dafb61cf25ff3337043315b2975986af226cfsewardj 835011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 836011dafb61cf25ff3337043315b2975986af226cfsewardj 837011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4s, v19.4s}, [x5]", 17, 7) 838011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4s, v19.4s}, [x5], #32", 9, 9) 839011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4s, v19.4s}, [x5], x6", -13, -5) 840011dafb61cf25ff3337043315b2975986af226cfsewardj 841011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2s, v19.2s}, [x5]", 17, 7) 842011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2s, v19.2s}, [x5], #16", 9, 9) 843011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.2s, v19.2s}, [x5], x6", -13, -5) 844011dafb61cf25ff3337043315b2975986af226cfsewardj 845011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8h, v19.8h}, [x5]", 17, 7) 846011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8h, v19.8h}, [x5], #32", 9, 9) 847011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8h, v19.8h}, [x5], x6", -13, -5) 848011dafb61cf25ff3337043315b2975986af226cfsewardj 849011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4h, v19.4h}, [x5]", 17, 7) 850011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4h, v19.4h}, [x5], #16", 9, 9) 851011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.4h, v19.4h}, [x5], x6", -13, -5) 852011dafb61cf25ff3337043315b2975986af226cfsewardj 853011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.16b, v19.16b}, [x5]", 17, 7) 854011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.16b, v19.16b}, [x5], #32", 9, 9) 855011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.16b, v19.16b}, [x5], x6", -13, -5) 856011dafb61cf25ff3337043315b2975986af226cfsewardj 857011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8b, v19.8b}, [x5]", 17, 7) 858011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8b, v19.8b}, [x5], #16", 9, 9) 859011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld2 {v18.8b, v19.8b}, [x5], x6", -13, -5) 860011dafb61cf25ff3337043315b2975986af226cfsewardj 861011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 862011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD3/ST3 (multiple 3-elem structs to/from 3 regs\n"); 863011dafb61cf25ff3337043315b2975986af226cfsewardj 864011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2d, v18.2d, v19.2d}, [x5]", 17, 7) 865011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2d, v18.2d, v19.2d}, [x5], #48", 9, 9) 866011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2d, v18.2d, v19.2d}, [x5], x6", -13, -5) 867011dafb61cf25ff3337043315b2975986af226cfsewardj 868011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 869011dafb61cf25ff3337043315b2975986af226cfsewardj 870011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4s, v18.4s, v19.4s}, [x5]", 17, 7) 871011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4s, v18.4s, v19.4s}, [x5], #48", 9, 9) 872011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4s, v18.4s, v19.4s}, [x5], x6", -13, -5) 873011dafb61cf25ff3337043315b2975986af226cfsewardj 874011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2s, v18.2s, v19.2s}, [x5]", 17, 7) 875011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2s, v18.2s, v19.2s}, [x5], #24", 9, 9) 876011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.2s, v18.2s, v19.2s}, [x5], x6", -13, -5) 877011dafb61cf25ff3337043315b2975986af226cfsewardj 878011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8h, v18.8h, v19.8h}, [x5]", 17, 7) 879011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8h, v18.8h, v19.8h}, [x5], #48", 9, 9) 880011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8h, v18.8h, v19.8h}, [x5], x6", -13, -5) 881011dafb61cf25ff3337043315b2975986af226cfsewardj 882011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4h, v18.4h, v19.4h}, [x5]", 17, 7) 883011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4h, v18.4h, v19.4h}, [x5], #24", 9, 9) 884011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.4h, v18.4h, v19.4h}, [x5], x6", -13, -5) 885011dafb61cf25ff3337043315b2975986af226cfsewardj 886011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.16b, v18.16b, v19.16b}, [x5]", 17, 7) 887011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.16b, v18.16b, v19.16b}, [x5], #48", 9, 9) 888011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.16b, v18.16b, v19.16b}, [x5], x6", -13, -5) 889011dafb61cf25ff3337043315b2975986af226cfsewardj 890011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8b, v18.8b, v19.8b}, [x5]", 17, 7) 891011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8b, v18.8b, v19.8b}, [x5], #24", 9, 9) 892011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st3 {v17.8b, v18.8b, v19.8b}, [x5], x6", -13, -5) 893011dafb61cf25ff3337043315b2975986af226cfsewardj 894011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2d, v18.2d, v19.2d}, [x5]", 17, 7) 895011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2d, v18.2d, v19.2d}, [x5], #48", 9, 9) 896011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2d, v18.2d, v19.2d}, [x5], x6", -13, -5) 897011dafb61cf25ff3337043315b2975986af226cfsewardj 898011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 899011dafb61cf25ff3337043315b2975986af226cfsewardj 900011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4s, v18.4s, v19.4s}, [x5]", 17, 7) 901011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4s, v18.4s, v19.4s}, [x5], #48", 9, 9) 902011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4s, v18.4s, v19.4s}, [x5], x6", -13, -5) 903011dafb61cf25ff3337043315b2975986af226cfsewardj 904011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2s, v18.2s, v19.2s}, [x5]", 17, 7) 905011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2s, v18.2s, v19.2s}, [x5], #24", 9, 9) 906011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.2s, v18.2s, v19.2s}, [x5], x6", -13, -5) 907011dafb61cf25ff3337043315b2975986af226cfsewardj 908011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8h, v18.8h, v19.8h}, [x5]", 17, 7) 909011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8h, v18.8h, v19.8h}, [x5], #48", 9, 9) 910011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8h, v18.8h, v19.8h}, [x5], x6", -13, -5) 911011dafb61cf25ff3337043315b2975986af226cfsewardj 912011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4h, v18.4h, v19.4h}, [x5]", 17, 7) 913011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4h, v18.4h, v19.4h}, [x5], #24", 9, 9) 914011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.4h, v18.4h, v19.4h}, [x5], x6", -13, -5) 915011dafb61cf25ff3337043315b2975986af226cfsewardj 916011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.16b, v18.16b, v19.16b}, [x5]", 17, 7) 917011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.16b, v18.16b, v19.16b}, [x5], #48", 9, 9) 918011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.16b, v18.16b, v19.16b}, [x5], x6", -13, -5) 919011dafb61cf25ff3337043315b2975986af226cfsewardj 920011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8b, v18.8b, v19.8b}, [x5]", 17, 7) 921011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8b, v18.8b, v19.8b}, [x5], #24", 9, 9) 922011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld3 {v17.8b, v18.8b, v19.8b}, [x5], x6", -13, -5) 923011dafb61cf25ff3337043315b2975986af226cfsewardj 924011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 925011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD4/ST4 (multiple 4-elem structs to/from 4 regs\n"); 926011dafb61cf25ff3337043315b2975986af226cfsewardj 927011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5]", 17, 7) 928011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], #64", 9, 9) 929011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], x6", -13, -5) 930011dafb61cf25ff3337043315b2975986af226cfsewardj 931011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 932011dafb61cf25ff3337043315b2975986af226cfsewardj 933011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5]", 17, 7) 934011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], #64", 9, 9) 935011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], x6", -13, -5) 936011dafb61cf25ff3337043315b2975986af226cfsewardj 937011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5]", 17, 7) 938011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], #32", 9, 9) 939011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], x6", -13, -5) 940011dafb61cf25ff3337043315b2975986af226cfsewardj 941011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5]", 17, 7) 942011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], #64", 9, 9) 943011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], x6", -13, -5) 944011dafb61cf25ff3337043315b2975986af226cfsewardj 945011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5]", 17, 7) 946011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], #32", 9, 9) 947011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], x6", -13, -5) 948011dafb61cf25ff3337043315b2975986af226cfsewardj 949011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5]", 17, 7) 950011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], #64", 9, 9) 951011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], x6", -13, -5) 952011dafb61cf25ff3337043315b2975986af226cfsewardj 953011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5]", 17, 7) 954011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], #32", 9, 9) 955011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], x6", -13, -5) 956011dafb61cf25ff3337043315b2975986af226cfsewardj 957011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5]", 17, 7) 958011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], #64", 9, 9) 959011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], x6", -13, -5) 960011dafb61cf25ff3337043315b2975986af226cfsewardj 961011dafb61cf25ff3337043315b2975986af226cfsewardj/* no 1d case */ 962011dafb61cf25ff3337043315b2975986af226cfsewardj 963011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5]", 17, 7) 964011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], #64", 9, 9) 965011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], x6", -13, -5) 966011dafb61cf25ff3337043315b2975986af226cfsewardj 967011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5]", 17, 7) 968011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], #32", 9, 9) 969011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], x6", -13, -5) 970011dafb61cf25ff3337043315b2975986af226cfsewardj 971011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5]", 17, 7) 972011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], #64", 9, 9) 973011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], x6", -13, -5) 974011dafb61cf25ff3337043315b2975986af226cfsewardj 975011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5]", 17, 7) 976011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], #32", 9, 9) 977011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], x6", -13, -5) 978011dafb61cf25ff3337043315b2975986af226cfsewardj 979011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5]", 17, 7) 980011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], #64", 9, 9) 981011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], x6", -13, -5) 982011dafb61cf25ff3337043315b2975986af226cfsewardj 983011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5]", 17, 7) 984011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], #32", 9, 9) 985011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld4 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], x6", -13, -5) 986011dafb61cf25ff3337043315b2975986af226cfsewardj 987011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 988011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD1/ST1 (multiple 1-elem structs to/from 2/3/4 regs\n"); 989011dafb61cf25ff3337043315b2975986af226cfsewardj 990f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2d, v20.2d}, [x5]", 17, 7) 991f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2d, v20.2d}, [x5], #32", 9, 9) 992f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2d, v20.2d}, [x5], x6", -13, -5) 993f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 994f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d}, [x5]", 17, 7) 995f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d}, [x5], #48", 9, 9) 996f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d}, [x5], x6", -13, -5) 997f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 998f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5]", 17, 7) 999f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], #64", 9, 9) 1000f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], x6", -13, -5) 1001f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1002f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1003f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.1d, v20.1d}, [x5]", 17, 7) 1004f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.1d, v20.1d}, [x5], #16", 9, 9) 1005f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.1d, v20.1d}, [x5], x6", -13, -5) 1006f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1007f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d}, [x5]", 17, 7) 1008f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d}, [x5], #24", 9, 9) 1009f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d}, [x5], x6", -13, -5) 1010f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1011f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5]", 17, 7) 1012f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5], #32", 9, 9) 1013f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5], x6", -13, -5) 1014f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1015f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1016f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4s, v20.4s}, [x5]", 17, 7) 1017f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4s, v20.4s}, [x5], #32", 9, 9) 1018f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4s, v20.4s}, [x5], x6", -13, -5) 1019f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1020f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s}, [x5]", 17, 7) 1021f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s}, [x5], #48", 9, 9) 1022f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s}, [x5], x6", -13, -5) 1023f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1024f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5]", 17, 7) 1025f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], #64", 9, 9) 1026f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], x6", -13, -5) 1027f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1028f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1029f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2s, v20.2s}, [x5]", 17, 7) 1030f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2s, v20.2s}, [x5], #16", 9, 9) 1031f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.2s, v20.2s}, [x5], x6", -13, -5) 1032f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1033f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s}, [x5]", 17, 7) 1034f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s}, [x5], #24", 9, 9) 1035f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s}, [x5], x6", -13, -5) 1036f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1037f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5]", 17, 7) 1038f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], #32", 9, 9) 1039f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], x6", -13, -5) 1040f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1041f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1042f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8h, v20.8h}, [x5]", 17, 7) 1043f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8h, v20.8h}, [x5], #32", 9, 9) 1044f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8h, v20.8h}, [x5], x6", -13, -5) 1045f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1046f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h}, [x5]", 17, 7) 1047f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h}, [x5], #48", 9, 9) 1048f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h}, [x5], x6", -13, -5) 1049f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1050f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5]", 17, 7) 1051f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], #64", 9, 9) 1052f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], x6", -13, -5) 1053f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1054f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1055f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4h, v20.4h}, [x5]", 17, 7) 1056f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4h, v20.4h}, [x5], #16", 9, 9) 1057f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.4h, v20.4h}, [x5], x6", -13, -5) 1058f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1059f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h}, [x5]", 17, 7) 1060f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h}, [x5], #24", 9, 9) 1061f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h}, [x5], x6", -13, -5) 1062f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1063f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5]", 17, 7) 1064f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], #32", 9, 9) 1065f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], x6", -13, -5) 1066011dafb61cf25ff3337043315b2975986af226cfsewardj 1067011dafb61cf25ff3337043315b2975986af226cfsewardj 1068011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v19.16b, v20.16b}, [x5]", 17, 7) 1069011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v19.16b, v20.16b}, [x5], #32", 9, 9) 1070f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.16b, v20.16b}, [x5], x6", -13, -5) 1071011dafb61cf25ff3337043315b2975986af226cfsewardj 1072011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b}, [x5]", 17, 7) 1073f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b}, [x5], #48", 9, 9) 1074f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b}, [x5], x6", -13, -5) 1075f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1076f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5]", 17, 7) 1077f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], #64", 9, 9) 1078f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], x6", -13, -5) 1079f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1080f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1081f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8b, v20.8b}, [x5]", 17, 7) 1082f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8b, v20.8b}, [x5], #16", 9, 9) 1083f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.8b, v20.8b}, [x5], x6", -13, -5) 1084f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1085f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b}, [x5]", 17, 7) 1086f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b}, [x5], #24", 9, 9) 1087f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b}, [x5], x6", -13, -5) 1088f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1089f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5]", 17, 7) 1090f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], #32", 9, 9) 1091f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], x6", -13, -5) 1092f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1093f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1094f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2d, v20.2d}, [x5]", 17, 7) 1095f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2d, v20.2d}, [x5], #32", 9, 9) 1096f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2d, v20.2d}, [x5], x6", -13, -5) 1097f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1098f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d}, [x5]", 17, 7) 1099f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d}, [x5], #48", 9, 9) 1100f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d}, [x5], x6", -13, -5) 1101f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1102f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5]", 17, 7) 1103f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], #64", 9, 9) 1104f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2d, v18.2d, v19.2d, v20.2d}, [x5], x6", -13, -5) 1105f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1106f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1107f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.1d, v20.1d}, [x5]", 17, 7) 1108f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.1d, v20.1d}, [x5], #16", 9, 9) 1109f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.1d, v20.1d}, [x5], x6", -13, -5) 1110f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1111f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d}, [x5]", 17, 7) 1112f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d}, [x5], #24", 9, 9) 1113f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d}, [x5], x6", -13, -5) 1114f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1115f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5]", 17, 7) 1116f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5], #32", 9, 9) 1117f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x5], x6", -13, -5) 1118f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1119f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1120f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4s, v20.4s}, [x5]", 17, 7) 1121f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4s, v20.4s}, [x5], #32", 9, 9) 1122f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4s, v20.4s}, [x5], x6", -13, -5) 1123f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1124f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s}, [x5]", 17, 7) 1125f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s}, [x5], #48", 9, 9) 1126f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s}, [x5], x6", -13, -5) 1127f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1128f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5]", 17, 7) 1129f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], #64", 9, 9) 1130f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4s, v18.4s, v19.4s, v20.4s}, [x5], x6", -13, -5) 1131f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1132f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1133f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2s, v20.2s}, [x5]", 17, 7) 1134f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2s, v20.2s}, [x5], #16", 9, 9) 1135f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.2s, v20.2s}, [x5], x6", -13, -5) 1136f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1137f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s}, [x5]", 17, 7) 1138f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s}, [x5], #24", 9, 9) 1139f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s}, [x5], x6", -13, -5) 1140f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1141f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5]", 17, 7) 1142f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], #32", 9, 9) 1143f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.2s, v18.2s, v19.2s, v20.2s}, [x5], x6", -13, -5) 1144f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1145f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1146f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8h, v20.8h}, [x5]", 17, 7) 1147f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8h, v20.8h}, [x5], #32", 9, 9) 1148f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8h, v20.8h}, [x5], x6", -13, -5) 1149f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1150f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h}, [x5]", 17, 7) 1151f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h}, [x5], #48", 9, 9) 1152f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h}, [x5], x6", -13, -5) 1153f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1154f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5]", 17, 7) 1155f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], #64", 9, 9) 1156f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8h, v18.8h, v19.8h, v20.8h}, [x5], x6", -13, -5) 1157f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1158f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1159f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4h, v20.4h}, [x5]", 17, 7) 1160f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4h, v20.4h}, [x5], #16", 9, 9) 1161f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.4h, v20.4h}, [x5], x6", -13, -5) 1162f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1163f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h}, [x5]", 17, 7) 1164f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h}, [x5], #24", 9, 9) 1165f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h}, [x5], x6", -13, -5) 1166f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1167f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5]", 17, 7) 1168f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], #32", 9, 9) 1169f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.4h, v18.4h, v19.4h, v20.4h}, [x5], x6", -13, -5) 1170011dafb61cf25ff3337043315b2975986af226cfsewardj 1171011dafb61cf25ff3337043315b2975986af226cfsewardj 1172011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v19.16b, v20.16b}, [x5]", 17, 7) 1173011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v19.16b, v20.16b}, [x5], #32", 9, 9) 1174f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.16b, v20.16b}, [x5], x6", -13, -5) 1175011dafb61cf25ff3337043315b2975986af226cfsewardj 1176011dafb61cf25ff3337043315b2975986af226cfsewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b}, [x5]", 17, 7) 1177f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b}, [x5], #48", 9, 9) 1178f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b}, [x5], x6", -13, -5) 1179f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1180f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5]", 17, 7) 1181f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], #64", 9, 9) 1182f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], x6", -13, -5) 1183f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1184f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1185f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8b, v20.8b}, [x5]", 17, 7) 1186f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8b, v20.8b}, [x5], #16", 9, 9) 1187f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.8b, v20.8b}, [x5], x6", -13, -5) 1188f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1189f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b}, [x5]", 17, 7) 1190f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b}, [x5], #24", 9, 9) 1191f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b}, [x5], x6", -13, -5) 1192f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1193f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5]", 17, 7) 1194f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], #32", 9, 9) 1195f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x5], x6", -13, -5) 1196011dafb61cf25ff3337043315b2975986af226cfsewardj 119752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 119852bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 119952bae2fcc174535edd254f8a9b6d0af908a76480sewardjprintf("LD1R (single structure, replicate)\n"); 1200011dafb61cf25ff3337043315b2975986af226cfsewardj 120152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2d}, [x5]", 3, -5) 120252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.1d}, [x5]", 3, -4) 120352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4s}, [x5]", 3, -3) 120452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2s}, [x5]", 3, -2) 120552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8h}, [x5]", 3, -1) 120652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4h}, [x5]", 3, 1) 120752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.16b}, [x5]", 3, 2) 120852bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8b}, [x5]", 3, 3) 120952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 121052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2d}, [x5], #8", 3, -5) 121152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.1d}, [x5], #8", 3, -4) 121252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4s}, [x5], #4", 3, -3) 121352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2s}, [x5], #4", 3, -2) 121452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8h}, [x5], #2", 3, -1) 121552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4h}, [x5], #2", 3, 1) 121652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.16b}, [x5], #1", 3, 2) 121752bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8b}, [x5], #1", 3, 3) 121852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 121952bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2d}, [x5], x6", 3, -5) 122052bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.1d}, [x5], x6", 3, -4) 122152bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4s}, [x5], x6", 3, -3) 122252bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.2s}, [x5], x6", 3, -2) 122352bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8h}, [x5], x6", 3, -1) 122452bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.4h}, [x5], x6", 3, 1) 122552bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.16b}, [x5], x6", 3, 2) 122652bae2fcc174535edd254f8a9b6d0af908a76480sewardjMEM_TEST("ld1r {v17.8b}, [x5], x6", 3, 3) 122752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1228011dafb61cf25ff3337043315b2975986af226cfsewardj 122952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 1230011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD2R (single structure, replicate)\n"); 1231011dafb61cf25ff3337043315b2975986af226cfsewardj 1232f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.2d , v18.2d }, [x5]", 3, -5) 1233f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.1d , v19.1d }, [x5]", 3, -4) 1234f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.4s , v20.4s }, [x5]", 3, -3) 1235f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.2s , v18.2s }, [x5]", 3, -2) 1236f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.8h , v19.8h }, [x5]", 3, -1) 1237f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.4h , v20.4h }, [x5]", 3, 1) 1238f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.16b, v18.16b}, [x5]", 3, 2) 1239f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.8b , v19.8b }, [x5]", 3, 3) 1240f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1241f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.2d , v20.2d }, [x5], #16", 3, -5) 1242f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.1d , v18.1d }, [x5], #16", 3, -4) 1243f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.4s , v19.4s }, [x5], #8", 3, -3) 1244f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.2s , v20.2s }, [x5], #8", 3, -2) 1245f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.8h , v18.8h }, [x5], #4", 3, -1) 1246f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.4h , v19.4h }, [x5], #4", 3, 1) 1247f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.16b, v20.16b}, [x5], #2", 3, 2) 1248f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.8b , v18.8b }, [x5], #2", 3, 3) 1249f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1250f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.2d , v19.2d }, [x5], x6", 3, -5) 1251f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.1d , v20.1d }, [x5], x6", 3, -4) 1252f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.4s , v18.4s }, [x5], x6", 3, -3) 1253f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.2s , v19.2s }, [x5], x6", 3, -2) 1254f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.8h , v20.8h }, [x5], x6", 3, -1) 1255f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v17.4h , v18.4h }, [x5], x6", 3, 1) 1256f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v18.16b, v19.16b}, [x5], x6", 3, 2) 1257f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2r {v19.8b , v20.8b }, [x5], x6", 3, 3) 1258011dafb61cf25ff3337043315b2975986af226cfsewardj 1259011dafb61cf25ff3337043315b2975986af226cfsewardj 1260011dafb61cf25ff3337043315b2975986af226cfsewardj////////////////////////////////////////////////////////////////// 1261f45e93c4f239d5e136e5275aca53ef91633257d0sewardjprintf("LD3R (single structure, replicate)\n"); 1262f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1263f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.2d , v18.2d , v19.2d }, [x5]", 3, -5) 1264f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.1d , v19.1d , v20.1d }, [x5]", 3, -4) 1265f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.4s , v18.4s , v19.4s }, [x5]", 3, -3) 1266f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.2s , v19.2s , v20.2s }, [x5]", 3, -2) 1267f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.8h , v18.8h , v19.8h }, [x5]", 3, -5) 1268f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.4h , v19.4h , v20.4h }, [x5]", 3, -4) 1269f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.16b, v18.16b, v19.16b}, [x5]", 3, -3) 1270f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.8b , v19.8b , v20.8b }, [x5]", 3, -2) 1271f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1272f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.2d , v18.2d , v19.2d }, [x5], #24", 3, -5) 1273f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.1d , v19.1d , v20.1d }, [x5], #24", 3, -4) 1274f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.4s , v18.4s , v19.4s }, [x5], #12", 3, -3) 1275f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.2s , v19.2s , v20.2s }, [x5], #12", 3, -2) 1276f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.8h , v18.8h , v19.8h }, [x5], #6", 3, -5) 1277f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.4h , v19.4h , v20.4h }, [x5], #6", 3, -4) 1278f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.16b, v18.16b, v19.16b}, [x5], #3", 3, -3) 1279f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.8b , v19.8b , v20.8b }, [x5], #3", 3, -2) 1280f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1281f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.2d , v18.2d , v19.2d }, [x5], x6", 3, -5) 1282f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.1d , v19.1d , v20.1d }, [x5], x6", 3, -4) 1283f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.4s , v18.4s , v19.4s }, [x5], x6", 3, -3) 1284f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.2s , v19.2s , v20.2s }, [x5], x6", 3, -2) 1285f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.8h , v18.8h , v19.8h }, [x5], x6", 3, -5) 1286f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.4h , v19.4h , v20.4h }, [x5], x6", 3, -4) 1287f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v17.16b, v18.16b, v19.16b}, [x5], x6", 3, -3) 1288f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3r {v18.8b , v19.8b , v20.8b }, [x5], x6", 3, -2) 128952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 129052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1291011dafb61cf25ff3337043315b2975986af226cfsewardj//////////////////////////////////////////////////////////////// 1292011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD4R (single structure, replicate)\n"); 1293011dafb61cf25ff3337043315b2975986af226cfsewardj 1294f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2d , v18.2d , v19.2d , v20.2d }, [x5]", 3, -5) 1295f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.1d , v18.1d , v19.1d , v20.1d }, [x5]", 3, -4) 1296f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4s , v18.4s , v19.4s , v20.4s }, [x5]", 3, -3) 1297f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2s , v18.2s , v19.2s , v20.2s }, [x5]", 3, -2) 1298f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8h , v18.8h , v19.8h , v20.8h }, [x5]", 3, -5) 1299f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4h , v18.4h , v19.4h , v20.4h }, [x5]", 3, -4) 1300f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.16b, v18.16b, v19.16b, v20.16b}, [x5]", 3, -3) 1301f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8b , v18.8b , v19.8b , v20.8b }, [x5]", 3, -2) 1302f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1303f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2d , v18.2d , v19.2d , v20.2d }, [x5], #32", 3, -5) 1304f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.1d , v18.1d , v19.1d , v20.1d }, [x5], #32", 3, -4) 1305f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4s , v18.4s , v19.4s , v20.4s }, [x5], #16", 3, -3) 1306f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2s , v18.2s , v19.2s , v20.2s }, [x5], #16", 3, -2) 1307f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8h , v18.8h , v19.8h , v20.8h }, [x5], #8", 3, -5) 1308f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4h , v18.4h , v19.4h , v20.4h }, [x5], #8", 3, -4) 1309f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], #4", 3, -3) 1310f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8b , v18.8b , v19.8b , v20.8b }, [x5], #4", 3, -2) 1311f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1312f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2d , v18.2d , v19.2d , v20.2d }, [x5], x6", 3, -5) 1313f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.1d , v18.1d , v19.1d , v20.1d }, [x5], x6", 3, -4) 1314f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4s , v18.4s , v19.4s , v20.4s }, [x5], x6", 3, -3) 1315f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.2s , v18.2s , v19.2s , v20.2s }, [x5], x6", 3, -2) 1316f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8h , v18.8h , v19.8h , v20.8h }, [x5], x6", 3, -5) 1317f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.4h , v18.4h , v19.4h , v20.4h }, [x5], x6", 3, -4) 1318f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.16b, v18.16b, v19.16b, v20.16b}, [x5], x6", 3, -3) 1319f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4r {v17.8b , v18.8b , v19.8b , v20.8b }, [x5], x6", 3, -2) 132052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 132152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 132252bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 1323011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD1/ST1 (single 1-elem struct to/from one lane of 1 reg\n"); 132452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1325f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[0], [x5]", 17, 7) 1326f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[0], [x5], #8", -9, 12) 1327f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[0], [x5], x6", 9, 13) 1328f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1329f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[1], [x5]", 17, 7) 1330f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[1], [x5], #8", -9, 12) 1331f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.d}[1], [x5], x6", 9, 13) 1332f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1333f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[0], [x5]", 17, 7) 1334f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[0], [x5], #4", -9, 12) 1335f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[0], [x5], x6", 9, 13) 1336f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1337f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[3], [x5]", 17, 7) 1338f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[3], [x5], #4", -9, 12) 1339f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.s}[3], [x5], x6", 9, 13) 1340f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1341f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[0], [x5]", 17, 7) 1342f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[0], [x5], #2", -9, 12) 1343f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[0], [x5], x6", 9, 13) 1344f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1345f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[6], [x5]", 17, 7) 1346f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[6], [x5], #2", -9, 12) 1347f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.h}[6], [x5], x6", 9, 13) 1348f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1349f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[0], [x5]", 17, 7) 1350f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[0], [x5], #1", -9, 12) 1351f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[0], [x5], x6", 9, 13) 1352f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1353f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[13], [x5]", 17, 7) 1354f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[13], [x5], #1", -9, 12) 1355f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st1 {v19.b}[13], [x5], x6", 9, 13) 1356f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1357f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1358f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[0], [x5]", 17, 7) 1359f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[0], [x5], #8", -9, 12) 1360f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[0], [x5], x6", 9, 13) 1361f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1362f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[1], [x5]", 17, 7) 1363f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[1], [x5], #8", -9, 12) 1364f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.d}[1], [x5], x6", 9, 13) 1365f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1366f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[0], [x5]", 17, 7) 1367f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[0], [x5], #4", -9, 12) 1368f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[0], [x5], x6", 9, 13) 1369f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1370f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[3], [x5]", 17, 7) 1371f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[3], [x5], #4", -9, 12) 1372f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.s}[3], [x5], x6", 9, 13) 1373f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1374f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[0], [x5]", 17, 7) 1375f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[0], [x5], #2", -9, 12) 1376f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[0], [x5], x6", 9, 13) 1377f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1378f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[6], [x5]", 17, 7) 1379f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[6], [x5], #2", -9, 12) 1380f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.h}[6], [x5], x6", 9, 13) 1381f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1382f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[0], [x5]", 17, 7) 1383f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[0], [x5], #1", -9, 12) 1384f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[0], [x5], x6", 9, 13) 1385f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1386f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[13], [x5]", 17, 7) 1387f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[13], [x5], #1", -9, 12) 1388f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld1 {v19.b}[13], [x5], x6", 9, 13) 138952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 139052bae2fcc174535edd254f8a9b6d0af908a76480sewardj 139152bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 1392011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD2/ST2 (single 2-elem struct to/from one lane of 2 regs\n"); 139352bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1394f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[0], [x5]", 17, 7) 1395f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[0], [x5], #16", -9, 12) 1396f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[0], [x5], x6", 9, 13) 1397f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1398f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[1], [x5]", 17, 7) 1399f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[1], [x5], #16", -9, 12) 1400f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.d, v19.d}[1], [x5], x6", 9, 13) 1401f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1402f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[0], [x5]", 17, 7) 1403f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[0], [x5], #8", -9, 12) 1404f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[0], [x5], x6", 9, 13) 1405f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1406f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[3], [x5]", 17, 7) 1407f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[3], [x5], #8", -9, 12) 1408f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.s, v19.s}[3], [x5], x6", 9, 13) 1409f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1410f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[0], [x5]", 17, 7) 1411f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[0], [x5], #4", -9, 12) 1412f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[0], [x5], x6", 9, 13) 1413f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1414f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[6], [x5]", 17, 7) 1415f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[6], [x5], #4", -9, 12) 1416f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.h, v19.h}[6], [x5], x6", 9, 13) 1417f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1418f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[0], [x5]", 17, 7) 1419f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[0], [x5], #2", -9, 12) 1420f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[0], [x5], x6", 9, 13) 1421f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1422f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[13], [x5]", 17, 7) 1423f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[13], [x5], #2", -9, 12) 1424f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st2 {v18.b, v19.b}[13], [x5], x6", 9, 13) 1425f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1426f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1427f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[0], [x5]", 17, 7) 1428f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[0], [x5], #16", -9, 12) 1429f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[0], [x5], x6", 9, 13) 1430f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1431f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[1], [x5]", 17, 7) 1432f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[1], [x5], #16", -9, 12) 1433f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.d, v19.d}[1], [x5], x6", 9, 13) 1434f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1435f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[0], [x5]", 17, 7) 1436f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[0], [x5], #8", -9, 12) 1437f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[0], [x5], x6", 9, 13) 1438f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1439f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[3], [x5]", 17, 7) 1440f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[3], [x5], #8", -9, 12) 1441f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.s, v19.s}[3], [x5], x6", 9, 13) 1442f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1443f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[0], [x5]", 17, 7) 1444f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[0], [x5], #4", -9, 12) 1445f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[0], [x5], x6", 9, 13) 1446f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1447f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[6], [x5]", 17, 7) 1448f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[6], [x5], #4", -9, 12) 1449f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.h, v19.h}[6], [x5], x6", 9, 13) 1450f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1451f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[0], [x5]", 17, 7) 1452f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[0], [x5], #2", -9, 12) 1453f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[0], [x5], x6", 9, 13) 1454f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1455f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[13], [x5]", 17, 7) 1456f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[13], [x5], #2", -9, 12) 1457f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld2 {v18.b, v19.b}[13], [x5], x6", 9, 13) 145852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 145952bae2fcc174535edd254f8a9b6d0af908a76480sewardj 146052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 1461011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD3/ST3 (single 3-elem struct to/from one lane of 3 regs\n"); 146252bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1463f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[0], [x5]", 17, 7) 1464f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[0], [x5], #24", -9, 12) 1465f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[0], [x5], x6", 9, 13) 1466f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1467f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[1], [x5]", 17, 7) 1468f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[1], [x5], #24", -9, 12) 1469f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.d, v18.d, v19.d}[1], [x5], x6", 9, 13) 1470f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1471f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[0], [x5]", 17, 7) 1472f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[0], [x5], #12", -9, 12) 1473f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[0], [x5], x6", 9, 13) 1474f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1475f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[3], [x5]", 17, 7) 1476f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[3], [x5], #12", -9, 12) 1477f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.s, v18.s, v19.s}[3], [x5], x6", 9, 13) 1478f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1479f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[0], [x5]", 17, 7) 1480f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[0], [x5], #6", -9, 12) 1481f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[0], [x5], x6", 9, 13) 1482f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1483f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[6], [x5]", 17, 7) 1484f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[6], [x5], #6", -9, 12) 1485f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.h, v18.h, v19.h}[6], [x5], x6", 9, 13) 1486f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1487f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[0], [x5]", 17, 7) 1488f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[0], [x5], #3", -9, 12) 1489f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[0], [x5], x6", 9, 13) 1490f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1491f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[13], [x5]", 17, 7) 1492f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[13], [x5], #3", -9, 12) 1493f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st3 {v17.b, v18.b, v19.b}[13], [x5], x6", 9, 13) 1494f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1495f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1496f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[0], [x5]", 17, 7) 1497f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[0], [x5], #24", -9, 12) 1498f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[0], [x5], x6", 9, 13) 1499f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1500f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[1], [x5]", 17, 7) 1501f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[1], [x5], #24", -9, 12) 1502f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.d, v18.d, v19.d}[1], [x5], x6", 9, 13) 1503f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1504f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[0], [x5]", 17, 7) 1505f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[0], [x5], #12", -9, 12) 1506f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[0], [x5], x6", 9, 13) 1507f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1508f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[3], [x5]", 17, 7) 1509f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[3], [x5], #12", -9, 12) 1510f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.s, v18.s, v19.s}[3], [x5], x6", 9, 13) 1511f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1512f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[0], [x5]", 17, 7) 1513f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[0], [x5], #6", -9, 12) 1514f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[0], [x5], x6", 9, 13) 1515f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1516f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[6], [x5]", 17, 7) 1517f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[6], [x5], #6", -9, 12) 1518f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.h, v18.h, v19.h}[6], [x5], x6", 9, 13) 1519f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1520f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[0], [x5]", 17, 7) 1521f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[0], [x5], #3", -9, 12) 1522f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[0], [x5], x6", 9, 13) 1523f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1524f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[13], [x5]", 17, 7) 1525f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[13], [x5], #3", -9, 12) 1526f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld3 {v17.b, v18.b, v19.b}[13], [x5], x6", 9, 13) 152752bae2fcc174535edd254f8a9b6d0af908a76480sewardj 152852bae2fcc174535edd254f8a9b6d0af908a76480sewardj 152952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 1530011dafb61cf25ff3337043315b2975986af226cfsewardjprintf("LD4/ST4 (single 4-elem struct to/from one lane of 4 regs\n"); 153152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 1532f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[0], [x5]", 17, 7) 1533f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[0], [x5], #32", -9, 12) 1534f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[0], [x5], x6", 9, 13) 1535f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1536f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[1], [x5]", 17, 7) 1537f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[1], [x5], #32", -9, 12) 1538f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.d, v18.d, v19.d, v20.d}[1], [x5], x6", 9, 13) 1539f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1540f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[0], [x5]", 17, 7) 1541f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[0], [x5], #16", -9, 12) 1542f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[0], [x5], x6", 9, 13) 1543f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1544f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[3], [x5]", 17, 7) 1545f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[3], [x5], #16", -9, 12) 1546f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.s, v18.s, v19.s, v20.s}[3], [x5], x6", 9, 13) 1547f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1548f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[0], [x5]", 17, 7) 1549f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[0], [x5], #8", -9, 12) 1550f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[0], [x5], x6", 9, 13) 1551f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1552f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[6], [x5]", 17, 7) 1553f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[6], [x5], #8", -9, 12) 1554f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.h, v18.h, v19.h, v20.h}[6], [x5], x6", 9, 13) 1555f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1556f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[0], [x5]", 17, 7) 1557f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[0], [x5], #4", -9, 12) 1558f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[0], [x5], x6", 9, 13) 1559f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1560f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[13], [x5]", 17, 7) 1561f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[13], [x5], #4", -9, 12) 1562f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("st4 {v17.b, v18.b, v19.b, v20.b}[13], [x5], x6", 9, 13) 1563f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1564f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1565f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[0], [x5]", 17, 7) 1566f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[0], [x5], #32", -9, 12) 1567f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[0], [x5], x6", 9, 13) 1568f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1569f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[1], [x5]", 17, 7) 1570f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[1], [x5], #32", -9, 12) 1571f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.d, v18.d, v19.d, v20.d}[1], [x5], x6", 9, 13) 1572f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1573f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[0], [x5]", 17, 7) 1574f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[0], [x5], #16", -9, 12) 1575f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[0], [x5], x6", 9, 13) 1576f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1577f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[3], [x5]", 17, 7) 1578f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[3], [x5], #16", -9, 12) 1579f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.s, v18.s, v19.s, v20.s}[3], [x5], x6", 9, 13) 1580f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1581f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[0], [x5]", 17, 7) 1582f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[0], [x5], #8", -9, 12) 1583f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[0], [x5], x6", 9, 13) 1584f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1585f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[6], [x5]", 17, 7) 1586f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[6], [x5], #8", -9, 12) 1587f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.h, v18.h, v19.h, v20.h}[6], [x5], x6", 9, 13) 1588f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1589f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[0], [x5]", 17, 7) 1590f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[0], [x5], #4", -9, 12) 1591f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[0], [x5], x6", 9, 13) 1592f45e93c4f239d5e136e5275aca53ef91633257d0sewardj 1593f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[13], [x5]", 17, 7) 1594f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[13], [x5], #4", -9, 12) 1595f45e93c4f239d5e136e5275aca53ef91633257d0sewardjMEM_TEST("ld4 {v17.b, v18.b, v19.b, v20.b}[13], [x5], x6", 9, 13) 159652bae2fcc174535edd254f8a9b6d0af908a76480sewardj 159771982253f53cf33d72d5f0d5d22ee9d3055de7aesewardj//////////////////////////////////////////////////////////////// 159871982253f53cf33d72d5f0d5d22ee9d3055de7aesewardjprintf("PRFM (immediate)\n"); 159971982253f53cf33d72d5f0d5d22ee9d3055de7aesewardj 160071982253f53cf33d72d5f0d5d22ee9d3055de7aesewardjMEM_TEST("prfm pldl1keep, [x5, #40]", 12, -4); 160171982253f53cf33d72d5f0d5d22ee9d3055de7aesewardjMEM_TEST("prfm pstl3strm, [x5, #56]", 12, -4); 160271982253f53cf33d72d5f0d5d22ee9d3055de7aesewardj 160352bae2fcc174535edd254f8a9b6d0af908a76480sewardj} /* end of test_memory2() */ 160452bae2fcc174535edd254f8a9b6d0af908a76480sewardj 160552bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 160652bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 160752bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 160852bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 160952bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 161052bae2fcc174535edd254f8a9b6d0af908a76480sewardj//////////////////////////////////////////////////////////////// 161152bae2fcc174535edd254f8a9b6d0af908a76480sewardj 161252bae2fcc174535edd254f8a9b6d0af908a76480sewardjint main ( void ) 161352bae2fcc174535edd254f8a9b6d0af908a76480sewardj{ 1614011dafb61cf25ff3337043315b2975986af226cfsewardj if (1) test_memory_old(); 1615011dafb61cf25ff3337043315b2975986af226cfsewardj if (1) test_memory_new(); 161652bae2fcc174535edd254f8a9b6d0af908a76480sewardj return 0; 161752bae2fcc174535edd254f8a9b6d0af908a76480sewardj} 1618