Landing: c96589414eeb

Project / Subsystem

gcc / i386

Date

2026-05-15

Author

Jakub Jelinek

Commit

c96589414eeb0e46d9fe9cc1d562e048230b5f67

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
i386
patch_id
commit_hash
c96589414eeb0e46d9fe9cc1d562e048230b5f67
source_type
github
headline
Fixes handling of IEEE min/max instructions on x86.
tldr
GCC's x86 backend now correctly handles IEEE min/max instructions, ensuring proper register usage and preventing incorrect code generation.
author
Jakub Jelinek
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • x86
  • code generation
  • floating point
  • bugfix
discussion_id_link
bugzilla_pr
date
2026-05-15T00:00:00.000Z

GCC’s x86 backend had an issue with the minmax<mode>3_4 pattern for IEEE min/max instructions, where the memory operand was incorrectly placed in the register operand position during splitting. This commit forces the relevant operand into a register to fix the issue, which prevents incorrect code generation. A new test case, gcc.target/i386/pr125308.c, validates this fix.