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