GCC Newspaper
JUNE 15, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
i386

i386: Remove TARGET_SHIFT1 Tuning Feature

The `TARGET_SHIFT1` tuning feature for i386 is removed, simplifying shift instruction encoding.

The TARGET_SHIFT1 tuning feature for i386 is now removed. GNU as now automatically encodes “sal $1, reg” using the shorter implicit-count-1 form. The compiler-side TARGET_SHIFT1 / X86_TUNE_SHIFT1 logic is redundant. Affected shift instruction patterns will emit the explicit-immediate form, and rely on the assembler to produce the optimal encoding.

In Details

This commit removes TARGET_SHIFT1 and X86_TUNE_SHIFT1 from config/i386/. All shift patterns now unconditionally emit the explicit-immediate form, relying on the assembler for optimal encoding. This change simplifies the instruction selection patterns and length_immediate attributes. Architecture maintainers should be aware of this simplification when examining shift instruction encodings.

For Context

Compilers often have architecture-specific tuning options to optimize code generation for particular processor families. This commit removes a tuning feature related to shift instructions on i386 architecture. Modern assemblers automatically choose the most efficient encoding for shift instructions, so the compiler no longer needs to handle this optimization. Simplifying the compiler's code in this way makes it easier to maintain and reduces the potential for bugs.

Filed Under: i386optimizationassembler