1387 instructions 2 3[immutable slots] 4i0 = 0xFFFFFFFF 5i1 = 0 6 7store_src_rg coords = src.rg 8init_lane_masks CondMask = LoopMask = RetMask = true 9copy_uniform $0 = colorGreen(0) 10copy_uniform $1 = colorGreen(2) 11div_float $0 /= $1 12copy_slot_unmasked NAN1 = $0 13copy_uniform $0 = colorGreen(2) 14copy_uniform $1 = colorGreen(0) 15div_float $0 /= $1 16copy_slot_unmasked NAN2 = $0 17copy_uniform $0 = colorGreen(0) 18copy_uniform $1 = colorGreen(2) 19mul_float $0 *= $1 20copy_slot_unmasked ZP = $0 21copy_uniform $0 = colorGreen(0) 22bitwise_xor_imm_int $0 ^= 0x80000000 23copy_uniform $1 = colorGreen(2) 24mul_float $0 *= $1 25copy_slot_unmasked ZM = $0 26copy_uniform $0 = colorGreen(1) 27mul_imm_float $0 *= 0x42280000 (42.0) 28copy_slot_unmasked F42 = $0 29copy_uniform $0 = colorGreen(1) 30mul_imm_float $0 *= 0x422C0000 (43.0) 31copy_slot_unmasked F43 = $0 32copy_uniform $0 = colorGreen(1) 33mul_imm_float $0 *= 0x42300000 (44.0) 34copy_slot_unmasked F44 = $0 35copy_uniform $0 = colorGreen(0) 36add_imm_float $0 += 0x3F800000 (1.0) 37copy_slot_unmasked _0_one = $0 38splat_3_constants _1_a[0], _1_a[1], _1_a[2] = 0 39copy_slot_unmasked _1_a[0] = F42 40copy_slot_unmasked _1_a[1] = ZM 41copy_slot_unmasked _1_a[2] = ZP 42splat_3_constants _2_b[0], _2_b[1], _2_b[2] = 0 43copy_slot_unmasked $0 = F42 44copy_slot_unmasked $1 = _0_one 45mul_float $0 *= $1 46copy_slot_unmasked _2_b[0] = $0 47copy_slot_unmasked $0 = ZM 48copy_slot_unmasked $1 = _0_one 49mul_float $0 *= $1 50copy_slot_unmasked _2_b[1] = $0 51copy_slot_unmasked $0 = ZP 52copy_slot_unmasked $1 = _0_one 53mul_float $0 *= $1 54copy_slot_unmasked _2_b[2] = $0 55store_condition_mask $12 = CondMask 56store_condition_mask $21 = CondMask 57store_condition_mask $30 = CondMask 58store_condition_mask $39 = CondMask 59store_condition_mask $48 = CondMask 60store_condition_mask $57 = CondMask 61store_condition_mask $66 = CondMask 62store_condition_mask $74 = CondMask 63copy_constant $75 = 0xFFFFFFFF 64copy_4_slots_unmasked $67..70 = _1_a[0], _1_a[1], _1_a[2], _2_b[0] 65copy_2_slots_unmasked $71..72 = _2_b[1], _2_b[2] 66cmpne_3_floats $67..69 = notEqual($67..69, $70..72) 67bitwise_or_int $68 |= $69 68bitwise_or_int $67 |= $68 69merge_condition_mask CondMask = $74 & $75 70branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 8 at #71) 71copy_4_slots_unmasked $68..71 = _1_a[0], _1_a[1], _1_a[2], _2_b[0] 72copy_2_slots_unmasked $72..73 = _2_b[1], _2_b[2] 73cmpeq_3_floats $68..70 = equal($68..70, $71..73) 74bitwise_and_int $69 &= $70 75bitwise_and_int $68 &= $69 76copy_slot_masked $67 = Mask($68) 77label label 0x00000008 78load_condition_mask CondMask = $74 79copy_constant $58 = 0 80merge_condition_mask CondMask = $66 & $67 81branch_if_no_lanes_active branch_if_no_lanes_active +45 (label 7 at #120) 82copy_constant eq = 0 83copy_uniform $59 = colorGreen(0) 84add_imm_float $59 += 0x3F800000 (1.0) 85copy_slot_unmasked one = $59 86splat_3_constants a[0], a[1], a[2] = 0 87copy_slot_unmasked $59 = F42 88copy_slot_masked a[0] = Mask($59) 89copy_slot_unmasked $59 = ZM 90copy_slot_masked a[1] = Mask($59) 91copy_slot_unmasked $59 = ZP 92copy_slot_masked a[2] = Mask($59) 93splat_3_constants b[0], b[1], b[2] = 0 94copy_slot_unmasked $59 = F42 95copy_slot_unmasked $60 = one 96mul_float $59 *= $60 97copy_slot_masked b[0] = Mask($59) 98copy_slot_unmasked $59 = ZM 99copy_slot_unmasked $60 = one 100mul_float $59 *= $60 101copy_slot_masked b[1] = Mask($59) 102copy_slot_unmasked $59 = ZP 103copy_slot_unmasked $60 = one 104mul_float $59 *= $60 105copy_slot_masked b[2] = Mask($59) 106store_condition_mask $74 = CondMask 107copy_slot_unmasked $75 = eq 108copy_4_slots_unmasked $59..62 = a[0], a[1], a[2], b[0] 109copy_2_slots_unmasked $63..64 = b[1], b[2] 110cmpne_3_floats $59..61 = notEqual($59..61, $62..64) 111bitwise_or_int $60 |= $61 112bitwise_or_int $59 |= $60 113merge_condition_mask CondMask = $74 & $75 114branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 10 at #115) 115copy_4_slots_unmasked $60..63 = a[0], a[1], a[2], b[0] 116copy_2_slots_unmasked $64..65 = b[1], b[2] 117cmpeq_3_floats $60..62 = equal($60..62, $63..65) 118bitwise_and_int $61 &= $62 119bitwise_and_int $60 &= $61 120copy_slot_masked $59 = Mask($60) 121label label 0x0000000A 122load_condition_mask CondMask = $74 123label label 0x00000009 124bitwise_xor_imm_int $59 ^= 0xFFFFFFFF 125copy_slot_masked $58 = Mask($59) 126label label 0x00000007 127load_condition_mask CondMask = $66 128copy_constant $49 = 0 129merge_condition_mask CondMask = $57 & $58 130branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 6 at #168) 131copy_constant eq = 0 132copy_uniform $50 = colorGreen(0) 133add_imm_float $50 += 0x3F800000 (1.0) 134copy_slot_unmasked one = $50 135splat_3_constants a[0], a[1], a[2] = 0 136copy_slot_unmasked $50 = F42 137copy_slot_masked a[0] = Mask($50) 138copy_slot_unmasked $50 = NAN1 139copy_slot_masked a[1] = Mask($50) 140copy_slot_unmasked $50 = NAN2 141copy_slot_masked a[2] = Mask($50) 142splat_3_constants b[0], b[1], b[2] = 0 143copy_slot_unmasked $50 = F42 144copy_slot_unmasked $51 = one 145mul_float $50 *= $51 146copy_slot_masked b[0] = Mask($50) 147copy_slot_unmasked $50 = NAN1 148copy_slot_unmasked $51 = one 149mul_float $50 *= $51 150copy_slot_masked b[1] = Mask($50) 151copy_slot_unmasked $50 = NAN2 152copy_slot_unmasked $51 = one 153mul_float $50 *= $51 154copy_slot_masked b[2] = Mask($50) 155store_condition_mask $66 = CondMask 156copy_slot_unmasked $67 = eq 157copy_4_slots_unmasked $50..53 = a[0], a[1], a[2], b[0] 158copy_2_slots_unmasked $54..55 = b[1], b[2] 159cmpne_3_floats $50..52 = notEqual($50..52, $53..55) 160bitwise_or_int $51 |= $52 161bitwise_or_int $50 |= $51 162merge_condition_mask CondMask = $66 & $67 163branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 12 at #164) 164copy_4_slots_unmasked $51..54 = a[0], a[1], a[2], b[0] 165copy_2_slots_unmasked $55..56 = b[1], b[2] 166cmpeq_3_floats $51..53 = equal($51..53, $54..56) 167bitwise_and_int $52 &= $53 168bitwise_and_int $51 &= $52 169copy_slot_masked $50 = Mask($51) 170label label 0x0000000C 171load_condition_mask CondMask = $66 172label label 0x0000000B 173copy_slot_masked $49 = Mask($50) 174label label 0x00000006 175load_condition_mask CondMask = $57 176copy_constant $40 = 0 177merge_condition_mask CondMask = $48 & $49 178branch_if_no_lanes_active branch_if_no_lanes_active +45 (label 5 at #217) 179copy_constant eq = 0xFFFFFFFF 180copy_uniform $41 = colorGreen(0) 181add_imm_float $41 += 0x3F800000 (1.0) 182copy_slot_unmasked one = $41 183splat_3_constants a[0], a[1], a[2] = 0 184copy_slot_unmasked $41 = F42 185copy_slot_masked a[0] = Mask($41) 186copy_slot_unmasked $41 = NAN1 187copy_slot_masked a[1] = Mask($41) 188copy_slot_unmasked $41 = NAN2 189copy_slot_masked a[2] = Mask($41) 190splat_3_constants b[0], b[1], b[2] = 0 191copy_slot_unmasked $41 = F42 192copy_slot_unmasked $42 = one 193mul_float $41 *= $42 194copy_slot_masked b[0] = Mask($41) 195copy_slot_unmasked $41 = NAN1 196copy_slot_unmasked $42 = one 197mul_float $41 *= $42 198copy_slot_masked b[1] = Mask($41) 199copy_slot_unmasked $41 = NAN2 200copy_slot_unmasked $42 = one 201mul_float $41 *= $42 202copy_slot_masked b[2] = Mask($41) 203store_condition_mask $57 = CondMask 204copy_slot_unmasked $58 = eq 205copy_4_slots_unmasked $41..44 = a[0], a[1], a[2], b[0] 206copy_2_slots_unmasked $45..46 = b[1], b[2] 207cmpne_3_floats $41..43 = notEqual($41..43, $44..46) 208bitwise_or_int $42 |= $43 209bitwise_or_int $41 |= $42 210merge_condition_mask CondMask = $57 & $58 211branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 14 at #212) 212copy_4_slots_unmasked $42..45 = a[0], a[1], a[2], b[0] 213copy_2_slots_unmasked $46..47 = b[1], b[2] 214cmpeq_3_floats $42..44 = equal($42..44, $45..47) 215bitwise_and_int $43 &= $44 216bitwise_and_int $42 &= $43 217copy_slot_masked $41 = Mask($42) 218label label 0x0000000E 219load_condition_mask CondMask = $57 220label label 0x0000000D 221bitwise_xor_imm_int $41 ^= 0xFFFFFFFF 222copy_slot_masked $40 = Mask($41) 223label label 0x00000005 224load_condition_mask CondMask = $48 225copy_constant $31 = 0 226merge_condition_mask CondMask = $39 & $40 227branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 4 at #263) 228copy_constant eq₁ = 0 229copy_uniform $32 = colorGreen(0) 230add_imm_float $32 += 0x40000000 (2.0) 231copy_slot_unmasked two = $32 232splat_3_constants a[0]₁, a[1]₁, a[2]₁ = 0 233copy_slot_unmasked $32 = F42 234copy_slot_masked a[0]₁ = Mask($32) 235copy_slot_unmasked $32 = F43 236copy_slot_masked a[1]₁ = Mask($32) 237copy_slot_unmasked $32 = F44 238copy_slot_masked a[2]₁ = Mask($32) 239splat_3_constants b[0]₁, b[1]₁, b[2]₁ = 0 240copy_slot_unmasked $32 = F42 241copy_slot_unmasked $33 = two 242mul_float $32 *= $33 243copy_slot_masked b[0]₁ = Mask($32) 244copy_slot_unmasked $32 = F43 245copy_slot_unmasked $33 = two 246mul_float $32 *= $33 247copy_slot_masked b[1]₁ = Mask($32) 248copy_slot_unmasked $32 = F44 249copy_slot_masked b[2]₁ = Mask($32) 250store_condition_mask $48 = CondMask 251copy_slot_unmasked $49 = eq₁ 252copy_4_slots_unmasked $32..35 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 253copy_2_slots_unmasked $36..37 = b[1]₁, b[2]₁ 254cmpne_3_floats $32..34 = notEqual($32..34, $35..37) 255bitwise_or_int $33 |= $34 256bitwise_or_int $32 |= $33 257merge_condition_mask CondMask = $48 & $49 258branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 16 at #259) 259copy_4_slots_unmasked $33..36 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 260copy_2_slots_unmasked $37..38 = b[1]₁, b[2]₁ 261cmpeq_3_floats $33..35 = equal($33..35, $36..38) 262bitwise_and_int $34 &= $35 263bitwise_and_int $33 &= $34 264copy_slot_masked $32 = Mask($33) 265label label 0x00000010 266load_condition_mask CondMask = $48 267label label 0x0000000F 268copy_slot_masked $31 = Mask($32) 269label label 0x00000004 270load_condition_mask CondMask = $39 271copy_constant $22 = 0 272merge_condition_mask CondMask = $30 & $31 273branch_if_no_lanes_active branch_if_no_lanes_active +43 (label 3 at #310) 274copy_constant eq₁ = 0xFFFFFFFF 275copy_uniform $23 = colorGreen(0) 276add_imm_float $23 += 0x40000000 (2.0) 277copy_slot_unmasked two = $23 278splat_3_constants a[0]₁, a[1]₁, a[2]₁ = 0 279copy_slot_unmasked $23 = F42 280copy_slot_masked a[0]₁ = Mask($23) 281copy_slot_unmasked $23 = F43 282copy_slot_masked a[1]₁ = Mask($23) 283copy_slot_unmasked $23 = F44 284copy_slot_masked a[2]₁ = Mask($23) 285splat_3_constants b[0]₁, b[1]₁, b[2]₁ = 0 286copy_slot_unmasked $23 = F42 287copy_slot_unmasked $24 = two 288mul_float $23 *= $24 289copy_slot_masked b[0]₁ = Mask($23) 290copy_slot_unmasked $23 = F43 291copy_slot_unmasked $24 = two 292mul_float $23 *= $24 293copy_slot_masked b[1]₁ = Mask($23) 294copy_slot_unmasked $23 = F44 295copy_slot_masked b[2]₁ = Mask($23) 296store_condition_mask $39 = CondMask 297copy_slot_unmasked $40 = eq₁ 298copy_4_slots_unmasked $23..26 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 299copy_2_slots_unmasked $27..28 = b[1]₁, b[2]₁ 300cmpne_3_floats $23..25 = notEqual($23..25, $26..28) 301bitwise_or_int $24 |= $25 302bitwise_or_int $23 |= $24 303merge_condition_mask CondMask = $39 & $40 304branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 18 at #305) 305copy_4_slots_unmasked $24..27 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 306copy_2_slots_unmasked $28..29 = b[1]₁, b[2]₁ 307cmpeq_3_floats $24..26 = equal($24..26, $27..29) 308bitwise_and_int $25 &= $26 309bitwise_and_int $24 &= $25 310copy_slot_masked $23 = Mask($24) 311label label 0x00000012 312load_condition_mask CondMask = $39 313label label 0x00000011 314bitwise_xor_imm_int $23 ^= 0xFFFFFFFF 315copy_slot_masked $22 = Mask($23) 316label label 0x00000003 317load_condition_mask CondMask = $30 318copy_constant $13 = 0 319merge_condition_mask CondMask = $21 & $22 320branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 2 at #356) 321copy_constant eq₁ = 0 322copy_uniform $14 = colorGreen(0) 323add_imm_float $14 += 0x40000000 (2.0) 324copy_slot_unmasked two = $14 325splat_3_constants a[0]₁, a[1]₁, a[2]₁ = 0 326copy_slot_unmasked $14 = NAN1 327copy_slot_masked a[0]₁ = Mask($14) 328copy_slot_unmasked $14 = ZM 329copy_slot_masked a[1]₁ = Mask($14) 330copy_slot_unmasked $14 = ZP 331copy_slot_masked a[2]₁ = Mask($14) 332splat_3_constants b[0]₁, b[1]₁, b[2]₁ = 0 333copy_slot_unmasked $14 = NAN1 334copy_slot_unmasked $15 = two 335mul_float $14 *= $15 336copy_slot_masked b[0]₁ = Mask($14) 337copy_slot_unmasked $14 = ZM 338copy_slot_unmasked $15 = two 339mul_float $14 *= $15 340copy_slot_masked b[1]₁ = Mask($14) 341copy_slot_unmasked $14 = ZP 342copy_slot_masked b[2]₁ = Mask($14) 343store_condition_mask $30 = CondMask 344copy_slot_unmasked $31 = eq₁ 345copy_4_slots_unmasked $14..17 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 346copy_2_slots_unmasked $18..19 = b[1]₁, b[2]₁ 347cmpne_3_floats $14..16 = notEqual($14..16, $17..19) 348bitwise_or_int $15 |= $16 349bitwise_or_int $14 |= $15 350merge_condition_mask CondMask = $30 & $31 351branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 20 at #352) 352copy_4_slots_unmasked $15..18 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 353copy_2_slots_unmasked $19..20 = b[1]₁, b[2]₁ 354cmpeq_3_floats $15..17 = equal($15..17, $18..20) 355bitwise_and_int $16 &= $17 356bitwise_and_int $15 &= $16 357copy_slot_masked $14 = Mask($15) 358label label 0x00000014 359load_condition_mask CondMask = $30 360label label 0x00000013 361copy_slot_masked $13 = Mask($14) 362label label 0x00000002 363load_condition_mask CondMask = $21 364copy_constant $0 = 0 365merge_condition_mask CondMask = $12 & $13 366branch_if_no_lanes_active branch_if_no_lanes_active +43 (label 1 at #403) 367copy_constant eq₁ = 0xFFFFFFFF 368copy_uniform $1 = colorGreen(0) 369add_imm_float $1 += 0x40000000 (2.0) 370copy_slot_unmasked two = $1 371splat_3_constants a[0]₁, a[1]₁, a[2]₁ = 0 372copy_slot_unmasked $1 = NAN1 373copy_slot_masked a[0]₁ = Mask($1) 374copy_slot_unmasked $1 = ZM 375copy_slot_masked a[1]₁ = Mask($1) 376copy_slot_unmasked $1 = ZP 377copy_slot_masked a[2]₁ = Mask($1) 378splat_3_constants b[0]₁, b[1]₁, b[2]₁ = 0 379copy_slot_unmasked $1 = NAN1 380copy_slot_unmasked $2 = two 381mul_float $1 *= $2 382copy_slot_masked b[0]₁ = Mask($1) 383copy_slot_unmasked $1 = ZM 384copy_slot_unmasked $2 = two 385mul_float $1 *= $2 386copy_slot_masked b[1]₁ = Mask($1) 387copy_slot_unmasked $1 = ZP 388copy_slot_masked b[2]₁ = Mask($1) 389store_condition_mask $21 = CondMask 390copy_slot_unmasked $22 = eq₁ 391copy_4_slots_unmasked $1..4 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 392copy_2_slots_unmasked $5..6 = b[1]₁, b[2]₁ 393cmpne_3_floats $1..3 = notEqual($1..3, $4..6) 394bitwise_or_int $2 |= $3 395bitwise_or_int $1 |= $2 396merge_condition_mask CondMask = $21 & $22 397branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 22 at #398) 398copy_4_slots_unmasked $2..5 = a[0]₁, a[1]₁, a[2]₁, b[0]₁ 399copy_2_slots_unmasked $6..7 = b[1]₁, b[2]₁ 400cmpeq_3_floats $2..4 = equal($2..4, $5..7) 401bitwise_and_int $3 &= $4 402bitwise_and_int $2 &= $3 403copy_slot_masked $1 = Mask($2) 404label label 0x00000016 405load_condition_mask CondMask = $21 406label label 0x00000015 407bitwise_xor_imm_int $1 ^= 0xFFFFFFFF 408copy_slot_masked $0 = Mask($1) 409label label 0x00000001 410load_condition_mask CondMask = $12 411swizzle_4 $0..3 = ($0..3).xxxx 412copy_4_uniforms $4..7 = colorRed 413copy_4_uniforms $8..11 = colorGreen 414mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 415load_src src.rgba = $0..3 416