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