John Kessenich | deec193 | 2019-08-13 08:00:30 -0600 | [diff] [blame] | 1 | ; SPIR-V |
| 2 | ; Version: 1.0 |
John Kessenich | 3c0d2e5 | 2019-11-14 03:20:06 -0700 | [diff] [blame] | 3 | ; Generator: Khronos Glslang Reference Front End; 8 |
John Kessenich | deec193 | 2019-08-13 08:00:30 -0600 | [diff] [blame] | 4 | ; Bound: 74 |
| 5 | ; Schema: 0 |
| 6 | OpCapability Shader |
| 7 | %1 = OpExtInstImport "GLSL.std.450" |
| 8 | OpMemoryModel Logical GLSL450 |
| 9 | OpEntryPoint Fragment %main "main" %colorOut |
| 10 | OpExecutionMode %main OriginUpperLeft |
| 11 | OpSource ESSL 310 |
| 12 | OpName %main "main" |
| 13 | OpName %foo_f1_5__ "foo(f1[5];" |
| 14 | OpName %a "a" |
| 15 | OpName %g4 "g4" |
| 16 | OpName %g5 "g5" |
| 17 | OpName %param "param" |
| 18 | OpName %u "u" |
| 19 | OpName %param_0 "param" |
| 20 | OpName %colorOut "colorOut" |
| 21 | OpDecorate %colorOut Location 0 |
| 22 | %void = OpTypeVoid |
| 23 | %3 = OpTypeFunction %void |
| 24 | %float = OpTypeFloat 32 |
| 25 | %uint = OpTypeInt 32 0 |
| 26 | %uint_5 = OpConstant %uint 5 |
| 27 | %_arr_float_uint_5 = OpTypeArray %float %uint_5 |
| 28 | %_ptr_Function__arr_float_uint_5 = OpTypePointer Function %_arr_float_uint_5 |
| 29 | %uint_4 = OpConstant %uint 4 |
| 30 | %_arr_float_uint_4 = OpTypeArray %float %uint_4 |
| 31 | %13 = OpTypeFunction %_arr_float_uint_4 %_ptr_Function__arr_float_uint_5 |
| 32 | %int = OpTypeInt 32 1 |
| 33 | %int_0 = OpConstant %int 0 |
| 34 | %_ptr_Function_float = OpTypePointer Function %float |
| 35 | %int_1 = OpConstant %int 1 |
| 36 | %int_2 = OpConstant %int 2 |
| 37 | %int_3 = OpConstant %int 3 |
| 38 | %_ptr_Private__arr_float_uint_4 = OpTypePointer Private %_arr_float_uint_4 |
| 39 | %g4 = OpVariable %_ptr_Private__arr_float_uint_4 Private |
| 40 | %_ptr_Private__arr_float_uint_5 = OpTypePointer Private %_arr_float_uint_5 |
| 41 | %g5 = OpVariable %_ptr_Private__arr_float_uint_5 Private |
| 42 | %float_1 = OpConstant %float 1 |
| 43 | %float_2 = OpConstant %float 2 |
| 44 | %float_3 = OpConstant %float 3 |
| 45 | %float_4 = OpConstant %float 4 |
| 46 | %45 = OpConstantComposite %_arr_float_uint_4 %float_1 %float_2 %float_3 %float_4 |
| 47 | %bool = OpTypeBool |
| 48 | %v2float = OpTypeVector %float 2 |
| 49 | %_ptr_Output_v2float = OpTypePointer Output %v2float |
| 50 | %colorOut = OpVariable %_ptr_Output_v2float Output |
| 51 | %float_5 = OpConstant %float 5 |
| 52 | %73 = OpConstantComposite %v2float %float_4 %float_5 |
| 53 | %main = OpFunction %void None %3 |
| 54 | %5 = OpLabel |
| 55 | %param = OpVariable %_ptr_Function__arr_float_uint_5 Function |
| 56 | %u = OpVariable %_ptr_Function__arr_float_uint_5 Function |
| 57 | %param_0 = OpVariable %_ptr_Function__arr_float_uint_5 Function |
| 58 | %39 = OpLoad %_arr_float_uint_5 %g5 |
| 59 | OpStore %param %39 |
| 60 | %40 = OpFunctionCall %_arr_float_uint_4 %foo_f1_5__ %param |
| 61 | OpStore %g4 %40 |
| 62 | %46 = OpLoad %_arr_float_uint_4 %g4 |
| 63 | %48 = OpCompositeExtract %float %45 0 |
| 64 | %49 = OpCompositeExtract %float %46 0 |
| 65 | %50 = OpFOrdEqual %bool %48 %49 |
| 66 | %51 = OpCompositeExtract %float %45 1 |
| 67 | %52 = OpCompositeExtract %float %46 1 |
| 68 | %53 = OpFOrdEqual %bool %51 %52 |
| 69 | %54 = OpLogicalAnd %bool %50 %53 |
| 70 | %55 = OpCompositeExtract %float %45 2 |
| 71 | %56 = OpCompositeExtract %float %46 2 |
| 72 | %57 = OpFOrdEqual %bool %55 %56 |
| 73 | %58 = OpLogicalAnd %bool %54 %57 |
| 74 | %59 = OpCompositeExtract %float %45 3 |
| 75 | %60 = OpCompositeExtract %float %46 3 |
| 76 | %61 = OpFOrdEqual %bool %59 %60 |
| 77 | %62 = OpLogicalAnd %bool %58 %61 |
| 78 | OpSelectionMerge %64 None |
| 79 | OpBranchConditional %62 %63 %64 |
| 80 | %63 = OpLabel |
| 81 | OpBranch %64 |
| 82 | %64 = OpLabel |
| 83 | %67 = OpLoad %_arr_float_uint_5 %u |
| 84 | OpStore %param_0 %67 |
| 85 | %68 = OpFunctionCall %_arr_float_uint_4 %foo_f1_5__ %param_0 |
| 86 | OpStore %colorOut %73 |
| 87 | OpReturn |
| 88 | OpFunctionEnd |
| 89 | %foo_f1_5__ = OpFunction %_arr_float_uint_4 None %13 |
| 90 | %a = OpFunctionParameter %_ptr_Function__arr_float_uint_5 |
| 91 | %16 = OpLabel |
| 92 | %20 = OpAccessChain %_ptr_Function_float %a %int_0 |
| 93 | %21 = OpLoad %float %20 |
| 94 | %23 = OpAccessChain %_ptr_Function_float %a %int_1 |
| 95 | %24 = OpLoad %float %23 |
| 96 | %26 = OpAccessChain %_ptr_Function_float %a %int_2 |
| 97 | %27 = OpLoad %float %26 |
| 98 | %29 = OpAccessChain %_ptr_Function_float %a %int_3 |
| 99 | %30 = OpLoad %float %29 |
| 100 | %31 = OpCompositeConstruct %_arr_float_uint_4 %21 %24 %27 %30 |
| 101 | OpReturnValue %31 |
| 102 | OpFunctionEnd |