Skip to content

Commit 12110cc

Browse files
committed
resolve comments
1 parent 2dc0965 commit 12110cc

19 files changed

+93
-131
lines changed

llvm/lib/Target/X86/X86InstrAMX.td

Lines changed: 26 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -14,70 +14,45 @@
1414
//===----------------------------------------------------------------------===//
1515
// AMX instructions
1616

17-
let SchedRW = [WriteSystem] in {
18-
let Predicates = [HasAMXTILE, NoEGPR, In64BitMode] in {
19-
let hasSideEffects = 1,
20-
Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
21-
def LDTILECFG : I <0x49, MRM0m, (outs), (ins opaquemem:$src),
22-
"ldtilecfg\t$src",
23-
[(int_x86_ldtilecfg addr:$src)]>, VEX, T8;
24-
let hasSideEffects = 1 in
25-
def STTILECFG : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
26-
"sttilecfg\t$src",
27-
[(int_x86_sttilecfg addr:$src)]>,
28-
VEX, T8, PD;
29-
let mayLoad = 1 in
30-
def TILELOADD : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
31-
(ins sibmem:$src),
32-
"tileloadd\t{$src, $dst|$dst, $src}", []>,
33-
VEX, T8, XD;
34-
let mayLoad = 1 in
35-
def TILELOADDT1 : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
36-
(ins sibmem:$src),
37-
"tileloaddt1\t{$src, $dst|$dst, $src}", []>,
38-
VEX, T8, PD;
39-
let Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
40-
def TILERELEASE : I<0x49, MRM_C0, (outs), (ins),
41-
"tilerelease", [(int_x86_tilerelease)]>, VEX, T8;
42-
let mayStore = 1 in
43-
def TILESTORED : I<0x4b, MRMDestMemFSIB, (outs),
44-
(ins sibmem:$dst, TILE:$src),
45-
"tilestored\t{$src, $dst|$dst, $src}", []>,
46-
VEX, T8, XS;
47-
} // HasAMXTILE, NoEGPR
48-
let Predicates = [HasAMXTILE, HasEGPR, In64BitMode] in {
49-
let hasSideEffects = 1,
50-
Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
51-
def LDTILECFG_EVEX : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
17+
multiclass AMX_TILE_COMMON<string Suffix>{
18+
let hasSideEffects = 1,
19+
Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
20+
def LDTILECFG#Suffix : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
5221
"ldtilecfg\t$src",
5322
[(int_x86_ldtilecfg addr:$src)]>,
54-
EVEX, NoCD8, T8, PS;
55-
let hasSideEffects = 1 in
56-
def STTILECFG_EVEX : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
23+
VEX, T8, PS;
24+
let hasSideEffects = 1 in
25+
def STTILECFG#Suffix : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
5726
"sttilecfg\t$src",
5827
[(int_x86_sttilecfg addr:$src)]>,
59-
EVEX, NoCD8, T8, PD;
60-
let mayLoad = 1 in
61-
def TILELOADD_EVEX : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
28+
VEX, T8, PD;
29+
let mayLoad = 1 in
30+
def TILELOADD#Suffix : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
6231
(ins sibmem:$src),
6332
"tileloadd\t{$src, $dst|$dst, $src}", []>,
64-
EVEX, NoCD8, T8, XD;
65-
let mayLoad = 1 in
66-
def TILELOADDT1_EVEX : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
33+
VEX, T8, XD;
34+
let mayLoad = 1 in
35+
def TILELOADDT1#Suffix : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
6736
(ins sibmem:$src),
6837
"tileloaddt1\t{$src, $dst|$dst, $src}", []>,
69-
EVEX, NoCD8, T8, PD;
70-
let mayStore = 1 in
71-
def TILESTORED_EVEX : I<0x4b, MRMDestMemFSIB, (outs),
38+
VEX, T8, PD;
39+
let mayStore = 1 in
40+
def TILESTORED#Suffix : I<0x4b, MRMDestMemFSIB, (outs),
7241
(ins sibmem:$dst, TILE:$src),
7342
"tilestored\t{$src, $dst|$dst, $src}", []>,
74-
EVEX, NoCD8, T8, XS;
75-
} // HasAMXTILE, HasEGPR
43+
VEX, T8, XS;
44+
}
45+
46+
let SchedRW = [WriteSystem] in {
47+
let Predicates = [HasAMXTILE, NoEGPR, In64BitMode] in
48+
defm "" : AMX_TILE_COMMON<"">;
49+
let Predicates = [HasAMXTILE, HasEGPR, In64BitMode] in
50+
defm "" : AMX_TILE_COMMON<"_EVEX">, EVEX, NoCD8;
51+
7652
let Predicates = [HasAMXTILE, In64BitMode] in {
7753
let Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
7854
def TILERELEASE : I<0x49, MRM_C0, (outs), (ins),
79-
"tilerelease", [(int_x86_tilerelease)]>,
80-
VEX, T8, PS;
55+
"tilerelease", [(int_x86_tilerelease)]>, VEX, T8, PS;
8156
def TILEZERO : I<0x49, MRMr0, (outs TILE:$dst), (ins),
8257
"tilezero\t$dst", []>,
8358
VEX, T8, XD;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
2+
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
3+
4+
# ATT: ldtilecfg 291(%r28,%r29,4)
5+
# INTEL: ldtilecfg [r28 + 4*r29 + 291]
6+
0x62,0x9a,0x78,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00
7+
8+
# ATT: sttilecfg 291(%r28,%r29,4)
9+
# INTEL: sttilecfg [r28 + 4*r29 + 291]
10+
0x62,0x9a,0x79,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00
11+
12+
# ATT: tileloadd 291(%r28,%r29,4), %tmm6
13+
# INTEL: tileloadd tmm6, [r28 + 4*r29 + 291]
14+
0x62,0x9a,0x7b,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00
15+
16+
# ATT: tileloaddt1 291(%r28,%r29,4), %tmm6
17+
# INTEL: tileloaddt1 tmm6, [r28 + 4*r29 + 291]
18+
0x62,0x9a,0x79,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00
19+
20+
# ATT: tilestored %tmm6, 291(%r28,%r29,4)
21+
# INTEL: tilestored [r28 + 4*r29 + 291], tmm6
22+
0x62,0x9a,0x7a,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00

llvm/test/MC/Disassembler/X86/apx/ldtilecfg.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/MC/Disassembler/X86/apx/sttilecfg.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/MC/Disassembler/X86/apx/tileloadd.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/MC/Disassembler/X86/apx/tileloaddt1.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/MC/Disassembler/X86/apx/tilestored.txt

Lines changed: 0 additions & 6 deletions
This file was deleted.

llvm/test/MC/X86/apx/amx-tile-att.s

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s
2+
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
3+
4+
# ERROR-COUNT-5: error:
5+
# ERROR-NOT: error:
6+
# CHECK: ldtilecfg 291(%r28,%r29,4)
7+
# CHECK: encoding: [0x62,0x9a,0x78,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00]
8+
ldtilecfg 291(%r28,%r29,4)
9+
10+
# CHECK: sttilecfg 291(%r28,%r29,4)
11+
# CHECK: encoding: [0x62,0x9a,0x79,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00]
12+
sttilecfg 291(%r28,%r29,4)
13+
14+
# CHECK: tileloadd 291(%r28,%r29,4), %tmm6
15+
# CHECK: encoding: [0x62,0x9a,0x7b,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
16+
tileloadd 291(%r28,%r29,4), %tmm6
17+
18+
# CHECK: tileloaddt1 291(%r28,%r29,4), %tmm6
19+
# CHECK: encoding: [0x62,0x9a,0x79,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
20+
tileloaddt1 291(%r28,%r29,4), %tmm6
21+
22+
# CHECK: tilestored %tmm6, 291(%r28,%r29,4)
23+
# CHECK: encoding: [0x62,0x9a,0x7a,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
24+
tilestored %tmm6, 291(%r28,%r29,4)

llvm/test/MC/X86/apx/amx-tile-intel.s

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
2+
3+
# CHECK: ldtilecfg [r28 + 4*r29 + 291]
4+
# CHECK: encoding: [0x62,0x9a,0x78,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00]
5+
ldtilecfg [r28 + 4*r29 + 291]
6+
7+
# CHECK: sttilecfg [r28 + 4*r29 + 291]
8+
# CHECK: encoding: [0x62,0x9a,0x79,0x08,0x49,0x84,0xac,0x23,0x01,0x00,0x00]
9+
sttilecfg [r28 + 4*r29 + 291]
10+
11+
# CHECK: tileloadd tmm6, [r28 + 4*r29 + 291]
12+
# CHECK: encoding: [0x62,0x9a,0x7b,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
13+
tileloadd tmm6, [r28 + 4*r29 + 291]
14+
15+
# CHECK: tileloaddt1 tmm6, [r28 + 4*r29 + 291]
16+
# CHECK: encoding: [0x62,0x9a,0x79,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
17+
tileloaddt1 tmm6, [r28 + 4*r29 + 291]
18+
19+
# CHECK: tilestored [r28 + 4*r29 + 291], tmm6
20+
# CHECK: encoding: [0x62,0x9a,0x7a,0x08,0x4b,0xb4,0xac,0x23,0x01,0x00,0x00]
21+
tilestored [r28 + 4*r29 + 291], tmm6

llvm/test/MC/X86/apx/ldtilecfg-att.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/ldtilecfg-intel.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/sttilecfg-att.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/sttilecfg-intel.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tileloadd-att.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tileloadd-intel.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tileloaddt1-att.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tileloaddt1-intel.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tilestored-att.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

llvm/test/MC/X86/apx/tilestored-intel.s

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)