diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-07-29 14:02:52 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-07-29 14:02:52 +0300 |
commit | 8a1843ab203b3eeae3a5116c9da517a4e9c78e62 (patch) | |
tree | dbb02af89f8ddc9068528319872a0666688badfd /shaders-hlsl-no-opt | |
parent | eb580d665620f90a44fb38527ebdb93fb1c63cb5 (diff) |
Add some test cases for complex type aliasing scenario.
Diffstat (limited to 'shaders-hlsl-no-opt')
-rw-r--r-- | shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert b/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert new file mode 100644 index 00000000..94a883c1 --- /dev/null +++ b/shaders-hlsl-no-opt/asm/vert/complex-link-by-name.asm.vert @@ -0,0 +1,119 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 10 +; Bound: 59 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %main "main" %_ %output_location_0 %output_location_2 %output_location_3 + OpSource GLSL 450 + OpName %main "main" + OpName %Foo "Struct_vec4" + OpMemberName %Foo 0 "m0" + OpName %c "c" + OpName %Foo_0 "Struct_vec4" + OpMemberName %Foo_0 0 "m0" + OpName %Bar "Struct_vec4" + OpMemberName %Bar 0 "m0" + OpName %UBO "UBO" + OpMemberName %UBO 0 "m0" + OpMemberName %UBO 1 "m1" + OpName %ubo_binding_0 "ubo_binding_0" + OpName %Bar_0 "Struct_vec4" + OpMemberName %Bar_0 0 "m0" + OpName %b "b" + OpName %gl_PerVertex "gl_PerVertex" + OpMemberName %gl_PerVertex 0 "gl_Position" + OpMemberName %gl_PerVertex 1 "gl_PointSize" + OpMemberName %gl_PerVertex 2 "gl_ClipDistance" + OpMemberName %gl_PerVertex 3 "gl_CullDistance" + OpName %_ "" + OpName %VertexOut "VertexOut" + OpMemberName %VertexOut 0 "m0" + OpMemberName %VertexOut 1 "m1" + OpName %output_location_0 "output_location_0" + OpName %output_location_2 "output_location_2" + OpName %output_location_3 "output_location_3" + OpMemberDecorate %Foo_0 0 Offset 0 + OpMemberDecorate %Bar 0 Offset 0 + OpMemberDecorate %UBO 0 Offset 0 + OpMemberDecorate %UBO 1 Offset 16 + OpDecorate %UBO Block + OpDecorate %ubo_binding_0 DescriptorSet 0 + OpDecorate %ubo_binding_0 Binding 0 + OpMemberDecorate %gl_PerVertex 0 BuiltIn Position + OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize + OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance + OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance + OpDecorate %gl_PerVertex Block + OpDecorate %VertexOut Block + OpDecorate %output_location_0 Location 0 + OpDecorate %output_location_2 Location 2 + OpDecorate %output_location_3 Location 3 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 + %Foo = OpTypeStruct %v4float +%_ptr_Function_Foo = OpTypePointer Function %Foo + %Foo_0 = OpTypeStruct %v4float + %Bar = OpTypeStruct %v4float + %UBO = OpTypeStruct %Foo_0 %Bar +%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO +%ubo_binding_0 = OpVariable %_ptr_Uniform_UBO Uniform + %int = OpTypeInt 32 1 + %int_0 = OpConstant %int 0 +%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %Bar_0 = OpTypeStruct %v4float +%_ptr_Function_Bar_0 = OpTypePointer Function %Bar_0 + %int_1 = OpConstant %int 1 +%_ptr_Uniform_Bar = OpTypePointer Uniform %Bar + %uint = OpTypeInt 32 0 + %uint_1 = OpConstant %uint 1 +%_arr_float_uint_1 = OpTypeArray %float %uint_1 +%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 +%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex + %_ = OpVariable %_ptr_Output_gl_PerVertex Output +%_ptr_Output_v4float = OpTypePointer Output %v4float + %VertexOut = OpTypeStruct %Foo %Bar_0 +%_ptr_Output_VertexOut = OpTypePointer Output %VertexOut +%output_location_0 = OpVariable %_ptr_Output_VertexOut Output +%_ptr_Output_Foo = OpTypePointer Output %Foo +%_ptr_Output_Bar_0 = OpTypePointer Output %Bar_0 +%output_location_2 = OpVariable %_ptr_Output_Foo Output +%output_location_3 = OpVariable %_ptr_Output_Bar_0 Output + %main = OpFunction %void None %3 + %5 = OpLabel + %c = OpVariable %_ptr_Function_Foo Function + %b = OpVariable %_ptr_Function_Bar_0 Function + %19 = OpAccessChain %_ptr_Uniform_Foo_0 %ubo_binding_0 %int_0 + %20 = OpLoad %Foo_0 %19 + %21 = OpCompositeExtract %v4float %20 0 + %23 = OpAccessChain %_ptr_Function_v4float %c %int_0 + OpStore %23 %21 + %29 = OpAccessChain %_ptr_Uniform_Bar %ubo_binding_0 %int_1 + %30 = OpLoad %Bar %29 + %31 = OpCompositeExtract %v4float %30 0 + %32 = OpAccessChain %_ptr_Function_v4float %b %int_0 + OpStore %32 %31 + %39 = OpAccessChain %_ptr_Function_v4float %c %int_0 + %40 = OpLoad %v4float %39 + %41 = OpAccessChain %_ptr_Function_v4float %b %int_0 + %42 = OpLoad %v4float %41 + %43 = OpFAdd %v4float %40 %42 + %45 = OpAccessChain %_ptr_Output_v4float %_ %int_0 + OpStore %45 %43 + %49 = OpLoad %Foo %c + %51 = OpAccessChain %_ptr_Output_Foo %output_location_0 %int_0 + OpStore %51 %49 + %52 = OpLoad %Bar_0 %b + %54 = OpAccessChain %_ptr_Output_Bar_0 %output_location_0 %int_1 + OpStore %54 %52 + %56 = OpLoad %Foo %c + OpStore %output_location_2 %56 + %58 = OpLoad %Bar_0 %b + OpStore %output_location_3 %58 + OpReturn + OpFunctionEnd |