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.