aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vmerge_vxm.h
blob: 505b32f23c8acd57ad264c1dc4918da0c721707c (plain)
1
2
3
4
5
6
7
8
9
10
11
// vmerge.vxm vd, vs2, rs1
require_vector;
VI_CHECK_SSS(false);
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 ? rs1 : vs2;
})