1 1. store_src_rg coords = src.rg 2 2. init_lane_masks CondMask = LoopMask = RetMask = true 3 3. copy_constant _0_ok = 0xFFFFFFFF 4 4. copy_slot_unmasked $0 = _0_ok 5 5. zero_slot_unmasked $1 = 0 6 6. copy_constant $2 = unknownInput 7 7. shuffle $1..9 = ($1..9)[1 0 0 0 1 0 0 0 1] 8 8. zero_slot_unmasked $10 = 0 9 9. copy_constant $11 = 0x3F800000 (1.0) 10 10. swizzle_4 $10..13 = ($10..13).yxxy 11 11. zero_slot_unmasked $14 = 0 12 12. copy_constant $15 = 0x3F800000 (1.0) 13 13. shuffle $12..18 = ($12..18)[2 0 1 2 2 2 3] 14 14. cmpeq_n_floats $1..9 = equal($1..9, $10..18) 15 15. bitwise_and_4_ints $2..5 &= $6..9 16 16. bitwise_and_2_ints $2..3 &= $4..5 17 17. bitwise_and_int $2 &= $3 18 18. bitwise_and_int $1 &= $2 19 19. bitwise_and_int $0 &= $1 20 20. copy_slot_unmasked _0_ok = $0 21 21. copy_constant $1 = 0x41100000 (9.0) 22 22. zero_3_slots_unmasked $2..4 = 0 23 23. copy_constant $5 = 0x41100000 (9.0) 24 24. zero_3_slots_unmasked $6..8 = 0 25 25. copy_constant $9 = unknownInput 26 26. zero_slot_unmasked $10 = 0 27 27. copy_constant $11 = 0x41100000 (9.0) 28 28. swizzle_4 $10..13 = ($10..13).yxxy 29 29. zero_slot_unmasked $14 = 0 30 30. copy_constant $15 = 0x3F800000 (1.0) 31 31. shuffle $12..18 = ($12..18)[2 0 1 2 2 2 3] 32 32. cmpeq_n_floats $1..9 = equal($1..9, $10..18) 33 33. bitwise_and_4_ints $2..5 &= $6..9 34 34. bitwise_and_2_ints $2..3 &= $4..5 35 35. bitwise_and_int $2 &= $3 36 36. bitwise_and_int $1 &= $2 37 37. bitwise_and_int $0 &= $1 38 38. copy_slot_unmasked _0_ok = $0 39 39. copy_4_constants $1..4 = testMatrix2x2 40 40. copy_constant $5 = 0x3F800000 (1.0) 41 41. copy_constant $6 = 0x40000000 (2.0) 42 42. copy_constant $7 = 0x40400000 (3.0) 43 43. copy_constant $8 = 0x40800000 (4.0) 44 44. cmpeq_4_floats $1..4 = equal($1..4, $5..8) 45 45. bitwise_and_2_ints $1..2 &= $3..4 46 46. bitwise_and_int $1 &= $2 47 47. bitwise_and_int $0 &= $1 48 48. copy_slot_unmasked _0_ok = $0 49 49. copy_4_constants $22..25 = testMatrix2x2 50 50. zero_slot_unmasked $26 = 0 51 51. copy_constant $27 = 0x3F800000 (1.0) 52 52. shuffle $24..30 = ($24..30)[2 0 1 2 2 2 3] 53 53. zero_slot_unmasked $31 = 0 54 54. copy_constant $32 = 0x3F800000 (1.0) 55 55. shuffle $25..37 = ($25..37)[6 0 1 2 6 3 4 5 6 6 6 6 7] 56 56. copy_4_slots_unmasked $1..4 = $22..25 57 57. copy_constant $5 = 0x3F800000 (1.0) 58 58. copy_constant $6 = 0x40000000 (2.0) 59 59. zero_2_slots_unmasked $7..8 = 0 60 60. cmpeq_4_floats $1..4 = equal($1..4, $5..8) 61 61. bitwise_and_2_ints $1..2 &= $3..4 62 62. bitwise_and_int $1 &= $2 63 63. bitwise_and_int $0 &= $1 64 64. copy_slot_unmasked _0_ok = $0 65 65. copy_4_constants $22..25 = testMatrix2x2 66 66. zero_slot_unmasked $26 = 0 67 67. copy_constant $27 = 0x3F800000 (1.0) 68 68. shuffle $24..30 = ($24..30)[2 0 1 2 2 2 3] 69 69. zero_slot_unmasked $31 = 0 70 70. copy_constant $32 = 0x3F800000 (1.0) 71 71. shuffle $25..37 = ($25..37)[6 0 1 2 6 3 4 5 6 6 6 6 7] 72 72. copy_4_slots_unmasked $1..4 = $26..29 73 73. copy_constant $5 = 0x40400000 (3.0) 74 74. copy_constant $6 = 0x40800000 (4.0) 75 75. zero_2_slots_unmasked $7..8 = 0 76 76. cmpeq_4_floats $1..4 = equal($1..4, $5..8) 77 77. bitwise_and_2_ints $1..2 &= $3..4 78 78. bitwise_and_int $1 &= $2 79 79. bitwise_and_int $0 &= $1 80 80. copy_slot_unmasked _0_ok = $0 81 81. store_condition_mask $22 = CondMask 82 82. store_condition_mask $41 = CondMask 83 83. store_condition_mask $44 = CondMask 84 84. store_condition_mask $38 = CondMask 85 85. store_condition_mask $52 = CondMask 86 86. store_condition_mask $47 = CondMask 87 87. store_condition_mask $19 = CondMask 88 88. store_condition_mask $50 = CondMask 89 89. copy_slot_unmasked $51 = _0_ok 90 90. zero_slot_unmasked $20 = 0 91 91. merge_condition_mask CondMask = $50 & $51 92 92. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 8 at #98) 93 93. copy_constant ok = 0xFFFFFFFF 94 94. copy_slot_unmasked $21 = ok 95 95. copy_slot_masked [test_matrix_op_scalar_float].result = Mask($21) 96 96. label label 0x00000009 97 97. copy_slot_masked $20 = Mask($21) 98 98. label label 0x00000008 99 99. load_condition_mask CondMask = $50 100 100. zero_slot_unmasked $48 = 0 101 101. merge_condition_mask CondMask = $19 & $20 102 102. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 7 at #108) 103 103. copy_constant ok₁ = 0xFFFFFFFF 104 104. copy_slot_unmasked $49 = ok₁ 105 105. copy_slot_masked [test_matrix_op_scalar_half].result = Mask($49) 106 106. label label 0x0000000A 107 107. copy_slot_masked $48 = Mask($49) 108 108. label label 0x00000007 109 109. load_condition_mask CondMask = $19 110 110. zero_slot_unmasked $53 = 0 111 111. merge_condition_mask CondMask = $47 & $48 112 112. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 6 at #118) 113 113. copy_constant ok₂ = 0xFFFFFFFF 114 114. copy_slot_unmasked $54 = ok₂ 115 115. copy_slot_masked [test_matrix_op_matrix_float].result = Mask($54) 116 116. label label 0x0000000B 117 117. copy_slot_masked $53 = Mask($54) 118 118. label label 0x00000006 119 119. load_condition_mask CondMask = $47 120 120. zero_slot_unmasked $39 = 0 121 121. merge_condition_mask CondMask = $52 & $53 122 122. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 5 at #128) 123 123. copy_constant ok₃ = 0xFFFFFFFF 124 124. copy_slot_unmasked $40 = ok₃ 125 125. copy_slot_masked [test_matrix_op_matrix_half].result = Mask($40) 126 126. label label 0x0000000C 127 127. copy_slot_masked $39 = Mask($40) 128 128. label label 0x00000005 129 129. load_condition_mask CondMask = $52 130 130. zero_slot_unmasked $45 = 0 131 131. merge_condition_mask CondMask = $38 & $39 132 132. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 4 at #138) 133 133. copy_constant ok₄ = 0xFFFFFFFF 134 134. copy_slot_unmasked $46 = ok₄ 135 135. copy_slot_masked [test_vector_op_matrix_float].result = Mask($46) 136 136. label label 0x0000000D 137 137. copy_slot_masked $45 = Mask($46) 138 138. label label 0x00000004 139 139. load_condition_mask CondMask = $38 140 140. zero_slot_unmasked $42 = 0 141 141. merge_condition_mask CondMask = $44 & $45 142 142. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 3 at #148) 143 143. copy_constant ok₅ = 0xFFFFFFFF 144 144. copy_slot_unmasked $43 = ok₅ 145 145. copy_slot_masked [test_vector_op_matrix_half].result = Mask($43) 146 146. label label 0x0000000E 147 147. copy_slot_masked $42 = Mask($43) 148 148. label label 0x00000003 149 149. load_condition_mask CondMask = $44 150 150. zero_slot_unmasked $23 = 0 151 151. merge_condition_mask CondMask = $41 & $42 152 152. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 2 at #158) 153 153. copy_constant ok₆ = 0xFFFFFFFF 154 154. copy_slot_unmasked $24 = ok₆ 155 155. copy_slot_masked [test_matrix_op_vector_float].result = Mask($24) 156 156. label label 0x0000000F 157 157. copy_slot_masked $23 = Mask($24) 158 158. label label 0x00000002 159 159. load_condition_mask CondMask = $41 160 160. zero_slot_unmasked $0 = 0 161 161. merge_condition_mask CondMask = $22 & $23 162 162. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 1 at #168) 163 163. copy_constant ok₇ = 0xFFFFFFFF 164 164. copy_slot_unmasked $1 = ok₇ 165 165. copy_slot_masked [test_matrix_op_vector_half].result = Mask($1) 166 166. label label 0x00000010 167 167. copy_slot_masked $0 = Mask($1) 168 168. label label 0x00000001 169 169. load_condition_mask CondMask = $22 170 170. swizzle_4 $0..3 = ($0..3).xxxx 171 171. copy_4_constants $4..7 = colorRed 172 172. copy_4_constants $8..11 = colorGreen 173 173. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 174 174. copy_4_slots_unmasked [main].result = $0..3 175 175. load_src src.rgba = [main].result 176