/* { dg-do compile } */ /* { dg-options "-mtune=generic -O2" } */ typedef unsigned char uint8_t; typedef unsigned int uint32_t; unsigned cvt_to_2digit(uint8_t i, uint8_t base) { return ((i / base) | (uint32_t)(i % base)<<8); } unsigned cvt_to_2digit_ascii(uint8_t i) { return cvt_to_2digit(i, 10) + 0x0a3030; } /* { dg-final { scan-assembler-times "lea.\t\\(%\[0-9a-z\]+,%\[0-9a-z\]+,4" 3 } } */ /* { dg-final { scan-assembler-times "lea.\t\\(%\[0-9a-z\]+,%\[0-9a-z\]+,8" 1 } } */