1 1. store_src_rg coords = src.rg 2 2. init_lane_masks CondMask = LoopMask = RetMask = true 3 3. zero_4_slots_unmasked f[0], f[1], f[2], g[0] = 0 4 4. zero_4_slots_unmasked g[1], g[2], _3_b[0], _3_b[1] = 0 5 5. zero_4_slots_unmasked _4_c[0], _4_c[1], _5_d[0], _5_d[1] = 0 6 6. zero_4_slots_unmasked _6_e[0], _6_e[1], _7_f[0], _7_f[1] = 0 7 7. store_condition_mask $23 = CondMask 8 8. store_condition_mask $20 = CondMask 9 9. store_condition_mask $17 = CondMask 10 10. store_condition_mask $14 = CondMask 11 11. store_condition_mask $12 = CondMask 12 12. branch_if_no_active_lanes branch_if_no_active_lanes +4 (label 6 at #16) 13 13. copy_2_slots_unmasked x[0], x[1] = _3_b[0], _3_b[1] 14 14. copy_constant $13 = 0xFFFFFFFF 15 15. copy_slot_masked [check_array_is_int_2].result = Mask($13) 16 16. label label 0x00000006 17 17. zero_slot_unmasked $15 = 0 18 18. merge_condition_mask CondMask = $12 & $13 19 19. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 5 at #25) 20 20. copy_2_slots_unmasked x[0], x[1] = _4_c[0], _4_c[1] 21 21. copy_constant $16 = 0xFFFFFFFF 22 22. copy_slot_masked [check_array_is_int_2].result = Mask($16) 23 23. label label 0x00000007 24 24. copy_slot_masked $15 = Mask($16) 25 25. label label 0x00000005 26 26. load_condition_mask CondMask = $12 27 27. zero_slot_unmasked $18 = 0 28 28. merge_condition_mask CondMask = $14 & $15 29 29. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 4 at #35) 30 30. copy_2_slots_unmasked x[0], x[1] = _5_d[0], _5_d[1] 31 31. copy_constant $19 = 0xFFFFFFFF 32 32. copy_slot_masked [check_array_is_int_2].result = Mask($19) 33 33. label label 0x00000008 34 34. copy_slot_masked $18 = Mask($19) 35 35. label label 0x00000004 36 36. load_condition_mask CondMask = $14 37 37. zero_slot_unmasked $21 = 0 38 38. merge_condition_mask CondMask = $17 & $18 39 39. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 3 at #45) 40 40. copy_2_slots_unmasked x[0], x[1] = _6_e[0], _6_e[1] 41 41. copy_constant $22 = 0xFFFFFFFF 42 42. copy_slot_masked [check_array_is_int_2].result = Mask($22) 43 43. label label 0x00000009 44 44. copy_slot_masked $21 = Mask($22) 45 45. label label 0x00000003 46 46. load_condition_mask CondMask = $17 47 47. zero_slot_unmasked $24 = 0 48 48. merge_condition_mask CondMask = $20 & $21 49 49. branch_if_no_active_lanes branch_if_no_active_lanes +6 (label 2 at #55) 50 50. copy_2_slots_unmasked x[0], x[1] = _7_f[0], _7_f[1] 51 51. copy_constant $25 = 0xFFFFFFFF 52 52. copy_slot_masked [check_array_is_int_2].result = Mask($25) 53 53. label label 0x0000000A 54 54. copy_slot_masked $24 = Mask($25) 55 55. label label 0x00000002 56 56. load_condition_mask CondMask = $20 57 57. zero_slot_unmasked $0 = 0 58 58. merge_condition_mask CondMask = $23 & $24 59 59. branch_if_no_active_lanes branch_if_no_active_lanes +17 (label 1 at #76) 60 60. copy_4_slots_unmasked a[0], a[1], a[2], b[0] = f[0], f[1], f[2], g[0] 61 61. copy_2_slots_unmasked b[1], b[2] = g[1], g[2] 62 62. copy_constant $20 = 0xFFFFFFFF 63 63. branch_if_no_active_lanes_eq branch +7 (label 12 at #70) if no lanes of $20 == 0xFFFFFFFF 64 64. branch_if_no_active_lanes branch_if_no_active_lanes +4 (label 14 at #68) 65 65. copy_3_slots_unmasked x[0]₁, x[1]₁, x[2] = b[0], b[1], b[2] 66 66. copy_constant $1 = 0xFFFFFFFF 67 67. copy_slot_masked [check_array_is_float_3].result = Mask($1) 68 68. label label 0x0000000E 69 69. jump jump +3 (label 13 at #72) 70 70. label label 0x0000000C 71 71. zero_slot_unmasked $1 = 0 72 72. label label 0x0000000D 73 73. copy_slot_masked [test_param].result = Mask($1) 74 74. label label 0x0000000B 75 75. copy_slot_masked $0 = Mask($1) 76 76. label label 0x00000001 77 77. load_condition_mask CondMask = $23 78 78. swizzle_4 $0..3 = ($0..3).xxxx 79 79. copy_4_constants $4..7 = colorRed 80 80. copy_4_constants $8..11 = colorGreen 81 81. mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 82 82. copy_4_slots_unmasked [main].result = $0..3 83 83. load_src src.rgba = [main].result 84