lib/std/lang.zig | 2 +- src/Sema.zig | 140 +- src/Zcu.zig | 14 +- src/codegen/spirv/Assembler.zig | 159 +- src/codegen/spirv/CodeGen.zig | 2993 ++++++++++++++++++-------------- src/codegen/spirv/Mir.zig | 10 +- src/codegen/spirv/Module.zig | 791 --------- src/link/SpirV.zig | 106 +- src/link/SpirV/prune_unused.zig | 4 +- test/behavior/array.zig | 4 + test/behavior/bitcast.zig | 10 + test/behavior/comptime_memory.zig | 2 + test/behavior/globals.zig | 1 + test/behavior/spirv.zig | 2 +- test/behavior/type_info.zig | 40 + test/cases/callconv_spirv.zig | 5 +- test/cases/compile_errors/SpirvType_vulkan_target.zig | 4 +- test/cases/compile_errors/callconv_spirv_invalid_options.zig | 2 +- test/cases/compile_errors/callconv_spirv_mesh_task_require_vulkan.zig | 17 - test/cases/compile_errors/callconv_spirv_on_unsupported_platform.zig | 1 + test/cases/compile_errors/directly_embedding_spirv_type_in_struct_and_union.zig | 2 +- test/cases/compile_errors/extern_spirv_decoration_validation.zig | 2 +- test/cases/compile_errors/spirv_merge_logical_pointers.zig | 4 +- test/cases/image_sampling_spirv.zig | 42 + test/cases/spirv_mergable_pointers.zig | 4 +- test/src/Cases.zig | 13 +- 26 files changed, 2097 insertions(+), 2277 deletions(-)