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.

Reply via email to