Landing: f5f265263dc9
Project / Subsystem
gcc / i386
Date
2026-10-06
Author
Jakub Jelinek
Commit
f5f265263dc9faf5cecbe67f15eb7f5c4f85f7d4
Source
github
Perf win
Yes
Breaking
No
All attributes
- project
- gcc
- subsystem
- i386
- patch_id
- —
- commit_hash
- f5f265263dc9faf5cecbe67f15eb7f5c4f85f7d4
- source_type
- github
- headline
- i386: Use F16C/AVX512VL for _Float16 to double conversion
- tldr
- Enables faster _Float16 to double conversions on x86 using F16C/AVX512VL, avoiding libgcc calls.
- author
- Jakub Jelinek
- outcome
- committed
- performance_win
- true
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • i386
- • float16
- • optimization
- • avx
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-10-06T00:00:00.000Z
This commit enables the use of the F16C and AVX512VL extensions for converting _Float16 (half-precision float) to _Float64 (double-precision float) on i386 architectures. Previously, without the AVX512FP16 instruction set, GCC would emit a call to a libgcc helper function. Now, for processors supporting F16C or AVX512VL, GCC emits a sequence of vcvtph2ps (half-precision to single-precision) and vcvtss2sd (single-precision to double-precision) instructions. This provides a significant performance improvement by avoiding the overhead of a function call.