overflow checks: generate overflow checks for 8 and 16 bit integer types even though llvm internally has apis for checking overflow of 8 and 16 bit integer arithmetic, those are not available through clang intrinsics. we therefore use the same checks as for other compilers