build.zig | 4 +- doc/langref/test_intCast_builtin.zig | 2 +- lib/std/Target.zig | 27 +- lib/std/array_hash_map.zig | 17 +- lib/std/crypto/chacha20.zig | 9 +- lib/std/debug.zig | 10 +- lib/std/debug/no_panic.zig | 10 +- lib/std/debug/simple_panic.zig | 11 +- lib/std/hash/xxhash.zig | 3 - lib/std/simd.zig | 8 - lib/std/zig/AstGen.zig | 22 +- lib/std/zig/Zir.zig | 10 +- src/Air.zig | 181 +++- src/Air/Legalize.zig | 1830 +++++++++++++++++++++++++++++--- src/Air/Liveness.zig | 33 +- src/Air/Liveness/Verify.zig | 13 +- src/Air/types_resolved.zig | 22 +- src/Compilation.zig | 2 +- src/InternPool.zig | 84 +- src/Sema.zig | 1348 ++++++++++------------- src/Sema/arith.zig | 12 +- src/Type.zig | 13 +- src/Value.zig | 18 +- src/Zcu.zig | 30 +- src/Zcu/PerThread.zig | 25 +- src/arch/aarch64/CodeGen.zig | 45 +- src/arch/arm/CodeGen.zig | 42 +- src/arch/powerpc/CodeGen.zig | 4 + src/arch/riscv64/CodeGen.zig | 41 +- src/arch/sparc64/CodeGen.zig | 30 +- src/arch/wasm/CodeGen.zig | 166 ++- src/arch/x86_64/CodeGen.zig | 598 ++++++++--- src/codegen.zig | 58 +- src/codegen/c.zig | 106 +- src/codegen/c/Type.zig | 21 +- src/codegen/llvm.zig | 263 ++++- src/codegen/spirv.zig | 91 +- src/dev.zig | 6 + src/mutable_value.zig | 4 +- src/print_air.zig | 40 +- src/target.zig | 8 - stage1/zig.h | 32 +- stage1/zig1.wasm | Bin 2974838 -> 2998903 bytes test/behavior/abs.zig | 2 - test/behavior/basic.zig | 1 - test/behavior/bitcast.zig | 1 - test/behavior/bitreverse.zig | 4 - test/behavior/byteswap.zig | 4 - test/behavior/cast.zig | 4 - test/behavior/extern.zig | 1 - test/behavior/floatop.zig | 51 +- test/behavior/fn.zig | 1 - test/behavior/math.zig | 20 +- test/behavior/maximum_minimum.zig | 6 - test/behavior/muladd.zig | 12 +- test/behavior/packed-struct.zig | 11 + test/behavior/popcount.zig | 1 - test/behavior/select.zig | 3 - test/behavior/shuffle.zig | 5 - test/behavior/union.zig | 1 + test/behavior/vector.zig | 29 +- test/behavior/x86_64/binary.zig | 56 +- test/behavior/x86_64/math.zig | 54 +- test/behavior/x86_64/unary.zig | 4 + test/cases/compile_errors/@import_zon_bad_type.zig | 6 +- test/cases/compile_errors/anytype_param_requires_comptime.zig | 2 +- test/cases/compile_errors/bad_panic_call_signature.zig | 5 +- test/cases/compile_errors/bad_panic_generic_signature.zig | 5 +- test/cases/compile_errors/bogus_method_call_on_slice.zig | 2 +- test/cases/compile_errors/coerce_anon_struct.zig | 2 +- test/cases/compile_errors/redundant_try.zig | 4 +- test/cases/compile_errors/shuffle_with_selected_index_past_first_vector_length.zig | 26 +- test/cases/safety/@intCast to u0.zig | 2 +- test/cases/safety/memmove_len_mismatch.zig | 2 +- test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig | 2 +- test/cases/safety/signed integer not fitting in cast to unsigned integer.zig | 2 +- test/cases/safety/signed-unsigned vector cast.zig | 2 +- test/cases/safety/slice_cast_change_len_0.zig | 3 +- test/cases/safety/slice_cast_change_len_1.zig | 3 +- test/cases/safety/slice_cast_change_len_2.zig | 3 +- test/cases/safety/truncating vector cast.zig | 4 +- test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig | 2 +- test/cases/safety/unsigned-signed vector cast.zig | 4 +- test/cases/safety/value does not fit in shortening cast - u0.zig | 2 +- test/cases/safety/value does not fit in shortening cast.zig | 2 +- test/cases/safety/vector integer addition overflow.zig | 2 +- test/cases/safety/vector integer multiplication overflow.zig | 2 +- test/cases/safety/vector integer negation overflow.zig | 2 +- test/cases/safety/vector integer subtraction overflow.zig | 2 +- test/incremental/change_panic_handler_explicit | 15 +- test/src/Cases.zig | 20 +- tools/lldb_pretty_printers.py | 3 +- 92 files changed, 4020 insertions(+), 1681 deletions(-)