#ifndef SOFTRVV_VAND_H
#define SOFTRVV_VAND_H

#include <stddef.h>
#include <stdint.h>

namespace softrvv {

template <typename T>
void vand_vx(T *dest, T *src1, const T *src2, int32_t avl) {
  for (int32_t idx = 0; idx < avl; idx++) {
    dest[idx] = src1[idx] & *src2;
  }
}

template <typename T>
void vand_vv(T *dest, T *src1, T *src2, int32_t avl) {
  for (int32_t idx = 0; idx < avl; idx++) {
    dest[idx] = src1[idx] & src2[idx];
  }
}

}  // namespace softrvv

#endif  // SOFTRVV_VAND_H
