xref: /llvm-project/llvm/test/MC/X86/AMX/x86-64-amx-tile-att.s (revision aded4f0cc070fcef6763c9a3c2ba764d652b692e)
1// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s | FileCheck %s
2// some AMX instruction must use SIB.
3
4// CHECK: tilerelease
5// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
6          tilerelease
7
8// CHECK: tilezero %tmm6
9// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
10          tilezero %tmm6
11
12// CHECK: tilezero %tmm3
13// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
14          tilezero %tmm3
15
16// CHECK: tilerelease
17// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
18          tilerelease
19
20// CHECK: tilezero %tmm6
21// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
22          tilezero %tmm6
23
24// CHECK: tilezero %tmm3
25// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
26          tilezero %tmm3
27
28// CHECK: ldtilecfg  268435456(%rbp,%r14,8)
29// CHECK: encoding: [0xc4,0xa2,0x78,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
30          ldtilecfg  268435456(%rbp,%r14,8)
31
32// CHECK: ldtilecfg  291(%r8,%rax,4)
33// CHECK: encoding: [0xc4,0xc2,0x78,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
34          ldtilecfg  291(%r8,%rax,4)
35
36// CHECK: ldtilecfg  (%rip)
37// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x05,0x00,0x00,0x00,0x00]
38          ldtilecfg  (%rip)
39
40// CHECK: ldtilecfg  -2048(,%rbp,2)
41// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
42          ldtilecfg  -2048(,%rbp,2)
43
44// CHECK: sttilecfg  268435456(%rbp,%r14,8)
45// CHECK: encoding: [0xc4,0xa2,0x79,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
46          sttilecfg  268435456(%rbp,%r14,8)
47
48// CHECK: sttilecfg  291(%r8,%rax,4)
49// CHECK: encoding: [0xc4,0xc2,0x79,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
50          sttilecfg  291(%r8,%rax,4)
51
52// CHECK: sttilecfg  (%rip)
53// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x05,0x00,0x00,0x00,0x00]
54          sttilecfg  (%rip)
55
56// CHECK: sttilecfg  -2048(,%rbp,2)
57// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
58          sttilecfg  -2048(,%rbp,2)
59
60// CHECK: tileloadd 268435456(%rbp,%r14,8), %tmm6
61// CHECK: encoding: [0xc4,0xa2,0x7b,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
62          tileloadd 268435456(%rbp,%r14,8), %tmm6
63
64// CHECK: tileloadd 291(%r8,%rax,4), %tmm3
65// CHECK: encoding: [0xc4,0xc2,0x7b,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
66          tileloadd 291(%r8,%rax,4), %tmm3
67
68// CHECK: tileloadd 64(%rbx), %tmm4
69// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x64,0x23,0x40]
70          tileloadd 64(%rbx), %tmm4
71
72// CHECK: tileloadd -32(,%rbp,2), %tmm3
73// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
74          tileloadd -32(,%rbp,2), %tmm3
75
76// CHECK: tileloaddt1 268435456(%rbp,%r14,8), %tmm6
77// CHECK: encoding: [0xc4,0xa2,0x79,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
78          tileloaddt1 268435456(%rbp,%r14,8), %tmm6
79
80// CHECK: tileloaddt1 291(%r8,%rax,4), %tmm3
81// CHECK: encoding: [0xc4,0xc2,0x79,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
82          tileloaddt1 291(%r8,%rax,4), %tmm3
83
84// CHECK: tileloaddt1 -32(,%rbp,2), %tmm3
85// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
86          tileloaddt1 -32(,%rbp,2), %tmm3
87
88// CHECK: tileloaddt1 16(%rbp), %tmm6
89// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x74,0x25,0x10]
90          tileloaddt1 16(%rbp), %tmm6
91
92// CHECK: tilerelease
93// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
94          tilerelease
95
96// CHECK: tilestored %tmm6, 268435456(%rbp,%r14,8)
97// CHECK: encoding: [0xc4,0xa2,0x7a,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
98          tilestored %tmm6, 268435456(%rbp,%r14,8)
99
100// CHECK: tilestored %tmm3, 291(%r8,%rax,4)
101// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
102          tilestored %tmm3, 291(%r8,%rax,4)
103
104// CHECK: tilestored %tmm3, -32(,%rbp,2)
105// CHECK: encoding: [0xc4,0xe2,0x7a,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
106          tilestored %tmm3, -32(,%rbp,2)
107
108// CHECK: tilestored %tmm3, (%r8)
109// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x1c,0x20]
110          tilestored %tmm3, (%r8)
111
112// CHECK: tilezero %tmm6
113// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
114          tilezero %tmm6
115
116// CHECK: tilezero %tmm3
117// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
118          tilezero %tmm3
119
120// CHECK: ldtilecfg  268435456(%rbp,%r14,8)
121// CHECK: encoding: [0xc4,0xa2,0x78,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
122          ldtilecfg  268435456(%rbp,%r14,8)
123
124// CHECK: ldtilecfg  291(%r8,%rax,4)
125// CHECK: encoding: [0xc4,0xc2,0x78,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
126          ldtilecfg  291(%r8,%rax,4)
127
128// CHECK: ldtilecfg  (%rip)
129// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x05,0x00,0x00,0x00,0x00]
130          ldtilecfg  (%rip)
131
132// CHECK: ldtilecfg  -2048(,%rbp,2)
133// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
134          ldtilecfg  -2048(,%rbp,2)
135
136// CHECK: sttilecfg  268435456(%rbp,%r14,8)
137// CHECK: encoding: [0xc4,0xa2,0x79,0x49,0x84,0xf5,0x00,0x00,0x00,0x10]
138          sttilecfg  268435456(%rbp,%r14,8)
139
140// CHECK: sttilecfg  291(%r8,%rax,4)
141// CHECK: encoding: [0xc4,0xc2,0x79,0x49,0x84,0x80,0x23,0x01,0x00,0x00]
142          sttilecfg  291(%r8,%rax,4)
143
144// CHECK: sttilecfg  (%rip)
145// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x05,0x00,0x00,0x00,0x00]
146          sttilecfg  (%rip)
147
148// CHECK: sttilecfg  -2048(,%rbp,2)
149// CHECK: encoding: [0xc4,0xe2,0x79,0x49,0x04,0x6d,0x00,0xf8,0xff,0xff]
150          sttilecfg  -2048(,%rbp,2)
151
152// CHECK: tileloadd 268435456(%rbp,%r14,8), %tmm6
153// CHECK: encoding: [0xc4,0xa2,0x7b,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
154          tileloadd 268435456(%rbp,%r14,8), %tmm6
155
156// CHECK: tileloadd 291(%r8,%rax,4), %tmm3
157// CHECK: encoding: [0xc4,0xc2,0x7b,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
158          tileloadd 291(%r8,%rax,4), %tmm3
159
160// CHECK: tileloadd -32(,%rbp,2), %tmm3
161// CHECK: encoding: [0xc4,0xe2,0x7b,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
162          tileloadd -32(,%rbp,2), %tmm3
163
164// CHECK: tileloaddt1 268435456(%rbp,%r14,8), %tmm6
165// CHECK: encoding: [0xc4,0xa2,0x79,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
166          tileloaddt1 268435456(%rbp,%r14,8), %tmm6
167
168// CHECK: tileloaddt1 291(%r8,%rax,4), %tmm3
169// CHECK: encoding: [0xc4,0xc2,0x79,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
170          tileloaddt1 291(%r8,%rax,4), %tmm3
171
172// CHECK: tileloaddt1 -32(,%rbp,2), %tmm3
173// CHECK: encoding: [0xc4,0xe2,0x79,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
174          tileloaddt1 -32(,%rbp,2), %tmm3
175
176// CHECK: tilerelease
177// CHECK: encoding: [0xc4,0xe2,0x78,0x49,0xc0]
178          tilerelease
179
180// CHECK: tilestored %tmm6, 268435456(%rbp,%r14,8)
181// CHECK: encoding: [0xc4,0xa2,0x7a,0x4b,0xb4,0xf5,0x00,0x00,0x00,0x10]
182          tilestored %tmm6, 268435456(%rbp,%r14,8)
183
184// CHECK: tilestored %tmm3, 291(%r8,%rax,4)
185// CHECK: encoding: [0xc4,0xc2,0x7a,0x4b,0x9c,0x80,0x23,0x01,0x00,0x00]
186          tilestored %tmm3, 291(%r8,%rax,4)
187
188// CHECK: tilestored %tmm3, -32(,%rbp,2)
189// CHECK: encoding: [0xc4,0xe2,0x7a,0x4b,0x1c,0x6d,0xe0,0xff,0xff,0xff]
190          tilestored %tmm3, -32(,%rbp,2)
191
192// CHECK: tilezero %tmm6
193// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xf0]
194          tilezero %tmm6
195
196// CHECK: tilezero %tmm3
197// CHECK: encoding: [0xc4,0xe2,0x7b,0x49,0xd8]
198          tilezero %tmm3
199