blob: b08480fb9b6e0c85fbfb8c62de1378df09acf49a [file] [log] [blame]
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 8
; Bound: 207
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main"
OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310
OpName %main "main"
OpName %f "f"
OpName %v4 "v4"
OpName %u "u"
OpName %uv4 "uv4"
OpName %iv3 "iv3"
OpName %i "i"
OpName %uv3 "uv3"
OpName %m2 "m2"
OpName %iv4 "iv4"
OpName %m4 "m4"
OpName %a "a"
OpName %S "S"
OpMemberName %S 0 "i"
OpName %s "s"
OpName %b "b"
OpName %arr "arr"
OpName %arr2 "arr2"
OpName %block "block"
OpMemberName %block 0 "f"
OpName %instanceName "instanceName"
OpDecorate %u RelaxedPrecision
OpDecorate %18 RelaxedPrecision
OpDecorate %19 RelaxedPrecision
OpDecorate %20 RelaxedPrecision
OpDecorate %uv4 RelaxedPrecision
OpDecorate %24 RelaxedPrecision
OpDecorate %25 RelaxedPrecision
OpDecorate %26 RelaxedPrecision
OpDecorate %27 RelaxedPrecision
OpDecorate %iv3 RelaxedPrecision
OpDecorate %32 RelaxedPrecision
OpDecorate %33 RelaxedPrecision
OpDecorate %34 RelaxedPrecision
OpDecorate %i RelaxedPrecision
OpDecorate %38 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %uv3 RelaxedPrecision
OpDecorate %43 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %iv4 RelaxedPrecision
OpDecorate %62 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %65 RelaxedPrecision
OpDecorate %104 RelaxedPrecision
OpDecorate %105 RelaxedPrecision
OpMemberDecorate %S 0 RelaxedPrecision
OpDecorate %153 RelaxedPrecision
OpDecorate %154 RelaxedPrecision
OpDecorate %155 RelaxedPrecision
OpDecorate %156 RelaxedPrecision
OpDecorate %157 RelaxedPrecision
OpDecorate %158 RelaxedPrecision
OpDecorate %159 RelaxedPrecision
OpDecorate %160 RelaxedPrecision
OpDecorate %161 RelaxedPrecision
OpDecorate %162 RelaxedPrecision
OpDecorate %163 RelaxedPrecision
OpDecorate %164 RelaxedPrecision
OpDecorate %165 RelaxedPrecision
OpDecorate %166 RelaxedPrecision
OpDecorate %167 RelaxedPrecision
OpDecorate %168 RelaxedPrecision
OpDecorate %169 RelaxedPrecision
OpDecorate %170 RelaxedPrecision
OpDecorate %171 RelaxedPrecision
OpDecorate %172 RelaxedPrecision
OpDecorate %173 RelaxedPrecision
OpDecorate %174 RelaxedPrecision
OpDecorate %175 RelaxedPrecision
OpDecorate %176 RelaxedPrecision
OpDecorate %177 RelaxedPrecision
OpDecorate %178 RelaxedPrecision
OpDecorate %179 RelaxedPrecision
OpDecorate %180 RelaxedPrecision
OpDecorate %181 RelaxedPrecision
OpDecorate %182 RelaxedPrecision
OpDecorate %183 RelaxedPrecision
OpDecorate %184 RelaxedPrecision
OpDecorate %185 RelaxedPrecision
OpDecorate %186 RelaxedPrecision
OpDecorate %187 RelaxedPrecision
OpDecorate %188 RelaxedPrecision
OpDecorate %189 RelaxedPrecision
OpDecorate %190 RelaxedPrecision
OpDecorate %191 RelaxedPrecision
OpDecorate %192 RelaxedPrecision
OpDecorate %193 RelaxedPrecision
OpDecorate %194 RelaxedPrecision
OpDecorate %arr RelaxedPrecision
OpDecorate %arr2 RelaxedPrecision
OpMemberDecorate %block 0 RelaxedPrecision
OpMemberDecorate %block 0 Offset 0
OpDecorate %block Block
OpDecorate %instanceName DescriptorSet 0
OpDecorate %instanceName Binding 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float
%v4float = OpTypeVector %float 4
%_ptr_Function_v4float = OpTypePointer Function %v4float
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%v4uint = OpTypeVector %uint 4
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%_ptr_Function_v3int = OpTypePointer Function %v3int
%_ptr_Function_int = OpTypePointer Function %int
%int_3 = OpConstant %int 3
%v3uint = OpTypeVector %uint 3
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
%uint_4 = OpConstant %uint 4
%v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
%float_1 = OpConstant %float 1
%v4int = OpTypeVector %int 4
%_ptr_Function_v4int = OpTypePointer Function %v4int
%int_1 = OpConstant %int 1
%mat4v4float = OpTypeMatrix %v4float 4
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
%bool = OpTypeBool
%v4bool = OpTypeVector %bool 4
%v2bool = OpTypeVector %bool 2
%uint_5 = OpConstant %uint 5
%_arr_float_uint_5 = OpTypeArray %float %uint_5
%_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5
%a = OpVariable %_ptr_Private__arr_float_uint_5 Private
%S = OpTypeStruct %int
%_ptr_Private_S = OpTypePointer Private %S
%s = OpVariable %_ptr_Private_S Private
%_ptr_Function_bool = OpTypePointer Function %bool
%uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2
%uint_3 = OpConstant %uint 3
%_arr_int_uint_3 = OpTypeArray %int %uint_3
%_ptr_Function__arr_int_uint_3 = OpTypePointer Function %_arr_int_uint_3
%int_2 = OpConstant %int 2
%block = OpTypeStruct %float
%_ptr_Uniform_block = OpTypePointer Uniform %block
%instanceName = OpVariable %_ptr_Uniform_block Uniform
%main = OpFunction %void None %3
%5 = OpLabel
%f = OpVariable %_ptr_Function_float Function
%v4 = OpVariable %_ptr_Function_v4float Function
%u = OpVariable %_ptr_Function_uint Function
%uv4 = OpVariable %_ptr_Function_v4uint Function
%iv3 = OpVariable %_ptr_Function_v3int Function
%i = OpVariable %_ptr_Function_int Function
%uv3 = OpVariable %_ptr_Function_v3uint Function
%m2 = OpVariable %_ptr_Function_mat2v2float Function
%iv4 = OpVariable %_ptr_Function_v4int Function
%m4 = OpVariable %_ptr_Function_mat4v4float Function
%b = OpVariable %_ptr_Function_bool Function
%arr = OpVariable %_ptr_Function__arr_int_uint_2 Function
%arr2 = OpVariable %_ptr_Function__arr_int_uint_3 Function
%9 = OpLoad %float %f
%13 = OpLoad %v4float %v4
%14 = OpVectorTimesScalar %v4float %13 %9
%18 = OpLoad %uint %u
%19 = OpLoad %uint %u
%20 = OpIAdd %uint %18 %19
%24 = OpLoad %v4uint %uv4
%25 = OpLoad %uint %u
%26 = OpCompositeConstruct %v4uint %25 %25 %25 %25
%27 = OpUDiv %v4uint %24 %26
%32 = OpLoad %v3int %iv3
%33 = OpLoad %v3int %iv3
%34 = OpISub %v3int %33 %32
OpStore %iv3 %34
%38 = OpLoad %int %i
%39 = OpSMod %int %38 %int_3
OpStore %i %39
%43 = OpLoad %v3uint %uv3
%45 = OpCompositeConstruct %v3uint %uint_4 %uint_4 %uint_4
%46 = OpUMod %v3uint %43 %45
%51 = OpLoad %mat2v2float %m2
%53 = OpCompositeConstruct %v2float %float_1 %float_1
%54 = OpCompositeExtract %v2float %51 0
%55 = OpFSub %v2float %54 %53
%56 = OpCompositeExtract %v2float %51 1
%57 = OpFSub %v2float %56 %53
%58 = OpCompositeConstruct %mat2v2float %55 %57
OpStore %m2 %58
%62 = OpLoad %v4int %iv4
%64 = OpCompositeConstruct %v4int %int_1 %int_1 %int_1 %int_1
%65 = OpIAdd %v4int %62 %64
OpStore %iv4 %65
%69 = OpLoad %mat4v4float %m4
%70 = OpLoad %mat4v4float %m4
%72 = OpCompositeExtract %v4float %69 0
%73 = OpCompositeExtract %v4float %70 0
%75 = OpFUnordNotEqual %v4bool %72 %73
%76 = OpAny %bool %75
%77 = OpCompositeExtract %v4float %69 1
%78 = OpCompositeExtract %v4float %70 1
%79 = OpFUnordNotEqual %v4bool %77 %78
%80 = OpAny %bool %79
%81 = OpLogicalOr %bool %76 %80
%82 = OpCompositeExtract %v4float %69 2
%83 = OpCompositeExtract %v4float %70 2
%84 = OpFUnordNotEqual %v4bool %82 %83
%85 = OpAny %bool %84
%86 = OpLogicalOr %bool %81 %85
%87 = OpCompositeExtract %v4float %69 3
%88 = OpCompositeExtract %v4float %70 3
%89 = OpFUnordNotEqual %v4bool %87 %88
%90 = OpAny %bool %89
%91 = OpLogicalOr %bool %86 %90
%92 = OpLoad %mat2v2float %m2
%93 = OpLoad %mat2v2float %m2
%94 = OpCompositeExtract %v2float %92 0
%95 = OpCompositeExtract %v2float %93 0
%97 = OpFOrdEqual %v2bool %94 %95
%98 = OpAll %bool %97
%99 = OpCompositeExtract %v2float %92 1
%100 = OpCompositeExtract %v2float %93 1
%101 = OpFOrdEqual %v2bool %99 %100
%102 = OpAll %bool %101
%103 = OpLogicalAnd %bool %98 %102
%104 = OpLoad %int %i
%105 = OpLoad %int %i
%106 = OpSLessThanEqual %bool %104 %105
%111 = OpLoad %_arr_float_uint_5 %a
%112 = OpLoad %_arr_float_uint_5 %a
%113 = OpCompositeExtract %float %111 0
%114 = OpCompositeExtract %float %112 0
%115 = OpFOrdEqual %bool %113 %114
%116 = OpCompositeExtract %float %111 1
%117 = OpCompositeExtract %float %112 1
%118 = OpFOrdEqual %bool %116 %117
%119 = OpLogicalAnd %bool %115 %118
%120 = OpCompositeExtract %float %111 2
%121 = OpCompositeExtract %float %112 2
%122 = OpFOrdEqual %bool %120 %121
%123 = OpLogicalAnd %bool %119 %122
%124 = OpCompositeExtract %float %111 3
%125 = OpCompositeExtract %float %112 3
%126 = OpFOrdEqual %bool %124 %125
%127 = OpLogicalAnd %bool %123 %126
%128 = OpCompositeExtract %float %111 4
%129 = OpCompositeExtract %float %112 4
%130 = OpFOrdEqual %bool %128 %129
%131 = OpLogicalAnd %bool %127 %130
%135 = OpLoad %S %s
%136 = OpLoad %S %s
%137 = OpCompositeExtract %int %135 0
%138 = OpCompositeExtract %int %136 0
%139 = OpINotEqual %bool %137 %138
%142 = OpLoad %bool %b
%143 = OpLoad %bool %b
%144 = OpLogicalAnd %bool %142 %143
%145 = OpLoad %bool %b
%146 = OpLoad %bool %b
%147 = OpLogicalOr %bool %145 %146
%148 = OpLoad %bool %b
%149 = OpLoad %bool %b
%150 = OpLogicalNotEqual %bool %148 %149
%151 = OpLoad %bool %b
%152 = OpLogicalNot %bool %151
%153 = OpLoad %int %i
%154 = OpNot %int %153
%155 = OpLoad %uint %u
%156 = OpNot %uint %155
%157 = OpLoad %v3uint %uv3
%158 = OpNot %v3uint %157
%159 = OpLoad %v3int %iv3
%160 = OpNot %v3int %159
%161 = OpLoad %int %i
%162 = OpLoad %v3uint %uv3
%163 = OpCompositeConstruct %v3int %161 %161 %161
%164 = OpShiftLeftLogical %v3uint %162 %163
OpStore %uv3 %164
%165 = OpLoad %int %i
%166 = OpLoad %int %i
%167 = OpShiftRightArithmetic %int %165 %166
%168 = OpLoad %uint %u
%169 = OpLoad %uint %u
%170 = OpShiftLeftLogical %uint %168 %169
%171 = OpLoad %v3int %iv3
%172 = OpLoad %v3int %iv3
%173 = OpShiftRightArithmetic %v3int %171 %172
%174 = OpLoad %int %i
%175 = OpLoad %int %i
%176 = OpBitwiseAnd %int %174 %175
%177 = OpLoad %uint %u
%178 = OpLoad %uint %u
%179 = OpBitwiseOr %uint %177 %178
%180 = OpLoad %v3int %iv3
%181 = OpLoad %v3int %iv3
%182 = OpBitwiseXor %v3int %180 %181
%183 = OpLoad %uint %u
%184 = OpLoad %v3uint %uv3
%185 = OpCompositeConstruct %v3uint %183 %183 %183
%186 = OpBitwiseAnd %v3uint %185 %184
%187 = OpLoad %v3uint %uv3
%188 = OpLoad %uint %u
%189 = OpCompositeConstruct %v3uint %188 %188 %188
%190 = OpBitwiseOr %v3uint %187 %189
%191 = OpLoad %uint %u
%192 = OpLoad %v3uint %uv3
%193 = OpCompositeConstruct %v3uint %191 %191 %191
%194 = OpBitwiseAnd %v3uint %192 %193
OpStore %uv3 %194
OpReturn
OpFunctionEnd