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 +51 (label 2 at #55) | |
5. store_return_mask $21 = RetMask | |
6. copy_4_constants $22..25 = testMatrix3x3(0..3) | |
7. copy_4_constants $26..29 = testMatrix3x3(4..7) | |
8. copy_constant $30 = testMatrix3x3(8) | |
9. copy_4_slots_unmasked matrix(0..3) = $22..25 | |
10. copy_4_slots_unmasked matrix(4..7) = $26..29 | |
11. copy_slot_unmasked matrix(8) = $30 | |
12. copy_constant expected(0) = 0x3F800000 (1.0) | |
13. copy_constant expected(1) = 0x40000000 (2.0) | |
14. copy_constant expected(2) = 0x40400000 (3.0) | |
15. zero_slot_unmasked index = 0 | |
16. store_loop_mask $22 = LoopMask | |
17. jump jump +25 (label 4 at #42) | |
18. label label 0x00000005 | |
19. store_condition_mask $23 = CondMask | |
20. copy_slot_unmasked $18 = index | |
21. copy_constant $19 = 0x00000003 (4.203895e-45) | |
22. mul_int $18 *= $19 | |
23. copy_from_indirect_unmasked $24..26 = Indirect(matrix(0..2) + $18) | |
24. copy_3_slots_unmasked $27..29 = expected | |
25. cmpne_3_floats $24..26 = notEqual($24..26, $27..29) | |
26. bitwise_or_int $25 |= $26 | |
27. bitwise_or_int $24 |= $25 | |
28. merge_condition_mask CondMask = $23 & $24 | |
29. zero_slot_unmasked $25 = 0 | |
30. copy_slot_masked [test3x3].result = Mask($25) | |
31. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
32. load_condition_mask CondMask = $23 | |
33. copy_3_slots_unmasked $23..25 = expected | |
34. copy_constant $26 = 0x40400000 (3.0) | |
35. swizzle_3 $26..28 = ($26..28).xxx | |
36. add_3_floats $23..25 += $26..28 | |
37. copy_3_slots_masked expected = Mask($23..25) | |
38. copy_slot_unmasked $23 = index | |
39. copy_constant $24 = 0x00000001 (1.401298e-45) | |
40. add_int $23 += $24 | |
41. copy_slot_masked index = Mask($23) | |
42. label label 0x00000004 | |
43. copy_slot_unmasked $23 = index | |
44. copy_constant $24 = 0x00000003 (4.203895e-45) | |
45. cmplt_int $23 = lessThan($23, $24) | |
46. merge_loop_mask LoopMask &= $23 | |
47. stack_rewind | |
48. branch_if_any_lanes_active branch_if_any_lanes_active -30 (label 5 at #18) | |
49. label label 0x00000003 | |
50. load_loop_mask LoopMask = $22 | |
51. copy_constant $22 = 0xFFFFFFFF | |
52. copy_slot_masked [test3x3].result = Mask($22) | |
53. load_return_mask RetMask = $21 | |
54. copy_slot_unmasked $21 = [test3x3].result | |
55. label label 0x00000002 | |
56. zero_slot_unmasked $0 = 0 | |
57. merge_condition_mask CondMask = $20 & $21 | |
58. branch_if_no_lanes_active branch_if_no_lanes_active +56 (label 1 at #114) | |
59. store_return_mask $1 = RetMask | |
60. copy_4_constants $2..5 = testMatrix4x4(0..3) | |
61. copy_4_constants $6..9 = testMatrix4x4(4..7) | |
62. copy_4_constants $10..13 = testMatrix4x4(8..11) | |
63. copy_4_constants $14..17 = testMatrix4x4(12..15) | |
64. copy_4_slots_unmasked matrix₁(0..3) = $2..5 | |
65. copy_4_slots_unmasked matrix₁(4..7) = $6..9 | |
66. copy_4_slots_unmasked matrix₁(8..11) = $10..13 | |
67. copy_4_slots_unmasked matrix₁(12..15) = $14..17 | |
68. copy_constant expected₁(0) = 0x3F800000 (1.0) | |
69. copy_constant expected₁(1) = 0x40000000 (2.0) | |
70. copy_constant expected₁(2) = 0x40400000 (3.0) | |
71. copy_constant expected₁(3) = 0x40800000 (4.0) | |
72. zero_slot_unmasked index₁ = 0 | |
73. store_loop_mask $2 = LoopMask | |
74. jump jump +25 (label 8 at #99) | |
75. label label 0x00000009 | |
76. store_condition_mask $3 = CondMask | |
77. copy_slot_unmasked $18 = index₁ | |
78. copy_constant $19 = 0x00000004 (5.605194e-45) | |
79. mul_int $18 *= $19 | |
80. copy_from_indirect_unmasked $4..7 = Indirect(matrix₁(0..3) + $18) | |
81. copy_4_slots_unmasked $8..11 = expected₁ | |
82. cmpne_4_floats $4..7 = notEqual($4..7, $8..11) | |
83. bitwise_or_2_ints $4..5 |= $6..7 | |
84. bitwise_or_int $4 |= $5 | |
85. merge_condition_mask CondMask = $3 & $4 | |
86. zero_slot_unmasked $5 = 0 | |
87. copy_slot_masked [test4x4].result = Mask($5) | |
88. mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) | |
89. load_condition_mask CondMask = $3 | |
90. copy_4_slots_unmasked $3..6 = expected₁ | |
91. copy_constant $7 = 0x40800000 (4.0) | |
92. swizzle_4 $7..10 = ($7..10).xxxx | |
93. add_4_floats $3..6 += $7..10 | |
94. copy_4_slots_masked expected₁ = Mask($3..6) | |
95. copy_slot_unmasked $3 = index₁ | |
96. copy_constant $4 = 0x00000001 (1.401298e-45) | |
97. add_int $3 += $4 | |
98. copy_slot_masked index₁ = Mask($3) | |
99. label label 0x00000008 | |
100. copy_slot_unmasked $3 = index₁ | |
101. copy_constant $4 = 0x00000004 (5.605194e-45) | |
102. cmplt_int $3 = lessThan($3, $4) | |
103. merge_loop_mask LoopMask &= $3 | |
104. stack_rewind | |
105. branch_if_any_lanes_active branch_if_any_lanes_active -30 (label 9 at #75) | |
106. label label 0x00000007 | |
107. load_loop_mask LoopMask = $2 | |
108. copy_constant $2 = 0xFFFFFFFF | |
109. copy_slot_masked [test4x4].result = Mask($2) | |
110. load_return_mask RetMask = $1 | |
111. copy_slot_unmasked $1 = [test4x4].result | |
112. label label 0x00000006 | |
113. copy_slot_masked $0 = Mask($1) | |
114. label label 0x00000001 | |
115. load_condition_mask CondMask = $20 | |
116. swizzle_4 $0..3 = ($0..3).xxxx | |
117. copy_4_constants $4..7 = colorRed | |
118. copy_4_constants $8..11 = colorGreen | |
119. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) | |
120. load_src src.rgba = $0..3 |