summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2018-03-07 10:38:37 -0800
committerJordan Justen <jordan.l.justen@intel.com>2018-03-07 10:38:37 -0800
commit54c24ef232b5fc4b9ffaa460fd95b62a031a2b37 (patch)
treebf601bd7cbebb1bd6918d4cc86658bffce139be1
parent1aa1e4b1cc669b184d4e0b1d28fe7832e1ae650b (diff)
slow-fs.shader_test - takes a bit to compile on i965arb_get_program_binary
-rw-r--r--slow-fs.shader_test2030
1 files changed, 2030 insertions, 0 deletions
diff --git a/slow-fs.shader_test b/slow-fs.shader_test
new file mode 100644
index 000000000..d51fe267d
--- /dev/null
+++ b/slow-fs.shader_test
@@ -0,0 +1,2030 @@
+[require]
+GLSL >= 4.50
+#GL_ARB_separate_shader_objects
+#SSO ENABLED
+
+[vertex shader]
+#version 450 core
+
+in vec4 piglit_vertex;
+layout(location = 1) out idx_Varying1 { sample vec4 v; } v1;
+
+void main()
+{
+ gl_Position = piglit_vertex;
+}
+
+[fragment shader]
+#version 450 core
+// ps_5_0
+// Checksum: c5a8da7c_bdc31ae6_e959a85b_aad569ac
+// Name: ADCA822F_B7774260_SkinLighting_PS.PS
+
+sample in vec4 gl_FragCoord;
+vec4 v0 = vec4(gl_FragCoord.xyz, 1.0 / gl_FragCoord.w);
+layout(location = 1) in idx_Varying1 { sample vec4 v; } v1;
+layout(location = 0) out vec4 o0;
+//layout(location = 1) out vec4 o1;
+ivec4 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27;
+
+// Uniform buffer declarations (dcl_constant_buffer)
+
+layout (std140) uniform cb_ps0 { vec4 cb0[31]; } idx_uniforms0_ps;
+
+layout (std140) uniform cb_ps12 { vec4 cb12[1]; } idx_uniforms12_ps;
+
+
+// Sampler/resource pairs
+
+uniform sampler2DMS resourceSamplerPair_0_ps; // res4, s-1
+
+uniform sampler2DMS resourceSamplerPair_1_ps; // res5, s-1
+
+uniform sampler2DMS resourceSamplerPair_2_ps; // res6, s-1
+
+uniform samplerBuffer resourceSamplerPair_3_ps; // res2, s-1
+
+uniform samplerBuffer resourceSamplerPair_4_ps; // res3, s-1
+
+uniform samplerBuffer resourceSamplerPair_5_ps; // res1, s-1
+
+uniform sampler2D resourceSamplerPair_6_ps; // res0, s0
+
+
+void Initialise()
+{
+}
+
+
+uvec4 movc(in uvec4 src0, in uvec4 src1, in uvec4 src2)
+{
+ return mix(src2, src1, bvec4(src0));
+}
+
+uvec3 movc(in uvec3 src0, in uvec3 src1, in uvec3 src2)
+{
+ return mix(src2, src1, bvec3(src0));
+}
+
+uvec2 movc(in uvec2 src0, in uvec2 src1, in uvec2 src2)
+{
+ return mix(src2, src1, bvec2(src0));
+}
+
+uint movc(in uint src0, in uint src1, in uint src2)
+{
+ return mix(src2, src1, bool(src0));
+}
+
+float saturate(float rhs)
+{
+ return clamp(rhs, 0.0, 1.0);
+}
+
+vec2 saturate(vec2 rhs)
+{
+ return clamp(rhs, 0.0, 1.0);
+}
+
+vec3 saturate(vec3 rhs)
+{
+ return clamp(rhs, 0.0, 1.0);
+}
+
+vec4 saturate(vec4 rhs)
+{
+ return clamp(rhs, 0.0, 1.0);
+}
+
+int saturate(int rhs)
+{
+ return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0));
+}
+
+ivec2 saturate(ivec2 rhs)
+{
+ return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0));
+}
+
+ivec3 saturate(ivec3 rhs)
+{
+ return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0));
+}
+
+ivec4 saturate(ivec4 rhs)
+{
+ return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0));
+}
+
+uint saturate(uint rhs)
+{
+ return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0));
+}
+
+uvec2 saturate(uvec2 rhs)
+{
+ return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0));
+}
+
+uvec3 saturate(uvec3 rhs)
+{
+ return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0));
+}
+
+uvec4 saturate(uvec4 rhs)
+{
+ return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0));
+}
+
+void main()
+{
+ Initialise();
+ r0.xy = ivec2(v0.xy);
+ r0.zw = ivec2(uvec2(0x00000000, 0x00000000));
+ r1 = floatBitsToInt((texelFetch(resourceSamplerPair_0_ps, r0.xy, int(0))));
+ r2.xy = floatBitsToInt(((texelFetch(resourceSamplerPair_1_ps, r0.xy, int(0)))).xy);
+ r1.yz = floatBitsToInt(intBitsToFloat(r1.zy) * vec2(255.000000f, 15.9375000f));
+ r2.z = floatBitsToInt(floor(intBitsToFloat(r1.z)));
+ r3.x = floatBitsToInt(fma(intBitsToFloat(r1.x), float(4080.00000f), intBitsToFloat(r2.z)));
+ r1.x = floatBitsToInt(fract(intBitsToFloat(r1.z)));
+ r3.y = floatBitsToInt(fma(intBitsToFloat(r1.x), float(4096.00000f), intBitsToFloat(r1.y)));
+ r1.xy = floatBitsToInt(fma(intBitsToFloat(r3.xy), vec2(0.000488519785f, 0.000488519785f), vec2(-1.00000000f, -1.00000000f)));
+ r1.xy = floatBitsToInt(max(intBitsToFloat(r1.xy), vec2(-1.00000000f, -1.00000000f)));
+ r1.xy = floatBitsToInt(min(intBitsToFloat(r1.xy), vec2(1.00000000f, 1.00000000f)));
+ r3.xyz = floatBitsToInt(-abs(intBitsToFloat(r1.xyx)) + vec3(1.00000000f, 1.00000000f, 1.00000000f));
+ r4.z = floatBitsToInt(-abs(intBitsToFloat(r1.y)) + intBitsToFloat(r3.x));
+ r1.z = intBitsToFloat(r4.z) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r2.zw = mix ( ivec2(0x00000000),ivec2(0xffffffff),bvec2(greaterThanEqual(intBitsToFloat(r1.xy), vec2(0.00000000f, 0.00000000f))));
+ r2.zw = ivec2(movc(uvec2(r2.zw), uvec2(0x3f800000, 0x3f800000), uvec2(0xbf800000, 0xbf800000)));
+ r2.zw = floatBitsToInt(intBitsToFloat(r2.zw) * intBitsToFloat(r3.yz));
+ r4.xy = ivec2(movc(uvec2(r1.zz), uvec2(r2.zw), uvec2(r1.xy)));
+ r1.x = floatBitsToInt(dot(intBitsToFloat(r4.xyz), intBitsToFloat(r4.xyz)));
+ r1.x = floatBitsToInt(inversesqrt(intBitsToFloat(r1.x)));
+ r1.xyz = floatBitsToInt(intBitsToFloat(r1.xxx) * intBitsToFloat(r4.xyz));
+ r2.y = floatBitsToInt(min(intBitsToFloat(r2.y), float(0.999899983f)));
+ r2.z = floatBitsToInt(dot(-v1.v.xyz, -v1.v.xyz));
+ r2.z = floatBitsToInt(inversesqrt(intBitsToFloat(r2.z)));
+ r3.xyz = floatBitsToInt(intBitsToFloat(r2.zzz) * -v1.v.xyz);
+ r2.w = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r3.xyz))));
+ r3.w = int(floatBitsToUint(idx_uniforms12_ps.cb12[0].y) >> uint(0x00000010));
+ r4.x = int(floatBitsToUint(idx_uniforms12_ps.cb12[0].y) & uint(0x0000ffff));
+ r4.x = int(min(uint(r4.x), uint(0x00000020)));
+ r0.x = floatBitsToInt(((texelFetch(resourceSamplerPair_2_ps, r0.xy, int(uint(gl_SampleID))))).x);
+ r0.x = floatBitsToInt(fma(-intBitsToFloat(r0.x), intBitsToFloat(r0.x), float(1.00000000f)));
+ r0.x = floatBitsToInt(fma(-idx_uniforms0_ps.cb0[30].z, intBitsToFloat(r0.x), float(1.00000000f)));
+ r0.y = floatBitsToInt(-intBitsToFloat(r2.y) + float(1.00000000f));
+ r0.y = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y));
+ r0.z = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y));
+ r0.z = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r0.z));
+ r0.z = floatBitsToInt(intBitsToFloat(r0.z) + float(-2.00000000f));
+ r0.z = floatBitsToInt(max(intBitsToFloat(r0.z), float(1.00000000f)));
+ r0.w = floatBitsToInt(intBitsToFloat(r0.z) + float(2.00000000f));
+ r2.y = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r2.w));
+ r4.y = floatBitsToInt(-intBitsToFloat(r2.w) + float(1.00000000f));
+ r0.yw = floatBitsToInt(intBitsToFloat(r0.yw) * vec2(0.349999994f, 0.500000000f));
+ r0.y = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y));
+ r0.y = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r0.y));
+ r0.y = floatBitsToInt(intBitsToFloat(r0.y) + float(-2.00000000f));
+ r0.y = floatBitsToInt(max(intBitsToFloat(r0.y), float(1.00000000f)));
+ r4.z = floatBitsToInt(intBitsToFloat(r0.y) + float(2.00000000f));
+ r4.z = floatBitsToInt(intBitsToFloat(r4.z) * float(0.500000000f));
+ r4.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r4.y));
+ r5 = ivec4(uvec4(0x00000000, 0x00000000, 0x00000000, 0x00000000));
+ while (true)
+ {
+ r6.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r6.x) != uint(0))
+ break;
+ r6.x = r3.w + r5.w;
+ r6.x = r6.x << int(2);
+ r6.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r6.x) / 4u + 0u)).x);
+ r6.yz = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000210) / 16)).xy));
+ r6.y = r6.y != int(1) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r6.y) != uint(0))
+ {
+ break;
+ }
+ r6.y = int(uint(r6.z) & uint(0x00000002));
+ if (uint(r6.y) != uint(0))
+ {
+ r6.y = r5.w + int(1);
+ r5.w = r6.y;
+ continue;
+ }
+ r7 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000030) / 16)).xyzw));
+ r6.yzw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000040) / 16)).xyz));
+ r8.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000050) / 16)).xyz));
+ r9.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000060) / 16)).xyz));
+ r10.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000070) / 16)).xyz));
+ r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x000000a0) / 16)).xyz));
+ r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000140) / 16)).xyzw));
+ r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000150) / 16)).xyzw));
+ r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000160) / 16)).xyzw));
+ r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000170) / 16)).xyzw));
+ r16.xy = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000204) / 16)).yz));
+ r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000320) / 16)).xyzw));
+ r6.x = uint(r17.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r6.x) != uint(0))
+ {
+ r6.x = int(uint(r16.y) & uint(0x00000001));
+ if (uint(r6.x) != uint(0))
+ {
+ r18.x = r12.x;
+ r18.y = r13.x;
+ r18.z = r14.x;
+ r18.w = r15.x;
+ r18.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r19.x = r12.y;
+ r19.y = r13.y;
+ r19.z = r14.y;
+ r19.w = r15.y;
+ r18.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19)));
+ r19.x = r12.z;
+ r19.y = r13.z;
+ r19.z = r14.z;
+ r19.w = r15.z;
+ r18.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r19)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) / intBitsToFloat(r6.xxx));
+ r19.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r18.xyz), -intBitsToFloat(r8.xyz))));
+ r18.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r9.xyz), intBitsToFloat(r18.xyz), -intBitsToFloat(r6.yzw))));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) + intBitsToFloat(r19.xyz));
+ r6.x = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r18.xyz)));
+ r6.x = floatBitsToInt(sqrt(intBitsToFloat(r6.x)));
+ r6.x = floatBitsToInt(min(intBitsToFloat(r6.x), float(1.00000000f)));
+ r6.x = floatBitsToInt(-intBitsToFloat(r6.x) + float(1.00000000f));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r7.xyz));
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000080) / 16)).xyzw));
+ r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r18.x;
+ r25.y = r19.x;
+ r25.z = r20.x;
+ r25.w = r21.x;
+ r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r26.x = r18.y;
+ r26.y = r19.y;
+ r26.z = r20.y;
+ r26.w = r21.y;
+ r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r26.x = r18.z;
+ r26.y = r19.z;
+ r26.z = r20.z;
+ r26.w = r21.z;
+ r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r6.xxx));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz);
+ r6.x = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz)));
+ r6.x = floatBitsToInt(sqrt(intBitsToFloat(r6.x)));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r6.x = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r6.x));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r6.x), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r16.zw = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw);
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(2.00000000f), float(-1.00000000f)));
+ r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r9.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r8.w = -r8.w + r9.w;
+ r8.w = floatBitsToInt(float(r8.w));
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r24.w));
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) * float(1.44269502f));
+ r6.x = floatBitsToInt(exp2(intBitsToFloat(r6.x)));
+ r9.w = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r8.w));
+ r10.w = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r9.w));
+ r10.w = floatBitsToInt(intBitsToFloat(r10.w) * float(0.00999999978f));
+ r10.w = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r10.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r16.z));
+ r16.z = floatBitsToInt(fma(-intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.w)));
+ r10.w = floatBitsToInt(max(intBitsToFloat(r10.w), intBitsToFloat(r16.z)));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r6.x), -intBitsToFloat(r11.w)));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), intBitsToFloat(r6.x), intBitsToFloat(r10.w)));
+ r6.x = floatBitsToInt(intBitsToFloat(r10.w) / intBitsToFloat(r6.x));
+ r6.x = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r6.x));
+ r8.w = floatBitsToInt(-intBitsToFloat(r16.x) + float(1.00000000f));
+ r6.x = saturate(floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r8.w)));
+ r9.w = intBitsToFloat(r11.w) >= intBitsToFloat(r9.w) ? int(0xffffffff) : int(0x00000000);
+ r6.x = int(movc(uint(r9.w), uint(0x3f800000), uint(r6.x)));
+ r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r17.yzw), uvec3(0x00000020, 0x00000020, 0x00000020))));
+ if (uint(r18.x) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000080) / 16)).xyzw));
+ r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000090) / 16)).xyz));
+ r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r26.x = r19.x;
+ r26.y = r20.x;
+ r26.z = r21.x;
+ r26.w = r22.x;
+ r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r27.x = r19.y;
+ r27.y = r20.y;
+ r27.z = r21.y;
+ r27.w = r22.y;
+ r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r27.x = r19.z;
+ r27.y = r20.z;
+ r27.z = r21.z;
+ r27.w = r22.z;
+ r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r9.www));
+ r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz)));
+ r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y)));
+ r9.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r9.w), intBitsToFloat(r19.z)));
+ r19.xy = saturate(r19.xy);
+ r16.zw = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw);
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f)));
+ r10.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r10.w = -r10.w + r11.w;
+ r10.w = floatBitsToInt(float(r10.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r25.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f));
+ r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w)));
+ r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r11.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x));
+ r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z));
+ r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w)));
+ r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w));
+ r9.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w)));
+ r10.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000);
+ r9.w = int(movc(uint(r10.w), uint(0x3f800000), uint(r9.w)));
+ }
+ else
+ {
+ r9.w = int(uint(0x3f800000));
+ }
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r9.w));
+ if (uint(r18.y) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000080) / 16)).xyzw));
+ r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r19.x;
+ r25.y = r20.x;
+ r25.z = r21.x;
+ r25.w = r22.x;
+ r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.y;
+ r25.y = r20.y;
+ r25.z = r21.y;
+ r25.w = r22.y;
+ r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.z;
+ r25.y = r20.z;
+ r25.z = r21.z;
+ r25.w = r22.z;
+ r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) / intBitsToFloat(r9.www));
+ r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw)));
+ r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r9.w = floatBitsToInt(-intBitsToFloat(r17.z) + intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r9.w), intBitsToFloat(r17.z)));
+ r17.xy = saturate(r17.xy);
+ r16.zw = floatBitsToInt(fma(intBitsToFloat(r17.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw);
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f)));
+ r10.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r10.w = -r10.w + r11.w;
+ r10.w = floatBitsToInt(float(r10.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r24.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f));
+ r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w)));
+ r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x));
+ r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z));
+ r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w)));
+ r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w));
+ r9.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w)));
+ r10.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000);
+ r9.w = int(movc(uint(r10.w), uint(0x3f800000), uint(r9.w)));
+ }
+ else
+ {
+ r9.w = int(uint(0x3f800000));
+ }
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r9.w));
+ if (uint(r18.z) != uint(0))
+ {
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000080) / 16)).xyzw));
+ r17.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000090) / 16)).xyz));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r24.x = r18.x;
+ r24.y = r19.x;
+ r24.z = r20.x;
+ r24.w = r21.x;
+ r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24)));
+ r25.x = r18.y;
+ r25.y = r19.y;
+ r25.z = r20.y;
+ r25.w = r21.y;
+ r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r18.z;
+ r25.y = r19.z;
+ r25.z = r20.z;
+ r25.w = r21.z;
+ r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r9.www));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) + -v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r17.xyz), intBitsToFloat(r17.xyz)));
+ r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y)));
+ r9.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r9.w), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r16.zw = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw);
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f)));
+ r10.w = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r10.w = -r10.w + r11.w;
+ r10.w = floatBitsToInt(float(r10.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r23.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f));
+ r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w)));
+ r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r11.w));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x));
+ r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z));
+ r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w)));
+ r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z)));
+ r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w)));
+ r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w));
+ r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w));
+ r8.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w)));
+ r9.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000);
+ r8.w = int(movc(uint(r9.w), uint(0x3f800000), uint(r8.w)));
+ }
+ else
+ {
+ r8.w = int(uint(0x3f800000));
+ }
+ r9.w = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r8.w));
+ r6.x = floatBitsToInt(fma(-intBitsToFloat(r6.x), intBitsToFloat(r8.w), float(1.00000000f)));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r7.w), intBitsToFloat(r6.x), intBitsToFloat(r9.w)));
+ }
+ else
+ {
+ r6.x = int(uint(0x3f800000));
+ }
+ r16.xzw = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r7.xyz));
+ }
+ else
+ {
+ r17.x = r12.x;
+ r17.y = r13.x;
+ r17.z = r14.x;
+ r17.w = r15.x;
+ r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r18.x = r12.y;
+ r18.y = r13.y;
+ r18.z = r14.y;
+ r18.w = r15.y;
+ r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r18.x = r12.z;
+ r18.y = r13.z;
+ r18.z = r14.z;
+ r18.w = r15.z;
+ r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) / intBitsToFloat(r6.xxx));
+ r6.x = int(uint(r16.y) & uint(0x00000001));
+ r8.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r12.xyz), -intBitsToFloat(r8.xyz))));
+ r6.yzw = saturate(floatBitsToInt(fma(intBitsToFloat(r9.xyz), intBitsToFloat(r12.xyz), -intBitsToFloat(r6.yzw))));
+ r6.yzw = floatBitsToInt(intBitsToFloat(r6.yzw) + intBitsToFloat(r8.xyz));
+ r6.y = floatBitsToInt(dot(intBitsToFloat(r6.yzw), intBitsToFloat(r6.yzw)));
+ r6.y = floatBitsToInt(sqrt(intBitsToFloat(r6.y)));
+ r6.y = floatBitsToInt(min(intBitsToFloat(r6.y), float(1.00000000f)));
+ r6.y = floatBitsToInt(-intBitsToFloat(r6.y) + float(1.00000000f));
+ r6.yzw = floatBitsToInt(intBitsToFloat(r6.yyy) * intBitsToFloat(r7.xyz));
+ r16.xzw = ivec3(movc(uvec3(r6.xxx), uvec3(r6.yzw), uvec3(r7.xyz)));
+ }
+ r6.x = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz)));
+ r6.x = floatBitsToInt(inversesqrt(intBitsToFloat(r6.x)));
+ r6.xyz = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r11.xyz));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r16.xzw));
+ r8.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r6.xyz)));
+ r6.w = floatBitsToInt(dot(intBitsToFloat(r8.xyz), intBitsToFloat(r8.xyz)));
+ r6.w = floatBitsToInt(inversesqrt(intBitsToFloat(r6.w)));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r6.www) * intBitsToFloat(r8.xyz));
+ r6.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r6.xyz))));
+ r6.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r8.xyz))));
+ r6.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r8.xyz))));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.xyz) * intBitsToFloat(r6.xxx));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r7.xyz));
+ r6.w = floatBitsToInt(log2(intBitsToFloat(r6.y)));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r6.w));
+ r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w)));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r7.w));
+ r6.z = floatBitsToInt(max(intBitsToFloat(r6.z), float(1.00000001e-10f)));
+ r8.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r6.x)));
+ r6.y = floatBitsToInt(intBitsToFloat(r6.y) + intBitsToFloat(r6.y));
+ r8.y = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x));
+ r8.y = intBitsToFloat(r6.z) >= intBitsToFloat(r8.y) ? int(0xffffffff) : int(0x00000000);
+ r8.x = intBitsToFloat(r2.w) == intBitsToFloat(r8.x) ? int(0xffffffff) : int(0x00000000);
+ r8.z = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r2.w));
+ r8.x = int(movc(uint(r8.x), uint(0x3f800000), uint(r8.z)));
+ r8.x = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x));
+ r8.x = floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r6.z));
+ r8.x = int(movc(uint(r8.y), uint(r8.x), uint(r2.y)));
+ r7.w = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r8.x));
+ r7.w = floatBitsToInt(intBitsToFloat(r7.w) * float(0.250000000f));
+ r6.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r6.w));
+ r6.w = floatBitsToInt(exp2(intBitsToFloat(r6.w)));
+ r6.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r6.w));
+ r8.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r6.x)));
+ r8.y = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x));
+ r8.y = intBitsToFloat(r6.z) >= intBitsToFloat(r8.y) ? int(0xffffffff) : int(0x00000000);
+ r8.x = intBitsToFloat(r4.y) == intBitsToFloat(r8.x) ? int(0xffffffff) : int(0x00000000);
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r4.y));
+ r6.x = int(movc(uint(r8.x), uint(0x3f800000), uint(r6.x)));
+ r6.x = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r6.x));
+ r6.x = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r6.z));
+ r6.x = int(movc(uint(r8.y), uint(r6.x), uint(r4.w)));
+ r6.x = floatBitsToInt(intBitsToFloat(r6.w) * intBitsToFloat(r6.x));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(0.250000000f), -intBitsToFloat(r7.w)));
+ r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(0.0500000007f), intBitsToFloat(r7.w)));
+ r5.xyz = floatBitsToInt(fma(intBitsToFloat(r7.xyz), intBitsToFloat(r6.xxx), intBitsToFloat(r5.xyz)));
+ r5.w = r5.w + int(1);
+ }
+ r6 = r5;
+ while (true)
+ {
+ r7.x = uint(r6.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ break;
+ r7.x = r3.w + r6.w;
+ r7.x = r7.x << int(2);
+ r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x);
+ {
+ vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16));
+ vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1);
+ r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x));
+ }
+
+ r7.y = r8.w != int(2) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.y) != uint(0))
+ {
+ break;
+ }
+ r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).xyzw));
+ r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw));
+ r7.yzw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz));
+ r11 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw));
+ r8.w = uint(r11.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r8.w) != uint(0))
+ {
+ r12.xyz = floatBitsToInt(intBitsToFloat(r7.yzw) + -v1.v.xyz);
+ r8.w = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r12.xyz)));
+ r12.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w)));
+ r13.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r12.ww), intBitsToFloat(r9.xz))));
+ r13.xy = floatBitsToInt(intBitsToFloat(r13.xy) * intBitsToFloat(r13.xy));
+ r13.x = floatBitsToInt(intBitsToFloat(r13.x) * intBitsToFloat(r13.y));
+ r13.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r13.xxx));
+ r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w)));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r12.xyz));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r12.w));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r13.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r13.xyz));
+ r8.y = int(uint(r8.y) & uint(0x00000001));
+ if (uint(r8.y) != uint(0))
+ {
+ r8.yw = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xy));
+ r14.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x000000a0) / 16)).xyz));
+ r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000000) / 16)).xyzw));
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000010) / 16)).xyzw));
+ r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000020) / 16)).xyzw));
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000030) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000080) / 16)).xyzw));
+ r20.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000090) / 16)).xyz));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r22.x = r15.x;
+ r22.y = r16.x;
+ r22.z = r17.x;
+ r22.w = r18.x;
+ r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r23.x = r15.y;
+ r23.y = r16.y;
+ r23.z = r17.y;
+ r23.w = r18.y;
+ r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r23.x = r15.z;
+ r23.y = r16.z;
+ r23.z = r17.z;
+ r23.w = r18.z;
+ r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r18.x = r15.w;
+ r18.y = r16.w;
+ r18.z = r17.w;
+ r7.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r15.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r7.xxx));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r20.xyz) + -v1.v.xyz);
+ r7.x = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz)));
+ r7.x = floatBitsToInt(sqrt(intBitsToFloat(r7.x)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), intBitsToFloat(r21.x), intBitsToFloat(r21.y)));
+ r7.x = floatBitsToInt(-intBitsToFloat(r15.z) + intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r7.x), intBitsToFloat(r15.z)));
+ r15.xy = saturate(r15.xy);
+ r15.xy = floatBitsToInt(fma(intBitsToFloat(r15.xy), intBitsToFloat(r19.xy), intBitsToFloat(r19.zw)));
+ r15.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xy), float(0.00000000f)))).xy);
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(2.00000000f), float(-1.00000000f)));
+ r11.x = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000);
+ r12.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r11.x = -r11.x + r12.w;
+ r11.x = floatBitsToInt(float(r11.x));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r21.w));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) * float(1.44269502f));
+ r7.x = floatBitsToInt(exp2(intBitsToFloat(r7.x)));
+ r12.w = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.x));
+ r13.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r12.w));
+ r13.w = floatBitsToInt(intBitsToFloat(r13.w) * float(0.00999999978f));
+ r13.w = floatBitsToInt(intBitsToFloat(r13.w) * intBitsToFloat(r13.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r11.x) * intBitsToFloat(r15.x));
+ r15.x = floatBitsToInt(fma(-intBitsToFloat(r14.w), intBitsToFloat(r14.w), intBitsToFloat(r15.y)));
+ r13.w = floatBitsToInt(max(intBitsToFloat(r13.w), intBitsToFloat(r15.x)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r11.x), intBitsToFloat(r7.x), -intBitsToFloat(r14.w)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), intBitsToFloat(r7.x), intBitsToFloat(r13.w)));
+ r7.x = floatBitsToInt(intBitsToFloat(r13.w) / intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r7.x));
+ r11.x = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f));
+ r7.x = saturate(floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r11.x)));
+ r12.w = intBitsToFloat(r14.w) >= intBitsToFloat(r12.w) ? int(0xffffffff) : int(0x00000000);
+ r7.x = int(movc(uint(r12.w), uint(0x3f800000), uint(r7.x)));
+ r15.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r11.yzw), uvec3(0x00000020, 0x00000020, 0x00000020))));
+ if (uint(r15.x) != uint(0))
+ {
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000000) / 16)).xyzw));
+ r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000010) / 16)).xyzw));
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000020) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000030) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000080) / 16)).xyzw));
+ r21.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000090) / 16)).xyz));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r23.x = r16.x;
+ r23.y = r17.x;
+ r23.z = r18.x;
+ r23.w = r19.x;
+ r23.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r24.x = r16.y;
+ r24.y = r17.y;
+ r24.z = r18.y;
+ r24.w = r19.y;
+ r23.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r24)));
+ r24.x = r16.z;
+ r24.y = r17.z;
+ r24.z = r18.z;
+ r24.w = r19.z;
+ r23.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r24)));
+ r19.x = r16.w;
+ r19.y = r17.w;
+ r19.z = r18.w;
+ r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19)));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) / intBitsToFloat(r11.yyy));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r21.xyz) + -v1.v.xyz);
+ r11.y = floatBitsToInt(dot(intBitsToFloat(r17.xyz), intBitsToFloat(r17.xyz)));
+ r11.y = floatBitsToInt(sqrt(intBitsToFloat(r11.y)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r22.x), intBitsToFloat(r22.y)));
+ r11.y = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.y));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r22.z), intBitsToFloat(r11.y), intBitsToFloat(r16.z)));
+ r16.xy = saturate(r16.xy);
+ r15.xw = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r20.xy), intBitsToFloat(r20.zw)));
+ r15.xw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xw), float(0.00000000f))).xzwy).xw);
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), float(2.00000000f), float(-1.00000000f)));
+ r12.w = float(0.00000000f) < intBitsToFloat(r22.w) ? int(0xffffffff) : int(0x00000000);
+ r13.w = intBitsToFloat(r22.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r12.w = -r12.w + r13.w;
+ r12.w = floatBitsToInt(float(r12.w));
+ r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r22.w));
+ r11.y = floatBitsToInt(intBitsToFloat(r11.y) * float(1.44269502f));
+ r11.y = floatBitsToInt(exp2(intBitsToFloat(r11.y)));
+ r13.w = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r12.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r22.w) * intBitsToFloat(r13.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r14.w) * float(0.00999999978f));
+ r14.w = floatBitsToInt(intBitsToFloat(r14.w) * intBitsToFloat(r14.w));
+ r15.x = floatBitsToInt(intBitsToFloat(r12.w) * intBitsToFloat(r15.x));
+ r15.w = floatBitsToInt(fma(-intBitsToFloat(r15.x), intBitsToFloat(r15.x), intBitsToFloat(r15.w)));
+ r14.w = floatBitsToInt(max(intBitsToFloat(r14.w), intBitsToFloat(r15.w)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r11.y), -intBitsToFloat(r15.x)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r14.w)));
+ r11.y = floatBitsToInt(intBitsToFloat(r14.w) / intBitsToFloat(r11.y));
+ r11.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.y));
+ r11.y = saturate(floatBitsToInt(intBitsToFloat(r11.y) / intBitsToFloat(r11.x)));
+ r12.w = intBitsToFloat(r15.x) >= intBitsToFloat(r13.w) ? int(0xffffffff) : int(0x00000000);
+ r11.y = int(movc(uint(r12.w), uint(0x3f800000), uint(r11.y)));
+ }
+ else
+ {
+ r11.y = int(uint(0x3f800000));
+ }
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.y));
+ if (uint(r15.y) != uint(0))
+ {
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000000) / 16)).xyzw));
+ r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000010) / 16)).xyzw));
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000020) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000030) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000080) / 16)).xyzw));
+ r15.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000090) / 16)).xyz));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r22.x = r16.x;
+ r22.y = r17.x;
+ r22.z = r18.x;
+ r22.w = r19.x;
+ r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r23.x = r16.y;
+ r23.y = r17.y;
+ r23.z = r18.y;
+ r23.w = r19.y;
+ r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r23.x = r16.z;
+ r23.y = r17.z;
+ r23.z = r18.z;
+ r23.w = r19.z;
+ r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r19.x = r16.w;
+ r19.y = r17.w;
+ r19.z = r18.w;
+ r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19)));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r11.yyy));
+ r15.xyw = floatBitsToInt(intBitsToFloat(r15.xyw) + -v1.v.xyz);
+ r11.y = floatBitsToInt(dot(intBitsToFloat(r15.xyw), intBitsToFloat(r15.xyw)));
+ r11.y = floatBitsToInt(sqrt(intBitsToFloat(r11.y)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r21.x), intBitsToFloat(r21.y)));
+ r11.y = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.y));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r11.y), intBitsToFloat(r16.z)));
+ r16.xy = saturate(r16.xy);
+ r15.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r20.xy), intBitsToFloat(r20.zw)));
+ r15.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xy), float(0.00000000f)))).xy);
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), float(2.00000000f), float(-1.00000000f)));
+ r11.z = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000);
+ r12.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r11.z = -r11.z + r12.w;
+ r11.z = floatBitsToInt(float(r11.z));
+ r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r21.w));
+ r11.y = floatBitsToInt(intBitsToFloat(r11.y) * float(1.44269502f));
+ r11.y = floatBitsToInt(exp2(intBitsToFloat(r11.y)));
+ r12.w = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r11.z));
+ r13.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r12.w));
+ r13.w = floatBitsToInt(intBitsToFloat(r13.w) * float(0.00999999978f));
+ r13.w = floatBitsToInt(intBitsToFloat(r13.w) * intBitsToFloat(r13.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r11.z) * intBitsToFloat(r15.x));
+ r15.x = floatBitsToInt(fma(-intBitsToFloat(r14.w), intBitsToFloat(r14.w), intBitsToFloat(r15.y)));
+ r13.w = floatBitsToInt(max(intBitsToFloat(r13.w), intBitsToFloat(r15.x)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.z), intBitsToFloat(r11.y), -intBitsToFloat(r14.w)));
+ r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r13.w)));
+ r11.y = floatBitsToInt(intBitsToFloat(r13.w) / intBitsToFloat(r11.y));
+ r11.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.y));
+ r11.y = saturate(floatBitsToInt(intBitsToFloat(r11.y) / intBitsToFloat(r11.x)));
+ r11.z = intBitsToFloat(r14.w) >= intBitsToFloat(r12.w) ? int(0xffffffff) : int(0x00000000);
+ r11.y = int(movc(uint(r11.z), uint(0x3f800000), uint(r11.y)));
+ }
+ else
+ {
+ r11.y = int(uint(0x3f800000));
+ }
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.y));
+ if (uint(r15.z) != uint(0))
+ {
+ r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000000) / 16)).xyzw));
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000010) / 16)).xyzw));
+ r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000020) / 16)).xyzw));
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000030) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000080) / 16)).xyzw));
+ r20.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000090) / 16)).xyz));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r22.x = r15.x;
+ r22.y = r16.x;
+ r22.z = r17.x;
+ r22.w = r18.x;
+ r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r23.x = r15.y;
+ r23.y = r16.y;
+ r23.z = r17.y;
+ r23.w = r18.y;
+ r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r23.x = r15.z;
+ r23.y = r16.z;
+ r23.z = r17.z;
+ r23.w = r18.z;
+ r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23)));
+ r18.x = r15.w;
+ r18.y = r16.w;
+ r18.z = r17.w;
+ r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r11.yzw = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r11.yyy));
+ r15.xyz = floatBitsToInt(intBitsToFloat(r20.xyz) + -v1.v.xyz);
+ r12.w = floatBitsToInt(dot(intBitsToFloat(r15.xyz), intBitsToFloat(r15.xyz)));
+ r12.w = floatBitsToInt(sqrt(intBitsToFloat(r12.w)));
+ r12.w = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r21.x), intBitsToFloat(r21.y)));
+ r12.w = floatBitsToInt(-intBitsToFloat(r11.w) + intBitsToFloat(r12.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r12.w), intBitsToFloat(r11.w)));
+ r11.yz = saturate(r11.yz);
+ r11.yz = floatBitsToInt(fma(intBitsToFloat(r11.yz), intBitsToFloat(r19.xy), intBitsToFloat(r19.zw)));
+ r11.yz = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r11.yz), float(0.00000000f))).zxyw).yz);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r12.w = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000);
+ r13.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r12.w = -r12.w + r13.w;
+ r12.w = floatBitsToInt(float(r12.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r21.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r13.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r12.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r13.w));
+ r14.w = floatBitsToInt(intBitsToFloat(r14.w) * float(0.00999999978f));
+ r14.w = floatBitsToInt(intBitsToFloat(r14.w) * intBitsToFloat(r14.w));
+ r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r12.w));
+ r11.z = floatBitsToInt(fma(-intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r11.z)));
+ r11.z = floatBitsToInt(max(intBitsToFloat(r14.w), intBitsToFloat(r11.z)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r11.w), -intBitsToFloat(r11.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r11.z)));
+ r11.z = floatBitsToInt(intBitsToFloat(r11.z) / intBitsToFloat(r11.w));
+ r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.z));
+ r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r11.x)));
+ r11.x = intBitsToFloat(r11.y) >= intBitsToFloat(r13.w) ? int(0xffffffff) : int(0x00000000);
+ r8.x = int(movc(uint(r11.x), uint(0x3f800000), uint(r8.x)));
+ }
+ else
+ {
+ r8.x = int(uint(0x3f800000));
+ }
+ r11.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r8.x));
+ r7.x = floatBitsToInt(fma(-intBitsToFloat(r7.x), intBitsToFloat(r8.x), float(1.00000000f)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r7.x), intBitsToFloat(r11.x)));
+ r8.x = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r14.xyz)));
+ r8.x = saturate(floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.x), intBitsToFloat(r8.y))));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) + float(-1.00000000f));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r8.x), intBitsToFloat(r7.x), float(1.00000000f)));
+ r8.x = floatBitsToInt(-intBitsToFloat(r7.x) + float(1.00000000f));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r7.x)));
+ }
+ else
+ {
+ r7.x = int(uint(0x3f800000));
+ }
+ r8.xyw = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r13.xyz));
+ }
+ else
+ {
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.yzw) + -v1.v.xyz);
+ r7.w = floatBitsToInt(dot(intBitsToFloat(r7.xyz), intBitsToFloat(r7.xyz)));
+ r10.w = floatBitsToInt(sqrt(intBitsToFloat(r7.w)));
+ r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r10.ww), intBitsToFloat(r9.xz))));
+ r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz));
+ r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w)));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r7.xyz));
+ r7.x = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r10.w));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) * float(1.44269502f));
+ r7.x = floatBitsToInt(exp2(intBitsToFloat(r7.x)));
+ r8.xyw = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r9.xyz));
+ }
+ r7.x = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r12.xyz)));
+ r7.x = floatBitsToInt(inversesqrt(intBitsToFloat(r7.x)));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r12.xyz));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw));
+ r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz)));
+ r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz)));
+ r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz));
+ r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz))));
+ r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz))));
+ r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz))));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz));
+ r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w));
+ r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f)));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x)));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w));
+ r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z)));
+ r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z));
+ r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w));
+ r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w)));
+ r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x)));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y));
+ r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z));
+ r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w)));
+ r6.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r6.xyz)));
+ r6.w = r6.w + int(1);
+ }
+ r5 = r6;
+ while (true)
+ {
+ r7.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ break;
+ r7.x = r3.w + r5.w;
+ r7.x = r7.x << int(2);
+ r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x);
+ {
+ vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16));
+ vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1);
+ r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x));
+ }
+
+ r7.y = r8.w != int(3) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.y) != uint(0))
+ {
+ break;
+ }
+ r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw));
+ r7.y = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).x);
+ r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw));
+ r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz));
+ r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000140) / 16)).xyzw));
+ r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000150) / 16)).xyzw));
+ r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000160) / 16)).xyzw));
+ r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000170) / 16)).xyzw));
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw));
+ r7.x = uint(r16.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ {
+ r7.xzw = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz);
+ r8.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w)));
+ r17.x = r12.x;
+ r17.y = r13.x;
+ r17.z = r14.x;
+ r17.w = r15.x;
+ r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r18.x = r12.y;
+ r18.y = r13.y;
+ r18.z = r14.y;
+ r18.w = r15.y;
+ r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r18.x = r12.z;
+ r18.y = r13.z;
+ r18.z = r14.z;
+ r18.w = r15.z;
+ r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r17.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r17.z = float(0.00000000f) < intBitsToFloat(r17.z) ? int(0xffffffff) : int(0x00000000);
+ r17.z = int(uint(r17.z) & uint(0x3f800000));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r17.zzz));
+ r19.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz))));
+ r19.xy = floatBitsToInt(intBitsToFloat(r19.xy) * intBitsToFloat(r19.xy));
+ r17.z = floatBitsToInt(intBitsToFloat(r19.x) * intBitsToFloat(r19.y));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r17.zzz) * intBitsToFloat(r18.xyz));
+ r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r8.www));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r17.ww));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + vec2(-0.500000000f, -0.500000000f));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + intBitsToFloat(r17.xy));
+ r8.w = floatBitsToInt(dot(intBitsToFloat(r17.xy), intBitsToFloat(r17.xy)));
+ r8.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w)));
+ r8.w = floatBitsToInt(min(intBitsToFloat(r8.w), float(1.00000000f)));
+ r17.x = floatBitsToInt(-intBitsToFloat(r7.y) + intBitsToFloat(r8.w));
+ r17.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) / intBitsToFloat(r17.y));
+ r17.x = floatBitsToInt(-intBitsToFloat(r17.x) + float(1.00000000f));
+ r17.y = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x));
+ r17.x = floatBitsToInt(fma(-intBitsToFloat(r17.x), float(2.00000000f), float(3.00000000f)));
+ r17.x = saturate(floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.y)));
+ r8.w = intBitsToFloat(r8.w) >= intBitsToFloat(r7.y) ? int(0xffffffff) : int(0x00000000);
+ r8.w = int(uint(r8.w) & uint(0x3f800000));
+ r17.x = floatBitsToInt(intBitsToFloat(r17.x) + float(-1.00000000f));
+ r8.w = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r17.x), float(1.00000000f)));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r18.xyz));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r17.xyz));
+ r8.y = int(uint(r8.y) & uint(0x00000001));
+ if (uint(r8.y) != uint(0))
+ {
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000080) / 16)).xyzw));
+ r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r18.x;
+ r25.y = r19.x;
+ r25.z = r20.x;
+ r25.w = r21.x;
+ r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r26.x = r18.y;
+ r26.y = r19.y;
+ r26.z = r20.y;
+ r26.w = r21.y;
+ r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r26.x = r18.z;
+ r26.y = r19.z;
+ r26.z = r20.z;
+ r26.w = r21.z;
+ r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r8.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r8.yyy));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz);
+ r8.y = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz)));
+ r8.y = floatBitsToInt(sqrt(intBitsToFloat(r8.y)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r8.y = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r8.y));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r8.y), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r18.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r18.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r18.xy), float(0.00000000f)))).xy);
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), float(2.00000000f), float(-1.00000000f)));
+ r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r8.w = -r8.w + r11.w;
+ r8.w = floatBitsToInt(float(r8.w));
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r24.w));
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * float(1.44269502f));
+ r8.y = floatBitsToInt(exp2(intBitsToFloat(r8.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r8.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * float(0.00999999978f));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r16.x));
+ r17.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r18.x));
+ r18.x = floatBitsToInt(fma(-intBitsToFloat(r17.w), intBitsToFloat(r17.w), intBitsToFloat(r18.y)));
+ r16.x = floatBitsToInt(max(intBitsToFloat(r16.x), intBitsToFloat(r18.x)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.y), -intBitsToFloat(r17.w)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r8.y), intBitsToFloat(r16.x)));
+ r8.y = floatBitsToInt(intBitsToFloat(r16.x) / intBitsToFloat(r8.y));
+ r8.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r8.y));
+ r8.w = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f));
+ r8.y = saturate(floatBitsToInt(intBitsToFloat(r8.y) / intBitsToFloat(r8.w)));
+ r11.w = intBitsToFloat(r17.w) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000);
+ r8.y = int(movc(uint(r11.w), uint(0x3f800000), uint(r8.y)));
+ r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r16.yzw), uvec3(0x00000020, 0x00000020, 0x00000020))));
+ if (uint(r18.x) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000080) / 16)).xyzw));
+ r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000090) / 16)).xyz));
+ r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r26.x = r19.x;
+ r26.y = r20.x;
+ r26.z = r21.x;
+ r26.w = r22.x;
+ r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r27.x = r19.y;
+ r27.y = r20.y;
+ r27.z = r21.y;
+ r27.w = r22.y;
+ r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r27.x = r19.z;
+ r27.y = r20.z;
+ r27.z = r21.z;
+ r27.w = r22.z;
+ r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r11.www));
+ r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r11.w), intBitsToFloat(r19.z)));
+ r19.xy = saturate(r19.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r17.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000);
+ r18.x = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r17.w = -r17.w + r18.x;
+ r17.w = floatBitsToInt(float(r17.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r25.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r18.x = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r17.w));
+ r18.w = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r18.x));
+ r18.w = floatBitsToInt(intBitsToFloat(r18.w) * float(0.00999999978f));
+ r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r17.w));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r18.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r17.w), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w)));
+ r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r18.x) ? int(0xffffffff) : int(0x00000000);
+ r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w)));
+ }
+ else
+ {
+ r11.w = int(uint(0x3f800000));
+ }
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w));
+ if (uint(r18.y) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000080) / 16)).xyzw));
+ r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r19.x;
+ r25.y = r20.x;
+ r25.z = r21.x;
+ r25.w = r22.x;
+ r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.y;
+ r25.y = r20.y;
+ r25.z = r21.y;
+ r25.w = r22.y;
+ r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.z;
+ r25.y = r20.z;
+ r25.z = r21.z;
+ r25.w = r22.z;
+ r16.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) / intBitsToFloat(r11.www));
+ r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r11.w), intBitsToFloat(r16.z)));
+ r16.xy = saturate(r16.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r16.z = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r17.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r16.z = -r16.z + r17.w;
+ r16.z = floatBitsToInt(float(r16.z));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r24.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r17.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z));
+ r18.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r17.w));
+ r18.x = floatBitsToInt(intBitsToFloat(r18.x) * float(0.00999999978f));
+ r18.x = floatBitsToInt(intBitsToFloat(r18.x) * intBitsToFloat(r18.x));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r18.x), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w)));
+ r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r17.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w)));
+ }
+ else
+ {
+ r11.w = int(uint(0x3f800000));
+ }
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w));
+ if (uint(r18.z) != uint(0))
+ {
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000080) / 16)).xyzw));
+ r16.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000090) / 16)).xyz));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r24.x = r18.x;
+ r24.y = r19.x;
+ r24.z = r20.x;
+ r24.w = r21.x;
+ r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24)));
+ r25.x = r18.y;
+ r25.y = r19.y;
+ r25.z = r20.y;
+ r25.w = r21.y;
+ r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r18.z;
+ r25.y = r19.z;
+ r25.z = r20.z;
+ r25.w = r21.z;
+ r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r11.www));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r11.w), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r16.z = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000);
+ r16.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r16.z = -r16.z + r16.w;
+ r16.z = floatBitsToInt(float(r16.z));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r23.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r16.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z));
+ r17.w = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r16.w));
+ r17.w = floatBitsToInt(intBitsToFloat(r17.w) * float(0.00999999978f));
+ r17.w = floatBitsToInt(intBitsToFloat(r17.w) * intBitsToFloat(r17.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r17.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r8.w)));
+ r8.w = intBitsToFloat(r16.x) >= intBitsToFloat(r16.w) ? int(0xffffffff) : int(0x00000000);
+ r8.x = int(movc(uint(r8.w), uint(0x3f800000), uint(r8.x)));
+ }
+ else
+ {
+ r8.x = int(uint(0x3f800000));
+ }
+ r8.w = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y));
+ r8.x = floatBitsToInt(fma(-intBitsToFloat(r8.y), intBitsToFloat(r8.x), float(1.00000000f)));
+ r8.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r8.w)));
+ }
+ else
+ {
+ r8.x = int(uint(0x3f800000));
+ }
+ r8.xyw = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r17.xyz));
+ }
+ else
+ {
+ r11.xyz = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz);
+ r10.w = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r10.w)));
+ r16.x = r12.x;
+ r16.y = r13.x;
+ r16.z = r14.x;
+ r16.w = r15.x;
+ r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r16)));
+ r17.x = r12.y;
+ r17.y = r13.y;
+ r17.z = r14.y;
+ r17.w = r15.y;
+ r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r17.x = r12.z;
+ r17.y = r13.z;
+ r17.z = r14.z;
+ r17.w = r15.z;
+ r12.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r12.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r12.x = float(0.00000000f) < intBitsToFloat(r12.x) ? int(0xffffffff) : int(0x00000000);
+ r12.x = int(uint(r12.x) & uint(0x3f800000));
+ r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r12.xxx));
+ r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz))));
+ r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz));
+ r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r10.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r11.xyz));
+ r10.xy = floatBitsToInt(intBitsToFloat(r16.xy) / intBitsToFloat(r12.yy));
+ r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + vec2(-0.500000000f, -0.500000000f));
+ r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + intBitsToFloat(r10.xy));
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r10.xy), intBitsToFloat(r10.xy)));
+ r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r9.w = floatBitsToInt(min(intBitsToFloat(r9.w), float(1.00000000f)));
+ r10.x = floatBitsToInt(-intBitsToFloat(r7.y) + intBitsToFloat(r9.w));
+ r10.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f));
+ r10.x = floatBitsToInt(intBitsToFloat(r10.x) / intBitsToFloat(r10.y));
+ r10.x = floatBitsToInt(-intBitsToFloat(r10.x) + float(1.00000000f));
+ r10.y = floatBitsToInt(intBitsToFloat(r10.x) * intBitsToFloat(r10.x));
+ r10.x = floatBitsToInt(fma(-intBitsToFloat(r10.x), float(2.00000000f), float(3.00000000f)));
+ r10.x = saturate(floatBitsToInt(intBitsToFloat(r10.x) * intBitsToFloat(r10.y)));
+ r7.y = intBitsToFloat(r9.w) >= intBitsToFloat(r7.y) ? int(0xffffffff) : int(0x00000000);
+ r7.y = int(uint(r7.y) & uint(0x3f800000));
+ r9.w = floatBitsToInt(intBitsToFloat(r10.x) + float(-1.00000000f));
+ r7.y = floatBitsToInt(fma(intBitsToFloat(r7.y), intBitsToFloat(r9.w), float(1.00000000f)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz));
+ r7.y = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f));
+ r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y)));
+ r8.xyw = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz));
+ }
+ r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y)));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw));
+ r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz)));
+ r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz)));
+ r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz));
+ r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz))));
+ r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz))));
+ r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz))));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz));
+ r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w));
+ r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f)));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x)));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w));
+ r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z)));
+ r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z));
+ r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w));
+ r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w)));
+ r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x)));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y));
+ r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z));
+ r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w)));
+ r5.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r5.xyz)));
+ r5.w = r5.w + int(1);
+ }
+ r6 = r5;
+ while (true)
+ {
+ r7.x = uint(r6.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ break;
+ r7.x = r3.w + r6.w;
+ r7.x = r7.x << int(2);
+ r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x);
+ {
+ vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x0000020c) / 16));
+ vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x0000020c) / 16) + 1);
+ r7.yz = floatBitsToInt(vec2(vTemp1.w, vTemp2.x));
+ }
+
+ r7.z = r7.z != int(4) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.z) != uint(0))
+ {
+ break;
+ }
+ r8 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw));
+ r9.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyz));
+ r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000040) / 16)).xyzw));
+ r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz));
+ r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).x);
+ r7.x = uint(r7.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ {
+ r7.xzw = floatBitsToInt(-intBitsToFloat(r11.xyz) + v1.v.xyz);
+ r7.x = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r10.xyz)));
+ r7.x = floatBitsToInt(max(-intBitsToFloat(r10.w), intBitsToFloat(r7.x)));
+ r7.x = floatBitsToInt(min(intBitsToFloat(r10.w), intBitsToFloat(r7.x)));
+ r7.xzw = floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r11.xyz)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) + -v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r12.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r8.yw), intBitsToFloat(r11.ww), intBitsToFloat(r8.xz))));
+ r12.xy = floatBitsToInt(intBitsToFloat(r12.xy) * intBitsToFloat(r12.xy));
+ r12.x = floatBitsToInt(intBitsToFloat(r12.x) * intBitsToFloat(r12.y));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r9.xyz) * intBitsToFloat(r12.xxx));
+ r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r9.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r9.www));
+ r9.w = floatBitsToInt(intBitsToFloat(r7.y) * -intBitsToFloat(r11.w));
+ r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f));
+ r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w)));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r12.xyz));
+ }
+ else
+ {
+ r13.xyz = floatBitsToInt(-intBitsToFloat(r11.xyz) + v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r13.xyz), intBitsToFloat(r10.xyz)));
+ r9.w = floatBitsToInt(max(-intBitsToFloat(r10.w), intBitsToFloat(r9.w)));
+ r9.w = floatBitsToInt(min(intBitsToFloat(r10.w), intBitsToFloat(r9.w)));
+ r10.xyz = floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r9.www), intBitsToFloat(r11.xyz)));
+ r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) + -v1.v.xyz);
+ r9.w = floatBitsToInt(dot(intBitsToFloat(r10.xyz), intBitsToFloat(r10.xyz)));
+ r10.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w)));
+ r8.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r8.yw), intBitsToFloat(r10.ww), intBitsToFloat(r8.xz))));
+ r8.xy = floatBitsToInt(intBitsToFloat(r8.xy) * intBitsToFloat(r8.xy));
+ r8.x = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r9.xyz));
+ r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r9.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r10.xyz));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) * -intBitsToFloat(r10.w));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f));
+ r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y)));
+ r12.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r8.xyz));
+ }
+ r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y)));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r12.xyz));
+ r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz)));
+ r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz)));
+ r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz));
+ r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz))));
+ r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz))));
+ r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz))));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz));
+ r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w));
+ r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f)));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x)));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w));
+ r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z)));
+ r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z));
+ r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w));
+ r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w)));
+ r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x)));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y));
+ r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z));
+ r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w)));
+ r6.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r6.xyz)));
+ r6.w = r6.w + int(1);
+ }
+ r5 = r6;
+ while (true)
+ {
+ r7.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ break;
+ r7.x = r3.w + r5.w;
+ r7.x = r7.x << int(2);
+ r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x);
+ {
+ vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16));
+ vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1);
+ r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x));
+ }
+
+ r7.y = r8.w != int(7) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.y) != uint(0))
+ {
+ break;
+ }
+ r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw));
+ r7.y = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).x);
+ r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw));
+ r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz));
+ r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000140) / 16)).xyzw));
+ r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000150) / 16)).xyzw));
+ r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000160) / 16)).xyzw));
+ r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000170) / 16)).xyzw));
+ r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw));
+ r7.x = uint(r16.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000);
+ if (uint(r7.x) != uint(0))
+ {
+ r7.xzw = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz);
+ r8.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w)));
+ r17.x = r12.x;
+ r17.y = r13.x;
+ r17.z = r14.x;
+ r17.w = r15.x;
+ r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r18.x = r12.y;
+ r18.y = r13.y;
+ r18.z = r14.y;
+ r18.w = r15.y;
+ r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r18.x = r12.z;
+ r18.y = r13.z;
+ r18.z = r14.z;
+ r18.w = r15.z;
+ r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r17.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r17.z = float(0.00000000f) < intBitsToFloat(r17.z) ? int(0xffffffff) : int(0x00000000);
+ r17.z = int(uint(r17.z) & uint(0x3f800000));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r17.zzz));
+ r19.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz))));
+ r19.xy = floatBitsToInt(intBitsToFloat(r19.xy) * intBitsToFloat(r19.xy));
+ r17.z = floatBitsToInt(intBitsToFloat(r19.x) * intBitsToFloat(r19.y));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r17.zzz) * intBitsToFloat(r18.xyz));
+ r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r8.www));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r17.ww));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + vec2(-0.500000000f, -0.500000000f));
+ r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + intBitsToFloat(r17.xy));
+ r17.xy = floatBitsToInt(-intBitsToFloat(r7.yy) + abs(intBitsToFloat(r17.xy)));
+ r8.w = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f));
+ r17.xy = saturate(floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r8.ww)));
+ r17.xy = floatBitsToInt(-intBitsToFloat(r17.xy) + vec2(1.00000000f, 1.00000000f));
+ r8.w = floatBitsToInt(intBitsToFloat(r17.y) * intBitsToFloat(r17.x));
+ r17.x = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r8.w));
+ r8.w = floatBitsToInt(fma(-intBitsToFloat(r8.w), float(2.00000000f), float(3.00000000f)));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r17.x));
+ r8.w = floatBitsToInt(min(intBitsToFloat(r8.w), float(1.00000000f)));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r18.xyz));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r17.xyz));
+ r8.y = int(uint(r8.y) & uint(0x00000001));
+ if (uint(r8.y) != uint(0))
+ {
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000080) / 16)).xyzw));
+ r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r18.x;
+ r25.y = r19.x;
+ r25.z = r20.x;
+ r25.w = r21.x;
+ r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r26.x = r18.y;
+ r26.y = r19.y;
+ r26.z = r20.y;
+ r26.w = r21.y;
+ r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r26.x = r18.z;
+ r26.y = r19.z;
+ r26.z = r20.z;
+ r26.w = r21.z;
+ r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r8.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r8.yyy));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz);
+ r8.y = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz)));
+ r8.y = floatBitsToInt(sqrt(intBitsToFloat(r8.y)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r8.y = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r8.y));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r8.y), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r18.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r18.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r18.xy), float(0.00000000f)))).xy);
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), float(2.00000000f), float(-1.00000000f)));
+ r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r8.w = -r8.w + r11.w;
+ r8.w = floatBitsToInt(float(r8.w));
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r24.w));
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * float(1.44269502f));
+ r8.y = floatBitsToInt(exp2(intBitsToFloat(r8.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r8.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * float(0.00999999978f));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r16.x));
+ r17.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r18.x));
+ r18.x = floatBitsToInt(fma(-intBitsToFloat(r17.w), intBitsToFloat(r17.w), intBitsToFloat(r18.y)));
+ r16.x = floatBitsToInt(max(intBitsToFloat(r16.x), intBitsToFloat(r18.x)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.y), -intBitsToFloat(r17.w)));
+ r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r8.y), intBitsToFloat(r16.x)));
+ r8.y = floatBitsToInt(intBitsToFloat(r16.x) / intBitsToFloat(r8.y));
+ r8.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r8.y));
+ r8.w = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f));
+ r8.y = saturate(floatBitsToInt(intBitsToFloat(r8.y) / intBitsToFloat(r8.w)));
+ r11.w = intBitsToFloat(r17.w) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000);
+ r8.y = int(movc(uint(r11.w), uint(0x3f800000), uint(r8.y)));
+ r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r16.yzw), uvec3(0x00000020, 0x00000020, 0x00000020))));
+ if (uint(r18.x) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000080) / 16)).xyzw));
+ r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000090) / 16)).xyz));
+ r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r26.x = r19.x;
+ r26.y = r20.x;
+ r26.z = r21.x;
+ r26.w = r22.x;
+ r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26)));
+ r27.x = r19.y;
+ r27.y = r20.y;
+ r27.z = r21.y;
+ r27.w = r22.y;
+ r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r27.x = r19.z;
+ r27.y = r20.z;
+ r27.z = r21.z;
+ r27.w = r22.z;
+ r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r11.www));
+ r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r11.w), intBitsToFloat(r19.z)));
+ r19.xy = saturate(r19.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r17.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000);
+ r18.x = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r17.w = -r17.w + r18.x;
+ r17.w = floatBitsToInt(float(r17.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r25.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r18.x = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r17.w));
+ r18.w = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r18.x));
+ r18.w = floatBitsToInt(intBitsToFloat(r18.w) * float(0.00999999978f));
+ r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r17.w));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r18.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r17.w), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w)));
+ r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r18.x) ? int(0xffffffff) : int(0x00000000);
+ r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w)));
+ }
+ else
+ {
+ r11.w = int(uint(0x3f800000));
+ }
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w));
+ if (uint(r18.y) != uint(0))
+ {
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000000) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000010) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000020) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000030) / 16)).xyzw));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000080) / 16)).xyzw));
+ r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000090) / 16)).xyz));
+ r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r25.x = r19.x;
+ r25.y = r20.x;
+ r25.z = r21.x;
+ r25.w = r22.x;
+ r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.y;
+ r25.y = r20.y;
+ r25.z = r21.y;
+ r25.w = r22.y;
+ r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r19.z;
+ r25.y = r20.z;
+ r25.z = r21.z;
+ r25.w = r22.z;
+ r16.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r22.x = r19.w;
+ r22.y = r20.w;
+ r22.z = r21.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22)));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) / intBitsToFloat(r11.www));
+ r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r11.w), intBitsToFloat(r16.z)));
+ r16.xy = saturate(r16.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r16.z = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000);
+ r17.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r16.z = -r16.z + r17.w;
+ r16.z = floatBitsToInt(float(r16.z));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r24.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r17.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z));
+ r18.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r17.w));
+ r18.x = floatBitsToInt(intBitsToFloat(r18.x) * float(0.00999999978f));
+ r18.x = floatBitsToInt(intBitsToFloat(r18.x) * intBitsToFloat(r18.x));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r18.x), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w)));
+ r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r17.w) ? int(0xffffffff) : int(0x00000000);
+ r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w)));
+ }
+ else
+ {
+ r11.w = int(uint(0x3f800000));
+ }
+ r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w));
+ if (uint(r18.z) != uint(0))
+ {
+ r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000000) / 16)).xyzw));
+ r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000010) / 16)).xyzw));
+ r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000020) / 16)).xyzw));
+ r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000030) / 16)).xyzw));
+ r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000080) / 16)).xyzw));
+ r16.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000090) / 16)).xyz));
+ r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x000000a0) / 16)).xyzw));
+ r24.x = r18.x;
+ r24.y = r19.x;
+ r24.z = r20.x;
+ r24.w = r21.x;
+ r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24)));
+ r25.x = r18.y;
+ r25.y = r19.y;
+ r25.z = r20.y;
+ r25.w = r21.y;
+ r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r25.x = r18.z;
+ r25.y = r19.z;
+ r25.z = r20.z;
+ r25.w = r21.z;
+ r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25)));
+ r21.x = r18.w;
+ r21.y = r19.w;
+ r21.z = r20.w;
+ r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21)));
+ r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r11.www));
+ r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) + -v1.v.xyz);
+ r11.w = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y)));
+ r11.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r11.w));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r11.w), intBitsToFloat(r18.z)));
+ r18.xy = saturate(r18.xy);
+ r16.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw)));
+ r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy);
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f)));
+ r16.z = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000);
+ r16.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000);
+ r16.z = -r16.z + r16.w;
+ r16.z = floatBitsToInt(float(r16.z));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r23.w));
+ r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f));
+ r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w)));
+ r16.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z));
+ r17.w = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r16.w));
+ r17.w = floatBitsToInt(intBitsToFloat(r17.w) * float(0.00999999978f));
+ r17.w = floatBitsToInt(intBitsToFloat(r17.w) * intBitsToFloat(r17.w));
+ r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x));
+ r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y)));
+ r16.y = floatBitsToInt(max(intBitsToFloat(r17.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x)));
+ r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y)));
+ r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w));
+ r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w));
+ r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r8.w)));
+ r8.w = intBitsToFloat(r16.x) >= intBitsToFloat(r16.w) ? int(0xffffffff) : int(0x00000000);
+ r8.x = int(movc(uint(r8.w), uint(0x3f800000), uint(r8.x)));
+ }
+ else
+ {
+ r8.x = int(uint(0x3f800000));
+ }
+ r8.w = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y));
+ r8.x = floatBitsToInt(fma(-intBitsToFloat(r8.y), intBitsToFloat(r8.x), float(1.00000000f)));
+ r8.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r8.w)));
+ }
+ else
+ {
+ r8.x = int(uint(0x3f800000));
+ }
+ r8.xyw = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r17.xyz));
+ }
+ else
+ {
+ r11.xyz = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz);
+ r10.w = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz)));
+ r11.w = floatBitsToInt(sqrt(intBitsToFloat(r10.w)));
+ r16.x = r12.x;
+ r16.y = r13.x;
+ r16.z = r14.x;
+ r16.w = r15.x;
+ r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r16)));
+ r17.x = r12.y;
+ r17.y = r13.y;
+ r17.z = r14.y;
+ r17.w = r15.y;
+ r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r17.x = r12.z;
+ r17.y = r13.z;
+ r17.z = r14.z;
+ r17.w = r15.z;
+ r12.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17)));
+ r15.x = r12.w;
+ r15.y = r13.w;
+ r15.z = r14.w;
+ r12.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r15)));
+ r12.x = float(0.00000000f) < intBitsToFloat(r12.x) ? int(0xffffffff) : int(0x00000000);
+ r12.x = int(uint(r12.x) & uint(0x3f800000));
+ r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r12.xxx));
+ r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz))));
+ r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz));
+ r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r10.w)));
+ r7.xzw = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r11.xyz));
+ r10.xy = floatBitsToInt(intBitsToFloat(r16.xy) / intBitsToFloat(r12.yy));
+ r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + vec2(-0.500000000f, -0.500000000f));
+ r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + intBitsToFloat(r10.xy));
+ r10.xy = floatBitsToInt(-intBitsToFloat(r7.yy) + abs(intBitsToFloat(r10.xy)));
+ r7.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f));
+ r10.xy = saturate(floatBitsToInt(intBitsToFloat(r10.xy) / intBitsToFloat(r7.yy)));
+ r10.xy = floatBitsToInt(-intBitsToFloat(r10.xy) + vec2(1.00000000f, 1.00000000f));
+ r7.y = floatBitsToInt(intBitsToFloat(r10.y) * intBitsToFloat(r10.x));
+ r9.w = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.y));
+ r7.y = floatBitsToInt(fma(-intBitsToFloat(r7.y), float(2.00000000f), float(3.00000000f)));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.w));
+ r7.y = floatBitsToInt(min(intBitsToFloat(r7.y), float(1.00000000f)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz));
+ r7.y = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f));
+ r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y)));
+ r8.xyw = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz));
+ }
+ r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw)));
+ r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y)));
+ r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw));
+ r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz)));
+ r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz)));
+ r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w)));
+ r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz));
+ r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz))));
+ r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz))));
+ r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz))));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx));
+ r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz));
+ r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w));
+ r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w)));
+ r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w));
+ r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f)));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x)));
+ r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w));
+ r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z)));
+ r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z));
+ r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y)));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x));
+ r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f));
+ r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w));
+ r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w)));
+ r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w));
+ r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x)));
+ r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x));
+ r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000);
+ r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000);
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y));
+ r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z));
+ r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w)));
+ r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w)));
+ r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w)));
+ r5.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r5.xyz)));
+ r5.w = r5.w + int(1);
+ }
+ o0.xyz = uintBitsToFloat(uvec3(r5.xyz));
+ //o1.x = uintBitsToFloat(uint(r1.w));
+ o0.w = uintBitsToFloat(uint(r1.w));
+ return;
+}
+
+[test]
+#link success
+program binary save restore
+uniform int resourceSamplerPair_0_ps 0
+uniform int resourceSamplerPair_1_ps 1
+uniform int resourceSamplerPair_2_ps 2
+uniform int resourceSamplerPair_3_ps 3
+uniform int resourceSamplerPair_4_ps 4
+uniform int resourceSamplerPair_5_ps 5
+uniform int resourceSamplerPair_6_ps 6
+draw rect -1 -1 2 2