Skip to content

Commit 378ee0e

Browse files
InstLatx64H. Peter Anvin (Intel)
authored andcommitted
AMX-TRANSPOSE: removed, retag instructions NEVER.
All the 16 AMX-TRANSPOSE instructions were removed from the 59th edition of "Intel Architecture Instruction Set Extensions and Future Features Programming Reference" September 2025, 319433-059. Similar to PCOMMIT, they are tagged as 'NEVER' [ hpa: don't remove from tests, but suppress the warnings. Don't remove the CPUID tag; a future version of NASM will actually implement CPU filtering based on the various CPUID tags; that development is genuinely in progress. ] Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
1 parent 62b610a commit 378ee0e

File tree

3 files changed

+70
-55
lines changed

3 files changed

+70
-55
lines changed

test/amx.asm

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,48 +56,56 @@
5656
tilemovrow zreg, treg, eax ;AMX-AVX512
5757
tilemovrow zreg, treg, %1 ;AMX-AVX512
5858

59+
; All the 16 AMX-TRANSPOSE instructions were removed from the 59th edition of
60+
; "Intel Architecture Instruction Set Extensions and Future Features Programming Reference"
61+
; September 2025, 319433-059
62+
; Similar to PCOMMIT, they are tagged as 'NEVER'
63+
64+
[warning -obsolete-removed]
5965
t2rpntlvwz0 treg, [rax] ;AMX-TRANSPOSE
6066
t2rpntlvwz0 treg, [rax+rdx] ;AMX-TRANSPOSE
6167
t2rpntlvwz0 treg, [rax+rdx*2] ;AMX-TRANSPOSE
6268

63-
t2rpntlvwz0t1 treg, [rax] ;AMX-TRANSPOSE
64-
t2rpntlvwz0t1 treg, [rax+rdx] ;AMX-TRANSPOSE
65-
t2rpntlvwz0t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
69+
t2rpntlvwz0t1 treg, [rax] ;AMX-TRANSPOSE
70+
t2rpntlvwz0t1 treg, [rax+rdx] ;AMX-TRANSPOSE
71+
t2rpntlvwz0t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
6672

6773
t2rpntlvwz1 treg, [rax] ;AMX-TRANSPOSE
6874
t2rpntlvwz1 treg, [rax+rdx] ;AMX-TRANSPOSE
6975
t2rpntlvwz1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
7076

71-
t2rpntlvwz1t1 treg, [rax] ;AMX-TRANSPOSE
72-
t2rpntlvwz1t1 treg, [rax+rdx] ;AMX-TRANSPOSE
73-
t2rpntlvwz1t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
77+
t2rpntlvwz1t1 treg, [rax] ;AMX-TRANSPOSE
78+
t2rpntlvwz1t1 treg, [rax+rdx] ;AMX-TRANSPOSE
79+
t2rpntlvwz1t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
7480

7581
ttransposed treg, treg ;AMX-TRANSPOSE
7682

77-
t2rpntlvwz0rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
78-
t2rpntlvwz0rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
79-
t2rpntlvwz0rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
83+
t2rpntlvwz0rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
84+
t2rpntlvwz0rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
85+
t2rpntlvwz0rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8086

8187
t2rpntlvwz0rst1 treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
8288
t2rpntlvwz0rst1 treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
8389
t2rpntlvwz0rst1 treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8490

85-
t2rpntlvwz1rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
86-
t2rpntlvwz1rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
87-
t2rpntlvwz1rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
91+
t2rpntlvwz1rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
92+
t2rpntlvwz1rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
93+
t2rpntlvwz1rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8894

8995
t2rpntlvwz1rst1 treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
9096
t2rpntlvwz1rst1 treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
9197
t2rpntlvwz1rst1 treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
9298

