// Run: %dxc -T vs_6_0 -E main // There is no interface variable for VSIn or VSOut empty structs (See OpEntryPoint below). struct VSIn {}; struct VSOut {}; VSOut main(VSIn input) { VSOut result; return result; } // CHECK-WHOLE-SPIR-V: // OpCapability Shader // OpMemoryModel Logical GLSL450 // OpEntryPoint Vertex %main "main" // OpSource HLSL 600 // OpName %bb_entry "bb.entry" // OpName %src_main "src.main" // OpName %main "main" // OpName %VSIn "VSIn" // OpName %param_var_input "param.var.input" // OpName %VSOut "VSOut" // OpName %input "input" // OpName %result "result" // %void = OpTypeVoid // %3 = OpTypeFunction %void // %VSIn = OpTypeStruct // %_ptr_Function_VSIn = OpTypePointer Function %VSIn // %VSOut = OpTypeStruct // %12 = OpTypeFunction %VSOut %_ptr_Function_VSIn // %_ptr_Function_VSOut = OpTypePointer Function %VSOut // %main = OpFunction %void None %3 // %5 = OpLabel // %param_var_input = OpVariable %_ptr_Function_VSIn Function // %9 = OpCompositeConstruct %VSIn // %11 = OpFunctionCall %VSOut %src_main %param_var_input // OpReturn // OpFunctionEnd // %src_main = OpFunction %VSOut None %12 // %input = OpFunctionParameter %_ptr_Function_VSIn // %bb_entry = OpLabel // %result = OpVariable %_ptr_Function_VSOut Function // %17 = OpLoad %VSOut %result // OpReturnValue %17 // OpFunctionEnd