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