blob: e34e224acf0174c4cffaf7e7a88130b46e4e2168 [file] [log] [blame]
1. store_src_rg coords = src.rg
2. init_lane_masks CondMask = LoopMask = RetMask = true
3. zero_4_slots_unmasked data.outer[0].inner[0].values, data.outer[0].inner[1].values(0) = 0
4. zero_4_slots_unmasked data.outer[0].inner[1].values(1..2), data.outer[0].inner[2].values(0..1) = 0
5. zero_4_slots_unmasked data.outer[0].inner[2].values(2), data.outer[1].inner[0].values = 0
6. zero_4_slots_unmasked data.outer[1].inner[1].values, data.outer[1].inner[2].values(0) = 0
7. zero_4_slots_unmasked data.outer[1].inner[2].values(1..2), data.outer[2].inner[0].values(0..1) = 0
8. zero_4_slots_unmasked data.outer[2].inner[0].values(2), data.outer[2].inner[1].values = 0
9. zero_3_slots_unmasked data.outer[2].inner[2].values = 0
10. copy_constant $0 = 0x3F800000 (1.0)
11. copy_constant $1 = 0x41200000 (10.0)
12. copy_constant $2 = 0x42C80000 (100.0)
13. copy_3_slots_masked data.outer[0].inner[0].values = Mask($0..2)
14. copy_constant $0 = 0x40000000 (2.0)
15. copy_constant $1 = 0x41A00000 (20.0)
16. copy_constant $2 = 0x43480000 (200.0)
17. copy_3_slots_masked data.outer[0].inner[1].values = Mask($0..2)
18. copy_constant $0 = 0x40400000 (3.0)
19. copy_constant $1 = 0x41F00000 (30.0)
20. copy_constant $2 = 0x43960000 (300.0)
21. copy_3_slots_masked data.outer[0].inner[2].values = Mask($0..2)
22. copy_constant $0 = 0x40800000 (4.0)
23. copy_constant $1 = 0x42200000 (40.0)
24. copy_constant $2 = 0x43C80000 (400.0)
25. copy_3_slots_masked data.outer[1].inner[0].values = Mask($0..2)
26. copy_constant $0 = 0x40A00000 (5.0)
27. copy_constant $1 = 0x42480000 (50.0)
28. copy_constant $2 = 0x43FA0000 (500.0)
29. copy_3_slots_masked data.outer[1].inner[1].values = Mask($0..2)
30. copy_constant $0 = 0x40C00000 (6.0)
31. copy_constant $1 = 0x42700000 (60.0)
32. copy_constant $2 = 0x44160000 (600.0)
33. copy_3_slots_masked data.outer[1].inner[2].values = Mask($0..2)
34. copy_constant $0 = 0x40E00000 (7.0)
35. copy_constant $1 = 0x428C0000 (70.0)
36. copy_constant $2 = 0x442F0000 (700.0)
37. copy_3_slots_masked data.outer[2].inner[0].values = Mask($0..2)
38. copy_constant $0 = 0x41000000 (8.0)
39. copy_constant $1 = 0x42A00000 (80.0)
40. copy_constant $2 = 0x44480000 (800.0)
41. copy_3_slots_masked data.outer[2].inner[1].values = Mask($0..2)
42. copy_constant $0 = 0x41100000 (9.0)
43. copy_constant $1 = 0x42B40000 (90.0)
44. copy_constant $2 = 0x44610000 (900.0)
45. copy_3_slots_masked data.outer[2].inner[2].values = Mask($0..2)
46. zero_4_slots_unmasked expected, i = 0
47. store_loop_mask $0 = LoopMask
48. jump jump +86 (label 1 at #134)
49. label label 0x00000002
50. zero_slot_unmasked j = 0
51. store_loop_mask $1 = LoopMask
52. jump jump +69 (label 4 at #121)
53. label label 0x00000005
54. copy_3_slots_unmasked $2..4 = expected
55. copy_constant $5 = 0x3F800000 (1.0)
56. copy_constant $6 = 0x41200000 (10.0)
57. copy_constant $7 = 0x42C80000 (100.0)
58. add_3_floats $2..4 += $5..7
59. copy_3_slots_masked expected = Mask($2..4)
60. store_condition_mask $2 = CondMask
61. copy_slot_unmasked $13 = i
62. copy_constant $14 = 0x00000009 (1.261169e-44)
63. mul_int $13 *= $14
64. copy_slot_unmasked $11 = j
65. copy_constant $12 = 0x00000003 (4.203895e-45)
66. mul_int $11 *= $12
67. copy_slot_unmasked $12 = $13
68. add_int $11 += $12
69. copy_from_indirect_unmasked $3..5 = Indirect(data.outer[0].inner[0].values + $11)
70. copy_3_slots_unmasked $6..8 = expected
71. cmpne_3_floats $3..5 = notEqual($3..5, $6..8)
72. bitwise_or_int $4 |= $5
73. bitwise_or_int $3 |= $4
74. merge_condition_mask CondMask = $2 & $3
75. copy_4_constants $4..7 = colorRed
76. copy_4_slots_masked [main].result = Mask($4..7)
77. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
78. load_condition_mask CondMask = $2
79. zero_slot_unmasked k = 0
80. store_loop_mask $2 = LoopMask
81. jump jump +27 (label 7 at #108)
82. label label 0x00000008
83. store_condition_mask $3 = CondMask
84. copy_slot_unmasked $13 = i
85. copy_constant $14 = 0x00000009 (1.261169e-44)
86. mul_int $13 *= $14
87. copy_slot_unmasked $11 = j
88. copy_constant $12 = 0x00000003 (4.203895e-45)
89. mul_int $11 *= $12
90. copy_slot_unmasked $12 = $13
91. add_int $11 += $12
92. copy_slot_unmasked $9 = k
93. copy_slot_unmasked $10 = $11
94. add_int $9 += $10
95. copy_from_indirect_unmasked $4 = Indirect(data.outer[0].inner[0].values(0) + $9)
96. copy_slot_unmasked $13 = k
97. copy_from_indirect_unmasked $5 = Indirect(expected(0) + $13)
98. cmpne_float $4 = notEqual($4, $5)
99. merge_condition_mask CondMask = $3 & $4
100. copy_4_constants $5..8 = colorRed
101. copy_4_slots_masked [main].result = Mask($5..8)
102. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
103. load_condition_mask CondMask = $3
104. copy_slot_unmasked $3 = k
105. copy_constant $4 = 0x00000001 (1.401298e-45)
106. add_int $3 += $4
107. copy_slot_masked k = Mask($3)
108. label label 0x00000007
109. copy_slot_unmasked $3 = k
110. copy_constant $4 = 0x00000003 (4.203895e-45)
111. cmplt_int $3 = lessThan($3, $4)
112. merge_loop_mask LoopMask &= $3
113. stack_rewind
114. branch_if_any_lanes_active branch_if_any_lanes_active -32 (label 8 at #82)
115. label label 0x00000006
116. load_loop_mask LoopMask = $2
117. copy_slot_unmasked $2 = j
118. copy_constant $3 = 0x00000001 (1.401298e-45)
119. add_int $2 += $3
120. copy_slot_masked j = Mask($2)
121. label label 0x00000004
122. copy_slot_unmasked $2 = j
123. copy_constant $3 = 0x00000003 (4.203895e-45)
124. cmplt_int $2 = lessThan($2, $3)
125. merge_loop_mask LoopMask &= $2
126. stack_rewind
127. branch_if_any_lanes_active branch_if_any_lanes_active -74 (label 5 at #53)
128. label label 0x00000003
129. load_loop_mask LoopMask = $1
130. copy_slot_unmasked $1 = i
131. copy_constant $2 = 0x00000001 (1.401298e-45)
132. add_int $1 += $2
133. copy_slot_masked i = Mask($1)
134. label label 0x00000001
135. copy_slot_unmasked $1 = i
136. copy_constant $2 = 0x00000003 (4.203895e-45)
137. cmplt_int $1 = lessThan($1, $2)
138. merge_loop_mask LoopMask &= $1
139. stack_rewind
140. branch_if_any_lanes_active branch_if_any_lanes_active -91 (label 2 at #49)
141. label label 0x00000000
142. load_loop_mask LoopMask = $0
143. copy_4_constants $0..3 = colorGreen
144. copy_4_slots_masked [main].result = Mask($0..3)
145. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
146. load_src src.rgba = [main].result