Author: Gareth McCaughan
Date: 16:39:52 09/22/01
Go up one level in this thread
Eugene Nalimov wrote: > I believe explanation is even simpler. Of course it all depend on > the compiler, > but probably for the code > (x == y) & (u == w) > it generated something like > t1 = 1 > if (x == y) goto L1 > t1 = 0 > L1: > t2 = 1 > if (u == w) goto L2 > t2 = 0 > L2: > t3 = t1 & t2 > ... > So you have *both* mispredicted branches and memory accesses. Someone should teach it to generate (if that's in a boolean context) t3 = (x^y) | (u^w) instead. Three instructions, no branches. (It will then need to reverse the sense of the conditional, but that's not hard.) -- g
This page took 0 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.