1
2	# ARMv8 tests to test neon register
3	# lists syntax.
4	.macro ldnstn_reg_list type inst index rep
5	\inst\()1\rep {v0.\type}\index, [x0]
6	.ifb \index
7	.ifb \rep
8	\inst\()1 {v0.\type, v1.\type}\index, [x0]
9	\inst\()1 {v0.\type, v1.\type, v2.\type}\index, [x0]
10	\inst\()1 {v0.\type, v1.\type, v2.\type, v3.\type}\index, [x0]
11	.endif
12	.endif
13
14	\inst\()2\rep {v0.\type, v1.\type}\index, [x0]
15
16	\inst\()3\rep {v0.\type, v1.\type, v2.\type}\index, [x0]
17
18	\inst\()4\rep {v0.\type, v1.\type, v2.\type, v3.\type}\index, [x0]
19
20	.endm
21
22	.text
23	.arch armv8-a
24
25	ldnstn_reg_list type="8B", inst="ld" index="" rep=""
26	ldnstn_reg_list type="8B", inst="st" index="" rep=""
27
28	ldnstn_reg_list type="16B", inst="ld" index="" rep=""
29	ldnstn_reg_list type="16B", inst="st" index="" rep=""
30
31	ldnstn_reg_list type="4H", inst="ld" index="" rep=""
32	ldnstn_reg_list type="4H", inst="st" index="" rep=""
33
34	ldnstn_reg_list type="8H", inst="ld" index="" rep=""
35	ldnstn_reg_list type="8H", inst="st" index="" rep=""
36
37	ldnstn_reg_list type="2S", inst="ld" index="" rep=""
38	ldnstn_reg_list type="2S", inst="st" index="" rep=""
39
40	ldnstn_reg_list type="4S", inst="ld" index="" rep=""
41	ldnstn_reg_list type="4S", inst="st" index="" rep=""
42
43	ldnstn_reg_list type="2D", inst="ld" index="" rep=""
44	ldnstn_reg_list type="2D", inst="st" index="" rep=""
45
46	# vector-element form
47	ldnstn_reg_list type="B", inst="ld" index="[1]" rep=""
48	ldnstn_reg_list type="B", inst="st" index="[1]" rep=""
49
50	ldnstn_reg_list type="B", inst="ld" index="[1]" rep=""
51	ldnstn_reg_list type="B", inst="st" index="[1]" rep=""
52
53	ldnstn_reg_list type="H", inst="ld" index="[1]" rep=""
54	ldnstn_reg_list type="H", inst="st" index="[1]" rep=""
55
56	ldnstn_reg_list type="H", inst="ld" index="[1]" rep=""
57	ldnstn_reg_list type="H", inst="st" index="[1]" rep=""
58
59	ldnstn_reg_list type="S", inst="ld" index="[1]" rep=""
60	ldnstn_reg_list type="S", inst="st" index="[1]" rep=""
61
62	ldnstn_reg_list type="S", inst="ld" index="[1]" rep=""
63	ldnstn_reg_list type="S", inst="st" index="[1]" rep=""
64
65	ldnstn_reg_list type="D", inst="ld" index="[1]" rep=""
66	ldnstn_reg_list type="D", inst="st" index="[1]" rep=""
67
68	# replicate form
69	ldnstn_reg_list type="8B", inst="ld" index="" rep="r"
70
71	ldnstn_reg_list type="16B", inst="ld" index="" rep="r"
72
73	ldnstn_reg_list type="4H", inst="ld" index="" rep="r"
74
75	ldnstn_reg_list type="8H", inst="ld" index="" rep="r"
76
77	ldnstn_reg_list type="2S", inst="ld" index="" rep="r"
78
79	ldnstn_reg_list type="4S", inst="ld" index="" rep="r"
80
81	ldnstn_reg_list type="1D", inst="ld" index="" rep="r"
82
83	ldnstn_reg_list type="2D", inst="ld" index="" rep="r"
84