1117 instructions 2 3[immutable slots] 4i0 = 0x40400000 (3.0) 5i1 = 0x40000000 (2.0) 6i2 = 0x3F800000 (1.0) 7i3 = 0x00000002 (2.802597e-45) 8i4 = 0x00000001 (1.401298e-45) 9i5 = 0 10i6 = 0x40800000 (4.0) 11i7 = 0x40400000 (3.0) 12i8 = 0x40000000 (2.0) 13i9 = 0x3F800000 (1.0) 14i10 = 0x00000003 (4.203895e-45) 15i11 = 0x00000002 (2.802597e-45) 16i12 = 0x00000001 (1.401298e-45) 17i13 = 0 18 19store_src_rg coords = src.rg 20init_lane_masks CondMask = LoopMask = RetMask = true 21store_condition_mask $12 = CondMask 22branch_if_no_lanes_active branch_if_no_lanes_active +57 (label 2 at #61) 23store_return_mask $13 = RetMask 24copy_3_immutables_unmasked expected = i0..2 [0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)] 25splat_4_constants vec, c = 0 26store_loop_mask $14 = LoopMask 27jump jump +40 (label 4 at #49) 28label label 0x00000005 29branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 6 at #30) 30copy_constant r = 0 31label label 0x00000007 32copy_slot_unmasked $23 = r 33copy_3_immutables_unmasked $27..29 = i3..5 [0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45), 0] 34copy_from_indirect_unmasked $22 = Indirect($27 + $23) 35copy_slot_unmasked $27 = c 36mul_imm_int $27 *= 0x00000003 37copy_slot_unmasked $23 = r 38copy_slot_unmasked $24 = $27 39add_int $23 += $24 40copy_from_indirect_uniform_unm $15 = Indirect(testMatrix3x3(0) + $23) 41copy_to_indirect_masked Indirect(vec(0) + $22) = Mask($15) 42copy_slot_unmasked $15 = r 43add_imm_int $15 += 0x00000001 44copy_slot_masked r = Mask($15) 45cmplt_imm_int $15 = lessThan($15, 0x00000003) 46stack_rewind 47branch_if_no_active_lanes_eq branch -16 (label 7 at #13) if no lanes of $15 == 0 48label label 0x00000006 49store_condition_mask $15 = CondMask 50copy_3_slots_unmasked $16..18 = vec 51copy_3_slots_unmasked $19..21 = expected 52cmpne_3_floats $16..18 = notEqual($16..18, $19..21) 53bitwise_or_int $17 |= $18 54bitwise_or_int $16 |= $17 55merge_condition_mask CondMask = $15 & $16 56copy_constant $17 = 0 57copy_slot_masked [test3x3].result = Mask($17) 58mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 59load_condition_mask CondMask = $15 60copy_3_slots_unmasked $15..17 = expected 61splat_3_constants $18..20 = 0x40400000 (3.0) 62add_3_floats $15..17 += $18..20 63copy_3_slots_masked expected = Mask($15..17) 64copy_slot_unmasked $15 = c 65add_imm_int $15 += 0x00000001 66copy_slot_masked c = Mask($15) 67label label 0x00000004 68copy_slot_unmasked $15 = c 69cmplt_imm_int $15 = lessThan($15, 0x00000003) 70merge_loop_mask LoopMask &= $15 71stack_rewind 72branch_if_any_lanes_active branch_if_any_lanes_active -44 (label 5 at #10) 73label label 0x00000003 74load_loop_mask LoopMask = $14 75copy_constant $14 = 0xFFFFFFFF 76copy_slot_masked [test3x3].result = Mask($14) 77load_return_mask RetMask = $13 78copy_slot_unmasked $13 = [test3x3].result 79label label 0x00000002 80copy_constant $0 = 0 81merge_condition_mask CondMask = $12 & $13 82branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 1 at #124) 83store_return_mask $1 = RetMask 84copy_4_immutables_unmasked expected₁ = i6..9 [0x40800000 (4.0), 0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)] 85splat_4_constants vec₁ = 0 86copy_constant c₁ = 0 87store_loop_mask $2 = LoopMask 88jump jump +40 (label 10 at #110) 89label label 0x0000000B 90branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 12 at #91) 91copy_constant r₁ = 0 92label label 0x0000000D 93copy_slot_unmasked $27 = r₁ 94copy_4_immutables_unmasked $23..26 = i10..13 [0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45), 0] 95copy_from_indirect_unmasked $22 = Indirect($23 + $27) 96copy_slot_unmasked $23 = c₁ 97mul_imm_int $23 *= 0x00000004 98copy_slot_unmasked $27 = r₁ 99copy_slot_unmasked $28 = $23 100add_int $27 += $28 101copy_from_indirect_uniform_unm $3 = Indirect(testMatrix4x4(0) + $27) 102copy_to_indirect_masked Indirect(vec₁(0) + $22) = Mask($3) 103copy_slot_unmasked $3 = r₁ 104add_imm_int $3 += 0x00000001 105copy_slot_masked r₁ = Mask($3) 106cmplt_imm_int $3 = lessThan($3, 0x00000004) 107stack_rewind 108branch_if_no_active_lanes_eq branch -16 (label 13 at #74) if no lanes of $3 == 0 109label label 0x0000000C 110store_condition_mask $3 = CondMask 111copy_4_slots_unmasked $4..7 = vec₁ 112copy_4_slots_unmasked $8..11 = expected₁ 113cmpne_4_floats $4..7 = notEqual($4..7, $8..11) 114bitwise_or_2_ints $4..5 |= $6..7 115bitwise_or_int $4 |= $5 116merge_condition_mask CondMask = $3 & $4 117copy_constant $5 = 0 118copy_slot_masked [test4x4].result = Mask($5) 119mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 120load_condition_mask CondMask = $3 121copy_4_slots_unmasked $3..6 = expected₁ 122splat_4_constants $7..10 = 0x40800000 (4.0) 123add_4_floats $3..6 += $7..10 124copy_4_slots_masked expected₁ = Mask($3..6) 125copy_slot_unmasked $3 = c₁ 126add_imm_int $3 += 0x00000001 127copy_slot_masked c₁ = Mask($3) 128label label 0x0000000A 129copy_slot_unmasked $3 = c₁ 130cmplt_imm_int $3 = lessThan($3, 0x00000004) 131merge_loop_mask LoopMask &= $3 132stack_rewind 133branch_if_any_lanes_active branch_if_any_lanes_active -44 (label 11 at #71) 134label label 0x00000009 135load_loop_mask LoopMask = $2 136copy_constant $2 = 0xFFFFFFFF 137copy_slot_masked [test4x4].result = Mask($2) 138load_return_mask RetMask = $1 139copy_slot_unmasked $1 = [test4x4].result 140label label 0x00000008 141copy_slot_masked $0 = Mask($1) 142label label 0x00000001 143load_condition_mask CondMask = $12 144swizzle_4 $0..3 = ($0..3).xxxx 145copy_4_uniforms $4..7 = colorRed 146copy_4_uniforms $8..11 = colorGreen 147mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 148load_src src.rgba = $0..3 149