https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83651
--- Comment #14 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 19 Jan 2018, arnd at linaro dot org wrote: > 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 Would be nice if somebody can bisect it. It doesn't look like a PRE specific issue because there's no relevant PRE changes in the rev. range. I can't reproduce the slowdown when comparing 7.1.0 against 7.2.0 btw, so the regression must occur somewhere between 7.2.0 and now (or 7.1.1 got faster for a few revs).