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. store_condition_mask $13 = CondMask 5 5. store_condition_mask $19 = CondMask 6 6. store_condition_mask $22 = CondMask 7 7. store_condition_mask $16 = CondMask 8 8. store_condition_mask $27 = CondMask 9 9. store_condition_mask $25 = CondMask 10 10. copy_slot_unmasked $12 = _0_ok 11 11. branch_if_no_active_lanes_eq branch +7 (label 7 at #18) if no lanes of $12 == 0xFFFFFFFF 12 12. branch_if_no_active_lanes branch_if_no_active_lanes +4 (label 9 at #16) 13 13. copy_constant ok = 0xFFFFFFFF 14 14. copy_slot_unmasked $26 = ok 15 15. copy_slot_masked [test_eq_half].result = Mask($26) 16 16. label label 0x00000009 17 17. jump jump +3 (label 8 at #20) 18 18. label label 0x00000007 19 19. zero_slot_unmasked $26 = 0 20 20. label label 0x00000008 21 21. zero_slot_unmasked $28 = 0 22 22. merge_condition_mask CondMask = $25 & $26 23 23. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 6 at #29) 24 24. copy_constant ok₁ = 0xFFFFFFFF 25 25. copy_slot_unmasked $29 = ok₁ 26 26. copy_slot_masked [test_matrix_op_matrix_float].result = Mask($29) 27 27. label label 0x0000000A 28 28. copy_slot_masked $28 = Mask($29) 29 29. label label 0x00000006 30 30. load_condition_mask CondMask = $25 31 31. zero_slot_unmasked $17 = 0 32 32. merge_condition_mask CondMask = $27 & $28 33 33. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 5 at #39) 34 34. copy_constant ok₂ = 0xFFFFFFFF 35 35. copy_slot_unmasked $18 = ok₂ 36 36. copy_slot_masked [test_matrix_op_matrix_half].result = Mask($18) 37 37. label label 0x0000000B 38 38. copy_slot_masked $17 = Mask($18) 39 39. label label 0x00000005 40 40. load_condition_mask CondMask = $27 41 41. zero_slot_unmasked $23 = 0 42 42. merge_condition_mask CondMask = $16 & $17 43 43. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 4 at #49) 44 44. copy_constant ok₃ = 0xFFFFFFFF 45 45. copy_slot_unmasked $24 = ok₃ 46 46. copy_slot_masked [test_vector_op_matrix_float].result = Mask($24) 47 47. label label 0x0000000C 48 48. copy_slot_masked $23 = Mask($24) 49 49. label label 0x00000004 50 50. load_condition_mask CondMask = $16 51 51. zero_slot_unmasked $20 = 0 52 52. merge_condition_mask CondMask = $22 & $23 53 53. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 3 at #59) 54 54. copy_constant ok₄ = 0xFFFFFFFF 55 55. copy_slot_unmasked $21 = ok₄ 56 56. copy_slot_masked [test_vector_op_matrix_half].result = Mask($21) 57 57. label label 0x0000000D 58 58. copy_slot_masked $20 = Mask($21) 59 59. label label 0x00000003 60 60. load_condition_mask CondMask = $22 61 61. zero_slot_unmasked $14 = 0 62 62. merge_condition_mask CondMask = $19 & $20 63 63. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 2 at #69) 64 64. copy_constant ok₅ = 0xFFFFFFFF 65 65. copy_slot_unmasked $15 = ok₅ 66 66. copy_slot_masked [test_matrix_op_vector_float].result = Mask($15) 67 67. label label 0x0000000E 68 68. copy_slot_masked $14 = Mask($15) 69 69. label label 0x00000002 70 70. load_condition_mask CondMask = $19 71 71. zero_slot_unmasked $0 = 0 72 72. merge_condition_mask CondMask = $13 & $14 73 73. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 1 at #79) 74 74. copy_constant ok₆ = 0xFFFFFFFF 75 75. copy_slot_unmasked $1 = ok₆ 76 76. copy_slot_masked [test_matrix_op_vector_half].result = Mask($1) 77 77. label label 0x0000000F 78 78. copy_slot_masked $0 = Mask($1) 79 79. label label 0x00000001 80 80. load_condition_mask CondMask = $13 81 81. swizzle_4 $0..3 = ($0..3).xxxx 82 82. copy_4_constants $4..7 = colorRed 83 83. copy_4_constants $8..11 = colorGreen 84 84. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 85 85. copy_4_slots_unmasked [main].result = $0..3 86 86. load_src src.rgba = [main].result 87