GCC Newspaper
JULY 29, 2026
Date
/
Architectures
Components
Topics
News & Policy
avr Performance Win

AVR: Optimize __muldi3_6 for faster execution.

AVR libgcc function __muldi3_6 optimized for a one-cycle speedup in common cases.

The AVR libgcc function __muldi3_6 has been optimized to save one CPU cycle. This is achieved by altering the sequence of operations, specifically in cases where a conditional branch is not taken, resulting in a net performance improvement for 64-bit multiplication operations on AVR microcontrollers.

In Details

The __muldi3_6 function in libgcc for AVR has been tweaked to improve performance. The change replaces a conditional branch (brcc) with unconditional additions, saving a cycle when the carry flag is not set after the __umulhisi3 call. This optimization targets the 64-bit multiplication routine for the AVR architecture.

For Context
libgcc
The GCC runtime library, providing essential functions like integer division, 64-bit arithmetic, and exception handling that are not directly generated by the compiler's instruction selection.
__muldi3_6
A specific function within libgcc for the AVR architecture that performs a 64-bit by 32-bit signed multiplication.
AVR
A family of microcontrollers from Atmel (now Microchip Technology) widely used in embedded systems. GCC supports compilation for various AVR devices.
Filed Under: avroptimizationlibgccperformance