1	.bundle_align_mode 5
2
3# We use these macros to test each pattern at every offset from
4# bundle alignment, i.e. [0,31].
5
6.macro offset_sequence size, offset
7	.p2align 5
8sequence_\size\()_offset_\offset\():
9	.if \offset
10	.space \offset, 0xf4
11	.endif
12	test_sequence \size
13.endm
14
15.macro test_offsets size
16	offset_sequence \size, 0
17	offset_sequence \size, 1
18	offset_sequence \size, 2
19	offset_sequence \size, 3
20	offset_sequence \size, 4
21	offset_sequence \size, 5
22	offset_sequence \size, 6
23	offset_sequence \size, 7
24	offset_sequence \size, 8
25	offset_sequence \size, 9
26	offset_sequence \size, 10
27	offset_sequence \size, 11
28	offset_sequence \size, 12
29	offset_sequence \size, 13
30	offset_sequence \size, 14
31	offset_sequence \size, 15
32	offset_sequence \size, 16
33	offset_sequence \size, 17
34	offset_sequence \size, 18
35	offset_sequence \size, 19
36	offset_sequence \size, 20
37	offset_sequence \size, 21
38	offset_sequence \size, 22
39	offset_sequence \size, 23
40	offset_sequence \size, 24
41	offset_sequence \size, 25
42	offset_sequence \size, 26
43	offset_sequence \size, 27
44	offset_sequence \size, 28
45	offset_sequence \size, 29
46	offset_sequence \size, 30
47	offset_sequence \size, 31
48.endm
49
50.macro test_sequence size
51	.bundle_lock
52	clc
53	.rept \size - 1
54	cld
55	.endr
56	.bundle_unlock
57.endm
58
59	test_offsets 1
60	test_offsets 2
61	test_offsets 3
62	test_offsets 4
63	test_offsets 5
64	test_offsets 6
65	test_offsets 7
66	test_offsets 8
67	test_offsets 9
68	test_offsets 10
69	test_offsets 11
70	test_offsets 12
71	test_offsets 13
72	test_offsets 14
73	test_offsets 15
74	test_offsets 16
75	test_offsets 17
76	test_offsets 18
77	test_offsets 19
78	test_offsets 20
79	test_offsets 21
80	test_offsets 22
81	test_offsets 23
82	test_offsets 24
83	test_offsets 25
84	test_offsets 26
85	test_offsets 27
86	test_offsets 28
87	test_offsets 29
88	test_offsets 30
89	test_offsets 31
90	test_offsets 32
91
92.p2align 5
93	# Nested .bundle_lock.
94	.bundle_lock
95	clc
96	.bundle_lock
97	cld
98	.bundle_unlock
99	clc
100	.bundle_unlock
101
102.p2align 5
103	hlt
104