| ; SPIR-V | |
| ; Version: 1.3 | |
| ; Generator: Google Tint Compiler; 1 | |
| ; Bound: 52 | |
| ; Schema: 0 | |
| OpCapability Shader | |
| OpCapability Float16 | |
| OpCapability StorageBuffer16BitAccess | |
| %34 = OpExtInstImport "GLSL.std.450" | |
| OpMemoryModel Logical GLSL450 | |
| OpEntryPoint GLCompute %main "main" | |
| OpExecutionMode %main LocalSize 1 1 1 | |
| OpMemberName %s_block_tint_explicit_layout 0 "inner" | |
| OpName %s_block_tint_explicit_layout "s_block_tint_explicit_layout" | |
| OpName %main "main" | |
| OpName %q "q" | |
| OpName %tint_f16_to_u32 "tint_f16_to_u32" | |
| OpName %value "value" | |
| OpDecorate %_runtimearr_uint ArrayStride 4 | |
| OpMemberDecorate %s_block_tint_explicit_layout 0 Offset 0 | |
| OpDecorate %s_block_tint_explicit_layout Block | |
| OpDecorate %1 DescriptorSet 0 | |
| OpDecorate %1 Binding 0 | |
| OpDecorate %1 Coherent | |
| %uint = OpTypeInt 32 0 | |
| %_runtimearr_uint = OpTypeRuntimeArray %uint | |
| %s_block_tint_explicit_layout = OpTypeStruct %_runtimearr_uint | |
| %_ptr_StorageBuffer_s_block_tint_explicit_layout = OpTypePointer StorageBuffer %s_block_tint_explicit_layout | |
| %1 = OpVariable %_ptr_StorageBuffer_s_block_tint_explicit_layout StorageBuffer | |
| %half = OpTypeFloat 16 | |
| %v2half = OpTypeVector %half 2 | |
| %mat3v2half = OpTypeMatrix %v2half 3 | |
| %uint_2 = OpConstant %uint 2 | |
| %_arr_mat3v2half_uint_2 = OpTypeArray %mat3v2half %uint_2 | |
| %_ptr_Private__arr_mat3v2half_uint_2 = OpTypePointer Private %_arr_mat3v2half_uint_2 | |
| %half_0x0p_0 = OpConstant %half 0x0p+0 | |
| %half_0x1p_0 = OpConstant %half 0x1p+0 | |
| %15 = OpConstantComposite %v2half %half_0x0p_0 %half_0x1p_0 | |
| %half_0x1p_1 = OpConstant %half 0x1p+1 | |
| %half_0x1_8p_1 = OpConstant %half 0x1.8p+1 | |
| %18 = OpConstantComposite %v2half %half_0x1p_1 %half_0x1_8p_1 | |
| %14 = OpConstantComposite %mat3v2half %15 %18 %18 | |
| %13 = OpConstantComposite %_arr_mat3v2half_uint_2 %14 %14 | |
| %6 = OpVariable %_ptr_Private__arr_mat3v2half_uint_2 Private %13 | |
| %void = OpTypeVoid | |
| %23 = OpTypeFunction %void | |
| %_ptr_Function_uint = OpTypePointer Function %uint | |
| %uint_0 = OpConstant %uint 0 | |
| %_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint | |
| %uint_1 = OpConstant %uint 1 | |
| %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint | |
| %_ptr_Private_v2half = OpTypePointer Private %v2half | |
| %_ptr_Private_half = OpTypePointer Private %half | |
| %47 = OpTypeFunction %uint %half | |
| %half_0x1_ffcp_15 = OpConstant %half 0x1.ffcp+15 | |
| %main = OpFunction %void None %23 | |
| %24 = OpLabel | |
| %q = OpVariable %_ptr_Function_uint Function | |
| OpStore %q %uint_0 | |
| %28 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %1 %uint_0 | |
| %30 = OpArrayLength %uint %1 0 | |
| %31 = OpISub %uint %30 %uint_1 | |
| %33 = OpExtInst %uint %34 UMin %uint_0 %31 | |
| %35 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 %33 | |
| %37 = OpLoad %uint %q None | |
| %38 = OpExtInst %uint %34 UMin %37 %uint_1 | |
| %39 = OpAccessChain %_ptr_Private_v2half %6 %38 %uint_0 | |
| %41 = OpAccessChain %_ptr_Private_half %39 %uint_0 | |
| %43 = OpLoad %half %41 None | |
| %44 = OpFunctionCall %uint %tint_f16_to_u32 %43 | |
| OpStore %35 %44 None | |
| OpReturn | |
| OpFunctionEnd | |
| %tint_f16_to_u32 = OpFunction %uint None %47 | |
| %value = OpFunctionParameter %half | |
| %48 = OpLabel | |
| %49 = OpExtInst %half %34 NClamp %value %half_0x0p_0 %half_0x1_ffcp_15 | |
| %51 = OpConvertFToU %uint %49 | |
| OpReturnValue %51 | |
| OpFunctionEnd |