target/ppc: Move V(ADD|SUB)CUW to decodetree and use gvec
This patch moves VADDCUW and VSUBCUW to decodtree with gvec using an
implementation based on the helper, with the main difference being
changing the -1 (aka all bits set to 1) result returned by cmp when
true to +1. It also implemented a .fni4 version of those instructions
and dropped the helper.
vaddcuw:
rept    loop    master             patch
8       12500   0,
01008200         0,
00612400 (-39.3%)
25      4000    0,
01091500         0,
00471600 (-56.8%)
100     1000    0,
01332500         0,
00593700 (-55.4%)
500     200     0,
01998500         0,
01275700 (-36.2%)
2500    40      0,
04704300         0,
04364300 (-7.2%)
8000    12      0,
10748200         0,
11241000 (+4.6%)
vsubcuw:
rept    loop    master             patch
8       12500   0,
01226200         0,
00571600 (-53.4%)
25      4000    0,
01493500         0,
00462100 (-69.1%)
100     1000    0,
01522700         0,
00455100 (-70.1%)
500     200     0,
02384600         0,
01133500 (-52.5%)
2500    40      0,
04935200         0,
03178100 (-35.6%)
8000    12      0,
09039900         0,
09440600 (+4.4%)
Overall there was a gain in performance, but the TCGop code was still
slightly bigger in the new version (it went from 4 to 5).
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <
20221019125040.48028-4-lucas.araujo@eldorado.org.br>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>