https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83651
--- Comment #13 from Arnd Bergmann <arnd at linaro dot org> --- Created attachment 43185 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43185&action=edit Linux kernel version of AES algorithm, ported to standalone executable I've had another look at extracting a test case from the Linux kernel copy of this code. This now also shows the gcc-7.2.1 specific problem: $ x86_64-linux-gcc-7.1.1 -Wall -O2 -fsanitize=bounds -fsanitize=object-size aes_generic.c -o aes_generic; time ./aes_generic real 0m9.406s $ x86_64-linux-gcc-7.1.1 -Wall -O2 -fsanitize=bounds -fsanitize=object-size aes_generic.c -o aes_generic -fno-code-hoisting; time ./aes_generic real 0m8.318s $ x86_64-linux-gcc-7.2.1 -Wall -O2 -fsanitize=bounds -fsanitize=object-size aes_generic.c -o aes_generic; time ./aes_generic real 0m22.151s $ x86_64-linux-gcc-7.2.1 -Wall -O2 -fsanitize=bounds -fsanitize=object-size aes_generic.c -o aes_generic -fno-code-hoisting; time ./aes_generic real 0m8.439s $ x86_64-linux-gcc-7.1.1 -Wall -O2 aes_generic.c -o aes_generic ; time ./aes_generic real 0m3.031s $ x86_64-linux-gcc-7.1.1 -Wall -O2 aes_generic.c -o aes_generic -fno-code-hoisting ; time ./aes_generic real 0m2.894s $ x86_64-linux-gcc-7.2.1 -Wall -O2 aes_generic.c -o aes_generic ; time ./aes_generic real 0m3.307s $ x86_64-linux-gcc-7.2.1 -Wall -O2 aes_generic.c -o aes_generic -fno-code-hoisting ; time ./aes_generic real 0m2.875s