lib/compiler/aro/aro/Attribute/Wip.zig | 2 +- lib/compiler/aro/aro/Target.zig | 2 +- lib/compiler/test_runner.zig | 2 +- lib/std/Target.zig | 2 +- lib/std/debug.zig | 1 + lib/std/lang.zig | 5 + lib/std/mem.zig | 2 +- lib/std/testing.zig | 1 + lib/std/zig/llvm/Builder.zig | 77 ++++++++++- src/Sema.zig | 12 +- src/Type.zig | 2 +- src/Zcu.zig | 2 +- src/codegen/llvm.zig | 138 ++++++++++++++++++- src/codegen/llvm/FuncGen.zig | 4 + src/codegen/spirv/Assembler.zig | 22 ++- src/codegen/spirv/CodeGen.zig | 151 +-------------------- src/codegen/spirv/Section.zig | 32 +++++ src/link/Spirv.zig | 3 +- src/link/Spirv/Flush.zig | 100 +++++++------- src/main.zig | 2 +- src/target.zig | 2 +- test/behavior.zig | 10 +- test/behavior/abs.zig | 21 +-- test/behavior/addrspace_and_linksection.zig | 6 +- test/behavior/align.zig | 50 +++---- test/behavior/alignof.zig | 3 +- test/behavior/array.zig | 88 +++++++----- test/behavior/asm.zig | 6 +- test/behavior/atomics.zig | 22 +-- test/behavior/backing_int.zig | 14 +- test/behavior/basic.zig | 102 +++++++++----- test/behavior/bit_shifting.zig | 6 +- test/behavior/bitcast.zig | 33 +++-- test/behavior/bitreverse.zig | 8 +- test/behavior/bool.zig | 5 + test/behavior/builtin_functions_returning_void_or_noreturn.zig | 2 +- test/behavior/byteswap.zig | 10 +- test/behavior/byval_arg_var.zig | 2 +- test/behavior/call.zig | 34 +++-- test/behavior/cast.zig | 228 ++++++++++++++++++-------------- test/behavior/cast_int.zig | 7 +- test/behavior/comptime_memory.zig | 9 +- test/behavior/const_slice_child.zig | 2 +- test/behavior/decl_literals.zig | 6 +- test/behavior/defer.zig | 9 +- test/behavior/destructure.zig | 14 ++ test/behavior/enum.zig | 46 +++++-- test/behavior/error.zig | 69 +++++++--- test/behavior/eval.zig | 70 +++++++--- test/behavior/export_builtin.zig | 6 +- test/behavior/export_keyword.zig | 2 +- test/behavior/extern.zig | 6 +- test/behavior/field_parent_ptr.zig | 32 ++--- test/behavior/floatop.zig | 124 ++++++++++------- test/behavior/fn.zig | 48 +++++-- test/behavior/fn_delegation.zig | 1 + test/behavior/fn_in_struct_in_comptime.zig | 2 +- test/behavior/for.zig | 31 +++-- test/behavior/generics.zig | 39 ++++-- test/behavior/globals.zig | 20 +-- test/behavior/hasdecl.zig | 2 + test/behavior/hasfield.zig | 2 + test/behavior/if.zig | 12 +- test/behavior/import_c_keywords.zig | 2 +- test/behavior/incomplete_struct_param_tld.zig | 2 +- test/behavior/inline_switch.zig | 6 + test/behavior/int128.zig | 7 +- test/behavior/int_comparison_elision.zig | 3 +- test/behavior/ir_block_deps.zig | 1 + test/behavior/lower_strlit_to_vector.zig | 2 +- test/behavior/math.zig | 129 +++++++++++------- test/behavior/maximum_minimum.zig | 24 ++-- test/behavior/member_func.zig | 4 +- test/behavior/memcpy.zig | 16 +-- test/behavior/memmove.zig | 10 +- test/behavior/memset.zig | 24 ++-- test/behavior/merge_error_sets.zig | 1 + test/behavior/muladd.zig | 11 +- test/behavior/multiple_externs_with_conflicting_types.zig | 4 +- test/behavior/nan.zig | 2 +- test/behavior/null.zig | 8 +- test/behavior/optional.zig | 42 ++++-- test/behavior/overlapping_assign.zig | 2 +- test/behavior/packed-struct.zig | 56 ++++---- test/behavior/packed-union.zig | 16 +-- test/behavior/packed_struct_explicit_backing_int.zig | 1 + test/behavior/pointers.zig | 64 +++++---- test/behavior/popcount.zig | 6 +- test/behavior/prefetch.zig | 2 +- test/behavior/ptrcast.zig | 41 +++--- test/behavior/ptrfromint.zig | 7 +- test/behavior/ref_var_in_if_after_if_2nd_switch_prong.zig | 2 +- test/behavior/reflection.zig | 1 + test/behavior/return_address.zig | 2 +- test/behavior/saturating_arithmetic.zig | 28 ++-- test/behavior/select.zig | 4 +- test/behavior/shuffle.zig | 8 +- test/behavior/sizeof_and_typeof.zig | 22 ++- test/behavior/slice.zig | 98 ++++++++------ test/behavior/spirv.zig | 5 + test/behavior/splat.zig | 9 +- test/behavior/src.zig | 2 +- test/behavior/string_literals.zig | 15 ++- test/behavior/struct.zig | 153 ++++++++++++++------- test/behavior/struct_contains_null_ptr_itself.zig | 2 +- test/behavior/struct_contains_slice_of_itself.zig | 4 +- test/behavior/switch.zig | 65 +++++++-- test/behavior/switch_loop.zig | 26 +++- test/behavior/switch_on_captured_error.zig | 4 +- test/behavior/switch_prong_err_enum.zig | 2 +- test/behavior/switch_prong_implicit_cast.zig | 1 + test/behavior/this.zig | 3 +- test/behavior/threadlocal.zig | 4 +- test/behavior/truncate.zig | 6 +- test/behavior/try.zig | 12 +- test/behavior/tuple.zig | 32 +++-- test/behavior/tuple_declarations.zig | 4 +- test/behavior/type.zig | 22 ++- test/behavior/type_info.zig | 45 +++++-- test/behavior/typename.zig | 16 +-- test/behavior/undefined.zig | 9 +- test/behavior/underscore.zig | 1 + test/behavior/union.zig | 124 +++++++++++------ test/behavior/var_args.zig | 16 ++- test/behavior/vector.zig | 86 ++++++------ test/behavior/void.zig | 2 +- test/behavior/while.zig | 24 +++- test/behavior/widening.zig | 9 +- test/src/Cases.zig | 2 +- test/tests.zig | 2 +- 130 files changed, 1951 insertions(+), 1187 deletions(-)