1#version 320 es 2 3#extension GL_NV_shader_subgroup_partitioned: enable 4 5layout (local_size_x = 8) in; 6 7layout(binding = 0) buffer Buffers 8{ 9 vec4 f4; 10 ivec4 i4; 11 uvec4 u4; 12} data[4]; 13 14void main() 15{ 16 uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4u; 17 18 uvec4 ballot = subgroupPartitionNV(invocation); 19 20 data[0].u4 = subgroupPartitionNV(data[0].f4.x); 21 data[0].u4 = subgroupPartitionNV(data[0].f4.xy); 22 data[0].u4 = subgroupPartitionNV(data[0].f4.xyz); 23 data[0].u4 = subgroupPartitionNV(data[0].f4); 24 25 data[0].u4 = subgroupPartitionNV(data[0].i4.x); 26 data[0].u4 = subgroupPartitionNV(data[0].i4.xy); 27 data[0].u4 = subgroupPartitionNV(data[0].i4.xyz); 28 data[0].u4 = subgroupPartitionNV(data[0].i4); 29 30 data[0].u4 = subgroupPartitionNV(data[0].u4.x); 31 data[0].u4 = subgroupPartitionNV(data[0].u4.xy); 32 data[0].u4 = subgroupPartitionNV(data[0].u4.xyz); 33 data[0].u4 = subgroupPartitionNV(data[0].u4); 34 35 data[1].u4 = subgroupPartitionNV(bool(data[0].i4.x)); 36 data[1].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); 37 data[1].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); 38 data[1].u4 = subgroupPartitionNV(bvec4(data[0].i4)); 39 40 data[1].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); 41 data[1].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); 42 data[1].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); 43 data[1].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); 44 45 data[1].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); 46 data[1].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); 47 data[1].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); 48 data[1].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); 49 50 data[1].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); 51 data[1].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); 52 data[1].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); 53 data[1].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); 54 55 data[2].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); 56 data[2].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); 57 data[2].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); 58 data[2].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); 59 60 data[2].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); 61 data[2].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); 62 data[2].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); 63 data[2].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); 64 65 data[2].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); 66 data[2].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); 67 data[2].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); 68 data[2].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); 69 70 data[2].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); 71 data[2].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); 72 data[2].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); 73 data[2].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); 74 75 data[3].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); 76 data[3].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); 77 data[3].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); 78 data[3].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); 79 80 data[3].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); 81 data[3].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); 82 data[3].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); 83 data[3].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); 84 85 data[3].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); 86 data[3].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); 87 data[3].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); 88 data[3].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); 89 90 data[0].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); 91 data[0].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); 92 data[0].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); 93 data[0].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); 94 95 data[0].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); 96 data[0].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); 97 data[0].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); 98 data[0].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); 99 100 data[0].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); 101 data[0].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); 102 data[0].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); 103 data[0].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); 104 105 data[1].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); 106 data[1].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); 107 data[1].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); 108 data[1].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); 109 110 data[1].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); 111 data[1].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 112 data[1].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 113 data[1].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); 114 115 data[1].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); 116 data[1].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); 117 data[1].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); 118 data[1].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); 119 120 data[2].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); 121 data[2].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); 122 data[2].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); 123 data[2].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); 124 125 data[2].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); 126 data[2].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 127 data[2].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 128 data[2].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); 129 130 data[2].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); 131 data[2].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); 132 data[2].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); 133 data[2].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); 134 135 data[2].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); 136 data[2].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); 137 data[2].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); 138 data[2].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); 139 140 data[3].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); 141 data[3].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 142 data[3].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 143 data[3].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); 144 145 data[3].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); 146 data[3].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); 147 data[3].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); 148 data[3].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); 149 150 data[3].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); 151 data[3].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); 152 data[3].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); 153 data[3].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); 154 155 data[3].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); 156 data[3].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); 157 data[3].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); 158 data[3].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); 159 160 data[3].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); 161 data[3].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); 162 data[3].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); 163 data[3].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); 164 165 data[3].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); 166 data[3].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); 167 data[3].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); 168 data[3].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); 169 170 data[0].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); 171 data[0].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); 172 data[0].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); 173 data[0].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); 174 175 data[0].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); 176 data[0].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); 177 data[0].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); 178 data[0].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); 179 180 data[0].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); 181 data[0].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); 182 data[0].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); 183 data[0].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); 184 185 data[0].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); 186 data[0].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); 187 data[0].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); 188 data[0].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); 189 190 data[1].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); 191 data[1].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); 192 data[1].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); 193 data[1].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); 194 195 data[1].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); 196 data[1].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); 197 data[1].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); 198 data[1].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); 199 200 data[1].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); 201 data[1].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); 202 data[1].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); 203 data[1].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); 204 205 data[1].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); 206 data[1].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); 207 data[1].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); 208 data[1].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); 209 210 data[2].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); 211 data[2].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); 212 data[2].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); 213 data[2].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); 214 215 data[2].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); 216 data[2].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 217 data[2].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 218 data[2].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); 219 220 data[2].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); 221 data[2].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); 222 data[2].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); 223 data[2].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); 224 225 data[2].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); 226 data[2].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); 227 data[2].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); 228 data[2].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); 229 230 data[3].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); 231 data[3].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 232 data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 233 data[3].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); 234 235 data[3].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); 236 data[3].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); 237 data[3].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); 238 data[3].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); 239 240 data[3].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); 241 data[3].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); 242 data[3].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); 243 data[3].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); 244 245 data[3].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); 246 data[3].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 247 data[3].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 248 data[3].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); 249 250 data[0].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); 251 data[0].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); 252 data[0].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); 253 data[0].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); 254 255 data[0].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); 256 data[0].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); 257 data[0].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); 258 data[0].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); 259 260 data[0].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); 261 data[0].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); 262 data[0].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); 263 data[0].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); 264 265 data[0].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); 266 data[0].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); 267 data[0].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); 268 data[0].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); 269 270 data[1].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); 271 data[1].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); 272 data[1].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); 273 data[1].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); 274 275 data[1].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); 276 data[1].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); 277 data[1].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); 278 data[1].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); 279 280 data[1].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); 281 data[1].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); 282 data[1].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); 283 data[1].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); 284 285 data[1].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); 286 data[1].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); 287 data[1].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); 288 data[1].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); 289 290 data[2].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); 291 data[2].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); 292 data[2].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); 293 data[2].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); 294 295 data[2].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); 296 data[2].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); 297 data[2].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); 298 data[2].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); 299 300 data[2].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); 301 data[2].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); 302 data[2].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); 303 data[2].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); 304 305 data[2].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); 306 data[2].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); 307 data[2].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); 308 data[2].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); 309 310 data[2].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); 311 data[2].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); 312 data[2].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); 313 data[2].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); 314 315 data[2].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); 316 data[2].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); 317 data[2].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); 318 data[2].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); 319 320 data[3].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); 321 data[3].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 322 data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 323 data[3].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); 324 325 data[3].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); 326 data[3].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); 327 data[3].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); 328 data[3].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); 329 330 data[3].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); 331 data[3].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); 332 data[3].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); 333 data[3].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); 334 335 data[3].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); 336 data[3].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 337 data[3].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 338 data[3].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); 339 340 data[3].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); 341 data[3].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); 342 data[3].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); 343 data[3].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); 344 345 data[0].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); 346 data[0].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); 347 data[0].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); 348 data[0].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); 349 350 data[0].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); 351 data[0].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); 352 data[0].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); 353 data[0].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); 354} 355