xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/aarch64/xtl.s (revision 4b004442778f1201b2161e87fd65ba87aae6601a)
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