diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2019-04-30 13:01:12 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2019-05-22 15:09:43 -0400 |
commit | f75da2988eb2457fa23d006d573220c5c680ec4e (patch) | |
tree | b6192d1d40e1627a67a6dfc6f205ea5dfb1edd81 /tcg/README | |
parent | 38dc12947ec9106237f9cdbd428792c985cd86ae (diff) | |
download | qemu-f75da2988eb2457fa23d006d573220c5c680ec4e.zip qemu-f75da2988eb2457fa23d006d573220c5c680ec4e.tar.gz qemu-f75da2988eb2457fa23d006d573220c5c680ec4e.tar.bz2 |
tcg: Add support for vector compare select
Perform a per-element conditional move. This combination operation is
easier to implement on some host vector units than plain cmp+bitsel.
Omit the usual gvec interface, as this is intended to be used by
target-specific gvec expansion call-backs.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/README')
-rw-r--r-- | tcg/README | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -631,6 +631,13 @@ E.g. VECL=1 -> 64 << 1 -> v128, and VECE=2 -> 1 << 2 -> i32. Bitwise select, v0 = (v2 & v1) | (v3 & ~v1), across the entire vector. +* cmpsel_vec v0, c1, c2, v3, v4, cond + + Select elements based on comparison results: + for (i = 0; i < n; ++i) { + v0[i] = (c1[i] cond c2[i]) ? v3[i] : v4[i]. + } + ********* Note 1: Some shortcuts are defined when the last operand is known to be |