1; SPIR-V
2; Version: 1.0
3; Generator: Wine VKD3D Shader Compiler; 0
4; Bound: 54
5; Schema: 0
6               OpCapability Shader
7               OpMemoryModel Logical GLSL450
8               OpEntryPoint Fragment %main "main" %o0
9			   OpExecutionMode %main OriginUpperLeft
10               OpName %main "main"
11               OpName %t0 "t0"
12               OpName %o0 "o0"
13               OpName %r0 "r0"
14               OpName %push_cb "push_cb"
15               OpMemberName %push_cb 0 "cb0"
16               OpName %dummy_sampler "dummy_sampler"
17               OpDecorate %t0 DescriptorSet 0
18               OpDecorate %t0 Binding 2
19               OpDecorate %o0 Location 0
20               OpDecorate %_arr_v4float_uint_1 ArrayStride 16
21               OpDecorate %push_cb Block
22               OpMemberDecorate %push_cb 0 Offset 0
23               OpDecorate %dummy_sampler DescriptorSet 0
24               OpDecorate %dummy_sampler Binding 4
25       %void = OpTypeVoid
26          %2 = OpTypeFunction %void
27      %float = OpTypeFloat 32
28          %6 = OpTypeImage %float 2D 0 0 0 1 Unknown
29%_ptr_UniformConstant_6 = OpTypePointer UniformConstant %6
30         %t0 = OpVariable %_ptr_UniformConstant_6 UniformConstant
31    %v4float = OpTypeVector %float 4
32%_ptr_Output_v4float = OpTypePointer Output %v4float
33         %o0 = OpVariable %_ptr_Output_v4float Output
34%_ptr_Function_v4float = OpTypePointer Function %v4float
35       %uint = OpTypeInt 32 0
36     %uint_1 = OpConstant %uint 1
37%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1
38    %push_cb = OpTypeStruct %_arr_v4float_uint_1
39%_ptr_PushConstant_push_cb = OpTypePointer PushConstant %push_cb
40         %19 = OpVariable %_ptr_PushConstant_push_cb PushConstant
41     %uint_0 = OpConstant %uint 0
42%_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float
43%_ptr_PushConstant_float = OpTypePointer PushConstant %float
44        %int = OpTypeInt 32 1
45    %v2float = OpTypeVector %float 2
46    %float_0 = OpConstant %float 0
47         %30 = OpConstantComposite %v2float %float_0 %float_0
48         %33 = OpTypeSampler
49%_ptr_UniformConstant_33 = OpTypePointer UniformConstant %33
50%dummy_sampler = OpVariable %_ptr_UniformConstant_33 UniformConstant
51         %38 = OpTypeSampledImage %6
52      %v2int = OpTypeVector %int 2
53%_ptr_Function_float = OpTypePointer Function %float
54     %uint_3 = OpConstant %uint 3
55     %int_n1 = OpConstant %int -1
56     %int_n2 = OpConstant %int -2
57         %52 = OpConstantComposite %v2int %int_n1 %int_n2
58       %main = OpFunction %void None %2
59          %4 = OpLabel
60         %r0 = OpVariable %_ptr_Function_v4float Function
61         %23 = OpAccessChain %_ptr_PushConstant_v4float %19 %uint_0 %uint_0
62         %25 = OpLoad %v4float %23
63         %26 = OpLoad %v4float %r0
64         %27 = OpVectorShuffle %v4float %26 %25 6 7 2 3
65               OpStore %r0 %27
66         %31 = OpLoad %v4float %r0
67         %32 = OpVectorShuffle %v4float %31 %30 0 1 4 5
68               OpStore %r0 %32
69         %36 = OpLoad %6 %t0
70         %37 = OpLoad %33 %dummy_sampler
71         %39 = OpSampledImage %38 %36 %37
72         %40 = OpImage %6 %39
73         %41 = OpLoad %v4float %r0
74         %42 = OpVectorShuffle %v2float %41 %41 0 1
75         %44 = OpBitcast %v2int %42
76         %47 = OpInBoundsAccessChain %_ptr_Function_float %r0 %uint_3
77         %48 = OpLoad %float %47
78         %49 = OpBitcast %int %48
79         %54 = OpImageFetch %v4float %40 %44 Lod|ConstOffset %49 %52
80               OpStore %o0 %54
81               OpReturn
82               OpFunctionEnd
83