tcg/i386: Implement cmp_vec with avx512 insns
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 7 Sep 2024 15:41:39 +0000 (08:41 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Sun, 22 Sep 2024 04:54:50 +0000 (06:54 +0200)
commit717da87d38937e0573aeb5b9c24e3e296a24fab8
tree45b1adecf462268c5da542a3f4e77e0dec25d2f6
parentd8387f0ee0862985dc481db1fca78dced54e183a
tcg/i386: Implement cmp_vec with avx512 insns

The sse/avx instruction set only has EQ and GT as direct comparisons.
Other signed comparisons can be generated from swapping and inversion.
However unsigned comparisons are not available and must be transformed
to signed comparisons by biasing the inputs.

The avx512 instruction set has a complete set of comparisons, with
results placed into a predicate register.  We can produce the normal
cmp_vec result by using VPMOVM2*.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/i386/tcg-target.c.inc