https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127083
Bug ID: 127083
Summary: gcc.target/i386/truncsfbf-1.c etc. FAIL
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
Target Milestone: ---
Target: i386-pc-solaris2.11, x86_64-pc-solaris2.11
Several of the new gcc.target/i386/truncsfbf-?.c tests FAIL on Solaris/x86:
* With both as and gas:
FAIL: gcc.target/i386/truncsfbf-1.c check-function-bodies foo
The difference between the Linux and Solaris versions is like
--- lx/truncsfbf-1.s.m32 2026-08-26 11:11:44.917926445 +0200
+++ truncsfbf-1.s.m32 2026-08-26 11:08:47.751837863 +0200
@@ -15,11 +15,10 @@
- cmove %ecx, %eax
+ cmovl.e %ecx, %eax
Fixed in the attached partial patch.
FAIL: gcc.target/i386/truncsfbf-2.c execution test
bf16 -> float failed: 14, 9.999999e-39
bf16 -> float failed: 15, -9.999999e-39
bf16 -> float failed: 16, 1.170903e-38
bf16 -> float failed: 17, -1.170903e-38
bf16 -> float failed: 18, 1.175494e-38
bf16 -> float failed: 19, -1.175494e-38
bf16 -> float failed: 20, 1.170902e-38
bf16 -> float failed: 21, 4.999295e-39
bf16 -> float failed: 22, 1.175494e-38
* With as only:
FAIL: gcc.target/i386/truncsfbf-5.c (test for excess errors)
UNRESOLVED: gcc.target/i386/truncsfbf-5.c compilation failed to produce
executable
Assembler: truncsfbf-5.c
"/var/tmp//cc3VpOdd.s", line 7 : Illegal usage of '}'
"/var/tmp//cc3VpOdd.s", line 7 : Illegal mnemonic
Near line: " {vex} vcvtneps2bf16 %xmm0, %xmm0"
"/var/tmp//cc3VpOdd.s", line 7 : Syntax error
Near line: " {vex} vcvtneps2bf16 %xmm0, %xmm0"
"/var/tmp//cc3VpOdd.s", line 7 : Syntax error
Near line: " {vex} vcvtneps2bf16 %xmm0, %xmm0"
Fixed by requiring avxneconvert as in the attached patch.
FAIL: gcc.target/i386/truncsfbf-6.c (test for excess errors)
UNRESOLVED: gcc.target/i386/truncsfbf-6.c compilation failed to produce
executable
Excess errors:
Assembler: truncsfbf-6.c
"/var/tmp//ccsZrqlb.s", line 7 : Illegal mnemonic
Near line: " vcvtneps2bf16 %xmm0, %xmm0"
"/var/tmp//ccsZrqlb.s", line 7 : Syntax error
It seems the test needs to require both avx512vl and avx512bf16, but there
seems to be no effective target for the latter.