#include <riscv_vector.h>
#include <stdio.h>
#include <string.h>

int8_t input_1[1024];
int8_t input_2[1024];
int16_t output[1024];

int main() {
  unsigned vlen = __riscv_vlenb();
  memset(input_1, 1, 1024);
  memset(input_2, 6, 1024);
  const int8_t* input1_ptr = &input_1[0];
  const int8_t* input2_ptr = &input_2[0];
  int16_t* output_ptr = &output[0];

  for (int idx = 0; (idx + 31) < 1024; idx += 32) {
    vint8m4_t input_v2 = __riscv_vle8_v_i8m4(input2_ptr + idx, 32);
    vint8m4_t input_v1 = __riscv_vle8_v_i8m4(input1_ptr + idx, 32);

    vint16m8_t temp_sum = __riscv_vwadd_vv_i16m8(input_v1, input_v2, 32);
    __riscv_vse16_v_i16m8(output_ptr + idx, temp_sum, 32);
  }

  printf("printing 1st 10 values of output");
  for (int i = 0; i < 10; i++) {
    printf(" %d ", output[i]);
  }
  return 0;
}
