1#mach: aarch64 2 3# Check the extend long instructions: sxtl, sxtl2, uxtl, uxtl2. 4 5.include "testutils.inc" 6 7 .data 8 .align 4 9input: 10 .word 0x04030201 11 .word 0x08070605 12 .word 0xfcfdfeff 13 .word 0xf8f9fafb 14 15 start 16 adrp x0, input 17 ldr q0, [x0, #:lo12:input] 18 19 uxtl v1.8h, v0.8b 20 uxtl2 v2.8h, v0.16b 21 addv h3, v1.8h 22 addv h4, v2.8h 23 mov x1, v3.d[0] 24 mov x2, v4.d[0] 25 cmp x1, #36 26 bne .Lfailure 27 cmp x2, #2012 28 bne .Lfailure 29 30 uxtl v1.4s, v0.4h 31 uxtl2 v2.4s, v0.8h 32 addv s3, v1.4s 33 addv s4, v2.4s 34 mov x1, v3.d[0] 35 mov x2, v4.d[0] 36 mov x3, #5136 37 cmp x1, x3 38 bne .Lfailure 39 mov x4, #0xeff0 40 movk x4, 0x3, lsl #16 41 cmp x2, x4 42 bne .Lfailure 43 44 uxtl v1.2d, v0.2s 45 uxtl2 v2.2d, v0.4s 46 addv s3, v1.4s 47 addv s4, v2.4s 48 mov x1, v3.d[0] 49 mov x2, v4.d[0] 50 mov x3, #0x0806 51 movk x3, #0x0c0a, lsl #16 52 cmp x1, x3 53 bne .Lfailure 54 mov x4, #0xf9fa 55 movk x4, #0xf5f7, lsl #16 56 cmp x2, x4 57 bne .Lfailure 58 59 sxtl v1.8h, v0.8b 60 sxtl2 v2.8h, v0.16b 61 addv h3, v1.8h 62 addv h4, v2.8h 63 mov x1, v3.d[0] 64 mov x2, v4.d[0] 65 cmp x1, #36 66 bne .Lfailure 67 mov x3, #0xffdc 68 cmp x2, x3 69 bne .Lfailure 70 71 sxtl v1.4s, v0.4h 72 sxtl2 v2.4s, v0.8h 73 addv s3, v1.4s 74 addv s4, v2.4s 75 mov x1, v3.d[0] 76 mov x2, v4.d[0] 77 mov x3, #5136 78 cmp x1, x3 79 bne .Lfailure 80 mov x4, #0xeff0 81 movk x4, 0xffff, lsl #16 82 bne .Lfailure 83 84 sxtl v1.2d, v0.2s 85 sxtl2 v2.2d, v0.4s 86 addv s3, v1.4s 87 addv s4, v2.4s 88 mov x1, v3.d[0] 89 mov x2, v4.d[0] 90 mov x3, #0x0806 91 movk x3, #0x0c0a, lsl #16 92 cmp x1, x3 93 bne .Lfailure 94 mov x4, #0xf9f8 95 movk x4, #0xf5f7, lsl #16 96 cmp x2, x4 97 bne .Lfailure 98 99 pass 100.Lfailure: 101 fail 102