Question

I have a question regarding compiling a build of x264 on GCC.

x264 has assembly code dealing with instruction sets such as SSE3 and SSSE3 and by default has auto-vectorization disabled in the makefile.

Should I compile it with the -mssse3 flag anyways or could that actually cause a loss in performance?

And does -mssse3 imply -msse3 or is SSE3 separate from SSSE3?

Was it helpful?

Solution

The -m<isa> flag tells the compiler what instructions to use in the code that it generates. It does not affect inline assembly that just gets further passed unmodified to the assembler not does it affect assembly (.s) files compiled separately. Compiling with SSSE3 and without automatic vectorisation is pointless as SSE is all about vectorisation, although it also can be used to perform scalar floating-point operations.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top