标签: if-statement compiler-optimization
我得到了以下计算:
if (x==0) x=1.0; Y = x * A
任何想法如何避免" if"通过使用一些数学钳位/步进函数进行分支。
答案 0 :(得分:1)
Y=((x==0)+(x!=0)*x)*A;
icc -O3在没有jmp(gcc / llvm没有)的情况下为x86-64编译它(用https://gcc.godbolt.org检查)。