aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/vcpop_v.h
blob: 52b29c695c8943caa958e8df4b9e26ad71b89dcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vpopc.v vd, vs2

#include "zvk_ext_macros.h"

require_zvbb;

VI_V_ULOOP
({
  reg_t count = 0;
  for (std::size_t i = 0; i < P.VU.vsew; ++i) {
    if (1 & (vs2 >> i)) {
      count++;
    }
  }
  vd = count;
})