93-
ttdpbf16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-BF16
94-
ttdpfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-FP16
95-
ttcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
96-
ttcmmrlfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
97-
tconjtcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
98-
tconjtfp16 treg, treg ;AMX-TRANSPOSE + AMX-COMPLEX
99+
ttdpbf16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-BF16
100+
ttdpfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-FP16
101+
ttcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
102+
ttcmmrlfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
103+
tconjtcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
104+
tconjtfp16 treg, treg ;AMX-TRANSPOSE + AMX-COMPLEX
105+
106+
ttmmultf32ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX_TF32
99107

100-
ttmmultf32ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX_TF32
108+
[warning *obsolete-removed]
101109

102110
tilestored [rax], treg ;AMX_TILE
103111
tilestored [rax,rdx], treg ;AMX_TILE

travis/test/amx.asm

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,48 +56,56 @@
5656
tilemovrow zreg, treg, eax ;AMX-AVX512
5757
tilemovrow zreg, treg, %1 ;AMX-AVX512
5858

59+
; All the 16 AMX-TRANSPOSE instructions were removed from the 59th edition of
60+
; "Intel Architecture Instruction Set Extensions and Future Features Programming Reference"
61+
; September 2025, 319433-059
62+
; Similar to PCOMMIT, they are tagged as 'NEVER'
63+
64+
[warning -obsolete-removed]
5965
t2rpntlvwz0 treg, [rax] ;AMX-TRANSPOSE
6066
t2rpntlvwz0 treg, [rax+rdx] ;AMX-TRANSPOSE
6167
t2rpntlvwz0 treg, [rax+rdx*2] ;AMX-TRANSPOSE
6268

63-
t2rpntlvwz0t1 treg, [rax] ;AMX-TRANSPOSE
64-
t2rpntlvwz0t1 treg, [rax+rdx] ;AMX-TRANSPOSE
65-
t2rpntlvwz0t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
69+
t2rpntlvwz0t1 treg, [rax] ;AMX-TRANSPOSE
70+
t2rpntlvwz0t1 treg, [rax+rdx] ;AMX-TRANSPOSE
71+
t2rpntlvwz0t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
6672

6773
t2rpntlvwz1 treg, [rax] ;AMX-TRANSPOSE
6874
t2rpntlvwz1 treg, [rax+rdx] ;AMX-TRANSPOSE
6975
t2rpntlvwz1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
7076

71-
t2rpntlvwz1t1 treg, [rax] ;AMX-TRANSPOSE
72-
t2rpntlvwz1t1 treg, [rax+rdx] ;AMX-TRANSPOSE
73-
t2rpntlvwz1t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
77+
t2rpntlvwz1t1 treg, [rax] ;AMX-TRANSPOSE
78+
t2rpntlvwz1t1 treg, [rax+rdx] ;AMX-TRANSPOSE
79+
t2rpntlvwz1t1 treg, [rax+rdx*2] ;AMX-TRANSPOSE
7480

7581
ttransposed treg, treg ;AMX-TRANSPOSE
7682

77-
t2rpntlvwz0rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
78-
t2rpntlvwz0rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
79-
t2rpntlvwz0rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
83+
t2rpntlvwz0rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
84+
t2rpntlvwz0rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
85+
t2rpntlvwz0rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8086

8187
t2rpntlvwz0rst1 treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
8288
t2rpntlvwz0rst1 treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
8389
t2rpntlvwz0rst1 treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8490

85-
t2rpntlvwz1rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
86-
t2rpntlvwz1rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
87-
t2rpntlvwz1rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
91+
t2rpntlvwz1rs treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
92+
t2rpntlvwz1rs treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
93+
t2rpntlvwz1rs treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
8894

8995
t2rpntlvwz1rst1 treg, [rax] ;AMX-TRANSPOSE + AMX-MOVRS
9096
t2rpntlvwz1rst1 treg, [rax+rdx] ;AMX-TRANSPOSE + AMX-MOVRS
9197
t2rpntlvwz1rst1 treg, [rax+rdx*2] ;AMX-TRANSPOSE + AMX-MOVRS
9298

