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