SPIRV-Cross/shaders/asm/comp/logical.asm.comp
2017-03-20 22:45:40 +01:00

192 lines
7.9 KiB
Plaintext

; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 152
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 1 1 1
OpSource ESSL 310
OpName %main "main"
OpName %and_b1_b1_ "and(b1;b1;"
OpName %a "a"
OpName %b "b"
OpName %and_vb2_vb2_ "and(vb2;vb2;"
OpName %a_0 "a"
OpName %b_0 "b"
OpName %and_vb3_vb3_ "and(vb3;vb3;"
OpName %a_1 "a"
OpName %b_1 "b"
OpName %and_vb4_vb4_ "and(vb4;vb4;"
OpName %a_2 "a"
OpName %b_2 "b"
OpName %b0 "b0"
OpName %SSBO0 "SSBO0"
OpMemberName %SSBO0 0 "a"
OpMemberName %SSBO0 1 "b"
OpMemberName %SSBO0 2 "c"
OpMemberName %SSBO0 3 "d"
OpName %s0 "s0"
OpName %SSBO1 "SSBO1"
OpMemberName %SSBO1 0 "a"
OpMemberName %SSBO1 1 "b"
OpMemberName %SSBO1 2 "c"
OpMemberName %SSBO1 3 "d"
OpName %s1 "s1"
OpName %param "param"
OpName %param_0 "param"
OpName %b1 "b1"
OpName %param_1 "param"
OpName %param_2 "param"
OpName %b2 "b2"
OpName %param_3 "param"
OpName %param_4 "param"
OpName %b3 "b3"
OpName %param_5 "param"
OpName %param_6 "param"
OpMemberDecorate %SSBO0 0 Offset 0
OpMemberDecorate %SSBO0 1 Offset 8
OpMemberDecorate %SSBO0 2 Offset 16
OpMemberDecorate %SSBO0 3 Offset 32
OpDecorate %SSBO0 BufferBlock
OpDecorate %s0 DescriptorSet 0
OpDecorate %s0 Binding 0
OpMemberDecorate %SSBO1 0 Offset 0
OpMemberDecorate %SSBO1 1 Offset 8
OpMemberDecorate %SSBO1 2 Offset 16
OpMemberDecorate %SSBO1 3 Offset 32
OpDecorate %SSBO1 BufferBlock
OpDecorate %s1 DescriptorSet 0
OpDecorate %s1 Binding 1
%void = OpTypeVoid
%3 = OpTypeFunction %void
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%8 = OpTypeFunction %bool %_ptr_Function_bool %_ptr_Function_bool
%v2bool = OpTypeVector %bool 2
%_ptr_Function_v2bool = OpTypePointer Function %v2bool
%15 = OpTypeFunction %v2bool %_ptr_Function_v2bool %_ptr_Function_v2bool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3bool = OpTypePointer Function %v3bool
%22 = OpTypeFunction %v3bool %_ptr_Function_v3bool %_ptr_Function_v3bool
%v4bool = OpTypeVector %bool 4
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
%29 = OpTypeFunction %v4bool %_ptr_Function_v4bool %_ptr_Function_v4bool
%float = OpTypeFloat 32
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%SSBO0 = OpTypeStruct %float %v2float %v3float %v4float
%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0
%s0 = OpVariable %_ptr_Uniform_SSBO0 Uniform
%int = OpTypeInt 32 1
%102 = OpConstant %int 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%SSBO1 = OpTypeStruct %float %v2float %v3float %v4float
%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1
%s1 = OpVariable %_ptr_Uniform_SSBO1 Uniform
%117 = OpConstant %int 1
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%129 = OpConstant %int 2
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%141 = OpConstant %int 3
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%main = OpFunction %void None %3
%5 = OpLabel
%b0 = OpVariable %_ptr_Function_bool Function
%param = OpVariable %_ptr_Function_bool Function
%param_0 = OpVariable %_ptr_Function_bool Function
%b1 = OpVariable %_ptr_Function_v2bool Function
%param_1 = OpVariable %_ptr_Function_v2bool Function
%param_2 = OpVariable %_ptr_Function_v2bool Function
%b2 = OpVariable %_ptr_Function_v3bool Function
%param_3 = OpVariable %_ptr_Function_v3bool Function
%param_4 = OpVariable %_ptr_Function_v3bool Function
%b3 = OpVariable %_ptr_Function_v4bool Function
%param_5 = OpVariable %_ptr_Function_v4bool Function
%param_6 = OpVariable %_ptr_Function_v4bool Function
%104 = OpAccessChain %_ptr_Uniform_float %s0 %102
%105 = OpLoad %float %104
%106 = OpIsInf %bool %105
%110 = OpAccessChain %_ptr_Uniform_float %s1 %102
%111 = OpLoad %float %110
%112 = OpIsNan %bool %111
OpStore %param %106
OpStore %param_0 %112
%115 = OpFunctionCall %bool %and_b1_b1_ %param %param_0
OpStore %b0 %115
%119 = OpAccessChain %_ptr_Uniform_v2float %s0 %117
%120 = OpLoad %v2float %119
%121 = OpIsInf %v2bool %120
%122 = OpAccessChain %_ptr_Uniform_v2float %s1 %117
%123 = OpLoad %v2float %122
%124 = OpIsNan %v2bool %123
OpStore %param_1 %121
OpStore %param_2 %124
%127 = OpFunctionCall %v2bool %and_vb2_vb2_ %param_1 %param_2
OpStore %b1 %127
%131 = OpAccessChain %_ptr_Uniform_v3float %s0 %129
%132 = OpLoad %v3float %131
%133 = OpIsInf %v3bool %132
%134 = OpAccessChain %_ptr_Uniform_v3float %s1 %129
%135 = OpLoad %v3float %134
%136 = OpIsNan %v3bool %135
OpStore %param_3 %133
OpStore %param_4 %136
%139 = OpFunctionCall %v3bool %and_vb3_vb3_ %param_3 %param_4
OpStore %b2 %139
%143 = OpAccessChain %_ptr_Uniform_v4float %s0 %141
%144 = OpLoad %v4float %143
%145 = OpIsInf %v4bool %144
%146 = OpAccessChain %_ptr_Uniform_v4float %s1 %141
%147 = OpLoad %v4float %146
%148 = OpIsNan %v4bool %147
OpStore %param_5 %145
OpStore %param_6 %148
%151 = OpFunctionCall %v4bool %and_vb4_vb4_ %param_5 %param_6
OpStore %b3 %151
OpReturn
OpFunctionEnd
%and_b1_b1_ = OpFunction %bool None %8
%a = OpFunctionParameter %_ptr_Function_bool
%b = OpFunctionParameter %_ptr_Function_bool
%12 = OpLabel
%34 = OpLoad %bool %a
%35 = OpLoad %bool %b
%36 = OpLogicalAnd %bool %34 %35
%37 = OpLogicalOr %bool %36 %35
%38 = OpLogicalNot %bool %37
OpReturnValue %38
OpFunctionEnd
%and_vb2_vb2_ = OpFunction %v2bool None %15
%a_0 = OpFunctionParameter %_ptr_Function_v2bool
%b_0 = OpFunctionParameter %_ptr_Function_v2bool
%19 = OpLabel
%39 = OpLoad %v2bool %a_0
%41 = OpLoad %v2bool %b_0
%48 = OpLogicalAnd %v2bool %39 %41
%49 = OpLogicalOr %v2bool %48 %41
%50 = OpLogicalNot %v2bool %49
OpReturnValue %50
OpFunctionEnd
%and_vb3_vb3_ = OpFunction %v3bool None %22
%a_1 = OpFunctionParameter %_ptr_Function_v3bool
%b_1 = OpFunctionParameter %_ptr_Function_v3bool
%26 = OpLabel
%52 = OpLoad %v3bool %a_1
%54 = OpLoad %v3bool %b_1
%66 = OpLogicalAnd %v3bool %52 %54
OpReturnValue %66
OpFunctionEnd
%and_vb4_vb4_ = OpFunction %v4bool None %29
%a_2 = OpFunctionParameter %_ptr_Function_v4bool
%b_2 = OpFunctionParameter %_ptr_Function_v4bool
%33 = OpLabel
%70 = OpLoad %v4bool %a_2
%72 = OpLoad %v4bool %b_2
%74 = OpLogicalAnd %v4bool %70 %72
OpReturnValue %74
OpFunctionEnd