https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66520
--- Comment #7 from Fisnik <fkastrati at gmail dot com> --- (In reply to Eric Botcazou from comment #5) > > Compiler should not generate the same code, and should listen to the > > developer, when she/he connects predicates with single `&'. I already wrote > > that I did benchmarks, and also mentioned a paper from a top computer > > science conference (which I see you didn't even bother to read it) which has > > all the evidence required. > > You're still missing the point! If the non-branchy form is the fastest, > then the compiler should generate it also with the short-circuit form &&. > > > And I also mentioned it that Intel's compiler is catching this very well. > > Nope, the Intel compiler is inconsistent here (unlike GCC and Clang). As I said, I would leave that to the developer. If I connect predicates with &, the compiler should generate the non-branchy code. So this issue is definatively an optimization bug.