https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117081
--- Comment #16 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (In reply to H.J. Lu from comment #15) > r15-7400-gd3ff498c478ace gave > > $ cat x.c > int f (int); > int > advance (int dz) > { > if (dz > 0) > return (dz + dz) * dz; > else > return dz * f (dz); > } > [hjl@gnu-tgl-3 pr111673]$ make x.o > /export/build/gnu/tools-build/gcc-gitlab-debug/build-x86_64-linux/gcc/xgcc > -B/export/build/gnu/tools-build/gcc-gitlab-debug/build-x86_64-linux/gcc/ -O2 > -c -o x.o x.c > $ objdump -dw x.o > > x.o: file format elf64-x86-64 > > > Disassembly of section .text: > > 0000000000000000 <advance>: > 0: 85 ff test %edi,%edi > 2: 7e 0c jle 10 <advance+0x10> > 4: 0f af ff imul %edi,%edi > 7: 8d 04 3f lea (%rdi,%rdi,1),%eax > a: c3 ret > b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) > 10: 53 push %rbx > 11: 89 fb mov %edi,%ebx > 13: e8 00 00 00 00 call 18 <advance+0x18> > 18: 0f af c3 imul %ebx,%eax > 1b: 5b pop %rbx > 1c: c3 ret > $ > > Does it look OK? It looks reasonable.