← Back to context Comment by andrepd 2 months ago This impl is mentioned in TFA.. It's much slower and includes branches. 6 comments andrepd Reply hoten 2 months ago I'd expect even without optimizations on, there wouldn't be branches in the output for that code. kragen 2 months ago There are, even with optimizations on. You could have checked: https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename...I didn't find any way to get a compiler to generate a branchless version. I tried clang and GCC, both for amd64, with -O0, -O5, -Os, and for clang, -Oz. mmozeiko 2 months ago If you change logic and/or to bitwise and/or then it'll be branchless. 3 replies →
hoten 2 months ago I'd expect even without optimizations on, there wouldn't be branches in the output for that code. kragen 2 months ago There are, even with optimizations on. You could have checked: https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename...I didn't find any way to get a compiler to generate a branchless version. I tried clang and GCC, both for amd64, with -O0, -O5, -Os, and for clang, -Oz. mmozeiko 2 months ago If you change logic and/or to bitwise and/or then it'll be branchless. 3 replies →
kragen 2 months ago There are, even with optimizations on. You could have checked: https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename...I didn't find any way to get a compiler to generate a branchless version. I tried clang and GCC, both for amd64, with -O0, -O5, -Os, and for clang, -Oz. mmozeiko 2 months ago If you change logic and/or to bitwise and/or then it'll be branchless. 3 replies →
mmozeiko 2 months ago If you change logic and/or to bitwise and/or then it'll be branchless. 3 replies →
I'd expect even without optimizations on, there wouldn't be branches in the output for that code.
There are, even with optimizations on. You could have checked: https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename...
I didn't find any way to get a compiler to generate a branchless version. I tried clang and GCC, both for amd64, with -O0, -O5, -Os, and for clang, -Oz.
If you change logic and/or to bitwise and/or then it'll be branchless.
3 replies →