1106 instructions 2 3[immutable slots] 4i0 = 0x3F800000 (1.0) 5i1 = 0x41200000 (10.0) 6i2 = 0x42C80000 (100.0) 7i3 = 0x40000000 (2.0) 8i4 = 0x41A00000 (20.0) 9i5 = 0x43480000 (200.0) 10i6 = 0x40400000 (3.0) 11i7 = 0x41F00000 (30.0) 12i8 = 0x43960000 (300.0) 13i9 = 0x40800000 (4.0) 14i10 = 0x42200000 (40.0) 15i11 = 0x43C80000 (400.0) 16i12 = 0x40A00000 (5.0) 17i13 = 0x42480000 (50.0) 18i14 = 0x43FA0000 (500.0) 19i15 = 0x40C00000 (6.0) 20i16 = 0x42700000 (60.0) 21i17 = 0x44160000 (600.0) 22i18 = 0x40E00000 (7.0) 23i19 = 0x428C0000 (70.0) 24i20 = 0x442F0000 (700.0) 25i21 = 0x41000000 (8.0) 26i22 = 0x42A00000 (80.0) 27i23 = 0x44480000 (800.0) 28i24 = 0x41100000 (9.0) 29i25 = 0x42B40000 (90.0) 30i26 = 0x44610000 (900.0) 31 32store_src_rg coords = src.rg 33init_lane_masks CondMask = LoopMask = RetMask = true 34splat_4_constants data.valueAtRoot, data.outer[0].inner[0].values = 0 35splat_4_constants data.outer[0].inner[1].values, data.outer[0].inner[2].values(0) = 0 36splat_4_constants data.outer[0].inner[2].values(1..2), data.outer[1].inner[0].values(0..1) = 0 37splat_4_constants data.outer[1].inner[0].values(2), data.outer[1].inner[1].values = 0 38splat_4_constants data.outer[1].inner[2].values, data.outer[2].inner[0].values(0) = 0 39splat_4_constants data.outer[2].inner[0].values(1..2), data.outer[2].inner[1].values(0..1) = 0 40splat_4_constants data.outer[2].inner[1].values(2), data.outer[2].inner[2].values = 0 41copy_constant data.valueAtRoot = 0x000004D2 (1.729202e-42) 42splat_4_constants values, i = 0 43label label 0x00000001 44copy_constant j = 0 45label label 0x00000003 46copy_3_slots_unmasked $0..2 = values 47copy_3_immutables_unmasked $3..5 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)] 48add_3_floats $0..2 += $3..5 49copy_3_slots_unmasked values = $0..2 50copy_constant k = 0 51label label 0x00000005 52copy_slot_unmasked $12 = i 53mul_imm_int $12 *= 0x00000009 54copy_slot_unmasked $13 = j 55mul_imm_int $13 *= 0x00000003 56copy_slot_unmasked $14 = $12 57add_int $13 += $14 58copy_slot_unmasked $15 = k 59copy_slot_unmasked $16 = $13 60add_int $15 += $16 61copy_slot_unmasked $17 = k 62copy_from_indirect_unmasked $0 = Indirect(values(0) + $17) 63copy_to_indirect_masked Indirect(data.outer[0].inner[0].values(0) + $15) = Mask($0) 64add_imm_int k += 0x00000001 65copy_slot_unmasked $0 = k 66cmplt_imm_int $0 = lessThan($0, 0x00000003) 67stack_rewind 68branch_if_no_active_lanes_eq branch -17 (label 5 at #20) if no lanes of $0 == 0 69label label 0x00000004 70add_imm_int j += 0x00000001 71copy_slot_unmasked $0 = j 72cmplt_imm_int $0 = lessThan($0, 0x00000003) 73stack_rewind 74branch_if_no_active_lanes_eq branch -29 (label 3 at #14) if no lanes of $0 == 0 75label label 0x00000002 76add_imm_int i += 0x00000001 77copy_slot_unmasked $0 = i 78cmplt_imm_int $0 = lessThan($0, 0x00000003) 79stack_rewind 80branch_if_no_active_lanes_eq branch -37 (label 1 at #12) if no lanes of $0 == 0 81label label 0 82copy_slot_unmasked $0 = data.valueAtRoot 83cmpeq_imm_int $0 = equal($0, 0x000004D2) 84copy_3_slots_unmasked $1..3 = data.outer[0].inner[0].values 85copy_3_immutables_unmasked $4..6 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)] 86cmpeq_3_floats $1..3 = equal($1..3, $4..6) 87bitwise_and_int $2 &= $3 88bitwise_and_int $1 &= $2 89bitwise_and_int $0 &= $1 90copy_3_slots_unmasked $1..3 = data.outer[0].inner[1].values 91copy_3_immutables_unmasked $4..6 = i3..5 [0x40000000 (2.0), 0x41A00000 (20.0), 0x43480000 (200.0)] 92cmpeq_3_floats $1..3 = equal($1..3, $4..6) 93bitwise_and_int $2 &= $3 94bitwise_and_int $1 &= $2 95bitwise_and_int $0 &= $1 96copy_3_slots_unmasked $1..3 = data.outer[0].inner[2].values 97copy_3_immutables_unmasked $4..6 = i6..8 [0x40400000 (3.0), 0x41F00000 (30.0), 0x43960000 (300.0)] 98cmpeq_3_floats $1..3 = equal($1..3, $4..6) 99bitwise_and_int $2 &= $3 100bitwise_and_int $1 &= $2 101bitwise_and_int $0 &= $1 102copy_3_slots_unmasked $1..3 = data.outer[1].inner[0].values 103copy_3_immutables_unmasked $4..6 = i9..11 [0x40800000 (4.0), 0x42200000 (40.0), 0x43C80000 (400.0)] 104cmpeq_3_floats $1..3 = equal($1..3, $4..6) 105bitwise_and_int $2 &= $3 106bitwise_and_int $1 &= $2 107bitwise_and_int $0 &= $1 108copy_3_slots_unmasked $1..3 = data.outer[1].inner[1].values 109copy_3_immutables_unmasked $4..6 = i12..14 [0x40A00000 (5.0), 0x42480000 (50.0), 0x43FA0000 (500.0)] 110cmpeq_3_floats $1..3 = equal($1..3, $4..6) 111bitwise_and_int $2 &= $3 112bitwise_and_int $1 &= $2 113bitwise_and_int $0 &= $1 114copy_3_slots_unmasked $1..3 = data.outer[1].inner[2].values 115copy_3_immutables_unmasked $4..6 = i15..17 [0x40C00000 (6.0), 0x42700000 (60.0), 0x44160000 (600.0)] 116cmpeq_3_floats $1..3 = equal($1..3, $4..6) 117bitwise_and_int $2 &= $3 118bitwise_and_int $1 &= $2 119bitwise_and_int $0 &= $1 120copy_3_slots_unmasked $1..3 = data.outer[2].inner[0].values 121copy_3_immutables_unmasked $4..6 = i18..20 [0x40E00000 (7.0), 0x428C0000 (70.0), 0x442F0000 (700.0)] 122cmpeq_3_floats $1..3 = equal($1..3, $4..6) 123bitwise_and_int $2 &= $3 124bitwise_and_int $1 &= $2 125bitwise_and_int $0 &= $1 126copy_3_slots_unmasked $1..3 = data.outer[2].inner[1].values 127copy_3_immutables_unmasked $4..6 = i21..23 [0x41000000 (8.0), 0x42A00000 (80.0), 0x44480000 (800.0)] 128cmpeq_3_floats $1..3 = equal($1..3, $4..6) 129bitwise_and_int $2 &= $3 130bitwise_and_int $1 &= $2 131bitwise_and_int $0 &= $1 132copy_3_slots_unmasked $1..3 = data.outer[2].inner[2].values 133copy_3_immutables_unmasked $4..6 = i24..26 [0x41100000 (9.0), 0x42B40000 (90.0), 0x44610000 (900.0)] 134cmpeq_3_floats $1..3 = equal($1..3, $4..6) 135bitwise_and_int $2 &= $3 136bitwise_and_int $1 &= $2 137bitwise_and_int $0 &= $1 138copy_slot_unmasked ok = $0 139swizzle_4 $0..3 = ($0..3).xxxx 140copy_4_uniforms $4..7 = colorRed 141copy_4_uniforms $8..11 = colorGreen 142mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 143load_src src.rgba = $0..3 144