# mach: aarch64 # Check the mov from asimd to general reg instructions: smov, umov. .include "testutils.inc" .data .align 4 input: .word 0x04030201 .word 0x08070605 .word 0xf4f3f2f1 .word 0xf8f7f6f5 start adrp x0, input ldr q0, [x0, #:lo12:input] smov w0, v0.b[0] smov w3, v0.b[12] cmp w0, #1 bne .Lfailure cmp w3, #-11 bne .Lfailure smov x0, v0.b[1] smov x3, v0.b[13] cmp x0, #2 bne .Lfailure cmp x3, #-10 bne .Lfailure smov w0, v0.h[0] smov w1, v0.h[4] cmp w0, #0x0201 bne .Lfailure cmp w1, #-3343 bne .Lfailure smov x0, v0.h[1] smov x1, v0.h[5] cmp x0, #0x0403 bne .Lfailure cmp x1, #-2829 bne .Lfailure smov x0, v0.s[1] smov x1, v0.s[3] mov x2, #0x0605 movk x2, #0x0807, lsl #16 cmp x0, x2 bne .Lfailure mov w3, #0xf6f5 movk w3, #0xf8f7, lsl #16 sxtw x3, w3 cmp x1, x3 bne .Lfailure umov w0, v0.b[0] umov w3, v0.b[12] cmp w0, #1 bne .Lfailure cmp w3, #0xf5 bne .Lfailure umov w0, v0.h[0] umov w1, v0.h[4] cmp w0, #0x0201 bne .Lfailure mov w2, #0xf2f1 cmp w1, w2 bne .Lfailure umov w0, v0.s[0] umov w1, v0.s[2] mov w2, #0x0201 movk w2, #0x0403, lsl #16 cmp w0, w2 bne .Lfailure mov w3, #0xf2f1 movk w3, #0xf4f3, lsl #16 cmp w1, w3 bne .Lfailure umov x0, v0.d[0] adrp x1, input ldr x2, [x1, #:lo12:input] cmp x0, x2 bne .Lfailure pass .Lfailure: fail