lib/std/math.zig | 32 +- lib/std/math/big/int.zig | 8 +- lib/std/math/big/int_test.zig | 4 - lib/std/math/log2.zig | 21 +- lib/zig.h | 31 +- src/Air.zig | 4 +- src/Sema.zig | 71 +- src/Type.zig | 8 +- src/arch/x86_64/CodeGen.zig | 4344 ++++++++++++++++++++++++++++---- src/codegen/llvm.zig | 65 +- test/behavior/bit_shifting.zig | 9 +- test/behavior/saturating_arithmetic.zig | 58 +- test/behavior/x86_64/binary.zig | 17 + test/cases/compile_errors/saturating_shl_assign_does_not_allow_negative_rhs_at_comptime.zig | 12 - test/cases/compile_errors/saturating_shl_does_not_allow_negative_rhs.zig | 36 + test/cases/compile_errors/saturating_shl_does_not_allow_negative_rhs_at_comptime.zig | 9 - 16 files changed, 4142 insertions(+), 587 deletions(-)