93-
ttdpbf16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-BF16
94-
ttdpfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-FP16
95-
ttcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
96-
ttcmmrlfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
97-
tconjtcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
98-
tconjtfp16 treg, treg ;AMX-TRANSPOSE + AMX-COMPLEX
99+
ttdpbf16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-BF16
100+
ttdpfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-FP16
101+
ttcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
102+
ttcmmrlfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
103+
tconjtcmmimfp16ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX-COMPLEX
104+
tconjtfp16 treg, treg ;AMX-TRANSPOSE + AMX-COMPLEX
105+
106+
ttmmultf32ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX_TF32
99107

100-
ttmmultf32ps treg, treg2, treg3 ;AMX-TRANSPOSE + AMX_TF32
108+
[warning *obsolete-removed]
101109

102110
tilestored [rax], treg ;AMX_TILE
103111
tilestored [rax,rdx], treg ;AMX_TILE

x86/insns.dat

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5401,17 +5401,16 @@ TILEZERO tmmreg [r: vex.128.f2.0f38.w0 49 /3r0] AMXTILE,LONG
54015401
TILELOADDRS tmmreg,mem [rm: vex+.128.f2.0f38.w0 4a /r] AMXMOVRS,APX,AMXTILE,FUTURE,MIB,SIB,ANYSIZE,AR1,LONG
54025402
TILELOADDRST1 tmmreg,mem [rm: vex+.128.66.0f38.w0 4a /r] AMXMOVRS,APX,AMXTILE,FUTURE,MIB,SIB,ANYSIZE,AR1,LONG
54035403

