1# mach: aarch64 2 3# Check the mov from asimd to general reg instructions: smov, umov. 4 5.include "testutils.inc" 6 7 .data 8 .align 4 9input: 10 .word 0x04030201 11 .word 0x08070605 12 .word 0xf4f3f2f1 13 .word 0xf8f7f6f5 14 15 start 16 adrp x0, input 17 ldr q0, [x0, #:lo12:input] 18 19 smov w0, v0.b[0] 20 smov w3, v0.b[12] 21 cmp w0, #1 22 bne .Lfailure 23 cmp w3, #-11 24 bne .Lfailure 25 26 smov x0, v0.b[1] 27 smov x3, v0.b[13] 28 cmp x0, #2 29 bne .Lfailure 30 cmp x3, #-10 31 bne .Lfailure 32 33 smov w0, v0.h[0] 34 smov w1, v0.h[4] 35 cmp w0, #0x0201 36 bne .Lfailure 37 cmp w1, #-3343 38 bne .Lfailure 39 40 smov x0, v0.h[1] 41 smov x1, v0.h[5] 42 cmp x0, #0x0403 43 bne .Lfailure 44 cmp x1, #-2829 45 bne .Lfailure 46 47 smov x0, v0.s[1] 48 smov x1, v0.s[3] 49 mov x2, #0x0605 50 movk x2, #0x0807, lsl #16 51 cmp x0, x2 52 bne .Lfailure 53 mov w3, #0xf6f5 54 movk w3, #0xf8f7, lsl #16 55 sxtw x3, w3 56 cmp x1, x3 57 bne .Lfailure 58 59 umov w0, v0.b[0] 60 umov w3, v0.b[12] 61 cmp w0, #1 62 bne .Lfailure 63 cmp w3, #0xf5 64 bne .Lfailure 65 66 umov w0, v0.h[0] 67 umov w1, v0.h[4] 68 cmp w0, #0x0201 69 bne .Lfailure 70 mov w2, #0xf2f1 71 cmp w1, w2 72 bne .Lfailure 73 74 umov w0, v0.s[0] 75 umov w1, v0.s[2] 76 mov w2, #0x0201 77 movk w2, #0x0403, lsl #16 78 cmp w0, w2 79 bne .Lfailure 80 mov w3, #0xf2f1 81 movk w3, #0xf4f3, lsl #16 82 cmp w1, w3 83 bne .Lfailure 84 85 umov x0, v0.d[0] 86 adrp x1, input 87 ldr x2, [x1, #:lo12:input] 88 cmp x0, x2 89 bne .Lfailure 90 91 pass 92.Lfailure: 93 fail 94