1 1. store_src_rg xy = src.rg 2 2. init_lane_masks CondMask = LoopMask = RetMask = true 3 3. copy_constant ok = 0xFFFFFFFF 4 4. copy_constant $0 = testMatrix2x2(0) 5 5. cast_to_int_from_float $0 = FloatToInt($0) 6 6. copy_slot_unmasked a = $0 7 7. copy_2_constants $0..1 = testMatrix2x2(0..1) 8 8. swizzle_1 $0 = ($0..1).y 9 9. cast_to_int_from_float $0 = FloatToInt($0) 10 10. copy_slot_unmasked b = $0 11 11. copy_constant $0 = testMatrix2x2(2) 12 12. copy_slot_unmasked c = $0 13 13. copy_2_constants $0..1 = testMatrix2x2(2..3) 14 14. swizzle_1 $0 = ($0..1).y 15 15. copy_slot_unmasked d = $0 16 16. copy_2_slots_unmasked $0..1 = a, b 17 17. bitwise_and_int $0 &= $1 18 18. copy_slot_unmasked a_and_b = $0 19 19. copy_slot_unmasked $0 = b 20 20. copy_slot_unmasked $1 = a 21 21. bitwise_and_int $0 &= $1 22 22. copy_slot_unmasked b_and_a = $0 23 23. copy_slot_unmasked $0 = ok 24 24. copy_2_slots_unmasked $1..2 = a_and_b, b_and_a 25 25. cmpeq_int $1 = equal($1, $2) 26 26. bitwise_and_int $0 &= $1 27 27. copy_slot_unmasked ok = $0 28 28. copy_2_slots_unmasked $0..1 = a, b 29 29. bitwise_or_int $0 |= $1 30 30. copy_slot_unmasked a_or_b = $0 31 31. copy_slot_unmasked $0 = b 32 32. copy_slot_unmasked $1 = a 33 33. bitwise_or_int $0 |= $1 34 34. copy_slot_unmasked b_or_a = $0 35 35. copy_slot_unmasked $0 = ok 36 36. copy_2_slots_unmasked $1..2 = a_or_b, b_or_a 37 37. cmpeq_int $1 = equal($1, $2) 38 38. bitwise_and_int $0 &= $1 39 39. copy_slot_unmasked ok = $0 40 40. copy_2_slots_unmasked $0..1 = a, b 41 41. bitwise_xor_int $0 ^= $1 42 42. copy_slot_unmasked a_xor_b = $0 43 43. copy_slot_unmasked $0 = b 44 44. copy_slot_unmasked $1 = a 45 45. bitwise_xor_int $0 ^= $1 46 46. copy_slot_unmasked b_xor_a = $0 47 47. copy_slot_unmasked $0 = ok 48 48. copy_2_slots_unmasked $1..2 = a_xor_b, b_xor_a 49 49. cmpeq_int $1 = equal($1, $2) 50 50. bitwise_and_int $0 &= $1 51 51. copy_slot_unmasked ok = $0 52 52. copy_2_slots_unmasked $0..1 = a, b 53 53. cmpeq_int $0 = equal($0, $1) 54 54. copy_slot_unmasked a_eq_b = $0 55 55. copy_slot_unmasked $0 = b 56 56. copy_slot_unmasked $1 = a 57 57. cmpeq_int $0 = equal($0, $1) 58 58. copy_slot_unmasked b_eq_a = $0 59 59. copy_slot_unmasked $0 = ok 60 60. copy_2_slots_unmasked $1..2 = a_eq_b, b_eq_a 61 61. cmpeq_int $1 = equal($1, $2) 62 62. bitwise_and_int $0 &= $1 63 63. copy_slot_unmasked ok = $0 64 64. copy_2_slots_unmasked $0..1 = a, b 65 65. cmpne_int $0 = notEqual($0, $1) 66 66. copy_slot_unmasked a_neq_b = $0 67 67. copy_slot_unmasked $0 = b 68 68. copy_slot_unmasked $1 = a 69 69. cmpne_int $0 = notEqual($0, $1) 70 70. copy_slot_unmasked b_neq_a = $0 71 71. copy_slot_unmasked $0 = ok 72 72. copy_2_slots_unmasked $1..2 = a_neq_b, b_neq_a 73 73. cmpeq_int $1 = equal($1, $2) 74 74. bitwise_and_int $0 &= $1 75 75. copy_slot_unmasked ok = $0 76 76. copy_2_slots_unmasked $0..1 = a, b 77 77. add_int $0 += $1 78 78. copy_slot_unmasked a_add_b = $0 79 79. copy_slot_unmasked $0 = b 80 80. copy_slot_unmasked $1 = a 81 81. add_int $0 += $1 82 82. copy_slot_unmasked b_add_a = $0 83 83. copy_slot_unmasked $0 = ok 84 84. copy_2_slots_unmasked $1..2 = a_add_b, b_add_a 85 85. cmpeq_int $1 = equal($1, $2) 86 86. bitwise_and_int $0 &= $1 87 87. copy_slot_unmasked ok = $0 88 88. copy_2_slots_unmasked $0..1 = c, d 89 89. add_float $0 += $1 90 90. copy_slot_unmasked c_add_d = $0 91 91. copy_slot_unmasked $0 = d 92 92. copy_slot_unmasked $1 = c 93 93. add_float $0 += $1 94 94. copy_slot_unmasked d_add_c = $0 95 95. copy_slot_unmasked $0 = ok 96 96. copy_2_slots_unmasked $1..2 = c_add_d, d_add_c 97 97. cmpeq_float $1 = equal($1, $2) 98 98. bitwise_and_int $0 &= $1 99 99. copy_slot_unmasked ok = $0 100 100. copy_2_slots_unmasked $0..1 = a, b 101 101. mul_int $0 *= $1 102 102. copy_slot_unmasked a_mul_b = $0 103 103. copy_slot_unmasked $0 = b 104 104. copy_slot_unmasked $1 = a 105 105. mul_int $0 *= $1 106 106. copy_slot_unmasked b_mul_a = $0 107 107. copy_slot_unmasked $0 = ok 108 108. copy_2_slots_unmasked $1..2 = a_mul_b, b_mul_a 109 109. cmpeq_int $1 = equal($1, $2) 110 110. bitwise_and_int $0 &= $1 111 111. copy_slot_unmasked ok = $0 112 112. copy_2_slots_unmasked $0..1 = c, d 113 113. mul_float $0 *= $1 114 114. copy_slot_unmasked c_mul_d = $0 115 115. copy_slot_unmasked $0 = d 116 116. copy_slot_unmasked $1 = c 117 117. mul_float $0 *= $1 118 118. copy_slot_unmasked d_mul_c = $0 119 119. copy_slot_unmasked $0 = ok 120 120. copy_2_slots_unmasked $1..2 = c_mul_d, d_mul_c 121 121. cmpeq_float $1 = equal($1, $2) 122 122. bitwise_and_int $0 &= $1 123 123. copy_slot_unmasked ok = $0 124 124. swizzle_4 $0..3 = ($0..3).xxxx 125 125. copy_4_constants $4..7 = colorRed 126 126. copy_4_constants $8..11 = colorGreen 127 127. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 128 128. copy_4_slots_unmasked [main].result = $0..3 129 129. load_src src.rgba = [main].result 130