> -----Original Message-----
> From: Jiang, Haochen <[email protected]>
> Sent: Friday, October 10, 2025 2:33 PM
> To: [email protected]
> Cc: Liu, Hongtao <[email protected]>; [email protected]
> Subject: [PATCH] i386: Remove AMX-TRANSPOSE support
>
> Hi all,
>
> AMX-TRANSPOSE is removed from ISE059. Since there is no actual hardware,
> we choose to directly remove it in GCC 16 and backport to GCC 15 to ease
> maintainence effort.
>
> Ok for trunk and backport?
Ok for trunk.
Regarding backport, to avoid any risk to the release branch, I think we just
need to remove AMX-TRANSPOSE from DMR, not need to delete all the related code.
>
> Thx,
> Haochen
>
> gcc/ChangeLog:
>
> * common/config/i386/cpuinfo.h
> (get_available_features): Remove AMX-TRANSPOSE.
> * common/config/i386/i386-common.cc
> (OPTION_MASK_ISA2_AMX_TRANSPOSE_SET): Removed.
> (OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): Ditto.
> (ix86_handle_option): Remove amx-transpose handle.
> * common/config/i386/i386-cpuinfo.h
> (enum processor_features): Remove FEATURE_AMX_TRANSPOSE.
> Set FEATURE_AMX_MOVRS value.
> * common/config/i386/i386-isas.h: Remove AMX-TRANSPOSE.
> * config.gcc: Do not include amxtransposeintrin.h.
> * config/i386/amxmovrsintrin.h: Remove AMX-TRANSPOSE intrins.
> * config/i386/amxtransposeintrin.h: Ditto.
> * config/i386/cpuid.h (bit_AMX_TRANSPOSE): Removed.
> * config/i386/i386.h (PTA_DIAMONDRAPIDS): Remove AMX-
> TRANSPOSE.
> * config/i386/i386-c.cc (ix86_target_macros_internal): Remove
> AMX_TRANSPOSE.
> * config/i386/i386-isa.def (AMX_TRANSPOSE): Removed.
> * config/i386/i386-options.cc
> (ix86_valid_target_attribute_inner_p): Remove AMX-TRANSPOSE.
> * config/i386/i386.opt: Ditto.
> * config/i386/i386.opt.urls: Ditto.
> * config/i386/immintrin.h: Remove amxtransposeintrin.h.
> * doc/extend.texi: Remove amx-transpose.
> * doc/invoke.texi: Ditto.
> * doc/sourcebuild.texi: Ditto.
>
> gcc/testsuite/ChangeLog:
>
> * g++.dg/other/i386-2.C: Remove AMX-TRANSPOSE test.
> * g++.dg/other/i386-3.C: Ditto.
> * gcc.target/i386/amx-check.h: Ditto.
> * gcc.target/i386/amxmovrs-asmatt-1.c: Ditto.
> * gcc.target/i386/amxmovrs-asmintel-1.c: Ditto.
> * gcc.target/i386/funcspec-56.inc: Ditto.
> * gcc.target/i386/sse-12.c: Ditto.
> * gcc.target/i386/sse-13.c: Ditto.
> * gcc.target/i386/sse-14.c: Ditto.
> * gcc.target/i386/sse-22.c: Ditto.
> * gcc.target/i386/sse-23.c: Ditto.
> * lib/target-supports.exp: Ditto.
> * gcc.target/i386/amxmovrs-2rpntlvwrs-2.c: Removed.
> * gcc.target/i386/amxtranspose-2rpntlvw-2.c: Removed.
> * gcc.target/i386/amxtranspose-asmatt-1.c: Removed.
> * gcc.target/i386/amxtranspose-asmintel-1.c: Removed.
> * gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-conjtfp16-2.c: Removed.
> * gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-tdpbf16ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-tdpfp16ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-tmmultf32ps-2.c: Removed.
> * gcc.target/i386/amxtranspose-transposed-2.c: Removed.
> ---
> gcc/common/config/i386/cpuinfo.h | 2 -
> gcc/common/config/i386/i386-common.cc | 21 +--
> gcc/common/config/i386/i386-cpuinfo.h | 3 +-
> gcc/common/config/i386/i386-isas.h | 2 -
> gcc/config.gcc | 4 +-
> gcc/config/i386/amxmovrsintrin.h | 47 ------
> gcc/config/i386/amxtransposeintrin.h | 155 +-----------------
> gcc/config/i386/cpuid.h | 1 -
> gcc/config/i386/i386-c.cc | 2 -
> gcc/config/i386/i386-isa.def | 1 -
> gcc/config/i386/i386-options.cc | 2 -
> gcc/config/i386/i386.h | 4 +-
> gcc/config/i386/i386.opt | 4 -
> gcc/config/i386/i386.opt.urls | 3 -
> gcc/config/i386/immintrin.h | 2 -
> gcc/doc/extend.texi | 5 -
> gcc/doc/invoke.texi | 12 +-
> gcc/doc/sourcebuild.texi | 3 -
> gcc/testsuite/g++.dg/other/i386-2.C | 2 +-
> gcc/testsuite/g++.dg/other/i386-3.C | 2 +-
> gcc/testsuite/gcc.target/i386/amx-check.h | 3 -
> .../gcc.target/i386/amxmovrs-2rpntlvwrs-2.c | 58 -------
> .../gcc.target/i386/amxmovrs-asmatt-1.c | 10 +-
> .../gcc.target/i386/amxmovrs-asmintel-1.c | 10 +-
> .../gcc.target/i386/amxtranspose-2rpntlvw-2.c | 54 ------
> .../gcc.target/i386/amxtranspose-asmatt-1.c | 39 -----
> .../gcc.target/i386/amxtranspose-asmintel-1.c | 35 ----
> .../i386/amxtranspose-conjtcmmimfp16ps-2.c | 55 -------
> .../i386/amxtranspose-conjtfp16-2.c | 48 ------
> .../i386/amxtranspose-tcmmimfp16ps-2.c | 55 -------
> .../i386/amxtranspose-tcmmrlfp16ps-2.c | 55 -------
> .../i386/amxtranspose-tdpbf16ps-2.c | 53 ------
> .../i386/amxtranspose-tdpfp16ps-2.c | 55 -------
> .../i386/amxtranspose-tmmultf32ps-2.c | 51 ------
> .../i386/amxtranspose-transposed-2.c | 39 -----
> gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 -
> gcc/testsuite/gcc.target/i386/sse-12.c | 2 +-
> gcc/testsuite/gcc.target/i386/sse-13.c | 2 +-
> gcc/testsuite/gcc.target/i386/sse-14.c | 2 +-
> gcc/testsuite/gcc.target/i386/sse-22.c | 4 +-
> gcc/testsuite/gcc.target/i386/sse-23.c | 2 +-
> gcc/testsuite/lib/target-supports.exp | 11 --
> 42 files changed, 22 insertions(+), 900 deletions(-)
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-
> 2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-
> 1.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> conjtcmmimfp16ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-
> 2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> tcmmimfp16ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> tcmmrlfp16ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> tdpbf16ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> tdpfp16ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> tmmultf32ps-2.c
> delete mode 100644 gcc/testsuite/gcc.target/i386/amxtranspose-
> transposed-2.c
>
> diff --git a/gcc/common/config/i386/cpuinfo.h
> b/gcc/common/config/i386/cpuinfo.h
> index c93ea07239a..8828aa966a7 100644
> --- a/gcc/common/config/i386/cpuinfo.h
> +++ b/gcc/common/config/i386/cpuinfo.h
> @@ -1023,8 +1023,6 @@ get_available_features (struct __processor_model
> *cpu_model,
> set_feature (FEATURE_AMX_AVX512);
> if (eax & bit_AMX_TF32)
> set_feature (FEATURE_AMX_TF32);
> - if (eax & bit_AMX_TRANSPOSE)
> - set_feature (FEATURE_AMX_TRANSPOSE);
> if (eax & bit_AMX_FP8)
> set_feature (FEATURE_AMX_FP8);
> if (eax & bit_AMX_MOVRS)
> diff --git a/gcc/common/config/i386/i386-common.cc
> b/gcc/common/config/i386/i386-common.cc
> index 9e807e4b8f6..d3509e1c5cf 100644
> --- a/gcc/common/config/i386/i386-common.cc
> +++ b/gcc/common/config/i386/i386-common.cc
> @@ -134,8 +134,6 @@ along with GCC; see the file COPYING3. If not see
> (OPTION_MASK_ISA2_AMX_TILE_SET |
> OPTION_MASK_ISA2_AMX_AVX512)
> #define OPTION_MASK_ISA2_AMX_TF32_SET \
> (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_TF32)
> -#define OPTION_MASK_ISA2_AMX_TRANSPOSE_SET \
> - (OPTION_MASK_ISA2_AMX_TILE_SET |
> OPTION_MASK_ISA2_AMX_TRANSPOSE)
> #define OPTION_MASK_ISA2_AMX_FP8_SET \
> (OPTION_MASK_ISA2_AMX_TILE_SET | OPTION_MASK_ISA2_AMX_FP8)
> #define OPTION_MASK_ISA2_MOVRS_SET OPTION_MASK_ISA2_MOVRS
> @@ -303,8 +301,8 @@ along with GCC; see the file COPYING3. If not see
> (OPTION_MASK_ISA2_AMX_TILE |
> OPTION_MASK_ISA2_AMX_INT8_UNSET \
> | OPTION_MASK_ISA2_AMX_BF16_UNSET |
> OPTION_MASK_ISA2_AMX_FP16_UNSET \
> | OPTION_MASK_ISA2_AMX_COMPLEX_UNSET |
> OPTION_MASK_ISA2_AMX_AVX512_UNSET \
> - | OPTION_MASK_ISA2_AMX_TF32_UNSET |
> OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET \
> - | OPTION_MASK_ISA2_AMX_FP8_UNSET |
> OPTION_MASK_ISA2_AMX_MOVRS_UNSET)
> + | OPTION_MASK_ISA2_AMX_TF32_UNSET |
> OPTION_MASK_ISA2_AMX_FP8_UNSET \
> + | OPTION_MASK_ISA2_AMX_MOVRS_UNSET)
> #define OPTION_MASK_ISA2_AMX_INT8_UNSET
> OPTION_MASK_ISA2_AMX_INT8
> #define OPTION_MASK_ISA2_AMX_BF16_UNSET
> OPTION_MASK_ISA2_AMX_BF16
> #define OPTION_MASK_ISA2_UINTR_UNSET OPTION_MASK_ISA2_UINTR
> @@ -330,7 +328,6 @@ along with GCC; see the file COPYING3. If not see
> #define OPTION_MASK_ISA2_AVX10_2_UNSET
> OPTION_MASK_ISA2_AVX10_2
> #define OPTION_MASK_ISA2_AMX_AVX512_UNSET
> OPTION_MASK_ISA2_AMX_AVX512
> #define OPTION_MASK_ISA2_AMX_TF32_UNSET
> OPTION_MASK_ISA2_AMX_TF32
> -#define OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET
> OPTION_MASK_ISA2_AMX_TRANSPOSE
> #define OPTION_MASK_ISA2_AMX_FP8_UNSET
> OPTION_MASK_ISA2_AMX_FP8
> #define OPTION_MASK_ISA2_MOVRS_UNSET OPTION_MASK_ISA2_MOVRS
> #define OPTION_MASK_ISA2_AMX_MOVRS_UNSET
> OPTION_MASK_ISA2_AMX_MOVRS
> @@ -1396,20 +1393,6 @@ ix86_handle_option (struct gcc_options *opts,
> }
> return true;
>
> - case OPT_mamx_transpose:
> - if (value)
> - {
> - opts->x_ix86_isa_flags2 |=
> OPTION_MASK_ISA2_AMX_TRANSPOSE_SET;
> - opts->x_ix86_isa_flags2_explicit |=
> OPTION_MASK_ISA2_AMX_TRANSPOSE_SET;
> - }
> - else
> - {
> - opts->x_ix86_isa_flags2 &=
> ~OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET;
> - opts->x_ix86_isa_flags2_explicit |=
> - OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET;
> - }
> - return true;
> -
> case OPT_mamx_fp8:
> if (value)
> {
> diff --git a/gcc/common/config/i386/i386-cpuinfo.h
> b/gcc/common/config/i386/i386-cpuinfo.h
> index c73a87dbbe2..c78b10c4463 100644
> --- a/gcc/common/config/i386/i386-cpuinfo.h
> +++ b/gcc/common/config/i386/i386-cpuinfo.h
> @@ -269,8 +269,7 @@ enum processor_features
> FEATURE_AVX10_2 = 116,
> FEATURE_AMX_AVX512,
> FEATURE_AMX_TF32,
> - FEATURE_AMX_TRANSPOSE,
> - FEATURE_AMX_FP8,
> + FEATURE_AMX_FP8 = 120,
> FEATURE_MOVRS,
> FEATURE_AMX_MOVRS,
> CPU_FEATURE_MAX
> diff --git a/gcc/common/config/i386/i386-isas.h
> b/gcc/common/config/i386/i386-isas.h
> index 379bb34ef3f..fcd3ab280f5 100644
> --- a/gcc/common/config/i386/i386-isas.h
> +++ b/gcc/common/config/i386/i386-isas.h
> @@ -188,8 +188,6 @@ ISA_NAMES_TABLE_START
> ISA_NAMES_TABLE_ENTRY("amx-avx512", FEATURE_AMX_AVX512,
> P_NONE,
> "-mamx-avx512")
> ISA_NAMES_TABLE_ENTRY("amx-tf32", FEATURE_AMX_TF32, P_NONE, "-
> mamx-tf32")
> - ISA_NAMES_TABLE_ENTRY("amx-transpose", FEATURE_AMX_TRANSPOSE,
> - P_NONE, "-mamx-transpose")
> ISA_NAMES_TABLE_ENTRY("amx-fp8", FEATURE_AMX_FP8, P_NONE, "-
> mamx-fp8")
> ISA_NAMES_TABLE_ENTRY("movrs", FEATURE_MOVRS, P_NONE, "-
> mmovrs")
> ISA_NAMES_TABLE_ENTRY("amx-movrs", FEATURE_AMX_MOVRS,
> P_NONE, "-mamx-movrs")
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index a73bf9578e9..2f478e2a493 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -464,8 +464,8 @@ i[34567]86-*-* | x86_64-*-*)
> avx10_2mediaintrin.h avx10_2convertintrin.h
> avx10_2bf16intrin.h avx10_2satcvtintrin.h
> avx10_2minmaxintrin.h avx10_2copyintrin.h
> - amxavx512intrin.h amxtf32intrin.h amxtransposeintrin.h
> - amxfp8intrin.h movrsintrin.h amxmovrsintrin.h"
> + amxavx512intrin.h amxtf32intrin.h amxfp8intrin.h
> + movrsintrin.h amxmovrsintrin.h"
> ;;
> ia64-*-*)
> extra_headers=ia64intrin.h
> diff --git a/gcc/config/i386/amxmovrsintrin.h
> b/gcc/config/i386/amxmovrsintrin.h
> index 97969f894ff..019adcf3bba 100644
> --- a/gcc/config/i386/amxmovrsintrin.h
> +++ b/gcc/config/i386/amxmovrsintrin.h
> @@ -59,53 +59,6 @@ __asm__ volatile
> \
> #pragma GCC pop_options
> #endif /* __DISABLE_AMX_MOVRS__ */
>
> -#if !defined(__AMX_MOVRS__) || !defined (__AMX_TRANSPOSE__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-movrs,amx-transpose")
> -#define __DISABLE_AMX_MOVRS_TRANSPOSE__
> -#endif /* __AMX_MOVRS_TRANSPOSE__ */
> -
> -#define _tile_2rpntlvwz0rs_internal(tdst, base, stride) \
> - __asm__ volatile \
> - ("{t2rpntlvwz0rs\t(%0,%1,1), %%tmm"#tdst \
> - "|t2rpntlvwz0rs\t%%tmm"#tdst", [%0+%1*1]}" \
> - :: "r" ((const void*) (base)), "r" ((long) (stride)))
> -
> -#define _tile_2rpntlvwz0rst1_internal(tdst, base, stride) \
> - __asm__ volatile \
> - ("{t2rpntlvwz0rst1\t(%0,%1,1), %%tmm"#tdst \
> - "|t2rpntlvwz0rst1\t%%tmm"#tdst", [%0+%1*1]}" \
> - :: "r" ((const void*) (base)), "r" ((long) (stride)))
> -
> -#define _tile_2rpntlvwz1rs_internal(tdst, base, stride) \
> - __asm__ volatile \
> - ("{t2rpntlvwz1rs\t(%0,%1,1), %%tmm"#tdst \
> - "|t2rpntlvwz1rs\t%%tmm"#tdst", [%0+%1*1]}" \
> - :: "r" ((const void*) (base)), "r" ((long) (stride)))
> -
> -#define _tile_2rpntlvwz1rst1_internal(tdst, base, stride) \
> - __asm__ volatile \
> - ("{t2rpntlvwz1rst1\t(%0,%1,1), %%tmm"#tdst \
> - "|t2rpntlvwz1rst1\t%%tmm"#tdst", [%0+%1*1]}" \
> - :: "r" ((const void*) (base)), "r" ((long) (stride)))
> -
> -#define _tile_2rpntlvwz0rs(tdst, base, stride) \
> - _tile_2rpntlvwz0rs_internal(tdst, base, stride)
> -
> -#define _tile_2rpntlvwz0rst1(tdst, base, stride) \
> - _tile_2rpntlvwz0rst1_internal(tdst, base, stride)
> -
> -#define _tile_2rpntlvwz1rs(tdst, base, stride) \
> - _tile_2rpntlvwz1rs_internal(tdst, base, stride)
> -
> -#define _tile_2rpntlvwz1rst1(tdst, base, stride) \
> - _tile_2rpntlvwz1rst1_internal(tdst, base, stride)
> -
> -#ifdef __DISABLE_AMX_MOVRS_TRANSPOSE__
> -#undef __DISABLE_AMX_MOVRS_TRANSPOSE__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_MOVRS_TRANSPOSE__ */
> -
> #endif /* __x86_64__ */
>
> #endif /* _AMX_MOVRSINTRIN_H_INCLUDED */
> diff --git a/gcc/config/i386/amxtransposeintrin.h
> b/gcc/config/i386/amxtransposeintrin.h
> index f06603e4d09..6a05019d668 100644
> --- a/gcc/config/i386/amxtransposeintrin.h
> +++ b/gcc/config/i386/amxtransposeintrin.h
> @@ -21,157 +21,4 @@
> see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
> <http://www.gnu.org/licenses/>. */
>
> -#if !defined _IMMINTRIN_H_INCLUDED
> -#error "Never use <amxtransposeintrin.h> directly; include <immintrin.h>
> instead."
> -#endif
> -
> -#ifndef _AMXTRANSPOSEINTRIN_H_INCLUDED
> -#define _AMXTRANSPOSEINTRIN_H_INCLUDED
> -
> -#if !defined(__AMX_TRANSPOSE__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-transpose")
> -#define __DISABLE_AMX_TRANSPOSE__
> -#endif /* __AMX_TRANSPOSE__ */
> -
> -#if defined(__x86_64__)
> -#define _tile_transposed_internal(dst,src)
> \
> - __asm__ volatile\
> -
> ("{ttransposed\t%%tmm"#src", %%tmm"#dst"|ttransposed\t%%tmm"#dst",
> %%tmm"#src"}" ::)
> -
> -#define _tile_2rpntlvwz0_internal(dst,base,stride)
> \
> - __asm__ volatile\
> - ("{t2rpntlvwz0\t(%0,%1,1), %%tmm"#dst"|t2rpntlvwz0\t%%tmm"#dst",
> [%0+%1*1]}" \
> - :: "r" ((const void*) (base)), "r" ((long) (stride)))
> -
> -#define _tile_2rpntlvwz0t1_internal(dst,base,stride)
> \
> - __asm__ volatile\
> -
> ("{t2rpntlvwz0t1\t(%0,%1,1), %%tmm"#dst"|t2rpntlvwz0t1\t%%tmm"#dst"
> , [%0+%1*1]}" \
> - :: "r" ((const void*)(base)), "r" ((long)(stride)))
> -
> -#define _tile_2rpntlvwz1_internal(dst,base,stride)
> \
> - __asm__ volatile\
> - ("{t2rpntlvwz1\t(%0,%1,1), %%tmm"#dst"|t2rpntlvwz1\t%%tmm"#dst",
> [%0+%1*1]}" \
> - :: "r" ((const void*)(base)), "r" ((long)(stride)))
> -
> -#define _tile_2rpntlvwz1t1_internal(dst,base,stride)
> \
> - __asm__ volatile\
> -
> ("{t2rpntlvwz1t1\t(%0,%1,1), %%tmm"#dst"|t2rpntlvwz1t1\t%%tmm"#dst"
> , [%0+%1*1]}" \
> - :: "r" ((const void*)(base)), "r" ((long)(stride)))
> -
> -#define _tile_transposed(dst,src)
> \
> - _tile_transposed_internal (dst, src)
> -
> -#define _tile_2rpntlvwz0(dst,base,stride)
> \
> - _tile_2rpntlvwz0_internal (dst, base, stride)
> -
> -#define _tile_2rpntlvwz0t1(dst,base,stride)
> \
> - _tile_2rpntlvwz0t1_internal (dst, base, stride)
> -
> -#define _tile_2rpntlvwz1(dst,base,stride)
> \
> - _tile_2rpntlvwz1_internal (dst, base, stride)
> -
> -#define _tile_2rpntlvwz1t1(dst,base,stride)
> \
> - _tile_2rpntlvwz1t1_internal (dst, base, stride)
> -
> -#if !defined(__AMX_BF16__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-bf16")
> -#define __DISABLE_AMX_BF16__
> -#endif /* __AMX_BF16__ */
> -
> -#define _tile_tdpbf16ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{ttdpbf16ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst"|ttdpbf
> 16ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3"}" ::)
> -
> -#define _tile_tdpbf16ps(src1_dst,src2,src3)
> \
> - _tile_tdpbf16ps_internal (src1_dst, src2, src3)
> -
> -#ifdef __DISABLE_AMX_BF16__
> -#undef __DISABLE_AMX_BF16__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_BF16__ */
> -
> -#if !defined(__AMX_FP16__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-fp16")
> -#define __DISABLE_AMX_FP16__
> -#endif /* __AMX_FP16__ */
> -
> -#define _tile_tdpfp16ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{ttdpfp16ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst"|ttdpfp
> 16ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3"}" ::)
> -
> -#define _tile_tdpfp16ps(src1_dst,src2,src3)
> \
> - _tile_tdpfp16ps_internal (src1_dst, src2, src3)
> -
> -#ifdef __DISABLE_AMX_FP16__
> -#undef __DISABLE_AMX_FP16__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_FP16__ */
> -
> -#if !defined(__AMX_COMPLEX__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-complex")
> -#define __DISABLE_AMX_COMPLEX__
> -#endif /* __AMX_COMPLEX__ */
> -
> -#define _tile_conjtcmmimfp16ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{tconjtcmmimfp16ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst
> "|tconjtcmmimfp16ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3
> "}" ::)
> -
> -#define _tile_conjtfp16_internal(dst,src)
> \
> - __asm__ volatile\
> -
> ("{tconjtfp16\t%%tmm"#src", %%tmm"#dst"|tconjtfp16\t%%tmm"#dst", %
> %tmm"#src"}" ::)
> -
> -#define _tile_tcmmimfp16ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{ttcmmimfp16ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst"|tt
> cmmimfp16ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3"}" ::)
> -
> -#define _tile_tcmmrlfp16ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{ttcmmrlfp16ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst"|ttc
> mmrlfp16ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3"}" ::)
> -
> -#define _tile_conjtcmmimfp16ps(src1_dst,src2,src3)
> \
> - _tile_conjtcmmimfp16ps_internal (src1_dst, src2, src3)
> -
> -#define _tile_conjtfp16(dst,src)
> \
> - _tile_conjtfp16_internal (dst, src)
> -
> -#define _tile_tcmmimfp16ps(src1_dst,src2,src3)
> \
> - _tile_tcmmimfp16ps_internal (src1_dst, src2, src3)
> -
> -#define _tile_tcmmrlfp16ps(src1_dst,src2,src3)
> \
> - _tile_tcmmrlfp16ps_internal (src1_dst, src2, src3)
> -
> -#ifdef __DISABLE_AMX_COMPLEX__
> -#undef __DISABLE_AMX_COMPLEX__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_COMPLEX__ */
> -
> -#if !defined(__AMX_TF32__)
> -#pragma GCC push_options
> -#pragma GCC target("amx-tf32")
> -#define __DISABLE_AMX_TF32__
> -#endif /* __AMX_TF32__ */
> -
> -#define _tile_tmmultf32ps_internal(src1_dst,src2,src3)
> \
> - __asm__ volatile\
> -
> ("{ttmmultf32ps\t%%tmm"#src3", %%tmm"#src2", %%tmm"#src1_dst"|ttm
> multf32ps\t%%tmm"#src1_dst", %%tmm"#src2", %%tmm"#src3"}" ::)
> -
> -#define _tile_tmmultf32ps(src1_dst,src2,src3)
> \
> - _tile_tmmultf32ps_internal (src1_dst, src2, src3)
> -
> -#ifdef __DISABLE_AMX_TF32__
> -#undef __DISABLE_AMX_TF32__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_TF32__ */
> -
> -#endif /* __x86_64__ */
> -
> -#ifdef __DISABLE_AMX_TRANSPOSE__
> -#undef __DISABLE_AMX_TRANSPOSE__
> -#pragma GCC pop_options
> -#endif /* __DISABLE_AMX_TRANSPOSE__ */
> -
> -#endif /* _AMXTRANSPOSEINTRIN_H_INCLUDED */
> +#error "AMX-TRANSPOSE support has been removed since GCC15.3 and GCC
> 16."
> diff --git a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h
> index afd4ef06e9f..0663223ef71 100644
> --- a/gcc/config/i386/cpuid.h
> +++ b/gcc/config/i386/cpuid.h
> @@ -166,7 +166,6 @@
> /* AMX sub leaf (%eax == 0x1e, %ecx == 1) */
> /* %eax */
> #define bit_AMX_FP8 (1 << 4)
> -#define bit_AMX_TRANSPOSE (1 << 5)
> #define bit_AMX_TF32 (1 << 6)
> #define bit_AMX_AVX512 (1 << 7)
> #define bit_AMX_MOVRS (1 << 8)
> diff --git a/gcc/config/i386/i386-c.cc b/gcc/config/i386/i386-c.cc
> index 457aa05fca1..00374653c3c 100644
> --- a/gcc/config/i386/i386-c.cc
> +++ b/gcc/config/i386/i386-c.cc
> @@ -743,8 +743,6 @@ ix86_target_macros_internal (HOST_WIDE_INT
> isa_flag,
> def_or_undef (parse_in, "__AMX_AVX512__");
> if (isa_flag2 & OPTION_MASK_ISA2_AMX_TF32)
> def_or_undef (parse_in, "__AMX_TF32__");
> - if (isa_flag2 & OPTION_MASK_ISA2_AMX_TRANSPOSE)
> - def_or_undef (parse_in, "__AMX_TRANSPOSE__");
> if (isa_flag2 & OPTION_MASK_ISA2_AMX_FP8)
> def_or_undef (parse_in, "__AMX_FP8__");
> if (isa_flag2 & OPTION_MASK_ISA2_MOVRS)
> diff --git a/gcc/config/i386/i386-isa.def b/gcc/config/i386/i386-isa.def
> index 6fa601d73c3..a1d994c66fa 100644
> --- a/gcc/config/i386/i386-isa.def
> +++ b/gcc/config/i386/i386-isa.def
> @@ -122,7 +122,6 @@ DEF_PTA(AVX10_1)
> DEF_PTA(AVX10_2)
> DEF_PTA(AMX_AVX512)
> DEF_PTA(AMX_TF32)
> -DEF_PTA(AMX_TRANSPOSE)
> DEF_PTA(AMX_FP8)
> DEF_PTA(MOVRS)
> DEF_PTA(AMX_MOVRS)
> diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-
> options.cc
> index cad40194f17..35cba3fc48d 100644
> --- a/gcc/config/i386/i386-options.cc
> +++ b/gcc/config/i386/i386-options.cc
> @@ -264,7 +264,6 @@ static struct ix86_target_opts isa2_opts[] =
> { "-mavx10.2", OPTION_MASK_ISA2_AVX10_2 },
> { "-mamx-avx512", OPTION_MASK_ISA2_AMX_AVX512 },
> { "-mamx-tf32", OPTION_MASK_ISA2_AMX_TF32 },
> - { "-mamx-transpose", OPTION_MASK_ISA2_AMX_TRANSPOSE },
> { "-mamx-fp8", OPTION_MASK_ISA2_AMX_FP8 },
> { "-mmovrs", OPTION_MASK_ISA2_MOVRS },
> { "-mamx-movrs", OPTION_MASK_ISA2_AMX_MOVRS }
> @@ -1123,7 +1122,6 @@ ix86_valid_target_attribute_inner_p (tree fndecl,
> tree args, char *p_strings[],
> IX86_ATTR_ISA ("avx10.2", OPT_mavx10_2),
> IX86_ATTR_ISA ("amx-avx512", OPT_mamx_avx512),
> IX86_ATTR_ISA ("amx-tf32", OPT_mamx_tf32),
> - IX86_ATTR_ISA ("amx-transpose", OPT_mamx_transpose),
> IX86_ATTR_ISA ("amx-fp8", OPT_mamx_fp8),
> IX86_ATTR_ISA ("movrs", OPT_mmovrs),
> IX86_ATTR_ISA ("amx-movrs", OPT_mamx_movrs),
> diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
> index f4c89f012dd..fbd8d9ae387 100644
> --- a/gcc/config/i386/i386.h
> +++ b/gcc/config/i386/i386.h
> @@ -2485,8 +2485,8 @@ constexpr wide_int_bitmask PTA_PANTHERLAKE =
> constexpr wide_int_bitmask PTA_DIAMONDRAPIDS =
> PTA_GRANITERAPIDS_D
> | PTA_AVXIFMA | PTA_AVXNECONVERT | PTA_AVXVNNIINT16 |
> PTA_AVXVNNIINT8
> | PTA_CMPCCXADD | PTA_SHA512 | PTA_SM3 | PTA_SM4 | PTA_AVX10_2
> - | PTA_APX_F | PTA_AMX_AVX512 | PTA_AMX_FP8 | PTA_AMX_TF32 |
> PTA_AMX_TRANSPOSE
> - | PTA_MOVRS | PTA_AMX_MOVRS | PTA_USER_MSR;
> + | PTA_APX_F | PTA_AMX_AVX512 | PTA_AMX_FP8 | PTA_AMX_TF32 |
> PTA_MOVRS
> + | PTA_AMX_MOVRS | PTA_USER_MSR;
>
> constexpr wide_int_bitmask PTA_BDVER1 = PTA_64BIT | PTA_MMX |
> PTA_SSE
> | PTA_SSE2 | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_POPCNT |
> PTA_LZCNT
> diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
> index 11921765b2d..84494502345 100644
> --- a/gcc/config/i386/i386.opt
> +++ b/gcc/config/i386/i386.opt
> @@ -1362,10 +1362,6 @@ mamx-tf32
> Target Mask(ISA2_AMX_TF32) Var(ix86_isa_flags2) Save
> Support AMX-TF32 built-in functions and code generation.
>
> -mamx-transpose
> -Target Mask(ISA2_AMX_TRANSPOSE) Var(ix86_isa_flags2) Save
> -Support AMX-TRANSPOSE built-in functions and code generation.
> -
> mamx-fp8
> Target Mask(ISA2_AMX_FP8) Var(ix86_isa_flags2) Save
> Support AMX-FP8 built-in functions and code generation.
> diff --git a/gcc/config/i386/i386.opt.urls b/gcc/config/i386/i386.opt.urls
> index cce524c232e..a9bbac0ef9b 100644
> --- a/gcc/config/i386/i386.opt.urls
> +++ b/gcc/config/i386/i386.opt.urls
> @@ -605,9 +605,6 @@ UrlSuffix(gcc/x86-Options.html#index-mamx-
> avx512)
> mamx-tf32
> UrlSuffix(gcc/x86-Options.html#index-mamx-tf32)
>
> -mamx-transpose
> -UrlSuffix(gcc/x86-Options.html#index-mamx-transpose)
> -
> mamx-fp8
> UrlSuffix(gcc/x86-Options.html#index-mamx-fp8)
>
> diff --git a/gcc/config/i386/immintrin.h b/gcc/config/i386/immintrin.h
> index b195fe58d08..f5a11ff4765 100644
> --- a/gcc/config/i386/immintrin.h
> +++ b/gcc/config/i386/immintrin.h
> @@ -136,8 +136,6 @@
>
> #include <amxtf32intrin.h>
>
> -#include <amxtransposeintrin.h>
> -
> #include <amxfp8intrin.h>
>
> #include <prfchwintrin.h>
> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
> index a12855de6a6..94b76b75565 100644
> --- a/gcc/doc/extend.texi
> +++ b/gcc/doc/extend.texi
> @@ -6750,11 +6750,6 @@ Enable/disable the generation of the AMX-
> AVX512 instructions.
> @itemx no-amx-tf32
> Enable/disable the generation of the AMX-TF32 instructions.
>
> -@cindex @code{target("amx-transpose")} function attribute, x86
> -@item amx-transpose
> -@itemx no-amx-transpose
> -Enable/disable the generation of the AMX-TRANSPOSE instructions.
> -
> @cindex @code{target("amx-fp8")} function attribute, x86
> @item amx-fp8
> @itemx no-amx-fp8
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index faa49afad81..92965271463 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -1506,8 +1506,7 @@ See RS/6000 and PowerPC Options.
> -mamx-tile -mamx-int8 -mamx-bf16 -muintr -mhreset -mavxvnni -mamx-
> fp8
> -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -
> mamx-fp16
> -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mapxf
> --musermsr -mavx10.1 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-
> transpose -mmovrs
> --mamx-movrs
> +-musermsr -mavx10.1 -mavx10.2 -mamx-avx512 -mamx-tf32 -mmovrs -
> mamx-movrs
> -mcldemote -mms-bitfields -mno-align-stringops -minline-all-stringops
> -minline-stringops-dynamically -mstringop-strategy=@var{alg}
> -mkl -mwidekl
> @@ -36154,9 +36153,6 @@ preferred alignment to @option{-mpreferred-
> stack-boundary=2}.
> @opindex mamx-tf32
> @itemx -mamx-tf32
> @need 200
> -@opindex mamx-transpose
> -@itemx -mamx-transpose
> -@need 200
> @itemx -mamx-fp8
> @opindex mamx-fp8
> @need 200
> @@ -36175,9 +36171,9 @@ WAITPKG, VPCLMULQDQ, AVX512BITALG,
> MOVDIRI, MOVDIR64B, AVX512BF16, ENQCMD,
> AVX512VPOPCNTDQ, AVX512VNNI, SERIALIZE, UINTR, HRESET, AMXTILE,
> AMXINT8,
> AMXBF16, KL, WIDEKL, AVXVNNI, AVX512-FP16, AVXIFMA, AVXVNNIINT8,
> AVXNECONVERT,
> CMPCCXADD, AMX-FP16, PREFETCHI, RAOINT, AMX-COMPLEX,
> AVXVNNIINT16, SM3, SHA512,
> -SM4, APX_F, USER_MSR, AVX10.1, AVX10.2, AMX-AVX512, AMX-TF32,
> AMX-TRANSPOSE,
> -AMX-FP8, MOVRS, AMX-MOVRS or CLDEMOTE extended instruction sets.
> Each has a
> -corresponding @option{-mno-} option to disable use of these instructions.
> +SM4, APX_F, USER_MSR, AVX10.1, AVX10.2, AMX-AVX512, AMX-TF32,
> AMX-FP8, MOVRS,
> +AMX-MOVRS or CLDEMOTE extended instruction sets. Each has a
> corresponding
> +@option{-mno-} option to disable use of these instructions.
>
> These extensions are also available as built-in functions: see
> @ref{x86 Built-in Functions}, for details of the functions enabled and
> diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
> index c001e8ed683..29742e26d8b 100644
> --- a/gcc/doc/sourcebuild.texi
> +++ b/gcc/doc/sourcebuild.texi
> @@ -2698,9 +2698,6 @@ Target supports the execution of @code{amx-
> movrs} instructions.
> @item amx_tf32
> Target supports the execution of @code{amx-tf32} instructions.
>
> -@item amx_transpose
> -Target supports the execution of @code{amx-transpose} instructions.
> -
> @item amx_fp8
> Target supports the execution of @code{amx-fp8} instructions.
>
> diff --git a/gcc/testsuite/g++.dg/other/i386-2.C
> b/gcc/testsuite/g++.dg/other/i386-2.C
> index 88252ad2f57..d4c73f541ca 100644
> --- a/gcc/testsuite/g++.dg/other/i386-2.C
> +++ b/gcc/testsuite/g++.dg/other/i386-2.C
> @@ -1,5 +1,5 @@
> /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
> -/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -
> mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -
> mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -
> mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -
> mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -
> mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-
> tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -
> mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -
> mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -
> mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs
> -mamx-movrs" } */
> +/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -
> mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -
> mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -
> mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -
> mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -
> mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-
> tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -
> mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -
> mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -
> mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" }
> */
> /* { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib
> } } */
>
> /* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
> diff --git a/gcc/testsuite/g++.dg/other/i386-3.C
> b/gcc/testsuite/g++.dg/other/i386-3.C
> index a234e4faf67..e925607c486 100644
> --- a/gcc/testsuite/g++.dg/other/i386-3.C
> +++ b/gcc/testsuite/g++.dg/other/i386-3.C
> @@ -1,5 +1,5 @@
> /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
> -/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -
> mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -
> mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -
> mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -
> mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -
> mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -
> mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -
> mmovrs -mamx-movrs" } */
> +/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -
> mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -
> mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -
> mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -
> mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -
> mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -
> mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-
> movrs" } */
> /* { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib
> } } */
>
> /* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
> diff --git a/gcc/testsuite/gcc.target/i386/amx-check.h
> b/gcc/testsuite/gcc.target/i386/amx-check.h
> index 0addb5b5d8f..c43a955181c 100644
> --- a/gcc/testsuite/gcc.target/i386/amx-check.h
> +++ b/gcc/testsuite/gcc.target/i386/amx-check.h
> @@ -260,9 +260,6 @@ main ()
> #ifdef AMX_TF32
> && __builtin_cpu_supports ("amx-tf32")
> #endif
> -#ifdef AMX_TRANSPOSE
> - && __builtin_cpu_supports ("amx-transpose")
> -#endif
> #ifdef AMX_FP8
> && __builtin_cpu_supports ("amx-fp8")
> #endif
> diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
> b/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
> deleted file mode 100644
> index 0093ef7883f..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
> +++ /dev/null
> @@ -1,58 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_movrs } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-movrs -mamx-transpose -mavx512fp16 -
> mavx512bf16" } */
> -#define AMX_MOVRS
> -#define AMX_TRANSPOSE
> -#define DO_TEST test_amx_movrs_t2rpntlvwrs
> -void test_amx_movrs_t2rpntlvwrs ();
> -#include "amx-helper.h"
> -
> -#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
> -{ \
> - init_pair_tile_src (tmm_num, &src, buffer, ztype); \
> - _tile_2rpntlvwz##ztype##rs##wtype (tmm_num, buffer, _STRIDE);
> \
> -}
> -
> -void test_amx_movrs_t2rpntlvwrs ()
> -{
> - __tilecfg_u cfg;
> - __tilepair src;
> - __tile ref_0, ref_1;
> - uint8_t buffer[2048];
> - int i;
> -
> - init_tile_config (&cfg);
> -
> - for (i = 0; i < 2048; i++)
> - buffer[i] = i % 256;
> -
> - /* Check t2rpntlvwz0rs. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz1rs. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz0t1rs. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz1t1rs. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
> b/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
> index d99a97ff6ce..339550bf41b 100644
> --- a/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
> +++ b/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
> @@ -1,11 +1,7 @@
> /* { dg-do compile { target { ! ia32 } } } */
> -/* { dg-options "-O2 -mamx-movrs -mamx-transpose" } */
> +/* { dg-options "-O2 -mamx-movrs" } */
> /* { dg-final { scan-assembler "tileloaddrs\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> /* { dg-final { scan-assembler "tileloaddrst1\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0rs\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0rst1\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1rs\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1rst1\[ \\t]+\[^\n\]*\(%\[a-z0-
> 9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
> #include <immintrin.h>
>
> extern const void* base;
> @@ -20,8 +16,4 @@ void TEST()
> {
> _tile_loaddrs (TMM1, base, stride);
> _tile_loaddrst1 (TMM1, base, stride);
> - _tile_2rpntlvwz0rs (TMM0, base, stride);
> - _tile_2rpntlvwz0rst1 (TMM1, base, stride);
> - _tile_2rpntlvwz1rs (TMM2, base, stride);
> - _tile_2rpntlvwz1rst1 (TMM3, base, stride);
> }
> diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
> b/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
> index 6a339866930..6a522b5c795 100644
> --- a/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
> +++ b/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
> @@ -1,12 +1,8 @@
> /* { dg-do compile { target { ! ia32 } } } */
> /* { dg-require-effective-target masm_intel } */
> -/* { dg-options "-O2 -mamx-movrs -mamx-transpose -masm=intel" } */
> +/* { dg-options "-O2 -mamx-movrs -masm=intel" } */
> /* { dg-final { scan-assembler-times "tileloaddrs\[ \\t]%tmm\[0-9\]" 1 } } */
> /* { dg-final { scan-assembler-times "tileloaddrst1\[ \\t]%tmm\[0-9\]" 1 } }
> */
> -/* { dg-final { scan-assembler "t2rpntlvwz0rs\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0rst1\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1rs\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1rst1\[ \\t]%tmm\[0-9\]" } } */
> #include <immintrin.h>
>
> extern const void* base;
> @@ -21,8 +17,4 @@ void TEST()
> {
> _tile_loaddrs (TMM1, base, stride);
> _tile_loaddrst1 (TMM1, base, stride);
> - _tile_2rpntlvwz0rs (TMM0, base, stride);
> - _tile_2rpntlvwz0rst1 (TMM1, base, stride);
> - _tile_2rpntlvwz1rs (TMM2, base, stride);
> - _tile_2rpntlvwz1rst1 (TMM3, base, stride);
> }
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
> deleted file mode 100644
> index 2d018276af9..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-options "-O2 -mamx-transpose" } */
> -#define AMX_TRANSPOSE
> -#define DO_TEST test_amx_transpose_t2rpntlvw
> -void test_amx_transpose_t2rpntlvw ();
> -#include "amx-helper.h"
> -#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
> -{ \
> - init_pair_tile_src (tmm_num, &src, buffer, ztype); \
> - _tile_2rpntlvwz##ztype##wtype (tmm_num, buffer, _STRIDE); \
> -}
> -
> -void test_amx_transpose_t2rpntlvw ()
> -{
> - __tilecfg_u cfg;
> - __tilepair src;
> - __tile ref_0, ref_1;
> - uint8_t buffer[2048];
> - int i;
> -
> - init_tile_config (&cfg);
> -
> - for (i = 0; i < 2048; i++)
> - buffer[i] = i % 256;
> -
> - /* Check t2rpntlvwz0. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz1. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz0t1. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -
> - /* Check t2rpntlvwz1t1. */
> - init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
> - _tile_stored (0, ref_0.buf, _STRIDE);
> - _tile_stored (1, ref_1.buf, _STRIDE);
> - if (!check_pair_tile_register (&ref_0, &ref_1, &src))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
> deleted file mode 100644
> index a970f5db485..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -/* { dg-do compile { target { ! ia32 } } } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mamx-complex -mamx-
> fp16 -mamx-tf32" } */
> -/* { dg-final { scan-assembler
> "ttdpbf16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
> -/* { dg-final { scan-assembler
> "ttdpfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
> -/* { dg-final { scan-assembler
> "ttransposed\[ \\t]+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0\[ \\t]+\[^\n\]*\\(%\[a-z0-
> 9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0t1\[ \\t]+\[^\n\]*\\(%\[a-z0-
> 9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1\[ \\t]+\[^\n\]*\\(%\[a-z0-
> 9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1t1\[ \\t]+\[^\n\]*\\(%\[a-z0-
> 9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler
> "tconjtcmmimfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tm
> m1" } } */
> -/* { dg-final { scan-assembler
> "tconjtfp16\[ \\t]+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
> -/* { dg-final { scan-assembler
> "ttcmmimfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1"
> } } */
> -/* { dg-final { scan-assembler
> "ttcmmrlfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" }
> } */
> -/* { dg-final { scan-assembler
> "ttmmultf32ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } }
> */
> -#include <immintrin.h>
> -
> -extern const void* base;
> -extern const int stride;
> -
> -#define TMM0 0
> -#define TMM1 1
> -#define TMM2 2
> -#define TMM3 3
> -
> -void TEST()
> -{
> - _tile_tdpbf16ps (TMM1, TMM2, TMM3);
> - _tile_tdpfp16ps (TMM1, TMM2, TMM3);
> - _tile_transposed (TMM1, TMM2);
> - _tile_2rpntlvwz0 (TMM0, base, stride);
> - _tile_2rpntlvwz0t1 (TMM1, base, stride);
> - _tile_2rpntlvwz1 (TMM2, base, stride);
> - _tile_2rpntlvwz1t1 (TMM3, base, stride);
> - _tile_conjtcmmimfp16ps (TMM1, TMM2, TMM3);
> - _tile_conjtfp16 (TMM1, TMM2);
> - _tile_tcmmimfp16ps (TMM1, TMM2, TMM3);
> - _tile_tcmmrlfp16ps (TMM1, TMM2, TMM3);
> - _tile_tmmultf32ps (TMM1, TMM2, TMM3);
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
> deleted file mode 100644
> index 2cf73ae05df..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* { dg-do compile { target { ! ia32 } } } */
> -/* { dg-require-effective-target masm_intel } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mamx-complex -mamx-
> fp16 -mamx-tf32 -masm=intel" } */
> -/* { dg-final { scan-assembler
> "ttdpbf16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
> -/* { dg-final { scan-assembler
> "ttdpfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
> -/* { dg-final { scan-assembler
> "ttransposed\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz0t1\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler "t2rpntlvwz1t1\[ \\t]%tmm\[0-9\]" } } */
> -/* { dg-final { scan-assembler
> "tconjtcmmimfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tm
> m3" } } */
> -/* { dg-final { scan-assembler
> "tconjtfp16\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2" } } */
> -/* { dg-final { scan-assembler
> "ttcmmimfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3"
> } } */
> -/* { dg-final { scan-assembler
> "ttcmmrlfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" }
> } */
> -/* { dg-final { scan-assembler
> "ttmmultf32ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } }
> */
> -#include <immintrin.h>
> -
> -extern const void* base;
> -extern const int stride;
> -
> -void TEST()
> -{
> - _tile_tdpbf16ps (1, 2, 3);
> - _tile_tdpfp16ps (1, 2, 3);
> - _tile_transposed (1, 2);
> - _tile_2rpntlvwz0 (5, base, stride);
> - _tile_2rpntlvwz0t1 (4, base, stride);
> - _tile_2rpntlvwz1 (3, base, stride);
> - _tile_2rpntlvwz1t1 (2, base, stride);
> - _tile_conjtcmmimfp16ps (1, 2, 3);
> - _tile_conjtfp16 (1, 2);
> - _tile_tcmmimfp16ps (1, 2, 3);
> - _tile_tcmmrlfp16ps (1, 2, 3);
> - _tile_tmmultf32ps (1, 2, 3);
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-
> 2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c
> deleted file mode 100644
> index 159867d8093..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_complex } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_COMPLEX
> -#define DO_TEST test_amx_transpose_conjtcmmimfp16ps
> -void test_amx_transpose_conjtcmmimfp16ps ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_conjtcmmimfp16ps (__tile *dst, __tile *src1, __tile *src2)
> -{
> - uint16_t *src1_buf = (uint16_t *) src1->buf;
> - uint16_t *src2_buf = (uint16_t *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, k, n, t;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - for (t = 0; t < 2; t+=2)
> - dst_buf[m * N + n] +=
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1])) -
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t]));
> -}
> -
> -void test_amx_transpose_conjtcmmimfp16ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
> -
> - init_fp16_max_tile_buffer (tmp_dst_buf);
> - init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_conjtcmmimfp16ps (&dst, &src1, &src2);
> -
> - _tile_conjtcmmimfp16ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
> deleted file mode 100644
> index 710d76a2878..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_complex } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_COMPLEX
> -#define DO_TEST test_amx_transpose_conjtfp16
> -void test_amx_transpose_conjtfp16 ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_conjtfp16 (__tile *dst, __tile *src)
> -{
> - uint16_t *src_buf = (uint16_t *) src->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int M = dst->rows;
> - int N = dst->colsb / 4;
> - int i, j, t;
> -
> - for (i = 0; i < M; i++)
> - for (j = 0; j < N; j++)
> - for (t = 0; t < 2; t+=2)
> - {
> - dst_buf[i * 2 * N + 2 * j + t] = src_buf[j * 2 * M + 2 * i + t];
> - dst_buf[i * 2 * N + 2 * j + t + 1] = -src_buf[j * 2 * M + 2 * i + t +
> 1];
> - }
> -}
> -
> -void test_amx_transpose_conjtfp16 ()
> -{
> - __tilecfg_u cfg;
> - __tile src, dst, ref;
> - uint8_t tmp_dst_buf[1024];
> -
> - init_fp16_max_tile_buffer (tmp_dst_buf);
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (2, src, tmp_dst_buf);
> -
> - /* Check tconjtfp16. */
> - calc_matrix_conjtfp16 (&dst, &src);
> - _tile_conjtfp16 (1, 2);
> - _tile_stored (1, ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
> deleted file mode 100644
> index e2a0f1008ec..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_complex } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_COMPLEX
> -#define DO_TEST test_amx_transpose_tcmmimfp16ps
> -void test_amx_transpose_tcmmimfp16ps ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_tcmmimfp16ps (__tile *dst, __tile *src1, __tile *src2)
> -{
> - uint16_t *src1_buf = (uint16_t *) src1->buf;
> - uint16_t *src2_buf = (uint16_t *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, k, n, t;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - for (t = 0; t < 2; t+=2)
> - dst_buf[m * N + n] +=
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1])) +
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t]));
> -}
> -
> -void test_amx_transpose_tcmmimfp16ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
> -
> - init_fp16_max_tile_buffer (tmp_dst_buf);
> - init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_tcmmimfp16ps (&dst, &src1, &src2);
> -
> - _tile_tcmmimfp16ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
> deleted file mode 100644
> index b09186c49ee..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_complex } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_COMPLEX
> -#define DO_TEST test_amx_transpose_tcmmrlfp16ps
> -void test_amx_transpose_tcmmrlfp16ps ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_tcmmrlfp16ps (__tile *dst, __tile *src1, __tile *src2)
> -{
> - uint16_t *src1_buf = (uint16_t *) src1->buf;
> - uint16_t *src2_buf = (uint16_t *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, k, n, t;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - for (t = 0; t < 2; t+=2)
> - dst_buf[m * N + n] +=
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t])) -
> - (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
> - make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1]));
> -}
> -
> -void test_amx_transpose_tcmmrlfp16ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
> -
> - init_fp16_max_tile_buffer (tmp_dst_buf);
> - init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_tcmmrlfp16ps (&dst, &src1, &src2);
> -
> - _tile_tcmmrlfp16ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
> deleted file mode 100644
> index 6a3226ba051..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_bf16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mavx512bf16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_BF16
> -#define DO_TEST test_amx_transpose_tdpbf16ps
> -void test_amx_transpose_tdpbf16ps ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_tdpbf16ps(__tile *dst, __tile *src1, __tile *src2)
> -{
> - uint16_t *src1_buf = (uint16_t *) src1->buf;
> - uint16_t *src2_buf = (uint16_t *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, k, n, t;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - for (t = 0; t < 2; t+=2)
> - dst_buf[m * N + n] +=
> - (make_bf16_f32 (src1_buf[k * 2 * M + 2 * m + t]) *
> - make_bf16_f32 (src2_buf[k * 2 * N + 2 * n + t])) +
> - (make_bf16_f32 (src1_buf[k * 2 * M + 2 * m + t + 1]) *
> - make_bf16_f32 (src2_buf[k * 2 * N + 2 * n + t + 1]));
> -}
> -
> -void test_amx_transpose_tdpbf16ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024];
> -
> - init_bf16_max_tile_buffer (tmp_dst_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_tdpbf16ps (&dst, &src1, &src2);
> -
> - _tile_tdpbf16ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_float_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
> deleted file mode 100644
> index 83c37159762..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_fp16 } */
> -/* { dg-require-effective-target avx512fp16 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-fp16 -mavx512fp16" } */
> -#define AMX_TRANSPOSE
> -#define AMX_FP16
> -#define DO_TEST test_amx_transpose_tdpfp16ps
> -void test_amx_transpose_tdpfp16ps ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_tdpfp16ps(__tile *dst, __tile *src1, __tile *src2)
> -{
> - uint16_t *src1_buf = (uint16_t *) src1->buf;
> - uint16_t *src2_buf = (uint16_t *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, k, n, t;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - for (t = 0; t < 2; t+=2)
> - dst_buf[m * N + n] +=
> - (make_fp16_f32 (src1_buf[k * 2 * M + 2 * m + t]) *
> - make_fp16_f32 (src2_buf[k * 2 * N + 2 * n + t])) +
> - (make_fp16_f32 (src1_buf[k * 2 * M + 2 * m + t + 1]) *
> - make_fp16_f32 (src2_buf[k * 2 * N + 2 * n + t + 1]));
> -}
> -
> -void test_amx_transpose_tdpfp16ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
> -
> - init_fp16_max_tile_buffer (tmp_dst_buf);
> - init_fp16_max_tile_zero_buffer(tmp_dst_zero_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_tdpfp16ps (&dst, &src1, &src2);
> -
> - _tile_tdpfp16ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_float_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
> deleted file mode 100644
> index 44166c17903..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-require-effective-target amx_tf32 } */
> -/* { dg-options "-O2 -mamx-transpose -mamx-tf32" } */
> -#define AMX_TRANSPOSE
> -#define AMX_TF32
> -#define DO_TEST test_amx_transpose_tmmultf32ps
> -void test_amx_transpose_tmmultf32ps();
> -#include "amx-helper.h"
> -
> -void calc_matrix_tmmultf32ps(__tile *dst, __tile *src1, __tile *src2)
> -{
> - float *src1_buf = (float *) src1->buf;
> - float *src2_buf = (float *) src2->buf;
> - float *dst_buf = (float *) dst->buf;
> -
> - int K = src1->rows;
> - int M = src1->colsb / 4;
> - int N = src2->colsb / 4;
> - int m, n, k;
> -
> - for (m = 0; m < M; m++)
> - for (k = 0; k < K; k++)
> - for (n = 0; n < N; n++)
> - dst_buf[m * N + n] +=
> - zero_lower_mantissa_bits_fp32 (silence_snan_fp32 (src1_buf[k * M +
> m])) *
> - zero_lower_mantissa_bits_fp32 (silence_snan_fp32 (src2_buf[k * N +
> n]));
> -
> -}
> -
> -void test_amx_transpose_tmmultf32ps ()
> -{
> - __tilecfg_u cfg;
> - __tile dst, dst_ref, src1, src2;
> - uint8_t tmp_dst_buf[1024];
> -
> - init_fp32_max_tile_buffer (tmp_dst_buf);
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
> - init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
> -
> - calc_matrix_tmmultf32ps (&dst, &src1, &src2);
> -
> - _tile_tmmultf32ps (1, 2, 3);
> - _tile_stored (1, dst_ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&dst_ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
> b/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
> deleted file mode 100644
> index 73c709cdc10..00000000000
> --- a/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -/* { dg-do run { target { ! ia32 } } } */
> -/* { dg-require-effective-target amx_transpose } */
> -/* { dg-options "-O2 -mamx-transpose" } */
> -#define AMX_TRANSPOSE
> -#define DO_TEST test_amx_transpose_transposed
> -void test_amx_transpose_transposed ();
> -#include "amx-helper.h"
> -
> -void calc_matrix_ttransposed (__tile *dst, __tile *src)
> -{
> - uint32_t *src_buf = (uint32_t *) src->buf;
> - uint32_t *dst_buf = (uint32_t *) dst->buf;
> -
> - int M = src->rows;
> - int N = src->colsb / 4;
> - int i, j;
> -
> - for (i = 0; i < M; i++)
> - for (j = 0; j < N; j++)
> - dst_buf[j * M + i] = (uint32_t) src_buf[i * N + j];
> -}
> -
> -void test_amx_transpose_transposed ()
> -{
> - __tilecfg_u cfg;
> - __tile src, dst, ref;
> -
> - init_tile_config (&cfg);
> - init_tile_reg_and_src (1, dst);
> - init_tile_reg_and_src (2, src);
> -
> - /* Check ttransposed. */
> - calc_matrix_ttransposed (&dst, &src);
> - _tile_transposed (1, 2);
> - _tile_stored (1, ref.buf, _STRIDE);
> -
> - if (!check_tile_register (&ref, &dst))
> - abort ();
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/funcspec-56.inc
> b/gcc/testsuite/gcc.target/i386/funcspec-56.inc
> index e462eada0ba..3d9af7acec6 100644
> --- a/gcc/testsuite/gcc.target/i386/funcspec-56.inc
> +++ b/gcc/testsuite/gcc.target/i386/funcspec-56.inc
> @@ -90,7 +90,6 @@ extern void test_user_msr (void)
> __attribute__((__target__("usermsr")));
> extern void test_avx10_2 (void)
> __attribute__((__target__("avx10.2")));
> extern void test_amx_avx512 (void)
> __attribute__((__target__("amx-avx512")));
> extern void test_amx_tf32 (void)
> __attribute__((__target__("amx-tf32")));
> -extern void test_amx_transpose (void)
> __attribute__((__target__("amx-transpose")));
> extern void test_amx_fp8 (void)
> __attribute__((__target__("amx-
> fp8")));
> extern void test_movrs (void)
> __attribute__((__target__("movrs")));
> extern void test_amx_movrs (void)
> __attribute__((__target__("amx-movrs")));
> @@ -185,7 +184,6 @@ extern void test_no_user_msr (void)
> __attribute__((__target__("no-usermsr")));
> extern void test_no_avx10_2 (void)
> __attribute__((__target__("no-avx10.2")));
> extern void test_no_amx_avx512 (void)
> __attribute__((__target__("no-amx-avx512")));
> extern void test_no_amx_tf32 (void)
> __attribute__((__target__("no-amx-tf32")));
> -extern void test_no_amx_transpose (void)
> __attribute__((__target__("no-amx-transpose")));
> extern void test_no_amx_fp8 (void)
> __attribute__((__target__("no-
> amx-fp8")));
> extern void test_no_movrs (void)
> __attribute__((__target__("no-movrs")));
> extern void test_no_amx_movrs (void)
> __attribute__((__target__("no-amx-movrs")));
> diff --git a/gcc/testsuite/gcc.target/i386/sse-12.c
> b/gcc/testsuite/gcc.target/i386/sse-12.c
> index cabccb075d6..fc406b0a3de 100644
> --- a/gcc/testsuite/gcc.target/i386/sse-12.c
> +++ b/gcc/testsuite/gcc.target/i386/sse-12.c
> @@ -3,7 +3,7 @@
> popcntintrin.h gfniintrin.h and mm_malloc.h are usable
> with -O -std=c89 -pedantic-errors. */
> /* { dg-do compile } */
> -/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -
> mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -
> mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -
> mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -
> mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -
> mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-
> complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512
> -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
> +/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow
> -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -
> mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -
> mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -
> mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -
> mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-
> complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512
> -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
>
> #include <x86intrin.h>
>
> diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c
> b/gcc/testsuite/gcc.target/i386/sse-13.c
> index 189e19e7780..75419566ef6 100644
> --- a/gcc/testsuite/gcc.target/i386/sse-13.c
> +++ b/gcc/testsuite/gcc.target/i386/sse-13.c
> @@ -1,5 +1,5 @@
> /* { dg-do compile } */
> -/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -
> msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -
> mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -
> mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -
> mxsaves -mclflushopt -mavx512vp2intersect -mclwb -mmwaitx -mclzero -
> mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -
> mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -
> mmovrs -mamx-movrs" } */
> +/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -
> msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -
> mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -
> mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -
> mxsaves -mclflushopt -mavx512vp2intersect -mclwb -mmwaitx -mclzero -
> mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -
> mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -
> msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-
> movrs" } */
> /* { dg-add-options bind_pic_locally } */
>
> #include <mm_malloc.h>
> diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c
> b/gcc/testsuite/gcc.target/i386/sse-14.c
> index f3b7c112b2d..1e86c752778 100644
> --- a/gcc/testsuite/gcc.target/i386/sse-14.c
> +++ b/gcc/testsuite/gcc.target/i386/sse-14.c
> @@ -1,5 +1,5 @@
> /* { dg-do compile } */
> -/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -
> msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -
> mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -
> mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -
> mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -
> mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-
> complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512
> -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
> +/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -
> msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -
> mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -
> mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -
> mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -
> mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -
> mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -
> mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-
> complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512
> -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
> /* { dg-add-options bind_pic_locally } */
>
> #include <mm_malloc.h>
> diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c
> b/gcc/testsuite/gcc.target/i386/sse-22.c
> index 0cb0368cf4f..418fe23e816 100644
> --- a/gcc/testsuite/gcc.target/i386/sse-22.c
> +++ b/gcc/testsuite/gcc.target/i386/sse-22.c
> @@ -103,7 +103,7 @@
>
>
> #ifndef DIFFERENT_PRAGMAS
> -#pragma GCC target
> ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tb
> m,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,gfni,avx5
> 12vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-
> fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-
> avx512,amx-tf32,amx-transpose,amx-fp8,movrs,amx-movrs")
> +#pragma GCC target
> ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tb
> m,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,gfni,avx5
> 12vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-
> fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-
> avx512,amx-tf32,amx-fp8,movrs,amx-movrs")
> #endif
>
> /* Following intrinsics require immediate arguments. They
> @@ -220,7 +220,7 @@ test_4 (_mm_cmpestrz, int, __m128i, int, __m128i,
> int, 1)
>
> /* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F/SHA) */
> #ifdef DIFFERENT_PRAGMAS
> -#pragma GCC target
> ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,sha,gfni,avx512vp2intersect,serialize,tsxld
> trk,amx-tile,amx-int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-
> fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-
> avx512,amx-tf32,amx-transpose,amx-fp8,movrs,amx-movrs")
> +#pragma GCC target
> ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,sha,gfni,avx512vp2intersect,serialize,tsxld
> trk,amx-tile,amx-int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-
> fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-
> avx512,amx-tf32,amx-fp8,movrs,amx-movrs")
> #endif
> #include <immintrin.h>
> test_1 (_cvtss_sh, unsigned short, float, 1)
> diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c
> b/gcc/testsuite/gcc.target/i386/sse-23.c
> index 95db1f78aac..f9b0613fce8 100644
> --- a/gcc/testsuite/gcc.target/i386/sse-23.c
> +++ b/gcc/testsuite/gcc.target/i386/sse-23.c
> @@ -895,6 +895,6 @@
> #define __builtin_ia32_minmaxsh_mask_round(A, B, C, D, E, F)
> __builtin_ia32_minmaxsh_mask_round (A, B, 100, D, E, 4)
> #define __builtin_ia32_minmaxss_mask_round(A, B, C, D, E, F)
> __builtin_ia32_minmaxss_mask_round (A, B, 100, D, E, 4)
>
> -#pragma GCC target
> ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tb
> m,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,xsav
> ec,xsaves,clflushopt,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,vpclmulqdq,pconfi
> g,wbnoinvd,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-
> int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-
> fp16,prefetchi,raoint,amx-
> complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-
> transpose,amx-fp8,movrs,amx-movrs")
> +#pragma GCC target
> ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tb
> m,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,xsav
> ec,xsaves,clflushopt,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,vpclmulqdq,pconfi
> g,wbnoinvd,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-
> int8,amx-
> bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-
> fp16,prefetchi,raoint,amx-
> complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-
> fp8,movrs,amx-movrs")
>
> #include <x86intrin.h>
> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-
> supports.exp
> index 1acfb373beb..4ee8d12362d 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -11238,17 +11238,6 @@ proc check_effective_target_amx_tf32 { } {
> } "-mamx-tf32" ]
> }
>
> -# Return 1 if amx-transpose instructions can be compiled.
> -proc check_effective_target_amx_transpose { } {
> - return [check_no_compiler_messages amx_transpose object {
> - void
> - foo ()
> - {
> - __asm__ volatile ("ttransposed\t%%tmm1, %%tmm2" ::);
> - }
> - } "-mamx-transpose" ]
> -}
> -
> # Return 1 if amx-fp8 instructions can be compiled.
> proc check_effective_target_amx_fp8 { } {
> return [check_no_compiler_messages amx_fp8 object {
> --
> 2.31.1