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.