Comment on Your code is fast if you're luckyparentComments−tredre32moThe ternary isn't guaranteed to be branchless. In your case it should almost always be on a modern compiler, but it really shouldn't be present in what one would call branchless code.−xyzsparetimexyz2moDoes any standard library have a glsl-like select(condition, true_val, false_val) that is more or less guaranteed to correspond to a csel?−misev2moYou could rewrite it to int* ptr = ((v != 0) * lwr) + ((v == 0) * rwr); I doubt it would be faster than the ternary though.
Comments
The ternary isn't guaranteed to be branchless. In your case it should almost always be on a modern compiler, but it really shouldn't be present in what one would call branchless code.
Does any standard library have a glsl-like select(condition, true_val, false_val) that is more or less guaranteed to correspond to a csel?
You could rewrite it to
I doubt it would be faster than the ternary though.