diff options
Diffstat (limited to 'riscv/insns/vmerge_vim.h')
-rw-r--r-- | riscv/insns/vmerge_vim.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/riscv/insns/vmerge_vim.h b/riscv/insns/vmerge_vim.h new file mode 100644 index 0000000..13354d6 --- /dev/null +++ b/riscv/insns/vmerge_vim.h @@ -0,0 +1,9 @@ +// vmerge.vim vd, vs2, simm5 +VI_VVXI_MERGE_LOOP +({ + int midx = (P.VU.vmlen * i) / 64; + int mpos = (P.VU.vmlen * i) % 64; + bool use_first = (P.VU.elt<uint64_t>(0, midx) >> mpos) & 0x1; + + vd = use_first ? simm5 : vs2; +}) |