Am 02.05.2015 um 13:25 schrieb Nikos Chantziaras: > On 02/05/15 14:19, Volker Armin Hemmann wrote: >> Am 02.05.2015 um 07:04 schrieb Nikos Chantziaras: >>> On 01/05/15 10:44, Andrew Savchenko wrote: >>>> On Fri, 1 May 2015 05:09:51 +0000 (UTC) Martin Vaeth wrote: >>>>> Andrew Savchenko <birc...@gentoo.org> wrote: >>>>>> >>>>>> That's why kernel makes sure that no floating point instructions >>>>>> sneaks in using CFLAGS, you may see a lot of -mno-${intrucion_set} >>>>>> flags when running make -V. >>>>> >>>>> So it should be sufficient that the kernel does not use "float" >>>>> or "double", shouldn't it? >>>> >>>> No. Optimizer paths may be very unobvious, i.e. I'll not be >>>> surprised if under some conditions vectorizer may use float >>>> instructions for int code. >>> >>> The kernel uses -O2 and several -march variants (e.g. -march=core2). >>> Several other options are used to prevent GCC from generating >>> unsuitable code. >>> >>> Specifying another -march variant does not affect the optimizer >>> though. It only affects the code generator. If you don't modify the >>> other CFLAGS and only change -march, you will not get FP instructions >>> unless you use FP in the code. >>> >>> Also, I'd be very interested to see *any* optimization that would >>> somehow transform integer code to FP code (note that SIMD is not FP >>> and is perfectly fine in the kernel.) In fact, optimizers tend to >>> transform FP into SIMD, at least on x86 (and other architectures that >>> have fast SIMD instructions.) If I inspect the generated assembly from >>> GCC or Clang, I cannot find FP anywhere, even for code using "float" >>> and "double" operations. They get converted to SIMD on modern CPUs >>> (unless you specify a compiler flag that tells it to use the FPU, for >>> example if you need 80-bit extended precision, which is supported by >>> the x86 FPU.) >>> >>> >>> >> >> http://www.agner.org/optimize/calling_conventions.pdf > > Not sure what you're trying to say. > > >
that simd is not save in kernel if not carefully guarded. Really people, just don't fuck around with the cflags.