https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66822
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- X86_TUNE_USE_BT also reduces code size: [hjl@gnu-tools-1 pr66822]$ cat y.i void bar (void); void foo (int x) { if (x != 2 && x != 3 && x != 10 && x != 11 && x != 17 && x != 18 && x != 23) bar (); } [hjl@gnu-tools-1 pr66822]$ make y.o /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 -m32 -miamcu -mtune=iamcu -S -o y.s y.i /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 -m32 -miamcu -mtune=iamcu -c -o y.o y.s rm y.s [hjl@gnu-tools-1 pr66822]$ objdump -dwr y.o y.o: file format elf32-i386 Disassembly of section .text: 00000000 <foo>: 0: 83 f8 17 cmp $0x17,%eax 3: 76 0b jbe 10 <foo+0x10> 5: e9 fc ff ff ff jmp 6 <foo+0x6> 6: R_386_PC32 bar a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 10: ba 0c 0c 86 00 mov $0x860c0c,%edx 15: 88 c1 mov %al,%cl 17: d3 ea shr %cl,%edx 19: 83 e2 01 and $0x1,%edx 1c: 74 e7 je 5 <foo+0x5> 1e: c3 ret [hjl@gnu-tools-1 pr66822]$ /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 -m32 -miamcu -mtune=iamcu -c y.i -mtune-ctrl=use_bt [hjl@gnu-tools-1 pr66822]$ objdump -dwr y.o y.o: file format elf32-i386 Disassembly of section .text: 00000000 <foo>: 0: 83 f8 17 cmp $0x17,%eax 3: 76 0b jbe 10 <foo+0x10> 5: e9 fc ff ff ff jmp 6 <foo+0x6> 6: R_386_PC32 bar a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 10: ba 0c 0c 86 00 mov $0x860c0c,%edx 15: 0f a3 c2 bt %eax,%edx 18: 73 eb jae 5 <foo+0x5> 1a: c3 ret [hjl@gnu-tools-1 pr66822]$