• Почему clang (x86-64 7.0.0) генерирует хуже код (в данном примере)?

    @code07734
    Ассемблер посмотрите, который выдает компилятор.
    Компилятор не всегда догадывается оптимизировать.
    На глаз кажется у них меньше условных переходов, а ваш код так написан что компилятор не придумает ему оптимизацию.
    У них 2 if'а станут одним условным переходом. У вас - 1 if им станет.
    В цикле у вас больше проверок, не догадывается компилятор за скобки вынести - он же не учится как нейросеть или человек.
    Ответ написан
    Комментировать