C7100. I've tried to change the type from "float" to "int", and it will output right value. Therefore, it might be something wrong with the "float" type, but I am not able to figure it out. Could you please offer some instructions?
static inline __SE_TEMPLATE_v1 get_1D_se(__SE_ELETYPE ele_type, __SE_VECLEN vec_len, int size)
{
__SE_TEMPLATE_v1 se = __gen_SE_TEMPLATE_v1();
se.DIMFMT = __SE_DIMFMT_1D;
se.ELETYPE = ele_type;
se.VECLEN = vec_len;
se.ICNT0 = size;
return se;
}
void Getrow_i32f_o32f_kernel(const float *input, float *output, int32_t rowNum, int size)
{
__SE_TEMPLATE_v1 se0_param = get_1D_se(__SE_ELETYPE_32BIT, __SE_VECLEN_1ELEM, size);
const float *cur = input + rowNum * size;
int i = 0;
(void)__SE0_OPEN(cur, se0_param);
for (; i < size; i++) {
*(output + i) = __SE0ADV(float);
}
(void)__SE0_CLOSE();
}
Is this "float" mistake caused by the SE flags? The below show flags of an old version, which the 11th bit is reserverd. However, in recent ti-cgt-c7000_3.1.0.LTS version that bit is used as SE_FLOAT. I've tried to set this bit to be 1 rather than 0, but still failed.
Could you please show a demo on how to use "__SE0ADV(float)"? Really appreciate your help!