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