Tag: 分支预测

如何制作无网段代码?

与此答案相关: https : //stackoverflow.com/a/11227902/4714970 在上面的答案中,提到了如何通过避免分支来避免分支预测失败。 用户通过替换以下内容来演示: if (data[c] >= 128) { sum += data[c]; } 附: int t = (data[c] – 128) >> 31; sum += ~t & data[c]; 这两个是等价的(对于特定的数据集,不是严格等同的)? 在类似的情况下,我可以采取哪些一般方法来做类似的事情? 它总是通过使用>>和~ ?