On Wednesday, 14 June 2023 at 12:35:43 UTC, Cecil Ward wrote:
I have just noticed a bug in the latest release of GDC that targets x86-64. For example GDC 12.3 and above versions too, running on X86-64, targeting self. This was built with:
 -O3 -frelease -march=alderlake


What leads you to believe that it is buggy?

Generated code is:

   je L1
   jbe L1


What I see is the first instruction is going to relate to this condition.

    if ( unlikely( p == 1 ) ) return x;

Then the next instruction is the condition in the following for-loop.

    for ( exp_ui_t i = p; i > 1; i >>= 1 )

Redundant jump? Yes, arguably. Leads to wrong runtime? Doesn't look that way.

Reply via email to