sched: fix build without SSE4
authorMike Sowka <msowka@gmail.com>
Sat, 5 Dec 2015 22:27:56 +0000 (17:27 -0500)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 6 Dec 2015 00:02:51 +0000 (01:02 +0100)
commit90f455f3d337273ccaf122463982de157ada6ff6
tree0243327f41d6fc65d2a7df77bc70db33d01ab7a9
parente3787501d29e15758e3ef2e1350e89b2687a028f
sched: fix build without SSE4

Irrelevant of the target, the preprocessor #ifdef SSE2 for the
grinder_pipe_exists function is inadequate since the __mm_testz_si128
function requires SSE4.1, PTEST instruction described in
https://en.wikipedia.org/wiki/SSE4#SSE4.1 (I do no have better spec
reference). I have bumped the preprocessor #ifdef to require SSE4.

The Atom N2600 does not have SSE4, http://ark.intel.com/products/58916,
and so I had trouble building rte_sched with optimized version of
grinder_pipe_exists, with following:
error: inlining failed in call to always_inline _mm_testz_si128’:
       target specific option mismatch

GCC 4.9 correctly identifies my target as not having SSE4, and with
provided patch builds the non-optimized version of grinder_pipe_exists.

Signed-off-by: Mike Sowka <msowka@gmail.com>
lib/librte_sched/rte_sched.c