1. store_src_rg coords = src.rg 2. init_lane_masks CondMask = LoopMask = RetMask = true 3. zero_4_slots_unmasked _0_m = 0 4. zero_4_slots_unmasked _1_mm = 0 5. zero_2_slots_unmasked $0..1 = 0 6. swizzle_4 $0..3 = ($0..3).yxxy 7. copy_4_slots_unmasked _3_z = $0..3 8. copy_4_constants $0..3 = testMatrix2x2 9. copy_4_slots_unmasked _0_m = $0..3 10. copy_4_constants $0..3 = testMatrix2x2 11. copy_4_slots_unmasked _0_m = $0..3 12. zero_4_slots_unmasked $0..3 = 0 13. copy_4_slots_unmasked $4..7 = _0_m 14. sub_4_floats $0..3 -= $4..7 15. copy_4_slots_unmasked _0_m = $0..3 16. zero_2_slots_unmasked $0..1 = 0 17. swizzle_4 $0..3 = ($0..3).yxxy 18. copy_4_slots_unmasked _1_mm = $0..3 19. zero_2_slots_unmasked $0..1 = 0 20. swizzle_4 $0..3 = ($0..3).yxxy 21. copy_4_slots_unmasked _1_mm = $0..3 22. store_condition_mask $62 = CondMask 23. store_condition_mask $49 = CondMask 24. copy_4_slots_unmasked $50..53 = _0_m 25. zero_4_slots_unmasked $54..57 = 0 26. copy_4_constants $58..61 = testMatrix2x2 27. sub_4_floats $54..57 -= $58..61 28. cmpeq_4_floats $50..53 = equal($50..53, $54..57) 29. bitwise_and_2_ints $50..51 &= $52..53 30. bitwise_and_int $50 &= $51 31. copy_4_slots_unmasked $51..54 = _1_mm 32. copy_4_slots_unmasked $55..58 = _3_z 33. cmpeq_4_floats $51..54 = equal($51..54, $55..58) 34. bitwise_and_2_ints $51..52 &= $53..54 35. bitwise_and_int $51 &= $52 36. bitwise_and_int $50 &= $51 37. zero_slot_unmasked $63 = 0 38. merge_condition_mask CondMask = $49 & $50 39. branch_if_no_active_lanes branch_if_no_active_lanes +72 (label 2 at #111) 40. zero_4_slots_unmasked m(0..3) = 0 41. zero_4_slots_unmasked m(4..7) = 0 42. zero_4_slots_unmasked m(8), mm(0..2) = 0 43. zero_4_slots_unmasked mm(3..6) = 0 44. zero_2_slots_unmasked mm(7..8) = 0 45. zero_2_slots_unmasked $64..65 = 0 46. shuffle $64..72 = ($64..72)[1 0 0 0 1 0 0 0 1] 47. copy_4_slots_unmasked z(0..3) = $64..67 48. copy_4_slots_unmasked z(4..7) = $68..71 49. copy_slot_unmasked z(8) = $72 50. copy_4_constants $64..67 = testMatrix3x3(0..3) 51. copy_4_constants $68..71 = testMatrix3x3(4..7) 52. copy_constant $72 = testMatrix3x3(8) 53. copy_4_slots_masked m(0..3) = Mask($64..67) 54. copy_4_slots_masked m(4..7) = Mask($68..71) 55. copy_slot_masked m(8) = Mask($72) 56. copy_4_constants $64..67 = testMatrix3x3(0..3) 57. copy_4_constants $68..71 = testMatrix3x3(4..7) 58. copy_constant $72 = testMatrix3x3(8) 59. copy_4_slots_masked m(0..3) = Mask($64..67) 60. copy_4_slots_masked m(4..7) = Mask($68..71) 61. copy_slot_masked m(8) = Mask($72) 62. zero_4_slots_unmasked $64..67 = 0 63. zero_4_slots_unmasked $68..71 = 0 64. zero_slot_unmasked $72 = 0 65. copy_4_slots_unmasked $73..76 = m(0..3) 66. copy_4_slots_unmasked $77..80 = m(4..7) 67. copy_slot_unmasked $81 = m(8) 68. sub_n_floats $64..72 -= $73..81 69. copy_4_slots_masked m(0..3) = Mask($64..67) 70. copy_4_slots_masked m(4..7) = Mask($68..71) 71. copy_slot_masked m(8) = Mask($72) 72. zero_2_slots_unmasked $64..65 = 0 73. shuffle $64..72 = ($64..72)[1 0 0 0 1 0 0 0 1] 74. copy_4_slots_masked mm(0..3) = Mask($64..67) 75. copy_4_slots_masked mm(4..7) = Mask($68..71) 76. copy_slot_masked mm(8) = Mask($72) 77. zero_2_slots_unmasked $64..65 = 0 78. shuffle $64..72 = ($64..72)[1 0 0 0 1 0 0 0 1] 79. copy_4_slots_masked mm(0..3) = Mask($64..67) 80. copy_4_slots_masked mm(4..7) = Mask($68..71) 81. copy_slot_masked mm(8) = Mask($72) 82. copy_4_slots_unmasked $64..67 = m(0..3) 83. copy_4_slots_unmasked $68..71 = m(4..7) 84. copy_slot_unmasked $72 = m(8) 85. zero_4_slots_unmasked $73..76 = 0 86. zero_4_slots_unmasked $77..80 = 0 87. zero_slot_unmasked $81 = 0 88. copy_4_constants $82..85 = testMatrix3x3(0..3) 89. copy_4_constants $86..89 = testMatrix3x3(4..7) 90. copy_constant $90 = testMatrix3x3(8) 91. sub_n_floats $73..81 -= $82..90 92. cmpeq_n_floats $64..72 = equal($64..72, $73..81) 93. bitwise_and_4_ints $65..68 &= $69..72 94. bitwise_and_2_ints $65..66 &= $67..68 95. bitwise_and_int $65 &= $66 96. bitwise_and_int $64 &= $65 97. copy_4_slots_unmasked $65..68 = mm(0..3) 98. copy_4_slots_unmasked $69..72 = mm(4..7) 99. copy_4_slots_unmasked $73..76 = mm(8), z(0..2) 100. copy_4_slots_unmasked $77..80 = z(3..6) 101. copy_2_slots_unmasked $81..82 = z(7..8) 102. cmpeq_n_floats $65..73 = equal($65..73, $74..82) 103. bitwise_and_4_ints $66..69 &= $70..73 104. bitwise_and_2_ints $66..67 &= $68..69 105. bitwise_and_int $66 &= $67 106. bitwise_and_int $65 &= $66 107. bitwise_and_int $64 &= $65 108. copy_slot_masked [test_mat3_mat3].result = Mask($64) 109. label label 0x00000003 110. copy_slot_masked $63 = Mask($64) 111. label label 0x00000002 112. load_condition_mask CondMask = $49 113. zero_slot_unmasked $0 = 0 114. merge_condition_mask CondMask = $62 & $63 115. branch_if_no_active_lanes branch_if_no_active_lanes +101 (label 1 at #216) 116. copy_4_constants $1..4 = testInputs 117. copy_4_constants $5..8 = testInputs 118. copy_4_constants $9..12 = testInputs 119. copy_4_constants $13..16 = testInputs 120. copy_4_slots_unmasked testMatrix4x4(0..3) = $1..4 121. copy_4_slots_unmasked testMatrix4x4(4..7) = $5..8 122. copy_4_slots_unmasked testMatrix4x4(8..11) = $9..12 123. copy_4_slots_unmasked testMatrix4x4(12..15) = $13..16 124. zero_4_slots_unmasked m₁(0..3) = 0 125. zero_4_slots_unmasked m₁(4..7) = 0 126. zero_4_slots_unmasked m₁(8..11) = 0 127. zero_4_slots_unmasked m₁(12..15) = 0 128. zero_4_slots_unmasked mm₁(0..3) = 0 129. zero_4_slots_unmasked mm₁(4..7) = 0 130. zero_4_slots_unmasked mm₁(8..11) = 0 131. zero_4_slots_unmasked mm₁(12..15) = 0 132. zero_2_slots_unmasked $1..2 = 0 133. shuffle $1..16 = ($1..16)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] 134. copy_4_slots_unmasked z₁(0..3) = $1..4 135. copy_4_slots_unmasked z₁(4..7) = $5..8 136. copy_4_slots_unmasked z₁(8..11) = $9..12 137. copy_4_slots_unmasked z₁(12..15) = $13..16 138. copy_4_slots_unmasked $1..4 = testMatrix4x4(0..3) 139. copy_4_slots_unmasked $5..8 = testMatrix4x4(4..7) 140. copy_4_slots_unmasked $9..12 = testMatrix4x4(8..11) 141. copy_4_slots_unmasked $13..16 = testMatrix4x4(12..15) 142. copy_4_slots_masked m₁(0..3) = Mask($1..4) 143. copy_4_slots_masked m₁(4..7) = Mask($5..8) 144. copy_4_slots_masked m₁(8..11) = Mask($9..12) 145. copy_4_slots_masked m₁(12..15) = Mask($13..16) 146. copy_4_slots_unmasked $1..4 = testMatrix4x4(0..3) 147. copy_4_slots_unmasked $5..8 = testMatrix4x4(4..7) 148. copy_4_slots_unmasked $9..12 = testMatrix4x4(8..11) 149. copy_4_slots_unmasked $13..16 = testMatrix4x4(12..15) 150. copy_4_slots_masked m₁(0..3) = Mask($1..4) 151. copy_4_slots_masked m₁(4..7) = Mask($5..8) 152. copy_4_slots_masked m₁(8..11) = Mask($9..12) 153. copy_4_slots_masked m₁(12..15) = Mask($13..16) 154. zero_4_slots_unmasked $1..4 = 0 155. zero_4_slots_unmasked $5..8 = 0 156. zero_4_slots_unmasked $9..12 = 0 157. zero_4_slots_unmasked $13..16 = 0 158. copy_4_slots_unmasked $17..20 = m₁(0..3) 159. copy_4_slots_unmasked $21..24 = m₁(4..7) 160. copy_4_slots_unmasked $25..28 = m₁(8..11) 161. copy_4_slots_unmasked $29..32 = m₁(12..15) 162. sub_n_floats $1..16 -= $17..32 163. copy_4_slots_masked m₁(0..3) = Mask($1..4) 164. copy_4_slots_masked m₁(4..7) = Mask($5..8) 165. copy_4_slots_masked m₁(8..11) = Mask($9..12) 166. copy_4_slots_masked m₁(12..15) = Mask($13..16) 167. zero_2_slots_unmasked $1..2 = 0 168. shuffle $1..16 = ($1..16)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] 169. copy_4_slots_masked mm₁(0..3) = Mask($1..4) 170. copy_4_slots_masked mm₁(4..7) = Mask($5..8) 171. copy_4_slots_masked mm₁(8..11) = Mask($9..12) 172. copy_4_slots_masked mm₁(12..15) = Mask($13..16) 173. zero_2_slots_unmasked $1..2 = 0 174. shuffle $1..16 = ($1..16)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] 175. copy_4_slots_masked mm₁(0..3) = Mask($1..4) 176. copy_4_slots_masked mm₁(4..7) = Mask($5..8) 177. copy_4_slots_masked mm₁(8..11) = Mask($9..12) 178. copy_4_slots_masked mm₁(12..15) = Mask($13..16) 179. copy_4_slots_unmasked $1..4 = m₁(0..3) 180. copy_4_slots_unmasked $5..8 = m₁(4..7) 181. copy_4_slots_unmasked $9..12 = m₁(8..11) 182. copy_4_slots_unmasked $13..16 = m₁(12..15) 183. zero_4_slots_unmasked $17..20 = 0 184. zero_4_slots_unmasked $21..24 = 0 185. zero_4_slots_unmasked $25..28 = 0 186. zero_4_slots_unmasked $29..32 = 0 187. copy_4_slots_unmasked $33..36 = testMatrix4x4(0..3) 188. copy_4_slots_unmasked $37..40 = testMatrix4x4(4..7) 189. copy_4_slots_unmasked $41..44 = testMatrix4x4(8..11) 190. copy_4_slots_unmasked $45..48 = testMatrix4x4(12..15) 191. sub_n_floats $17..32 -= $33..48 192. cmpeq_n_floats $1..16 = equal($1..16, $17..32) 193. bitwise_and_4_ints $9..12 &= $13..16 194. bitwise_and_4_ints $5..8 &= $9..12 195. bitwise_and_4_ints $1..4 &= $5..8 196. bitwise_and_2_ints $1..2 &= $3..4 197. bitwise_and_int $1 &= $2 198. copy_4_slots_unmasked $2..5 = mm₁(0..3) 199. copy_4_slots_unmasked $6..9 = mm₁(4..7) 200. copy_4_slots_unmasked $10..13 = mm₁(8..11) 201. copy_4_slots_unmasked $14..17 = mm₁(12..15) 202. copy_4_slots_unmasked $18..21 = z₁(0..3) 203. copy_4_slots_unmasked $22..25 = z₁(4..7) 204. copy_4_slots_unmasked $26..29 = z₁(8..11) 205. copy_4_slots_unmasked $30..33 = z₁(12..15) 206. cmpeq_n_floats $2..17 = equal($2..17, $18..33) 207. bitwise_and_4_ints $10..13 &= $14..17 208. bitwise_and_4_ints $6..9 &= $10..13 209. bitwise_and_4_ints $2..5 &= $6..9 210. bitwise_and_2_ints $2..3 &= $4..5 211. bitwise_and_int $2 &= $3 212. bitwise_and_int $1 &= $2 213. copy_slot_masked [test_mat4_mat4].result = Mask($1) 214. label label 0x00000004 215. copy_slot_masked $0 = Mask($1) 216. label label 0x00000001 217. load_condition_mask CondMask = $62 218. swizzle_4 $0..3 = ($0..3).xxxx 219. copy_4_constants $4..7 = colorRed 220. copy_4_constants $8..11 = colorGreen 221. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 222. copy_4_slots_unmasked [main].result = $0..3 223. load_src src.rgba = [main].result