123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #mach: aarch64
- # Check the extend long instructions: sxtl, sxtl2, uxtl, uxtl2.
- .include "testutils.inc"
- .data
- .align 4
- input:
- .word 0x04030201
- .word 0x08070605
- .word 0xfcfdfeff
- .word 0xf8f9fafb
- start
- adrp x0, input
- ldr q0, [x0, #:lo12:input]
- uxtl v1.8h, v0.8b
- uxtl2 v2.8h, v0.16b
- addv h3, v1.8h
- addv h4, v2.8h
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- cmp x1, #36
- bne .Lfailure
- cmp x2, #2012
- bne .Lfailure
- uxtl v1.4s, v0.4h
- uxtl2 v2.4s, v0.8h
- addv s3, v1.4s
- addv s4, v2.4s
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- mov x3, #5136
- cmp x1, x3
- bne .Lfailure
- mov x4, #0xeff0
- movk x4, 0x3, lsl #16
- cmp x2, x4
- bne .Lfailure
- uxtl v1.2d, v0.2s
- uxtl2 v2.2d, v0.4s
- addv s3, v1.4s
- addv s4, v2.4s
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- mov x3, #0x0806
- movk x3, #0x0c0a, lsl #16
- cmp x1, x3
- bne .Lfailure
- mov x4, #0xf9fa
- movk x4, #0xf5f7, lsl #16
- cmp x2, x4
- bne .Lfailure
- sxtl v1.8h, v0.8b
- sxtl2 v2.8h, v0.16b
- addv h3, v1.8h
- addv h4, v2.8h
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- cmp x1, #36
- bne .Lfailure
- mov x3, #0xffdc
- cmp x2, x3
- bne .Lfailure
- sxtl v1.4s, v0.4h
- sxtl2 v2.4s, v0.8h
- addv s3, v1.4s
- addv s4, v2.4s
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- mov x3, #5136
- cmp x1, x3
- bne .Lfailure
- mov x4, #0xeff0
- movk x4, 0xffff, lsl #16
- bne .Lfailure
- sxtl v1.2d, v0.2s
- sxtl2 v2.2d, v0.4s
- addv s3, v1.4s
- addv s4, v2.4s
- mov x1, v3.d[0]
- mov x2, v4.d[0]
- mov x3, #0x0806
- movk x3, #0x0c0a, lsl #16
- cmp x1, x3
- bne .Lfailure
- mov x4, #0xf9f8
- movk x4, #0xf5f7, lsl #16
- cmp x2, x4
- bne .Lfailure
- pass
- .Lfailure:
- fail
|