#ifndef SOFTRVV_VMSGT_H
#define SOFTRVV_VMSGT_H

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

namespace softrvv {

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

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

}  // namespace softrvv

#endif  // SOFTRVV_VMSGT_H
