On Sun, Dec 15, 2013 at 4:20 PM, Andreas K. Huettel <[email protected]> wrote: > Am Montag, 16. Dezember 2013, 00:34:13 schrieb Matt Turner: >> 3dnow: Use the 3DNow! instruction set >> 3dnowext: Use the Enhanced 3DNow! instruction set >> mmx: Use the MMX instruction set >> mmxext: Use the Extended MMX instruction set (intersection of Enhanced >> 3DNow! and SSE instruction sets) (3dnowext or sse in cpuinfo) >> sse: Use the SSE instruction set >> sse2: Use the SSE2 instruction set >> sse3: Use the SSE3 instruction set (pni in cpuinfo) >> ssse3: Use the SSSE3 instruction set >> sse4_1: Use the SSE 4.1 instruction set >> avx: Use the AVX instruction set >> avx2: Use the AVX2 instruction set > > What's the point of these flags? > (or to be more precise, are they really justified whenever they are used?) > > Usually the set of cpu instructions should be controlled by your CFLAGS, and > I've been actively patching packages (that do not do manually coded assembly) > to make such flags unnecessary.
Often they're for enabling assembly code that uses these instruction sets. For pixman, a package that I'm very familiar with, they turn on code using these instruction sets using intrinsics in C. I believe they are justified. If the package simply uses the flag to add an -m<isa> flag to CFLAGS, then we should definitely remove it. If I recall correctly, I have only seen one instance of this.
