1169689Skan# mach: aarch64 2169689Skan 3169689Skan# Check the load single 1-element structure to one lane instructions: 4169689Skan# ld1, ld2, ld3, ld4. 5169689Skan# Check the addressing modes: no offset, post-index immediate offset, 6169689Skan# post-index register offset. 7169689Skan 8169689Skan.include "testutils.inc" 9169689Skan 10169689Skan .data 11169689Skan .align 4 12169689Skaninput: 13169689Skan .word 0x04030201 14169689Skan .word 0x08070605 15169689Skan .word 0x0c0b0a09 16169689Skan .word 0x100f0e0d 17169689Skan .word 0x14131211 18169689Skan .word 0x18171615 19169689Skan .word 0x1c1b1a19 20169689Skan .word 0x201f1e1d 21169689Skan 22169689Skan start 23169689Skan adrp x0, input 24169689Skan add x0, x0, :lo12:input 25169689Skan 26169689Skan mov x2, x0 27169689Skan mov x3, #1 28169689Skan mov x4, #4 29169689Skan ld1 {v0.b}[0], [x2], 1 30169689Skan ld1 {v0.b}[1], [x2], x3 31169689Skan ld1 {v0.h}[1], [x2], 2 32169689Skan ld1 {v0.s}[1], [x2], x4 33169689Skan ld1 {v0.d}[1], [x2] 34169689Skan addv b1, v0.16b 35169689Skan mov x5, v1.d[0] 36169689Skan cmp x5, #136 37169689Skan bne .Lfailure 38169689Skan 39169689Skan mov x2, x0 40169689Skan mov x3, #16 41169689Skan mov x4, #4 42169689Skan ld2 {v0.d, v1.d}[0], [x2], x3 43169689Skan ld2 {v0.s, v1.s}[2], [x2], 8 44169689Skan ld2 {v0.h, v1.h}[6], [x2], x4 45169689Skan ld2 {v0.b, v1.b}[14], [x2], 2 46169689Skan ld2 {v0.b, v1.b}[15], [x2] 47169689Skan addv b2, v0.16b 48169689Skan addv b3, v1.16b 49169689Skan mov x5, v2.d[0] 50169689Skan mov x6, v3.d[0] 51169689Skan cmp x5, #221 52169689Skan bne .Lfailure 53169689Skan cmp x6, #51 54169689Skan bne .Lfailure 55169689Skan 56169689Skan mov x2, x0 57169689Skan ld3 {v0.s, v1.s, v2.s}[0], [x2], 12 58169689Skan ld3 {v0.s, v1.s, v2.s}[1], [x2] 59169689Skan mov x2, x0 60169689Skan mov x3, #12 61169689Skan ld3 {v0.s, v1.s, v2.s}[2], [x2], x3 62169689Skan ld3 {v0.s, v1.s, v2.s}[3], [x2] 63169689Skan addv b3, v0.16b 64169689Skan addv b4, v1.16b 65169689Skan addv b5, v2.16b 66169689Skan mov x4, v3.d[0] 67169689Skan mov x5, v4.d[0] 68169689Skan mov x6, v5.d[0] 69169689Skan cmp x4, #136 70169689Skan bne .Lfailure 71169689Skan cmp x5, #200 72169689Skan bne .Lfailure 73169689Skan cmp x6, #8 74169689Skan bne .Lfailure 75169689Skan 76169689Skan mov x2, x0 77169689Skan ld4 {v0.s, v1.s, v2.s, v3.s}[0], [x2], 16 78169689Skan ld4 {v0.s, v1.s, v2.s, v3.s}[1], [x2] 79169689Skan mov x2, x0 80169689Skan mov x3, #16 81169689Skan ld4 {v0.s, v1.s, v2.s, v3.s}[2], [x2], x3 82169689Skan ld4 {v0.s, v1.s, v2.s, v3.s}[3], [x2] 83169689Skan addv b4, v0.16b 84169689Skan addv b5, v1.16b 85169689Skan addv b6, v2.16b 86169689Skan addv b7, v3.16b 87169689Skan mov x4, v4.d[0] 88169689Skan mov x5, v5.d[0] 89169689Skan mov x6, v6.d[0] 90169689Skan mov x7, v7.d[0] 91169689Skan cmp x4, #168 92169689Skan bne .Lfailure 93169689Skan cmp x5, #232 94169689Skan bne .Lfailure 95169689Skan cmp x6, #40 96169689Skan bne .Lfailure 97169689Skan cmp x7, #104 98169689Skan bne .Lfailure 99169689Skan 100169689Skan pass 101169689Skan.Lfailure: 102169689Skan fail 103169689Skan