[PATCH 2/2] x86: Disable AMX-TRANSPOSE by default
Jan Beulich
jbeulich@suse.com
Fri Oct 24 06:26:41 GMT 2025
On 24.10.2025 08:06, Haochen Jiang wrote:
> In Binutils, we choose to keep the AMX-TRANSPOSE support for
> now in case there are vendors want to utilize the instructions
> although the feature itself is de-published. AMX-TRANSPOSE will
> not show up on any Intel/AMD hardware. Also in foreseeable future,
> no hardware will support AMX-TRANSPOSE, we will disable it by
> default.
>
> gas/ChangeLog:
>
> * testsuite/gas/i386/x86-64-amx-movrs-intel.d:
> Move AMX-TRANSPOSE part to AMX-TRANSPOSE test.
> * testsuite/gas/i386/x86-64-amx-movrs.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-movrs.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32-bad.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32-bad.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32-intel.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32-inval.l: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32-inval.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-tf32.s: Ditto.
> * testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d: Ditto.
> * testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d: Ditto.
> * testsuite/gas/i386/x86-64-apx-evex-promoted.d: Ditto.
> * testsuite/gas/i386/x86-64-apx-evex-promoted.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-movrs-inval.l: Move
> AMX-TRANSPOSE part to AMX-TRANSPOSE file. Remove
> noamx_transpose test.
> * testsuite/gas/i386/x86-64-amx-movrs-inval.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-bad.d:
> Add AMX-MOVRS and AMX-TF32 related test.
> * testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
> * testsuite/gas/i386/x86-64.exp: Remove AMX-MOVRS invalid test.
> * testsuite/gas/i386/x86-64-amx-transpose-apx-intel.d:
> New test originally comes from APX_F test.
> * testsuite/gas/i386/x86-64-amx-transpose-apx-wig.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-apx.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-transpose-apx.s: Ditto.
What I think is missing is a test that the insns now won't be accepted by
default, then also kind of replacing ...
> --- a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.l
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -.* Assembler messages:
> -.*:5: Error: `\(%rip\)' cannot be used here
> -.*:6: Error: `\(%rip\)' cannot be used here
> -.*:7: Error: `\(%rip\)' cannot be used here
> -.*:8: Error: `\(%rip\)' cannot be used here
> -.*:9: Warning: operand 2 `%tmm1' implicitly denotes `%tmm0' to `%tmm1' group in `t2rpntlvwz0rs'
> -.*:10: Warning: operand 2 `%tmm3' implicitly denotes `%tmm2' to `%tmm3' group in `t2rpntlvwz0rst1'
> -.*:11: Warning: operand 2 `%tmm5' implicitly denotes `%tmm4' to `%tmm5' group in `t2rpntlvwz1rs'
> -.*:12: Warning: operand 2 `%tmm7' implicitly denotes `%tmm6' to `%tmm7' group in `t2rpntlvwz1rst1'
> -.*:16: Error: `t2rpntlvwz0rs' is not supported on `x86_64.noamx_transpose'
> -.*:17: Error: `t2rpntlvwz0rst1' is not supported on `x86_64.noamx_transpose'
> -.*:18: Error: `t2rpntlvwz1rs' is not supported on `x86_64.noamx_transpose'
> -.*:19: Error: `t2rpntlvwz1rst1' is not supported on `x86_64.noamx_transpose'
... what generates the last 4 diagnostics here, i.e. ...
> --- a/gas/testsuite/gas/i386/x86-64-amx-movrs-inval.s
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -# Check Invalid 64bit AMX-MOVRS instructions
> -
> - .text
> -_start:
> - t2rpntlvwz0rs (%rip), %tmm2
> - t2rpntlvwz0rst1 (%rip), %tmm2
> - t2rpntlvwz1rs (%rip), %tmm2
> - t2rpntlvwz1rst1 (%rip), %tmm2
> - t2rpntlvwz0rs (%r9), %tmm1
> - t2rpntlvwz0rst1 (%r9), %tmm3
> - t2rpntlvwz1rs (%r9), %tmm5
> - t2rpntlvwz1rst1 (%r9), %tmm7
> -
> - .arch .noamx_transpose
> -_transpose:
> - t2rpntlvwz0rs (%r9), %tmm2
> - t2rpntlvwz0rst1 (%r9), %tmm2
> - t2rpntlvwz1rs (%r9), %tmm2
> - t2rpntlvwz1rst1 (%r9), %tmm2
... this part (with the .arch).
Jan
More information about the Binutils
mailing list