glslang/Test/baseResults/hlsl.intrinsics.comp.out
John Kessenich d3f1122a44 Whole stack: Fix stale types in the AST linker object nodes, fixing #557.
Rationalizes the entire tracking of the linker object nodes, effecting
GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before
their type snapshot for linker objects.

Should only effect things when the rest of the AST contained no reference to
the symbol, because normal AST nodes were not stale. Also will only effect such
objects when their types were edited.
2016-11-05 10:22:33 -06:00

980 lines
48 KiB
Plaintext

hlsl.intrinsics.comp
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
0:17 Function Parameters:
0:17 'inF0' (in float)
0:17 'inF1' (in float)
0:17 'inF2' (in float)
0:17 'inU0' (in uint)
0:17 'inU1' (in uint)
0:? Sequence
0:21 all (global bool)
0:21 'inF0' (in float)
0:24 AtomicAdd (global void)
0:24 'gs_ua' (shared uint)
0:24 'gs_ub' (shared uint)
0:25 move second child to first child (temp uint)
0:25 'out_u1' (temp uint)
0:25 AtomicAdd (temp uint)
0:25 'gs_ua' (shared uint)
0:25 'gs_ub' (shared uint)
0:26 AtomicAnd (global void)
0:26 'gs_ua' (shared uint)
0:26 'gs_ub' (shared uint)
0:27 move second child to first child (temp uint)
0:27 'out_u1' (temp uint)
0:27 AtomicAnd (temp uint)
0:27 'gs_ua' (shared uint)
0:27 'gs_ub' (shared uint)
0:28 move second child to first child (temp uint)
0:28 'out_u1' (temp uint)
0:28 AtomicCompSwap (temp uint)
0:28 'gs_ua' (shared uint)
0:28 'gs_ub' (shared uint)
0:28 'gs_uc' (shared uint)
0:29 move second child to first child (temp uint)
0:29 'out_u1' (temp uint)
0:29 AtomicExchange (temp uint)
0:29 'gs_ua' (shared uint)
0:29 'gs_ub' (shared uint)
0:30 AtomicMax (global void)
0:30 'gs_ua' (shared uint)
0:30 'gs_ub' (shared uint)
0:31 move second child to first child (temp uint)
0:31 'out_u1' (temp uint)
0:31 AtomicMax (temp uint)
0:31 'gs_ua' (shared uint)
0:31 'gs_ub' (shared uint)
0:32 AtomicMin (global void)
0:32 'gs_ua' (shared uint)
0:32 'gs_ub' (shared uint)
0:33 move second child to first child (temp uint)
0:33 'out_u1' (temp uint)
0:33 AtomicMin (temp uint)
0:33 'gs_ua' (shared uint)
0:33 'gs_ub' (shared uint)
0:34 AtomicOr (global void)
0:34 'gs_ua' (shared uint)
0:34 'gs_ub' (shared uint)
0:35 move second child to first child (temp uint)
0:35 'out_u1' (temp uint)
0:35 AtomicOr (temp uint)
0:35 'gs_ua' (shared uint)
0:35 'gs_ub' (shared uint)
0:36 AtomicXor (global void)
0:36 'gs_ua' (shared uint)
0:36 'gs_ub' (shared uint)
0:37 move second child to first child (temp uint)
0:37 'out_u1' (temp uint)
0:37 AtomicXor (temp uint)
0:37 'gs_ua' (shared uint)
0:37 'gs_ub' (shared uint)
0:41 Branch: Return with expression
0:41 Constant:
0:41 0.000000
0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
0:45 Function Parameters:
0:45 'inF0' (in 1-component vector of float)
0:45 'inF1' (in 1-component vector of float)
0:45 'inF2' (in 1-component vector of float)
0:? Sequence
0:47 Branch: Return with expression
0:47 Constant:
0:47 0.000000
0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
0:51 Function Parameters:
0:51 'inF0' (in 2-component vector of float)
0:51 'inF1' (in 2-component vector of float)
0:51 'inF2' (in 2-component vector of float)
0:51 'inU0' (in 2-component vector of uint)
0:51 'inU1' (in 2-component vector of uint)
0:? Sequence
0:55 all (global bool)
0:55 'inF0' (in 2-component vector of float)
0:58 AtomicAdd (global void)
0:58 'gs_ua2' (shared 2-component vector of uint)
0:58 'gs_ub2' (shared 2-component vector of uint)
0:59 move second child to first child (temp 2-component vector of uint)
0:59 'out_u2' (temp 2-component vector of uint)
0:59 AtomicAdd (temp 2-component vector of uint)
0:59 'gs_ua2' (shared 2-component vector of uint)
0:59 'gs_ub2' (shared 2-component vector of uint)
0:60 AtomicAnd (global void)
0:60 'gs_ua2' (shared 2-component vector of uint)
0:60 'gs_ub2' (shared 2-component vector of uint)
0:61 move second child to first child (temp 2-component vector of uint)
0:61 'out_u2' (temp 2-component vector of uint)
0:61 AtomicAnd (temp 2-component vector of uint)
0:61 'gs_ua2' (shared 2-component vector of uint)
0:61 'gs_ub2' (shared 2-component vector of uint)
0:62 move second child to first child (temp 2-component vector of uint)
0:62 'out_u2' (temp 2-component vector of uint)
0:62 AtomicCompSwap (temp 2-component vector of uint)
0:62 'gs_ua2' (shared 2-component vector of uint)
0:62 'gs_ub2' (shared 2-component vector of uint)
0:62 'gs_uc2' (shared 2-component vector of uint)
0:63 move second child to first child (temp 2-component vector of uint)
0:63 'out_u2' (temp 2-component vector of uint)
0:63 AtomicExchange (temp 2-component vector of uint)
0:63 'gs_ua2' (shared 2-component vector of uint)
0:63 'gs_ub2' (shared 2-component vector of uint)
0:64 AtomicMax (global void)
0:64 'gs_ua2' (shared 2-component vector of uint)
0:64 'gs_ub2' (shared 2-component vector of uint)
0:65 move second child to first child (temp 2-component vector of uint)
0:65 'out_u2' (temp 2-component vector of uint)
0:65 AtomicMax (temp 2-component vector of uint)
0:65 'gs_ua2' (shared 2-component vector of uint)
0:65 'gs_ub2' (shared 2-component vector of uint)
0:66 AtomicMin (global void)
0:66 'gs_ua2' (shared 2-component vector of uint)
0:66 'gs_ub2' (shared 2-component vector of uint)
0:67 move second child to first child (temp 2-component vector of uint)
0:67 'out_u2' (temp 2-component vector of uint)
0:67 AtomicMin (temp 2-component vector of uint)
0:67 'gs_ua2' (shared 2-component vector of uint)
0:67 'gs_ub2' (shared 2-component vector of uint)
0:68 AtomicOr (global void)
0:68 'gs_ua2' (shared 2-component vector of uint)
0:68 'gs_ub2' (shared 2-component vector of uint)
0:69 move second child to first child (temp 2-component vector of uint)
0:69 'out_u2' (temp 2-component vector of uint)
0:69 AtomicOr (temp 2-component vector of uint)
0:69 'gs_ua2' (shared 2-component vector of uint)
0:69 'gs_ub2' (shared 2-component vector of uint)
0:70 AtomicXor (global void)
0:70 'gs_ua2' (shared 2-component vector of uint)
0:70 'gs_ub2' (shared 2-component vector of uint)
0:71 move second child to first child (temp 2-component vector of uint)
0:71 'out_u2' (temp 2-component vector of uint)
0:71 AtomicXor (temp 2-component vector of uint)
0:71 'gs_ua2' (shared 2-component vector of uint)
0:71 'gs_ub2' (shared 2-component vector of uint)
0:74 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
0:78 Function Parameters:
0:78 'inF0' (in 3-component vector of float)
0:78 'inF1' (in 3-component vector of float)
0:78 'inF2' (in 3-component vector of float)
0:78 'inU0' (in 3-component vector of uint)
0:78 'inU1' (in 3-component vector of uint)
0:? Sequence
0:82 all (global bool)
0:82 'inF0' (in 3-component vector of float)
0:85 AtomicAdd (global void)
0:85 'gs_ua3' (shared 3-component vector of uint)
0:85 'gs_ub3' (shared 3-component vector of uint)
0:86 move second child to first child (temp 3-component vector of uint)
0:86 'out_u3' (temp 3-component vector of uint)
0:86 AtomicAdd (temp 3-component vector of uint)
0:86 'gs_ua3' (shared 3-component vector of uint)
0:86 'gs_ub3' (shared 3-component vector of uint)
0:87 AtomicAnd (global void)
0:87 'gs_ua3' (shared 3-component vector of uint)
0:87 'gs_ub3' (shared 3-component vector of uint)
0:88 move second child to first child (temp 3-component vector of uint)
0:88 'out_u3' (temp 3-component vector of uint)
0:88 AtomicAnd (temp 3-component vector of uint)
0:88 'gs_ua3' (shared 3-component vector of uint)
0:88 'gs_ub3' (shared 3-component vector of uint)
0:89 move second child to first child (temp 3-component vector of uint)
0:89 'out_u3' (temp 3-component vector of uint)
0:89 AtomicCompSwap (temp 3-component vector of uint)
0:89 'gs_ua3' (shared 3-component vector of uint)
0:89 'gs_ub3' (shared 3-component vector of uint)
0:89 'gs_uc3' (shared 3-component vector of uint)
0:90 move second child to first child (temp 3-component vector of uint)
0:90 'out_u3' (temp 3-component vector of uint)
0:90 AtomicExchange (temp 3-component vector of uint)
0:90 'gs_ua3' (shared 3-component vector of uint)
0:90 'gs_ub3' (shared 3-component vector of uint)
0:91 AtomicMax (global void)
0:91 'gs_ua3' (shared 3-component vector of uint)
0:91 'gs_ub3' (shared 3-component vector of uint)
0:92 move second child to first child (temp 3-component vector of uint)
0:92 'out_u3' (temp 3-component vector of uint)
0:92 AtomicMax (temp 3-component vector of uint)
0:92 'gs_ua3' (shared 3-component vector of uint)
0:92 'gs_ub3' (shared 3-component vector of uint)
0:93 AtomicMin (global void)
0:93 'gs_ua3' (shared 3-component vector of uint)
0:93 'gs_ub3' (shared 3-component vector of uint)
0:94 move second child to first child (temp 3-component vector of uint)
0:94 'out_u3' (temp 3-component vector of uint)
0:94 AtomicMin (temp 3-component vector of uint)
0:94 'gs_ua3' (shared 3-component vector of uint)
0:94 'gs_ub3' (shared 3-component vector of uint)
0:95 AtomicOr (global void)
0:95 'gs_ua3' (shared 3-component vector of uint)
0:95 'gs_ub3' (shared 3-component vector of uint)
0:96 move second child to first child (temp 3-component vector of uint)
0:96 'out_u3' (temp 3-component vector of uint)
0:96 AtomicOr (temp 3-component vector of uint)
0:96 'gs_ua3' (shared 3-component vector of uint)
0:96 'gs_ub3' (shared 3-component vector of uint)
0:97 AtomicXor (global void)
0:97 'gs_ua3' (shared 3-component vector of uint)
0:97 'gs_ub3' (shared 3-component vector of uint)
0:98 move second child to first child (temp 3-component vector of uint)
0:98 'out_u3' (temp 3-component vector of uint)
0:98 AtomicXor (temp 3-component vector of uint)
0:98 'gs_ua3' (shared 3-component vector of uint)
0:98 'gs_ub3' (shared 3-component vector of uint)
0:101 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
0:105 Function Parameters:
0:105 'inF0' (layout(location=0 ) in 4-component vector of float)
0:105 'inF1' (layout(location=1 ) in 4-component vector of float)
0:105 'inF2' (layout(location=2 ) in 4-component vector of float)
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? Sequence
0:109 all (global bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
0:112 AtomicAdd (global void)
0:112 'gs_ua4' (shared 4-component vector of uint)
0:112 'gs_ub4' (shared 4-component vector of uint)
0:113 move second child to first child (temp 4-component vector of uint)
0:113 'out_u4' (temp 4-component vector of uint)
0:113 AtomicAdd (temp 4-component vector of uint)
0:113 'gs_ua4' (shared 4-component vector of uint)
0:113 'gs_ub4' (shared 4-component vector of uint)
0:114 AtomicAnd (global void)
0:114 'gs_ua4' (shared 4-component vector of uint)
0:114 'gs_ub4' (shared 4-component vector of uint)
0:115 move second child to first child (temp 4-component vector of uint)
0:115 'out_u4' (temp 4-component vector of uint)
0:115 AtomicAnd (temp 4-component vector of uint)
0:115 'gs_ua4' (shared 4-component vector of uint)
0:115 'gs_ub4' (shared 4-component vector of uint)
0:116 move second child to first child (temp 4-component vector of uint)
0:116 'out_u4' (temp 4-component vector of uint)
0:116 AtomicCompSwap (temp 4-component vector of uint)
0:116 'gs_ua4' (shared 4-component vector of uint)
0:116 'gs_ub4' (shared 4-component vector of uint)
0:116 'gs_uc4' (shared 4-component vector of uint)
0:117 move second child to first child (temp 4-component vector of uint)
0:117 'out_u4' (temp 4-component vector of uint)
0:117 AtomicExchange (temp 4-component vector of uint)
0:117 'gs_ua4' (shared 4-component vector of uint)
0:117 'gs_ub4' (shared 4-component vector of uint)
0:118 AtomicMax (global void)
0:118 'gs_ua4' (shared 4-component vector of uint)
0:118 'gs_ub4' (shared 4-component vector of uint)
0:119 move second child to first child (temp 4-component vector of uint)
0:119 'out_u4' (temp 4-component vector of uint)
0:119 AtomicMax (temp 4-component vector of uint)
0:119 'gs_ua4' (shared 4-component vector of uint)
0:119 'gs_ub4' (shared 4-component vector of uint)
0:120 AtomicMin (global void)
0:120 'gs_ua4' (shared 4-component vector of uint)
0:120 'gs_ub4' (shared 4-component vector of uint)
0:121 move second child to first child (temp 4-component vector of uint)
0:121 'out_u4' (temp 4-component vector of uint)
0:121 AtomicMin (temp 4-component vector of uint)
0:121 'gs_ua4' (shared 4-component vector of uint)
0:121 'gs_ub4' (shared 4-component vector of uint)
0:122 AtomicOr (global void)
0:122 'gs_ua4' (shared 4-component vector of uint)
0:122 'gs_ub4' (shared 4-component vector of uint)
0:123 move second child to first child (temp 4-component vector of uint)
0:123 'out_u4' (temp 4-component vector of uint)
0:123 AtomicOr (temp 4-component vector of uint)
0:123 'gs_ua4' (shared 4-component vector of uint)
0:123 'gs_ub4' (shared 4-component vector of uint)
0:124 AtomicXor (global void)
0:124 'gs_ua4' (shared 4-component vector of uint)
0:124 'gs_ub4' (shared 4-component vector of uint)
0:125 move second child to first child (temp 4-component vector of uint)
0:125 'out_u4' (temp 4-component vector of uint)
0:125 AtomicXor (temp 4-component vector of uint)
0:125 'gs_ua4' (shared 4-component vector of uint)
0:125 'gs_ub4' (shared 4-component vector of uint)
0:128 Sequence
0:128 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:128 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
0:? 'gs_ua2' (shared 2-component vector of uint)
0:? 'gs_ub2' (shared 2-component vector of uint)
0:? 'gs_uc2' (shared 2-component vector of uint)
0:? 'gs_ua3' (shared 3-component vector of uint)
0:? 'gs_ub3' (shared 3-component vector of uint)
0:? 'gs_uc3' (shared 3-component vector of uint)
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
Linked compute stage:
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
0:17 Function Parameters:
0:17 'inF0' (in float)
0:17 'inF1' (in float)
0:17 'inF2' (in float)
0:17 'inU0' (in uint)
0:17 'inU1' (in uint)
0:? Sequence
0:21 all (global bool)
0:21 'inF0' (in float)
0:24 AtomicAdd (global void)
0:24 'gs_ua' (shared uint)
0:24 'gs_ub' (shared uint)
0:25 move second child to first child (temp uint)
0:25 'out_u1' (temp uint)
0:25 AtomicAdd (temp uint)
0:25 'gs_ua' (shared uint)
0:25 'gs_ub' (shared uint)
0:26 AtomicAnd (global void)
0:26 'gs_ua' (shared uint)
0:26 'gs_ub' (shared uint)
0:27 move second child to first child (temp uint)
0:27 'out_u1' (temp uint)
0:27 AtomicAnd (temp uint)
0:27 'gs_ua' (shared uint)
0:27 'gs_ub' (shared uint)
0:28 move second child to first child (temp uint)
0:28 'out_u1' (temp uint)
0:28 AtomicCompSwap (temp uint)
0:28 'gs_ua' (shared uint)
0:28 'gs_ub' (shared uint)
0:28 'gs_uc' (shared uint)
0:29 move second child to first child (temp uint)
0:29 'out_u1' (temp uint)
0:29 AtomicExchange (temp uint)
0:29 'gs_ua' (shared uint)
0:29 'gs_ub' (shared uint)
0:30 AtomicMax (global void)
0:30 'gs_ua' (shared uint)
0:30 'gs_ub' (shared uint)
0:31 move second child to first child (temp uint)
0:31 'out_u1' (temp uint)
0:31 AtomicMax (temp uint)
0:31 'gs_ua' (shared uint)
0:31 'gs_ub' (shared uint)
0:32 AtomicMin (global void)
0:32 'gs_ua' (shared uint)
0:32 'gs_ub' (shared uint)
0:33 move second child to first child (temp uint)
0:33 'out_u1' (temp uint)
0:33 AtomicMin (temp uint)
0:33 'gs_ua' (shared uint)
0:33 'gs_ub' (shared uint)
0:34 AtomicOr (global void)
0:34 'gs_ua' (shared uint)
0:34 'gs_ub' (shared uint)
0:35 move second child to first child (temp uint)
0:35 'out_u1' (temp uint)
0:35 AtomicOr (temp uint)
0:35 'gs_ua' (shared uint)
0:35 'gs_ub' (shared uint)
0:36 AtomicXor (global void)
0:36 'gs_ua' (shared uint)
0:36 'gs_ub' (shared uint)
0:37 move second child to first child (temp uint)
0:37 'out_u1' (temp uint)
0:37 AtomicXor (temp uint)
0:37 'gs_ua' (shared uint)
0:37 'gs_ub' (shared uint)
0:41 Branch: Return with expression
0:41 Constant:
0:41 0.000000
0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
0:45 Function Parameters:
0:45 'inF0' (in 1-component vector of float)
0:45 'inF1' (in 1-component vector of float)
0:45 'inF2' (in 1-component vector of float)
0:? Sequence
0:47 Branch: Return with expression
0:47 Constant:
0:47 0.000000
0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
0:51 Function Parameters:
0:51 'inF0' (in 2-component vector of float)
0:51 'inF1' (in 2-component vector of float)
0:51 'inF2' (in 2-component vector of float)
0:51 'inU0' (in 2-component vector of uint)
0:51 'inU1' (in 2-component vector of uint)
0:? Sequence
0:55 all (global bool)
0:55 'inF0' (in 2-component vector of float)
0:58 AtomicAdd (global void)
0:58 'gs_ua2' (shared 2-component vector of uint)
0:58 'gs_ub2' (shared 2-component vector of uint)
0:59 move second child to first child (temp 2-component vector of uint)
0:59 'out_u2' (temp 2-component vector of uint)
0:59 AtomicAdd (temp 2-component vector of uint)
0:59 'gs_ua2' (shared 2-component vector of uint)
0:59 'gs_ub2' (shared 2-component vector of uint)
0:60 AtomicAnd (global void)
0:60 'gs_ua2' (shared 2-component vector of uint)
0:60 'gs_ub2' (shared 2-component vector of uint)
0:61 move second child to first child (temp 2-component vector of uint)
0:61 'out_u2' (temp 2-component vector of uint)
0:61 AtomicAnd (temp 2-component vector of uint)
0:61 'gs_ua2' (shared 2-component vector of uint)
0:61 'gs_ub2' (shared 2-component vector of uint)
0:62 move second child to first child (temp 2-component vector of uint)
0:62 'out_u2' (temp 2-component vector of uint)
0:62 AtomicCompSwap (temp 2-component vector of uint)
0:62 'gs_ua2' (shared 2-component vector of uint)
0:62 'gs_ub2' (shared 2-component vector of uint)
0:62 'gs_uc2' (shared 2-component vector of uint)
0:63 move second child to first child (temp 2-component vector of uint)
0:63 'out_u2' (temp 2-component vector of uint)
0:63 AtomicExchange (temp 2-component vector of uint)
0:63 'gs_ua2' (shared 2-component vector of uint)
0:63 'gs_ub2' (shared 2-component vector of uint)
0:64 AtomicMax (global void)
0:64 'gs_ua2' (shared 2-component vector of uint)
0:64 'gs_ub2' (shared 2-component vector of uint)
0:65 move second child to first child (temp 2-component vector of uint)
0:65 'out_u2' (temp 2-component vector of uint)
0:65 AtomicMax (temp 2-component vector of uint)
0:65 'gs_ua2' (shared 2-component vector of uint)
0:65 'gs_ub2' (shared 2-component vector of uint)
0:66 AtomicMin (global void)
0:66 'gs_ua2' (shared 2-component vector of uint)
0:66 'gs_ub2' (shared 2-component vector of uint)
0:67 move second child to first child (temp 2-component vector of uint)
0:67 'out_u2' (temp 2-component vector of uint)
0:67 AtomicMin (temp 2-component vector of uint)
0:67 'gs_ua2' (shared 2-component vector of uint)
0:67 'gs_ub2' (shared 2-component vector of uint)
0:68 AtomicOr (global void)
0:68 'gs_ua2' (shared 2-component vector of uint)
0:68 'gs_ub2' (shared 2-component vector of uint)
0:69 move second child to first child (temp 2-component vector of uint)
0:69 'out_u2' (temp 2-component vector of uint)
0:69 AtomicOr (temp 2-component vector of uint)
0:69 'gs_ua2' (shared 2-component vector of uint)
0:69 'gs_ub2' (shared 2-component vector of uint)
0:70 AtomicXor (global void)
0:70 'gs_ua2' (shared 2-component vector of uint)
0:70 'gs_ub2' (shared 2-component vector of uint)
0:71 move second child to first child (temp 2-component vector of uint)
0:71 'out_u2' (temp 2-component vector of uint)
0:71 AtomicXor (temp 2-component vector of uint)
0:71 'gs_ua2' (shared 2-component vector of uint)
0:71 'gs_ub2' (shared 2-component vector of uint)
0:74 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
0:78 Function Parameters:
0:78 'inF0' (in 3-component vector of float)
0:78 'inF1' (in 3-component vector of float)
0:78 'inF2' (in 3-component vector of float)
0:78 'inU0' (in 3-component vector of uint)
0:78 'inU1' (in 3-component vector of uint)
0:? Sequence
0:82 all (global bool)
0:82 'inF0' (in 3-component vector of float)
0:85 AtomicAdd (global void)
0:85 'gs_ua3' (shared 3-component vector of uint)
0:85 'gs_ub3' (shared 3-component vector of uint)
0:86 move second child to first child (temp 3-component vector of uint)
0:86 'out_u3' (temp 3-component vector of uint)
0:86 AtomicAdd (temp 3-component vector of uint)
0:86 'gs_ua3' (shared 3-component vector of uint)
0:86 'gs_ub3' (shared 3-component vector of uint)
0:87 AtomicAnd (global void)
0:87 'gs_ua3' (shared 3-component vector of uint)
0:87 'gs_ub3' (shared 3-component vector of uint)
0:88 move second child to first child (temp 3-component vector of uint)
0:88 'out_u3' (temp 3-component vector of uint)
0:88 AtomicAnd (temp 3-component vector of uint)
0:88 'gs_ua3' (shared 3-component vector of uint)
0:88 'gs_ub3' (shared 3-component vector of uint)
0:89 move second child to first child (temp 3-component vector of uint)
0:89 'out_u3' (temp 3-component vector of uint)
0:89 AtomicCompSwap (temp 3-component vector of uint)
0:89 'gs_ua3' (shared 3-component vector of uint)
0:89 'gs_ub3' (shared 3-component vector of uint)
0:89 'gs_uc3' (shared 3-component vector of uint)
0:90 move second child to first child (temp 3-component vector of uint)
0:90 'out_u3' (temp 3-component vector of uint)
0:90 AtomicExchange (temp 3-component vector of uint)
0:90 'gs_ua3' (shared 3-component vector of uint)
0:90 'gs_ub3' (shared 3-component vector of uint)
0:91 AtomicMax (global void)
0:91 'gs_ua3' (shared 3-component vector of uint)
0:91 'gs_ub3' (shared 3-component vector of uint)
0:92 move second child to first child (temp 3-component vector of uint)
0:92 'out_u3' (temp 3-component vector of uint)
0:92 AtomicMax (temp 3-component vector of uint)
0:92 'gs_ua3' (shared 3-component vector of uint)
0:92 'gs_ub3' (shared 3-component vector of uint)
0:93 AtomicMin (global void)
0:93 'gs_ua3' (shared 3-component vector of uint)
0:93 'gs_ub3' (shared 3-component vector of uint)
0:94 move second child to first child (temp 3-component vector of uint)
0:94 'out_u3' (temp 3-component vector of uint)
0:94 AtomicMin (temp 3-component vector of uint)
0:94 'gs_ua3' (shared 3-component vector of uint)
0:94 'gs_ub3' (shared 3-component vector of uint)
0:95 AtomicOr (global void)
0:95 'gs_ua3' (shared 3-component vector of uint)
0:95 'gs_ub3' (shared 3-component vector of uint)
0:96 move second child to first child (temp 3-component vector of uint)
0:96 'out_u3' (temp 3-component vector of uint)
0:96 AtomicOr (temp 3-component vector of uint)
0:96 'gs_ua3' (shared 3-component vector of uint)
0:96 'gs_ub3' (shared 3-component vector of uint)
0:97 AtomicXor (global void)
0:97 'gs_ua3' (shared 3-component vector of uint)
0:97 'gs_ub3' (shared 3-component vector of uint)
0:98 move second child to first child (temp 3-component vector of uint)
0:98 'out_u3' (temp 3-component vector of uint)
0:98 AtomicXor (temp 3-component vector of uint)
0:98 'gs_ua3' (shared 3-component vector of uint)
0:98 'gs_ub3' (shared 3-component vector of uint)
0:101 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
0:105 Function Parameters:
0:105 'inF0' (layout(location=0 ) in 4-component vector of float)
0:105 'inF1' (layout(location=1 ) in 4-component vector of float)
0:105 'inF2' (layout(location=2 ) in 4-component vector of float)
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? Sequence
0:109 all (global bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
0:112 AtomicAdd (global void)
0:112 'gs_ua4' (shared 4-component vector of uint)
0:112 'gs_ub4' (shared 4-component vector of uint)
0:113 move second child to first child (temp 4-component vector of uint)
0:113 'out_u4' (temp 4-component vector of uint)
0:113 AtomicAdd (temp 4-component vector of uint)
0:113 'gs_ua4' (shared 4-component vector of uint)
0:113 'gs_ub4' (shared 4-component vector of uint)
0:114 AtomicAnd (global void)
0:114 'gs_ua4' (shared 4-component vector of uint)
0:114 'gs_ub4' (shared 4-component vector of uint)
0:115 move second child to first child (temp 4-component vector of uint)
0:115 'out_u4' (temp 4-component vector of uint)
0:115 AtomicAnd (temp 4-component vector of uint)
0:115 'gs_ua4' (shared 4-component vector of uint)
0:115 'gs_ub4' (shared 4-component vector of uint)
0:116 move second child to first child (temp 4-component vector of uint)
0:116 'out_u4' (temp 4-component vector of uint)
0:116 AtomicCompSwap (temp 4-component vector of uint)
0:116 'gs_ua4' (shared 4-component vector of uint)
0:116 'gs_ub4' (shared 4-component vector of uint)
0:116 'gs_uc4' (shared 4-component vector of uint)
0:117 move second child to first child (temp 4-component vector of uint)
0:117 'out_u4' (temp 4-component vector of uint)
0:117 AtomicExchange (temp 4-component vector of uint)
0:117 'gs_ua4' (shared 4-component vector of uint)
0:117 'gs_ub4' (shared 4-component vector of uint)
0:118 AtomicMax (global void)
0:118 'gs_ua4' (shared 4-component vector of uint)
0:118 'gs_ub4' (shared 4-component vector of uint)
0:119 move second child to first child (temp 4-component vector of uint)
0:119 'out_u4' (temp 4-component vector of uint)
0:119 AtomicMax (temp 4-component vector of uint)
0:119 'gs_ua4' (shared 4-component vector of uint)
0:119 'gs_ub4' (shared 4-component vector of uint)
0:120 AtomicMin (global void)
0:120 'gs_ua4' (shared 4-component vector of uint)
0:120 'gs_ub4' (shared 4-component vector of uint)
0:121 move second child to first child (temp 4-component vector of uint)
0:121 'out_u4' (temp 4-component vector of uint)
0:121 AtomicMin (temp 4-component vector of uint)
0:121 'gs_ua4' (shared 4-component vector of uint)
0:121 'gs_ub4' (shared 4-component vector of uint)
0:122 AtomicOr (global void)
0:122 'gs_ua4' (shared 4-component vector of uint)
0:122 'gs_ub4' (shared 4-component vector of uint)
0:123 move second child to first child (temp 4-component vector of uint)
0:123 'out_u4' (temp 4-component vector of uint)
0:123 AtomicOr (temp 4-component vector of uint)
0:123 'gs_ua4' (shared 4-component vector of uint)
0:123 'gs_ub4' (shared 4-component vector of uint)
0:124 AtomicXor (global void)
0:124 'gs_ua4' (shared 4-component vector of uint)
0:124 'gs_ub4' (shared 4-component vector of uint)
0:125 move second child to first child (temp 4-component vector of uint)
0:125 'out_u4' (temp 4-component vector of uint)
0:125 AtomicXor (temp 4-component vector of uint)
0:125 'gs_ua4' (shared 4-component vector of uint)
0:125 'gs_ub4' (shared 4-component vector of uint)
0:128 Sequence
0:128 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:128 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
0:? 'gs_ua2' (shared 2-component vector of uint)
0:? 'gs_ub2' (shared 2-component vector of uint)
0:? 'gs_uc2' (shared 2-component vector of uint)
0:? 'gs_ua3' (shared 3-component vector of uint)
0:? 'gs_ub3' (shared 3-component vector of uint)
0:? 'gs_uc3' (shared 3-component vector of uint)
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 224
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 219 220 222 223
ExecutionMode 4 LocalSize 1 1 1
Name 4 "ComputeShaderFunction"
Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;"
Name 11 "inF0"
Name 12 "inF1"
Name 13 "inF2"
Name 14 "inU0"
Name 15 "inU1"
Name 22 "ComputeShaderFunction1(vf1;vf1;vf1;"
Name 19 "inF0"
Name 20 "inF1"
Name 21 "inF2"
Name 34 "ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;"
Name 29 "inF0"
Name 30 "inF1"
Name 31 "inF2"
Name 32 "inU0"
Name 33 "inU1"
Name 46 "ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;"
Name 41 "inF0"
Name 42 "inF1"
Name 43 "inF2"
Name 44 "inU0"
Name 45 "inU1"
Name 52 "gs_ua"
Name 53 "gs_ub"
Name 58 "out_u1"
Name 66 "gs_uc"
Name 95 "gs_ua2"
Name 96 "gs_ub2"
Name 99 "out_u2"
Name 107 "gs_uc2"
Name 136 "gs_ua3"
Name 137 "gs_ub3"
Name 140 "out_u3"
Name 148 "gs_uc3"
Name 175 "inF0"
Name 180 "gs_ua4"
Name 181 "gs_ub4"
Name 185 "out_u4"
Name 193 "gs_uc4"
Name 215 "@entryPointOutput"
Name 219 "inF1"
Name 220 "inF2"
Name 222 "inU0"
Name 223 "inU1"
Decorate 175(inF0) Location 0
Decorate 215(@entryPointOutput) Location 0
Decorate 219(inF1) Location 1
Decorate 220(inF2) Location 2
Decorate 222(inU0) Location 3
Decorate 223(inU1) Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
8: TypeInt 32 0
9: TypePointer Function 8(int)
10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr)
18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr)
24: TypeVector 6(float) 2
25: TypePointer Function 24(fvec2)
26: TypeVector 8(int) 2
27: TypePointer Function 26(ivec2)
28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr)
36: TypeVector 6(float) 3
37: TypePointer Function 36(fvec3)
38: TypeVector 8(int) 3
39: TypePointer Function 38(ivec3)
40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr)
49: TypeBool
51: TypePointer Workgroup 8(int)
52(gs_ua): 51(ptr) Variable Workgroup
53(gs_ub): 51(ptr) Variable Workgroup
55: 8(int) Constant 1
56: 8(int) Constant 0
66(gs_uc): 51(ptr) Variable Workgroup
87: 6(float) Constant 0
94: TypePointer Workgroup 26(ivec2)
95(gs_ua2): 94(ptr) Variable Workgroup
96(gs_ub2): 94(ptr) Variable Workgroup
107(gs_uc2): 94(ptr) Variable Workgroup
128: 6(float) Constant 1065353216
129: 6(float) Constant 1073741824
130: 24(fvec2) ConstantComposite 128 129
135: TypePointer Workgroup 38(ivec3)
136(gs_ua3): 135(ptr) Variable Workgroup
137(gs_ub3): 135(ptr) Variable Workgroup
148(gs_uc3): 135(ptr) Variable Workgroup
169: 6(float) Constant 1077936128
170: 36(fvec3) ConstantComposite 128 129 169
173: TypeVector 6(float) 4
174: TypePointer Input 173(fvec4)
175(inF0): 174(ptr) Variable Input
178: TypeVector 8(int) 4
179: TypePointer Workgroup 178(ivec4)
180(gs_ua4): 179(ptr) Variable Workgroup
181(gs_ub4): 179(ptr) Variable Workgroup
184: TypePointer Function 178(ivec4)
193(gs_uc4): 179(ptr) Variable Workgroup
214: TypePointer Output 173(fvec4)
215(@entryPointOutput): 214(ptr) Variable Output
216: 6(float) Constant 1082130432
217: 173(fvec4) ConstantComposite 128 129 169 216
219(inF1): 174(ptr) Variable Input
220(inF2): 174(ptr) Variable Input
221: TypePointer Input 178(ivec4)
222(inU0): 221(ptr) Variable Input
223(inU1): 221(ptr) Variable Input
4(ComputeShaderFunction): 2 Function None 3
5: Label
185(out_u4): 184(ptr) Variable Function
176: 173(fvec4) Load 175(inF0)
177: 49(bool) All 176
182: 178(ivec4) Load 181(gs_ub4)
183: 2 AtomicIAdd 180(gs_ua4) 55 56 182
186: 178(ivec4) Load 181(gs_ub4)
187: 178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186
Store 185(out_u4) 187
188: 178(ivec4) Load 181(gs_ub4)
189: 2 AtomicAnd 180(gs_ua4) 55 56 188
190: 178(ivec4) Load 181(gs_ub4)
191: 178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190
Store 185(out_u4) 191
192: 178(ivec4) Load 181(gs_ub4)
194: 178(ivec4) Load 193(gs_uc4)
195: 178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192
Store 185(out_u4) 195
196: 178(ivec4) Load 181(gs_ub4)
197: 178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196
Store 185(out_u4) 197
198: 178(ivec4) Load 181(gs_ub4)
199: 2 AtomicSMax 180(gs_ua4) 55 56 198
200: 178(ivec4) Load 181(gs_ub4)
201: 178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200
Store 185(out_u4) 201
202: 178(ivec4) Load 181(gs_ub4)
203: 2 AtomicSMin 180(gs_ua4) 55 56 202
204: 178(ivec4) Load 181(gs_ub4)
205: 178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204
Store 185(out_u4) 205
206: 178(ivec4) Load 181(gs_ub4)
207: 2 AtomicOr 180(gs_ua4) 55 56 206
208: 178(ivec4) Load 181(gs_ub4)
209: 178(ivec4) AtomicOr 180(gs_ua4) 55 56 208
Store 185(out_u4) 209
210: 178(ivec4) Load 181(gs_ub4)
211: 2 AtomicXor 180(gs_ua4) 55 56 210
212: 178(ivec4) Load 181(gs_ub4)
213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212
Store 185(out_u4) 213
Store 215(@entryPointOutput) 217
Return
FunctionEnd
16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10
11(inF0): 7(ptr) FunctionParameter
12(inF1): 7(ptr) FunctionParameter
13(inF2): 7(ptr) FunctionParameter
14(inU0): 9(ptr) FunctionParameter
15(inU1): 9(ptr) FunctionParameter
17: Label
58(out_u1): 9(ptr) Variable Function
48: 6(float) Load 11(inF0)
50: 49(bool) All 48
54: 8(int) Load 53(gs_ub)
57: 2 AtomicIAdd 52(gs_ua) 55 56 54
59: 8(int) Load 53(gs_ub)
60: 8(int) AtomicIAdd 52(gs_ua) 55 56 59
Store 58(out_u1) 60
61: 8(int) Load 53(gs_ub)
62: 2 AtomicAnd 52(gs_ua) 55 56 61
63: 8(int) Load 53(gs_ub)
64: 8(int) AtomicAnd 52(gs_ua) 55 56 63
Store 58(out_u1) 64
65: 8(int) Load 53(gs_ub)
67: 8(int) Load 66(gs_uc)
68: 8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65
Store 58(out_u1) 68
69: 8(int) Load 53(gs_ub)
70: 8(int) AtomicExchange 52(gs_ua) 55 56 69
Store 58(out_u1) 70
71: 8(int) Load 53(gs_ub)
72: 2 AtomicSMax 52(gs_ua) 55 56 71
73: 8(int) Load 53(gs_ub)
74: 8(int) AtomicUMax 52(gs_ua) 55 56 73
Store 58(out_u1) 74
75: 8(int) Load 53(gs_ub)
76: 2 AtomicSMin 52(gs_ua) 55 56 75
77: 8(int) Load 53(gs_ub)
78: 8(int) AtomicUMin 52(gs_ua) 55 56 77
Store 58(out_u1) 78
79: 8(int) Load 53(gs_ub)
80: 2 AtomicOr 52(gs_ua) 55 56 79
81: 8(int) Load 53(gs_ub)
82: 8(int) AtomicOr 52(gs_ua) 55 56 81
Store 58(out_u1) 82
83: 8(int) Load 53(gs_ub)
84: 2 AtomicXor 52(gs_ua) 55 56 83
85: 8(int) Load 53(gs_ub)
86: 8(int) AtomicXor 52(gs_ua) 55 56 85
Store 58(out_u1) 86
ReturnValue 87
FunctionEnd
22(ComputeShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18
19(inF0): 7(ptr) FunctionParameter
20(inF1): 7(ptr) FunctionParameter
21(inF2): 7(ptr) FunctionParameter
23: Label
ReturnValue 87
FunctionEnd
34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28
29(inF0): 25(ptr) FunctionParameter
30(inF1): 25(ptr) FunctionParameter
31(inF2): 25(ptr) FunctionParameter
32(inU0): 27(ptr) FunctionParameter
33(inU1): 27(ptr) FunctionParameter
35: Label
99(out_u2): 27(ptr) Variable Function
92: 24(fvec2) Load 29(inF0)
93: 49(bool) All 92
97: 26(ivec2) Load 96(gs_ub2)
98: 2 AtomicIAdd 95(gs_ua2) 55 56 97
100: 26(ivec2) Load 96(gs_ub2)
101: 26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100
Store 99(out_u2) 101
102: 26(ivec2) Load 96(gs_ub2)
103: 2 AtomicAnd 95(gs_ua2) 55 56 102
104: 26(ivec2) Load 96(gs_ub2)
105: 26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104
Store 99(out_u2) 105
106: 26(ivec2) Load 96(gs_ub2)
108: 26(ivec2) Load 107(gs_uc2)
109: 26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106
Store 99(out_u2) 109
110: 26(ivec2) Load 96(gs_ub2)
111: 26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110
Store 99(out_u2) 111
112: 26(ivec2) Load 96(gs_ub2)
113: 2 AtomicSMax 95(gs_ua2) 55 56 112
114: 26(ivec2) Load 96(gs_ub2)
115: 26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114
Store 99(out_u2) 115
116: 26(ivec2) Load 96(gs_ub2)
117: 2 AtomicSMin 95(gs_ua2) 55 56 116
118: 26(ivec2) Load 96(gs_ub2)
119: 26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118
Store 99(out_u2) 119
120: 26(ivec2) Load 96(gs_ub2)
121: 2 AtomicOr 95(gs_ua2) 55 56 120
122: 26(ivec2) Load 96(gs_ub2)
123: 26(ivec2) AtomicOr 95(gs_ua2) 55 56 122
Store 99(out_u2) 123
124: 26(ivec2) Load 96(gs_ub2)
125: 2 AtomicXor 95(gs_ua2) 55 56 124
126: 26(ivec2) Load 96(gs_ub2)
127: 26(ivec2) AtomicXor 95(gs_ua2) 55 56 126
Store 99(out_u2) 127
ReturnValue 130
FunctionEnd
46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40
41(inF0): 37(ptr) FunctionParameter
42(inF1): 37(ptr) FunctionParameter
43(inF2): 37(ptr) FunctionParameter
44(inU0): 39(ptr) FunctionParameter
45(inU1): 39(ptr) FunctionParameter
47: Label
140(out_u3): 39(ptr) Variable Function
133: 36(fvec3) Load 41(inF0)
134: 49(bool) All 133
138: 38(ivec3) Load 137(gs_ub3)
139: 2 AtomicIAdd 136(gs_ua3) 55 56 138
141: 38(ivec3) Load 137(gs_ub3)
142: 38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141
Store 140(out_u3) 142
143: 38(ivec3) Load 137(gs_ub3)
144: 2 AtomicAnd 136(gs_ua3) 55 56 143
145: 38(ivec3) Load 137(gs_ub3)
146: 38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145
Store 140(out_u3) 146
147: 38(ivec3) Load 137(gs_ub3)
149: 38(ivec3) Load 148(gs_uc3)
150: 38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147
Store 140(out_u3) 150
151: 38(ivec3) Load 137(gs_ub3)
152: 38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151
Store 140(out_u3) 152
153: 38(ivec3) Load 137(gs_ub3)
154: 2 AtomicSMax 136(gs_ua3) 55 56 153
155: 38(ivec3) Load 137(gs_ub3)
156: 38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155
Store 140(out_u3) 156
157: 38(ivec3) Load 137(gs_ub3)
158: 2 AtomicSMin 136(gs_ua3) 55 56 157
159: 38(ivec3) Load 137(gs_ub3)
160: 38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159
Store 140(out_u3) 160
161: 38(ivec3) Load 137(gs_ub3)
162: 2 AtomicOr 136(gs_ua3) 55 56 161
163: 38(ivec3) Load 137(gs_ub3)
164: 38(ivec3) AtomicOr 136(gs_ua3) 55 56 163
Store 140(out_u3) 164
165: 38(ivec3) Load 137(gs_ub3)
166: 2 AtomicXor 136(gs_ua3) 55 56 165
167: 38(ivec3) Load 137(gs_ub3)
168: 38(ivec3) AtomicXor 136(gs_ua3) 55 56 167
Store 140(out_u3) 168
ReturnValue 170
FunctionEnd