Have tilde-mod ops' cgen cast to integer type
diff --git a/internal/cgen/expr.go b/internal/cgen/expr.go
index 272d576..3747fa4 100644
--- a/internal/cgen/expr.go
+++ b/internal/cgen/expr.go
@@ -285,7 +285,7 @@
}
func (g *gen) writeExprBinaryOp(b *buffer, n *a.Expr, depth uint32) error {
- opName, lhsCast := "", false
+ opName, lhsCast, tildeMod := "", false, false
op := n.Operator()
switch op {
@@ -304,13 +304,20 @@
case t.IDXBinaryAs:
return g.writeExprAs(b, n.LHS().AsExpr(), n.RHS().AsTypeExpr(), depth)
- case t.IDXBinaryShiftL, t.IDXBinaryShiftR, t.IDXBinaryTildeModShiftL:
+ case t.IDXBinaryTildeModPlus, t.IDXBinaryTildeModMinus, t.IDXBinaryTildeModStar:
+ tildeMod = true
+
+ case t.IDXBinaryTildeModShiftL:
+ tildeMod = true
+ fallthrough
+
+ case t.IDXBinaryShiftL, t.IDXBinaryShiftR:
if lhs := n.LHS().AsExpr(); lhs.ConstValue() != nil {
lhsCast = true
}
- fallthrough
+ }
- default:
+ if opName == "" {
opName = cOpName(op)
if opName == "" {
return fmt.Errorf("unrecognized operator %q", op.AmbiguousForm().Str(g.tm))
@@ -318,6 +325,13 @@
}
b.writeb('(')
+ if tildeMod {
+ b.writeb('(')
+ if err := g.writeCTypeName(b, n.MType(), "", ""); err != nil {
+ return err
+ }
+ b.writes(")(")
+ }
if lhsCast {
b.writes("((")
@@ -339,6 +353,9 @@
return err
}
+ if tildeMod {
+ b.writeb(')')
+ }
b.writeb(')')
return nil
}
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index bf2c798..31effe7 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -17416,7 +17416,7 @@
a_x = wuffs_base__slice_u8__subslice_j(a_x, 5536);
}
v_num_iterate_bytes = ((uint32_t)((((uint64_t)(a_x.len)) & 4294967264)));
- v_s2 += (v_s1 * v_num_iterate_bytes);
+ v_s2 += ((uint32_t)(v_s1 * v_num_iterate_bytes));
v_v1 = _mm_setzero_si128();
v_v2j = _mm_setzero_si128();
v_v2k = _mm_setzero_si128();
@@ -18151,7 +18151,7 @@
status = wuffs_base__make_status(wuffs_bmp__error__bad_header);
goto exit;
} else if (v_height >= 2147483648) {
- self->private_impl.f_height = ((0 - v_height) & 2147483647);
+ self->private_impl.f_height = (((uint32_t)(0 - v_height)) & 2147483647);
self->private_impl.f_top_down = true;
} else {
self->private_impl.f_height = v_height;
@@ -18409,7 +18409,7 @@
}
self->private_impl.f_channel_masks[3] = t_19;
}
- self->private_data.s_decode_image_config[0].scratch = (self->private_impl.f_bitmap_info_len - 56);
+ self->private_data.s_decode_image_config[0].scratch = ((uint32_t)(self->private_impl.f_bitmap_info_len - 56));
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(43);
if (self->private_data.s_decode_image_config[0].scratch > ((uint64_t)(io2_a_src - iop_a_src))) {
self->private_data.s_decode_image_config[0].scratch -= ((uint64_t)(io2_a_src - iop_a_src));
@@ -18780,7 +18780,7 @@
self->private_impl.f_dst_y = 0;
self->private_impl.f_dst_y_inc = 1;
} else {
- self->private_impl.f_dst_y = (self->private_impl.f_height - 1);
+ self->private_impl.f_dst_y = ((uint32_t)(self->private_impl.f_height - 1));
self->private_impl.f_dst_y_inc = 4294967295;
}
v_status = wuffs_base__pixel_swizzler__prepare(&self->private_impl.f_swizzler,
@@ -19322,7 +19322,7 @@
goto label__outer__continue;
}
}
- v_p1_temp = (self->private_impl.f_width - self->private_impl.f_dst_x);
+ v_p1_temp = ((uint32_t)(self->private_impl.f_width - self->private_impl.f_dst_x));
v_p1 = wuffs_base__u32__min(v_p1_temp, 256);
v_p0 = 0;
while (v_p0 < v_p1) {
@@ -19348,7 +19348,7 @@
v_c = ((v_c32 & self->private_impl.f_channel_masks[v_channel]) >> self->private_impl.f_channel_shifts[v_channel]);
v_num_bits = ((uint32_t)(self->private_impl.f_channel_num_bits[v_channel]));
while (v_num_bits < 16) {
- v_c |= (v_c << v_num_bits);
+ v_c |= ((uint32_t)(v_c << v_num_bits));
v_num_bits *= 2;
}
v_c >>= (v_num_bits - 16);
@@ -22676,7 +22676,7 @@
v_dmask = ((((uint64_t)(1)) << self->private_impl.f_n_huffs_bits[1]) - 1);
label__loop__continue:;
while ((((uint64_t)(io2_a_dst - iop_a_dst)) >= 258) && (((uint64_t)(io2_a_src - iop_a_src)) >= 8)) {
- v_bits |= (wuffs_base__peek_u64le__no_bounds_check(iop_a_src) << (v_n_bits & 63));
+ v_bits |= ((uint64_t)(wuffs_base__peek_u64le__no_bounds_check(iop_a_src) << (v_n_bits & 63)));
iop_a_src += ((63 - (v_n_bits & 63)) >> 3);
v_n_bits |= 56;
v_table_entry = self->private_data.f_huffs[0][(v_bits & v_lmask)];
@@ -23104,7 +23104,7 @@
}
if (v_n_copied > 0) {
v_hlen -= v_n_copied;
- v_hdist = ((v_hdist + v_n_copied) & 32767);
+ v_hdist = (((uint32_t)(v_hdist + v_n_copied)) & 32767);
if (v_hdist == 0) {
goto label__4__break;
}
@@ -23487,7 +23487,7 @@
while (true) {
if (v_n_bits < v_width) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 4) {
- v_bits |= (wuffs_base__peek_u32le__no_bounds_check(iop_a_src) << v_n_bits);
+ v_bits |= ((uint32_t)(wuffs_base__peek_u32le__no_bounds_check(iop_a_src) << v_n_bits));
iop_a_src += ((31 - v_n_bits) >> 3);
v_n_bits |= 24;
} else if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
@@ -23519,7 +23519,7 @@
self->private_data.f_output[v_output_wi] = ((uint8_t)(v_code));
v_output_wi = ((v_output_wi + 1) & 8191);
if (v_save_code <= 4095) {
- v_lm1_a = ((self->private_data.f_lm1s[v_prev_code] + 1) & 4095);
+ v_lm1_a = (((uint16_t)(self->private_data.f_lm1s[v_prev_code] + 1)) & 4095);
self->private_data.f_lm1s[v_save_code] = v_lm1_a;
if ((v_lm1_a % 8) != 0) {
self->private_impl.f_prefixes[v_save_code] = self->private_impl.f_prefixes[v_prev_code];
@@ -23557,7 +23557,7 @@
goto label__1__break;
}
v_steps -= 1;
- v_o = ((v_o - 8) & 8191);
+ v_o = (((uint32_t)(v_o - 8)) & 8191);
v_c = ((uint32_t)(self->private_impl.f_prefixes[v_c]));
}
label__1__break:;
@@ -23567,7 +23567,7 @@
v_output_wi = ((v_output_wi + 1) & 8191);
}
if (v_save_code <= 4095) {
- v_lm1_b = ((self->private_data.f_lm1s[v_prev_code] + 1) & 4095);
+ v_lm1_b = (((uint16_t)(self->private_data.f_lm1s[v_prev_code] + 1)) & 4095);
self->private_data.f_lm1s[v_save_code] = v_lm1_b;
if ((v_lm1_b % 8) != 0) {
self->private_impl.f_prefixes[v_save_code] = self->private_impl.f_prefixes[v_prev_code];
@@ -23663,7 +23663,7 @@
status = wuffs_base__make_status(NULL);
goto ok;
}
- self->private_impl.f_output_ri = ((self->private_impl.f_output_ri + ((uint32_t)((v_n & 4294967295)))) & 8191);
+ self->private_impl.f_output_ri = (((uint32_t)(self->private_impl.f_output_ri + ((uint32_t)((v_n & 4294967295))))) & 8191);
status = wuffs_base__make_status(wuffs_base__suspension__short_write);
WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(1);
}
@@ -27697,7 +27697,7 @@
}
v_multi_byte_utf8 = ((uint32_t)(wuffs_base__peek_u16le__no_bounds_check(iop_a_src)));
if ((v_multi_byte_utf8 & 49152) == 32768) {
- v_multi_byte_utf8 = ((1984 & (v_multi_byte_utf8 << 6)) | (63 & (v_multi_byte_utf8 >> 8)));
+ v_multi_byte_utf8 = ((1984 & ((uint32_t)(v_multi_byte_utf8 << 6))) | (63 & (v_multi_byte_utf8 >> 8)));
iop_a_src += 2;
if (v_string_length >= 65528) {
*iop_a_dst++ = wuffs_base__make_token(
@@ -27742,7 +27742,7 @@
}
v_multi_byte_utf8 = ((uint32_t)(wuffs_base__peek_u24le__no_bounds_check(iop_a_src)));
if ((v_multi_byte_utf8 & 12632064) == 8421376) {
- v_multi_byte_utf8 = ((61440 & (v_multi_byte_utf8 << 12)) | (4032 & (v_multi_byte_utf8 >> 2)) | (63 & (v_multi_byte_utf8 >> 16)));
+ v_multi_byte_utf8 = ((61440 & ((uint32_t)(v_multi_byte_utf8 << 12))) | (4032 & (v_multi_byte_utf8 >> 2)) | (63 & (v_multi_byte_utf8 >> 16)));
if ((2047 < v_multi_byte_utf8) && ((v_multi_byte_utf8 < 55296) || (57343 < v_multi_byte_utf8))) {
iop_a_src += 3;
if (v_string_length >= 65528) {
@@ -27789,8 +27789,8 @@
}
v_multi_byte_utf8 = wuffs_base__peek_u32le__no_bounds_check(iop_a_src);
if ((v_multi_byte_utf8 & 3233857536) == 2155905024) {
- v_multi_byte_utf8 = ((1835008 & (v_multi_byte_utf8 << 18)) |
- (258048 & (v_multi_byte_utf8 << 4)) |
+ v_multi_byte_utf8 = ((1835008 & ((uint32_t)(v_multi_byte_utf8 << 18))) |
+ (258048 & ((uint32_t)(v_multi_byte_utf8 << 4))) |
(4032 & (v_multi_byte_utf8 >> 10)) |
(63 & (v_multi_byte_utf8 >> 24)));
if ((65535 < v_multi_byte_utf8) && (v_multi_byte_utf8 <= 1114111)) {
@@ -30797,29 +30797,29 @@
v_c.len = 3;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 6) * 6);
while (v_c.ptr < i_end0_c) {
- v_fa0 = ((v_fa0 / 2) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)((v_fa0 / 2) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = ((v_fa1 / 2) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)((v_fa1 / 2) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = ((v_fa2 / 2) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)((v_fa2 / 2) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
- v_fa0 = ((v_fa0 / 2) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)((v_fa0 / 2) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = ((v_fa1 / 2) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)((v_fa1 / 2) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = ((v_fa2 / 2) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)((v_fa2 / 2) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
}
v_c.len = 3;
uint8_t* i_end1_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 3) * 3);
while (v_c.ptr < i_end1_c) {
- v_fa0 = ((v_fa0 / 2) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)((v_fa0 / 2) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = ((v_fa1 / 2) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)((v_fa1 / 2) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = ((v_fa2 / 2) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)((v_fa2 / 2) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
}
@@ -30836,19 +30836,19 @@
v_p.len = 3;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 6) * 6);
while (v_c.ptr < i_end0_c) {
- v_fa0 = (((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = (((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = (((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
v_p.ptr += 3;
- v_fa0 = (((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = (((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = (((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
v_p.ptr += 3;
@@ -30857,11 +30857,11 @@
v_p.len = 3;
uint8_t* i_end1_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 3) * 3);
while (v_c.ptr < i_end1_c) {
- v_fa0 = (((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = (((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = (((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
v_c.ptr += 3;
v_p.ptr += 3;
@@ -30894,13 +30894,13 @@
v_c.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- v_fa0 = ((v_fa0 / 2) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)((v_fa0 / 2) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = ((v_fa1 / 2) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)((v_fa1 / 2) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = ((v_fa2 / 2) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)((v_fa2 / 2) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
- v_fa3 = ((v_fa3 / 2) + v_c.ptr[3]);
+ v_fa3 = ((uint8_t)((v_fa3 / 2) + v_c.ptr[3]));
v_c.ptr[3] = v_fa3;
v_c.ptr += 4;
}
@@ -30917,13 +30917,13 @@
v_p.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- v_fa0 = (((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]);
+ v_fa0 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa0)) + ((uint32_t)(v_p.ptr[0]))) / 2))) + v_c.ptr[0]));
v_c.ptr[0] = v_fa0;
- v_fa1 = (((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]);
+ v_fa1 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa1)) + ((uint32_t)(v_p.ptr[1]))) / 2))) + v_c.ptr[1]));
v_c.ptr[1] = v_fa1;
- v_fa2 = (((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]);
+ v_fa2 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa2)) + ((uint32_t)(v_p.ptr[2]))) / 2))) + v_c.ptr[2]));
v_c.ptr[2] = v_fa2;
- v_fa3 = (((uint8_t)(((((uint32_t)(v_fa3)) + ((uint32_t)(v_p.ptr[3]))) / 2))) + v_c.ptr[3]);
+ v_fa3 = ((uint8_t)(((uint8_t)(((((uint32_t)(v_fa3)) + ((uint32_t)(v_p.ptr[3]))) / 2))) + v_c.ptr[3]));
v_c.ptr[3] = v_fa3;
v_c.ptr += 4;
v_p.ptr += 4;
@@ -30973,18 +30973,18 @@
v_fa = ((uint32_t)(a_curr.ptr[(v_i - v_filter_distance)]));
v_fb = ((uint32_t)(a_prev.ptr[v_i]));
v_fc = ((uint32_t)(a_prev.ptr[(v_i - v_filter_distance)]));
- v_pp = ((v_fa + v_fb) - v_fc);
- v_pa = (v_pp - v_fa);
+ v_pp = ((uint32_t)(((uint32_t)(v_fa + v_fb)) - v_fc));
+ v_pa = ((uint32_t)(v_pp - v_fa));
if (v_pa >= 2147483648) {
- v_pa = (0 - v_pa);
+ v_pa = ((uint32_t)(0 - v_pa));
}
- v_pb = (v_pp - v_fb);
+ v_pb = ((uint32_t)(v_pp - v_fb));
if (v_pb >= 2147483648) {
- v_pb = (0 - v_pb);
+ v_pb = ((uint32_t)(0 - v_pb));
}
- v_pc = (v_pp - v_fc);
+ v_pc = ((uint32_t)(v_pp - v_fc));
if (v_pc >= 2147483648) {
- v_pc = (0 - v_pc);
+ v_pc = ((uint32_t)(0 - v_pc));
}
if ((v_pa <= v_pb) && (v_pa <= v_pc)) {
} else if (v_pb <= v_pc) {
@@ -31040,18 +31040,18 @@
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 3) * 3);
while (v_c.ptr < i_end0_c) {
v_fb0 = ((uint32_t)(v_p.ptr[0]));
- v_pp0 = ((v_fa0 + v_fb0) - v_fc0);
- v_pa0 = (v_pp0 - v_fa0);
+ v_pp0 = ((uint32_t)(((uint32_t)(v_fa0 + v_fb0)) - v_fc0));
+ v_pa0 = ((uint32_t)(v_pp0 - v_fa0));
if (v_pa0 >= 2147483648) {
- v_pa0 = (0 - v_pa0);
+ v_pa0 = ((uint32_t)(0 - v_pa0));
}
- v_pb0 = (v_pp0 - v_fb0);
+ v_pb0 = ((uint32_t)(v_pp0 - v_fb0));
if (v_pb0 >= 2147483648) {
- v_pb0 = (0 - v_pb0);
+ v_pb0 = ((uint32_t)(0 - v_pb0));
}
- v_pc0 = (v_pp0 - v_fc0);
+ v_pc0 = ((uint32_t)(v_pp0 - v_fc0));
if (v_pc0 >= 2147483648) {
- v_pc0 = (0 - v_pc0);
+ v_pc0 = ((uint32_t)(0 - v_pc0));
}
if ((v_pa0 <= v_pb0) && (v_pa0 <= v_pc0)) {
} else if (v_pb0 <= v_pc0) {
@@ -31063,18 +31063,18 @@
v_fa0 = ((uint32_t)(v_c.ptr[0]));
v_fc0 = v_fb0;
v_fb1 = ((uint32_t)(v_p.ptr[1]));
- v_pp1 = ((v_fa1 + v_fb1) - v_fc1);
- v_pa1 = (v_pp1 - v_fa1);
+ v_pp1 = ((uint32_t)(((uint32_t)(v_fa1 + v_fb1)) - v_fc1));
+ v_pa1 = ((uint32_t)(v_pp1 - v_fa1));
if (v_pa1 >= 2147483648) {
- v_pa1 = (0 - v_pa1);
+ v_pa1 = ((uint32_t)(0 - v_pa1));
}
- v_pb1 = (v_pp1 - v_fb1);
+ v_pb1 = ((uint32_t)(v_pp1 - v_fb1));
if (v_pb1 >= 2147483648) {
- v_pb1 = (0 - v_pb1);
+ v_pb1 = ((uint32_t)(0 - v_pb1));
}
- v_pc1 = (v_pp1 - v_fc1);
+ v_pc1 = ((uint32_t)(v_pp1 - v_fc1));
if (v_pc1 >= 2147483648) {
- v_pc1 = (0 - v_pc1);
+ v_pc1 = ((uint32_t)(0 - v_pc1));
}
if ((v_pa1 <= v_pb1) && (v_pa1 <= v_pc1)) {
} else if (v_pb1 <= v_pc1) {
@@ -31086,18 +31086,18 @@
v_fa1 = ((uint32_t)(v_c.ptr[1]));
v_fc1 = v_fb1;
v_fb2 = ((uint32_t)(v_p.ptr[2]));
- v_pp2 = ((v_fa2 + v_fb2) - v_fc2);
- v_pa2 = (v_pp2 - v_fa2);
+ v_pp2 = ((uint32_t)(((uint32_t)(v_fa2 + v_fb2)) - v_fc2));
+ v_pa2 = ((uint32_t)(v_pp2 - v_fa2));
if (v_pa2 >= 2147483648) {
- v_pa2 = (0 - v_pa2);
+ v_pa2 = ((uint32_t)(0 - v_pa2));
}
- v_pb2 = (v_pp2 - v_fb2);
+ v_pb2 = ((uint32_t)(v_pp2 - v_fb2));
if (v_pb2 >= 2147483648) {
- v_pb2 = (0 - v_pb2);
+ v_pb2 = ((uint32_t)(0 - v_pb2));
}
- v_pc2 = (v_pp2 - v_fc2);
+ v_pc2 = ((uint32_t)(v_pp2 - v_fc2));
if (v_pc2 >= 2147483648) {
- v_pc2 = (0 - v_pc2);
+ v_pc2 = ((uint32_t)(0 - v_pc2));
}
if ((v_pa2 <= v_pb2) && (v_pa2 <= v_pc2)) {
} else if (v_pb2 <= v_pc2) {
@@ -31166,18 +31166,18 @@
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
v_fb0 = ((uint32_t)(v_p.ptr[0]));
- v_pp0 = ((v_fa0 + v_fb0) - v_fc0);
- v_pa0 = (v_pp0 - v_fa0);
+ v_pp0 = ((uint32_t)(((uint32_t)(v_fa0 + v_fb0)) - v_fc0));
+ v_pa0 = ((uint32_t)(v_pp0 - v_fa0));
if (v_pa0 >= 2147483648) {
- v_pa0 = (0 - v_pa0);
+ v_pa0 = ((uint32_t)(0 - v_pa0));
}
- v_pb0 = (v_pp0 - v_fb0);
+ v_pb0 = ((uint32_t)(v_pp0 - v_fb0));
if (v_pb0 >= 2147483648) {
- v_pb0 = (0 - v_pb0);
+ v_pb0 = ((uint32_t)(0 - v_pb0));
}
- v_pc0 = (v_pp0 - v_fc0);
+ v_pc0 = ((uint32_t)(v_pp0 - v_fc0));
if (v_pc0 >= 2147483648) {
- v_pc0 = (0 - v_pc0);
+ v_pc0 = ((uint32_t)(0 - v_pc0));
}
if ((v_pa0 <= v_pb0) && (v_pa0 <= v_pc0)) {
} else if (v_pb0 <= v_pc0) {
@@ -31189,18 +31189,18 @@
v_fa0 = ((uint32_t)(v_c.ptr[0]));
v_fc0 = v_fb0;
v_fb1 = ((uint32_t)(v_p.ptr[1]));
- v_pp1 = ((v_fa1 + v_fb1) - v_fc1);
- v_pa1 = (v_pp1 - v_fa1);
+ v_pp1 = ((uint32_t)(((uint32_t)(v_fa1 + v_fb1)) - v_fc1));
+ v_pa1 = ((uint32_t)(v_pp1 - v_fa1));
if (v_pa1 >= 2147483648) {
- v_pa1 = (0 - v_pa1);
+ v_pa1 = ((uint32_t)(0 - v_pa1));
}
- v_pb1 = (v_pp1 - v_fb1);
+ v_pb1 = ((uint32_t)(v_pp1 - v_fb1));
if (v_pb1 >= 2147483648) {
- v_pb1 = (0 - v_pb1);
+ v_pb1 = ((uint32_t)(0 - v_pb1));
}
- v_pc1 = (v_pp1 - v_fc1);
+ v_pc1 = ((uint32_t)(v_pp1 - v_fc1));
if (v_pc1 >= 2147483648) {
- v_pc1 = (0 - v_pc1);
+ v_pc1 = ((uint32_t)(0 - v_pc1));
}
if ((v_pa1 <= v_pb1) && (v_pa1 <= v_pc1)) {
} else if (v_pb1 <= v_pc1) {
@@ -31212,18 +31212,18 @@
v_fa1 = ((uint32_t)(v_c.ptr[1]));
v_fc1 = v_fb1;
v_fb2 = ((uint32_t)(v_p.ptr[2]));
- v_pp2 = ((v_fa2 + v_fb2) - v_fc2);
- v_pa2 = (v_pp2 - v_fa2);
+ v_pp2 = ((uint32_t)(((uint32_t)(v_fa2 + v_fb2)) - v_fc2));
+ v_pa2 = ((uint32_t)(v_pp2 - v_fa2));
if (v_pa2 >= 2147483648) {
- v_pa2 = (0 - v_pa2);
+ v_pa2 = ((uint32_t)(0 - v_pa2));
}
- v_pb2 = (v_pp2 - v_fb2);
+ v_pb2 = ((uint32_t)(v_pp2 - v_fb2));
if (v_pb2 >= 2147483648) {
- v_pb2 = (0 - v_pb2);
+ v_pb2 = ((uint32_t)(0 - v_pb2));
}
- v_pc2 = (v_pp2 - v_fc2);
+ v_pc2 = ((uint32_t)(v_pp2 - v_fc2));
if (v_pc2 >= 2147483648) {
- v_pc2 = (0 - v_pc2);
+ v_pc2 = ((uint32_t)(0 - v_pc2));
}
if ((v_pa2 <= v_pb2) && (v_pa2 <= v_pc2)) {
} else if (v_pb2 <= v_pc2) {
@@ -31235,18 +31235,18 @@
v_fa2 = ((uint32_t)(v_c.ptr[2]));
v_fc2 = v_fb2;
v_fb3 = ((uint32_t)(v_p.ptr[3]));
- v_pp3 = ((v_fa3 + v_fb3) - v_fc3);
- v_pa3 = (v_pp3 - v_fa3);
+ v_pp3 = ((uint32_t)(((uint32_t)(v_fa3 + v_fb3)) - v_fc3));
+ v_pa3 = ((uint32_t)(v_pp3 - v_fa3));
if (v_pa3 >= 2147483648) {
- v_pa3 = (0 - v_pa3);
+ v_pa3 = ((uint32_t)(0 - v_pa3));
}
- v_pb3 = (v_pp3 - v_fb3);
+ v_pb3 = ((uint32_t)(v_pp3 - v_fb3));
if (v_pb3 >= 2147483648) {
- v_pb3 = (0 - v_pb3);
+ v_pb3 = ((uint32_t)(0 - v_pb3));
}
- v_pc3 = (v_pp3 - v_fc3);
+ v_pc3 = ((uint32_t)(v_pp3 - v_fc3));
if (v_pc3 >= 2147483648) {
- v_pc3 = (0 - v_pc3);
+ v_pc3 = ((uint32_t)(0 - v_pc3));
}
if ((v_pa3 <= v_pb3) && (v_pa3 <= v_pc3)) {
} else if (v_pb3 <= v_pc3) {
@@ -33136,14 +33136,14 @@
v_i = 0;
while (v_i < ((uint64_t)(v_fragment.len))) {
v_c = v_fragment.ptr[v_i];
- self->private_data.f_scratch[((v_i * 8) + 0)] = ((1 & (v_c >> 7)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 1)] = ((1 & (v_c >> 6)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 2)] = ((1 & (v_c >> 5)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 3)] = ((1 & (v_c >> 4)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 4)] = ((1 & (v_c >> 3)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 5)] = ((1 & (v_c >> 2)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 6)] = ((1 & (v_c >> 1)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 8) + 7)] = ((1 & (v_c >> 0)) * v_multiplier);
+ self->private_data.f_scratch[((v_i * 8) + 0)] = ((uint8_t)((1 & (v_c >> 7)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 1)] = ((uint8_t)((1 & (v_c >> 6)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 2)] = ((uint8_t)((1 & (v_c >> 5)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 3)] = ((uint8_t)((1 & (v_c >> 4)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 4)] = ((uint8_t)((1 & (v_c >> 3)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 5)] = ((uint8_t)((1 & (v_c >> 2)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 6)] = ((uint8_t)((1 & (v_c >> 1)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 8) + 7)] = ((uint8_t)((1 & (v_c >> 0)) * v_multiplier));
v_i += 1;
}
} else if (self->private_impl.f_depth == 2) {
@@ -33157,10 +33157,10 @@
v_i = 0;
while (v_i < ((uint64_t)(v_fragment.len))) {
v_c = v_fragment.ptr[v_i];
- self->private_data.f_scratch[((v_i * 4) + 0)] = ((3 & (v_c >> 6)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 4) + 1)] = ((3 & (v_c >> 4)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 4) + 2)] = ((3 & (v_c >> 2)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 4) + 3)] = ((3 & (v_c >> 0)) * v_multiplier);
+ self->private_data.f_scratch[((v_i * 4) + 0)] = ((uint8_t)((3 & (v_c >> 6)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 4) + 1)] = ((uint8_t)((3 & (v_c >> 4)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 4) + 2)] = ((uint8_t)((3 & (v_c >> 2)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 4) + 3)] = ((uint8_t)((3 & (v_c >> 0)) * v_multiplier));
v_i += 1;
}
} else {
@@ -33174,8 +33174,8 @@
v_i = 0;
while (v_i < ((uint64_t)(v_fragment.len))) {
v_c = v_fragment.ptr[v_i];
- self->private_data.f_scratch[((v_i * 2) + 0)] = ((15 & (v_c >> 4)) * v_multiplier);
- self->private_data.f_scratch[((v_i * 2) + 1)] = ((15 & (v_c >> 0)) * v_multiplier);
+ self->private_data.f_scratch[((v_i * 2) + 0)] = ((uint8_t)((15 & (v_c >> 4)) * v_multiplier));
+ self->private_data.f_scratch[((v_i * 2) + 1)] = ((uint8_t)((15 & (v_c >> 0)) * v_multiplier));
v_i += 1;
}
}