xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/aarch64/bit.s (revision 2dd295436a0082eb4f8d294f4aa73c223413d0f2)
1# mach: aarch64
2
3# Check the bitwise vector instructions: bif, bit, bsl, eor.
4
5.include "testutils.inc"
6
7	.data
8	.align 4
9inputa:
10	.word 0x04030201
11	.word 0x08070605
12	.word 0x0c0b0a09
13	.word 0x100f0e0d
14inputb:
15	.word 0x40302010
16	.word 0x80706050
17	.word 0xc0b0a090
18	.word 0x01f0e0d0
19mask:
20	.word 0xFF00FF00
21	.word 0x00FF00FF
22	.word 0xF0F0F0F0
23	.word 0x0F0F0F0F
24
25	start
26	adrp x0, inputa
27	ldr q0, [x0, #:lo12:inputa]
28	adrp x0, inputb
29	ldr q1, [x0, #:lo12:inputb]
30	adrp x0, mask
31	ldr q2, [x0, #:lo12:mask]
32
33	mov v3.8b, v0.8b
34	bif v3.8b, v1.8b, v2.8b
35	addv b4, v3.8b
36	mov x1, v4.d[0]
37	cmp x1, #50
38	bne .Lfailure
39
40	mov v3.16b, v0.16b
41	bif v3.16b, v1.16b, v2.16b
42	addv b4, v3.16b
43	mov x1, v4.d[0]
44	cmp x1, #252
45	bne .Lfailure
46
47	mov v3.8b, v0.8b
48	bit v3.8b, v1.8b, v2.8b
49	addv b4, v3.8b
50	mov x1, v4.d[0]
51	cmp x1, #50
52	bne .Lfailure
53
54	mov v3.16b, v0.16b
55	bit v3.16b, v1.16b, v2.16b
56	addv b4, v3.16b
57	mov x1, v4.d[0]
58	cmp x1, #13
59	bne .Lfailure
60
61	mov v3.8b, v2.8b
62	bsl v3.8b, v0.8b, v1.8b
63	addv b4, v3.8b
64	mov x1, v4.d[0]
65	cmp x1, #50
66	bne .Lfailure
67
68	mov v3.16b, v2.16b
69	bsl v3.16b, v0.16b, v1.16b
70	addv b4, v3.16b
71	mov x1, v4.d[0]
72	cmp x1, #252
73	bne .Lfailure
74
75	mov v3.8b, v0.8b
76	eor v3.8b, v1.8b, v2.8b
77	addv b4, v3.8b
78	mov x1, v4.d[0]
79	cmp x1, #252
80	bne .Lfailure
81
82	mov v3.16b, v0.16b
83	eor v3.16b, v1.16b, v2.16b
84	addv b4, v3.16b
85	mov x1, v4.d[0]
86	cmp x1, #247
87	bne .Lfailure
88
89	pass
90.Lfailure:
91	fail
92