Landing: efb0fdf9f146

Project / Subsystem

gcc / i386

Date

2026-05-04

Author

Uros Bizjak

Commit

efb0fdf9f1464b0b6cd8e8725bb4c7765bc20349

Source

github

Perf win

Yes

Breaking

No

All attributes

project
gcc
subsystem
i386
patch_id
commit_hash
efb0fdf9f1464b0b6cd8e8725bb4c7765bc20349
source_type
github
headline
x86: Improve code generation by relaxing predicates in BT splitters.
tldr
The x86 backend now allows wider forms of operands for the BT (bit test) instruction, improving code generation and enabling better instruction propagation.
author
Uros Bizjak
outcome
committed
performance_win
true
breaking_change
false
series_id
series_parts
[]
tags
  • i386
  • code generation
  • optimization
discussion_id_link
bugzilla_pr
date
2026-05-04T00:00:00.000Z

The x86 backend now relaxes predicates in BT splitters, allowing QImode subregs of AND results, and memory operands for the BT base operand. This change increases combine opportunities and enables better insn propagation, resulting in faster code. The register allocator can also reload a memory operand into a register, satisfying BT pattern constraints if needed.