5404-
T2RPNTLVWZ0 tmmreg,mem [rm: vex.128.np.0f38.w0 6e /r] FUTURE,SIB
5405-
T2RPNTLVWZ0T1 tmmreg,mem [rm: vex.128.np.0f38.w0 6f /r] FUTURE,SIB
5406-
T2RPNTLVWZ1 tmmreg,mem [rm: vex.128.66.0f38.w0 6e /r] FUTURE,SIB
5407-
T2RPNTLVWZ1T1 tmmreg,mem [rm: vex.128.66.0f38.w0 6f /r] FUTURE,SIB
5408-
T2RPNTLVWZ0RS tmmreg,mem [rm: vex.128.np.map5.w0 f8 /r] FUTURE,SIB
5409-
T2RPNTLVWZ0RST1 tmmreg,mem [rm: vex.128.np.map5.w0 f9 /r] FUTURE,SIB
5410-
T2RPNTLVWZ1RS tmmreg,mem [rm: vex.128.66.map5.w0 f8 /r] FUTURE,SIB
5411-
T2RPNTLVWZ1RST1 tmmreg,mem [rm: vex.128.66.map5.w0 f9 /r] FUTURE,SIB
5412-
5413-
TCONJTCMMIMFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.np.0f38.w0 6b /r] FUTURE
5414-
TCONJTFP16 tmmreg,tmmreg [rm: vex.128.66.0f38.w0 6b /r] FUTURE
5404+
T2RPNTLVWZ0 tmmreg,mem [rm: vex.128.np.0f38.w0 6e /r] NEVER,SIB,AMXTRANSPOSE
5405+
T2RPNTLVWZ0T1 tmmreg,mem [rm: vex.128.np.0f38.w0 6f /r] NEVER,SIB,AMXTRANSPOSE
5406+
T2RPNTLVWZ1 tmmreg,mem [rm: vex.128.66.0f38.w0 6e /r] NEVER,SIB,AMXTRANSPOSE
5407+
T2RPNTLVWZ1T1 tmmreg,mem [rm: vex.128.66.0f38.w0 6f /r] NEVER,SIB,AMXTRANSPOSE
5408+
T2RPNTLVWZ0RS tmmreg,mem [rm: vex.128.np.map5.w0 f8 /r] NEVER,SIB,AMXTRANSPOSE
5409+
T2RPNTLVWZ0RST1 tmmreg,mem [rm: vex.128.np.map5.w0 f9 /r] NEVER,SIB,AMXTRANSPOSE
5410+
T2RPNTLVWZ1RS tmmreg,mem [rm: vex.128.66.map5.w0 f8 /r] NEVER,SIB,AMXTRANSPOSE
5411+
T2RPNTLVWZ1RST1 tmmreg,mem [rm: vex.128.66.map5.w0 f9 /r] NEVER,SIB,AMXTRANSPOSE
5412+
TCONJTCMMIMFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.np.0f38.w0 6b /r] NEVER,AMXTRANSPOSE
5413+
TCONJTFP16 tmmreg,tmmreg [rm: vex.128.66.0f38.w0 6b /r] NEVER,AMXTRANSPOSE
54155414
TCVTROWD2PS zmmreg,tmmreg,reg32 [rmv: evex.512.f3.0f38.w0 4a /r] AMXAVX512
54165415
TCVTROWD2PS zmmreg,tmmreg,imm8 [rmi: evex.512.f3.0f3a.w0 07 /r ib] AMXAVX512
54175416
TCVTROWPS2BF16H zmmreg,tmmreg,reg32 [rmv: evex.512.f2.0f38.w0 6d /r] AMXAVX512
@@ -5429,12 +5428,12 @@ TDPHF8PS tmmreg,tmmreg,tmmreg [rmv: vex.128.66.map5.w0 fd /r] AMXFP8
54295428
TILEMOVROW zmmreg,tmmreg,imm8 [rmi: evex.512.66.0f3a.w0 07 /r ib] AMXAVX512
54305429
TILEMOVROW zmmreg,tmmreg,reg32 [rmv: evex.512.66.0f38.w0 4a /r] AMXAVX512
54315430
TMMULTF32PS tmmreg,tmmreg,tmmreg [rmv: vex.128.66.0f38.w0 48 /r] AMXTF32
5432-
TTCMMIMFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f2.0f38.w0 6b /r] FUTURE
5433-
TTCMMRLFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f3.0f38.w0 6b /r] FUTURE
5434-
TTDPBF16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f3.0f38.w0 6c /r] FUTURE
5435-
TTDPFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f2.0f38.w0 6c /r] FUTURE
5436-
TTMMULTF32PS tmmreg,tmmreg,tmmreg [rmv: vex.128.np.0f38.w0 48 /r] FUTURE
5437-
TTRANSPOSED tmmreg,tmmreg [rm: vex.128.f3.0f38.w0 5f /r] FUTURE
5431+
TTCMMIMFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f2.0f38.w0 6b /r] NEVER,AMXTRANSPOSE
5432+
TTCMMRLFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f3.0f38.w0 6b /r] NEVER,AMXTRANSPOSE
5433+
TTDPBF16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f3.0f38.w0 6c /r] NEVER,AMXTRANSPOSE
5434+
TTDPFP16PS tmmreg,tmmreg,tmmreg [rmv: vex.128.f2.0f38.w0 6c /r] NEVER,AMXTRANSPOSE
5435+
TTMMULTF32PS tmmreg,tmmreg,tmmreg [rmv: vex.128.np.0f38.w0 48 /r] NEVER,AMXTRANSPOSE
5436+
TTRANSPOSED tmmreg,tmmreg [rm: vex.128.f3.0f38.w0 5f /r] NEVER,AMXTRANSPOSE
54385437

54395438
;# Intel AVX512-FP16 instructions
54405439
VADDPH xmmreg|mask|z,xmmreg*,xmmrm128|b16 [rvm:fv: evex.nds.128.np.map5.w0 58 /r] AVX512FP16,AVX512VL

0 commit comments

Comments
 (0)