Computer Chess Club Archives


Search

Terms

Messages

Subject: question about branchless code

Author: Uri Blass

Date: 11:04:16 02/26/03


I had the following code in my program

do
{
...
if (info[target]==EMPTA)
  target+=8;
else
  target=64;
}
while (target<64)

I found that changing it to else break did not do my program faster.

I think that with break I have branches and without break the compiler can
translate it to

target=((info[target]==EMPTA)?target+8:64);

My questions are
1)How can I write the code as branchless code without target=64 that is a waste
of time?

2)I understood from previous discussion that for some reason ? is considered
branchless code.
What is the reason for it.

It seems to me that using ? is the same as using if.
If it is not the case then what is the difference?

Uri



This page took 0.02 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.