https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85466
--- Comment #18 from Marc Glisse <glisse at gcc dot gnu.org> --- For the "if" case, llvm turns: if (myVector[n] > 0.5){ result[n] = 0.8f; } else { result[n] = 0.1f; } into const float tab[2] = { .8f, .1f }; result[n] = tab[item > .5f];