1/* alias-2.s Test file for ARMv8.2 AArch64 instructions aliases or disassembly
2   preference.  */
3
4	/* <bfm> [Xd|xzr], [xzr|<Xr>], <imm>, <width>  */
5	.macro bfm_inst op imm width
6	\op     x0, xzr, #\imm, #\width
7	\op     x0, x1, #\imm, #\width
8	\op     xzr, x1, #\imm, #\width
9	\op     xzr, xzr, #\imm, #\width
10	.endm
11
12	/* bfc [Xd|xzr], <imm>, <width>  */
13	.macro bfc_inst imm width
14	bfc     x0, #\imm, #\width
15	bfc     xzr, #\imm, #\width
16	.endm
17
18	/* <rev> [Xd|xzr], [Xr|xzr]  */
19	.macro rev_inst op
20	\op     x0, xzr
21	\op     x0, x1
22	\op     xzr, x1
23	\op     xzr, xzr
24	.endm
25
26.text
27	.irp op, bfm, bfi
28	.irp imm, 1, 16, 31
29	.irp width, 1, 8, 15
30	bfm_inst \op, \imm, \width
31	.endr
32	.endr
33	.endr
34
35	.irp imm, 1, 16, 31
36	.irp width, 1, 8, 15
37	bfc_inst \imm, \width
38	.endr
39	.endr
40
41	.irp op, rev, rev16, rev64
42	rev_inst \op
43	.endr
44