]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: i386: Disable AVX512BW/DQ tests with Solaris/x86 as [PR123415]
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Mon, 12 Jan 2026 08:15:16 +0000 (09:15 +0100)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Mon, 12 Jan 2026 08:15:16 +0000 (09:15 +0100)
Several AVX512BW and AVX512DQ tests FAIL on Solaris/x86 with the native
assembler.  As detailed in the PR, this is for two reasons:

* Due to a misunderstanding, %k0 isn't accepted as source or destination
  register of some insns.

* {sae} is considered implicit for some insns, so specifying it
  explicitly was deemed unnecessary.

It's unclear if and when this will be fixed, so avx512bw and avx512dq
tests are disabled for now.

Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.

2025-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

gcc/testsuite:
PR target/123415
* lib/target-supports.exp (check_effective_target_avx512dq):
Disable with Solaris/x86 as.
(check_effective_target_avx512bw): Likewise.

gcc/testsuite/lib/target-supports.exp

index 46c9b624254fce62ee869dc3ee4e3a3e11fb512a..2b450669c3d33f1e8aa4d937135a094857b4cebe 100644 (file)
@@ -11688,6 +11688,11 @@ proc check_effective_target_sha { } {
 
 # Return 1 if avx512dq instructions can be compiled.
 proc check_effective_target_avx512dq { } {
+    # PR target/123415: In addition to the %k0 issue also affecting avx512bw,
+    # Solaris/x86 as doesn't accept {sae} syntax.
+    if { [istarget *-*-solaris2*] && ![check_effective_target_gas] } {
+       return 0;
+    }
     return [check_no_compiler_messages avx512dq object {
        typedef long long __v8di __attribute__ ((__vector_size__ (64)));
        __v8di
@@ -11703,6 +11708,11 @@ proc check_effective_target_avx512dq { } {
 
 # Return 1 if avx512bw instructions can be compiled.
 proc check_effective_target_avx512bw { } {
+    # PR target/123415: Solaris/x86 doesn't accept %k0 as source/destination
+    # in some cases.
+    if { [istarget *-*-solaris2*] && ![check_effective_target_gas] } {
+       return 0;
+    }
     return [check_no_compiler_messages avx512bw object {
        typedef short __v32hi __attribute__ ((__vector_size__ (64)));
        __v32hi