blob: 42ad9731639046db3aef3ee99c9459664899ef24 [file] [log] [blame]
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 (temp bool)
0:21 'inF0' (in float)
0:24 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:55 'inF0' (in 2-component vector of float)
0:58 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:82 'inF0' (in 3-component vector of float)
0:85 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
0:112 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:21 'inF0' (in float)
0:24 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:55 'inF0' (in 2-component vector of float)
0:58 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:82 'inF0' (in 3-component vector of float)
0:85 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
0:112 AtomicAdd (temp 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 (temp 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 (temp 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 (temp 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 (temp 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 (temp 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