Цикл xor содержит 2 чтения в память и 1 запись в память на строку, всего 6 операций чтения и 3 записи для каждой итерации цикла. Кроме того, существует сильная зависимость между первой строкой, записывающей слово [i], и следующей строкой, читающей слово [i]. Это предотвратит конвейерную обработку, или, если две строки будут выполняться параллельно, чтение второй строки из слова [i] будет остановлено до завершения записи первой строки. Существует еще одна такая зависимость между 2-й и 3-й строками.
В цикле temp var временная переменная почти наверняка будет сохранена в регистре процессора, а не в основной памяти. Таким образом, общее количество операций ввода-вывода в памяти для цикла temp var составляет 2 чтения и 2 записи. Между операторами есть слабые зависимости потока данных, но они читаются перед записью, что может быть передано по конвейеру. Зависимости потока данных в примере xor - чтение-после-записи, что намного сложнее сделать без остановки конвейера.
6 операций чтения + 3 записи по сравнению с 2 операциями чтения + 2 записи. 2 + 2 имеет явное преимущество.