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