frac32 in
frac32 select
frac32 o1
frac32 o2
frac32 o3
frac32 o4
frac32.u.map select
frac32.u.map width
frac32.u.map slope
int32_t V[4];
int i;
int32_t v27 = 1 << 27;
int32_t v29 = 1 << 29;
int32_t select = (param_select + inlet_select) & (v27 - 1);
for (i = 0; i < 4; i++) {
int32_t tmp = (select - (i << 25)) << 2;
tmp = tmp & (v29 - 1);
tmp = tmp > (v27 * 4 >> 1) ? v29 - tmp : tmp;
tmp = ___SMMUL(v27 - param_slope << 3, tmp << 2);
tmp = __USAT(tmp - (param_width << 1), 27);
tmp = v27 - tmp;
tmp = __USAT(tmp, 27);
V[i] = tmp;
}
outlet_o1 = ___SMMUL(V[0] << 3, inlet_in << 2);
outlet_o2 = ___SMMUL(V[1] << 3, inlet_in << 2);
outlet_o3 = ___SMMUL(V[2] << 3, inlet_in << 2);
outlet_o4 = ___SMMUL(V[3] << 3, inlet_in << 2);