|
14 | 14 | //===----------------------------------------------------------------------===//
|
15 | 15 | // AMX instructions
|
16 | 16 |
|
17 |
| -multiclass AMX_TILE_COMMON<string Suffix>{ |
| 17 | +multiclass AMX_TILE_COMMON<string Suffix, Predicate HasEGPR> { |
| 18 | +let Predicates = [HasAMXTILE, HasEGPR, In64BitMode], |
| 19 | + OpEnc = !if(!eq(Suffix, ""), EncVEX, EncEVEX), CD8_Scale = 0 in { |
18 | 20 | let hasSideEffects = 1,
|
19 | 21 | Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
|
20 | 22 | def LDTILECFG#Suffix : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
|
21 | 23 | "ldtilecfg\t$src",
|
22 | 24 | [(int_x86_ldtilecfg addr:$src)]>,
|
23 |
| - VEX, T8, PS; |
| 25 | + T8, PS; |
24 | 26 | let hasSideEffects = 1 in
|
25 | 27 | def STTILECFG#Suffix : I<0x49, MRM0m, (outs), (ins opaquemem:$src),
|
26 | 28 | "sttilecfg\t$src",
|
27 | 29 | [(int_x86_sttilecfg addr:$src)]>,
|
28 |
| - VEX, T8, PD; |
| 30 | + T8, PD; |
29 | 31 | let mayLoad = 1 in
|
30 | 32 | def TILELOADD#Suffix : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
|
31 | 33 | (ins sibmem:$src),
|
32 | 34 | "tileloadd\t{$src, $dst|$dst, $src}", []>,
|
33 |
| - VEX, T8, XD; |
| 35 | + T8, XD; |
34 | 36 | let mayLoad = 1 in
|
35 | 37 | def TILELOADDT1#Suffix : I<0x4b, MRMSrcMemFSIB, (outs TILE:$dst),
|
36 | 38 | (ins sibmem:$src),
|
37 | 39 | "tileloaddt1\t{$src, $dst|$dst, $src}", []>,
|
38 |
| - VEX, T8, PD; |
| 40 | + T8, PD; |
39 | 41 | let mayStore = 1 in
|
40 | 42 | def TILESTORED#Suffix : I<0x4b, MRMDestMemFSIB, (outs),
|
41 | 43 | (ins sibmem:$dst, TILE:$src),
|
42 | 44 | "tilestored\t{$src, $dst|$dst, $src}", []>,
|
43 |
| - VEX, T8, XS; |
| 45 | + T8, XS; |
| 46 | +} |
44 | 47 | }
|
45 | 48 |
|
46 | 49 | 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; |
| 50 | + defm "" : AMX_TILE_COMMON<"", NoEGPR>; |
| 51 | + defm "" : AMX_TILE_COMMON<"_EVEX", HasEGPR>; |
51 | 52 |
|
52 | 53 | let Predicates = [HasAMXTILE, In64BitMode] in {
|
53 | 54 | let Defs = [TMM0,TMM1,TMM2,TMM3,TMM4,TMM5,TMM6,TMM7] in
|
|
0 commit comments