blob: f6047a114fb4b5a0ca8306d226455bf5079023e2 [file] [log] [blame]
<%!
def is_widening(op_code):
return op_code[1] == 'w'
def is_unsigned(op_code):
return op_code[-1] == 'u'
def get_sews(op_code):
return [8, 16] if is_widening(op_code) else [8, 16, 32]
def get_lmuls(op_code):
return [1, 2, 4] if is_widening(op_code) else [1, 2, 4, 8]
def get_dest_type(op_code, sew):
type_fmt = "%sint%d_t"
sign_type = "u" if is_unsigned(op_code) else ""
dest_sew = sew * 2 if is_widening(op_code) else sew
return type_fmt % (sign_type, dest_sew)
def get_src_type(op_code, sew):
type_fmt = "%sint%d_t"
sign_type = "u" if is_unsigned(op_code) else ""
return type_fmt % (sign_type, sew)
def get_ref_opcode(op_code):
return op_code[:-1] if is_unsigned(op_code) else op_code
%>
/* Automatically generated file */
#include <limits.h>
#include <riscv_vector.h>
#include <softrvv.h>
#include <springbok.h>
#include <stdio.h>
#include <stdlib.h>
#include <bit>
#include <tuple>
#include "pw_unit_test/framework.h"
#include "test_v_helpers.h"
${self.body()}