lib/std/Target.zig | 1 + lib/std/lang.zig | 1 + src/Sema.zig | 66 +- src/codegen/spirv/Assembler.zig | 226 +- src/codegen/spirv/CodeGen.zig | 1833 ++-- src/codegen/spirv/Mir.zig | 54 +- src/codegen/spirv/Section.zig | 414 +- src/codegen/spirv/extinst.zig.grammar.json | 11 - src/codegen/spirv/spec.zig | 15035 +++----------------------------- src/link.zig | 4 +- src/link/SpirV.zig | 1216 --- src/link/SpirV/BinaryModule.zig | 347 - src/link/SpirV/dedup_types.zig | 244 - src/link/SpirV/lower_invocation_globals.zig | 803 -- src/link/SpirV/prune_unused.zig | 257 - src/link/Spirv.zig | 252 + src/link/Spirv/Flush.zig | 665 ++ src/target.zig | 2 + test/behavior/addrspace_and_linksection.zig | 4 + test/behavior/align.zig | 1 + test/behavior/array.zig | 2 +- test/behavior/basic.zig | 6 + test/behavior/bitcast.zig | 1 - test/behavior/call.zig | 2 + test/behavior/comptime_memory.zig | 2 + test/behavior/decl_literals.zig | 1 - test/behavior/defer.zig | 1 + test/behavior/enum.zig | 1 - test/behavior/error.zig | 4 +- test/behavior/eval.zig | 13 + test/behavior/export_builtin.zig | 2 + test/behavior/floatop.zig | 7 - test/behavior/generics.zig | 1 + test/behavior/globals.zig | 6 +- test/behavior/if.zig | 1 + test/behavior/inline_switch.zig | 2 - test/behavior/ir_block_deps.zig | 1 - test/behavior/math.zig | 1 + test/behavior/null.zig | 1 + test/behavior/optional.zig | 6 +- test/behavior/packed-struct.zig | 9 - test/behavior/pointers.zig | 2 + test/behavior/shuffle.zig | 1 - test/behavior/sizeof_and_typeof.zig | 1 + test/behavior/slice.zig | 3 +- test/behavior/splat.zig | 1 + test/behavior/struct.zig | 9 +- test/behavior/switch.zig | 11 +- test/behavior/switch_loop.zig | 2 - test/behavior/switch_prong_implicit_cast.zig | 1 - test/behavior/threadlocal.zig | 1 - test/behavior/tuple.zig | 4 +- test/behavior/type.zig | 2 + test/behavior/union.zig | 14 +- test/behavior/vector.zig | 1 - test/behavior/while.zig | 5 + test/cases/compile_errors/SpirvType_vulkan_target.zig | 19 +- test/cases/compile_errors/extern_spirv_decoration_validation.zig | 25 +- test/cases/compile_errors/spirv_global_var_must_be_threadlocal.zig | 12 + test/cases/compile_errors/spirv_vulkan_threadlocal_addrspace.zig | 11 + test/standalone/build.zig | 1 + tools/gen_spirv_spec.zig | 528 +- tools/unskip_spirv_tests.zig | 264 + 63 files changed, 4024 insertions(+), 18400 deletions(-)