1190 instructions 2 3store_device_xy01 $12..15 = DeviceCoords.xy01 4cmpeq_imm_float $12 = equal($12, 0x3F000000 (0.5)) 5cmpeq_imm_float $13 = equal($13, 0x3F000000 (0.5)) 6bitwise_and_int $12 &= $13 7store_src_rg xy = src.rg 8init_lane_masks CondMask = LoopMask = RetMask = true 9copy_4_uniforms u1[0], u1[1], u1[2], u1[3] = u1[0], u1[1], u1[2], u1[3] 10trace_var TraceVar(u1[0], u1[1], u1[2], u1[3]) when $12 is true 11copy_4_uniforms u2[0], u2[1], u2[2], u2[3] = u2[0], u2[1], u2[2], u2[3] 12trace_var TraceVar(u2[0], u2[1], u2[2], u2[3]) when $12 is true 13copy_4_uniforms u3[0], u3[1], u3[2], u3[3] = u3[0], u3[1], u3[2], u3[3] 14trace_var TraceVar(u3[0], u3[1], u3[2], u3[3]) when $12 is true 15copy_4_uniforms u4[0], u4[1], u4[2], u4[3] = u4[0], u4[1], u4[2], u4[3] 16copy_4_uniforms u4[4], u4[5], u4[6], u4[7] = u4[4], u4[5], u4[6], u4[7] 17copy_4_uniforms u4[8], u4[9], u4[10], u4[11] = u4[8], u4[9], u4[10], u4[11] 18copy_4_uniforms u4[12], u4[13], u4[14], u4[15] = u4[12], u4[13], u4[14], u4[15] 19trace_var TraceVar(u4[0], u4[1], u4[2], u4[3], u4[4], u4[5], u4[6], u4[7], u4[8], u4[9], u4[10], u4[11], u4[12], u4[13], u4[14], u4[15]) when $12 is true 20trace_enter TraceEnter(float4 main(float2 xy)) when $12 is true 21trace_var TraceVar(xy) when $12 is true 22copy_constant $0 = 0 23copy_slot_unmasked $1 = $12 24copy_slot_masked $0 = Mask($1) 25trace_scope TraceScope(+1) when $0 is true 26trace_line TraceLine(38) when $12 is true 27trace_enter TraceEnter(float index_by_literal()) when $12 is true 28copy_constant $1 = 0 29copy_slot_unmasked $2 = $12 30copy_slot_masked $1 = Mask($2) 31trace_scope TraceScope(+1) when $1 is true 32trace_line TraceLine(5) when $12 is true 33copy_uniform [index_by_literal].result = u1[0] 34trace_var TraceVar([index_by_literal].result) when $12 is true 35trace_scope TraceScope(-1) when $1 is true 36trace_exit TraceExit(float index_by_literal()) when $12 is true 37copy_slot_unmasked $1 = [index_by_literal].result 38label label 0 39trace_enter TraceEnter(float index_by_loop()) when $12 is true 40copy_constant $2 = 0 41copy_slot_unmasked $3 = $12 42copy_slot_masked $2 = Mask($3) 43trace_scope TraceScope(+1) when $2 is true 44trace_line TraceLine(10) when $12 is true 45copy_constant sum = 0 46trace_var TraceVar(sum) when $12 is true 47copy_constant $3 = 0 48copy_slot_unmasked $4 = $12 49copy_slot_masked $3 = Mask($4) 50trace_scope TraceScope(+1) when $3 is true 51trace_line TraceLine(11) when $12 is true 52copy_constant i = 0x00000003 (4.203895e-45) 53trace_var TraceVar(i) when $12 is true 54label label 0x00000003 55copy_constant $4 = 0 56copy_slot_unmasked $5 = $12 57copy_slot_masked $4 = Mask($5) 58trace_scope TraceScope(+1) when $4 is true 59trace_line TraceLine(12) when $12 is true 60copy_slot_unmasked $5 = sum 61copy_slot_unmasked $16 = i 62copy_from_indirect_uniform_unm $6 = Indirect(u2[0] + $16) 63add_float $5 += $6 64copy_slot_unmasked sum = $5 65trace_var TraceVar(sum) when $12 is true 66trace_scope TraceScope(-1) when $4 is true 67trace_line TraceLine(11) when $12 is true 68copy_slot_unmasked $4 = i 69add_imm_int $4 += 0xFFFFFFFF 70copy_slot_unmasked i = $4 71trace_var TraceVar(i) when $12 is true 72copy_constant $4 = 0 73copy_slot_unmasked $5 = i 74cmple_int $4 = lessThanEqual($4, $5) 75stack_rewind 76branch_if_no_active_lanes_eq branch -22 (label 3 at #52) if no lanes of $4 == 0 77label label 0x00000002 78trace_scope TraceScope(-1) when $3 is true 79trace_line TraceLine(14) when $12 is true 80copy_slot_unmasked [index_by_loop].result = sum 81trace_var TraceVar([index_by_loop].result) when $12 is true 82trace_scope TraceScope(-1) when $2 is true 83trace_exit TraceExit(float index_by_loop()) when $12 is true 84copy_slot_unmasked $2 = [index_by_loop].result 85label label 0x00000001 86trace_enter TraceEnter(float index_by_complex_loop()) when $12 is true 87copy_constant $3 = 0 88copy_slot_unmasked $4 = $12 89copy_slot_masked $3 = Mask($4) 90trace_scope TraceScope(+1) when $3 is true 91trace_line TraceLine(19) when $12 is true 92copy_constant prod = 0x3F800000 (1.0) 93trace_var TraceVar(prod) when $12 is true 94copy_constant $4 = 0 95copy_slot_unmasked $5 = $12 96copy_slot_masked $4 = Mask($5) 97trace_scope TraceScope(+1) when $4 is true 98trace_line TraceLine(20) when $12 is true 99copy_constant i₁ = 0 100trace_var TraceVar(i₁) when $12 is true 101label label 0x00000006 102copy_constant $5 = 0 103copy_slot_unmasked $6 = $12 104copy_slot_masked $5 = Mask($6) 105trace_scope TraceScope(+1) when $5 is true 106trace_line TraceLine(21) when $12 is true 107copy_slot_unmasked $6 = prod 108copy_slot_unmasked $16 = i₁ 109cmplt_imm_int $16 = lessThan($16, 0x00000002) 110copy_slot_unmasked $17 = i₁ 111copy_constant $18 = 0 112mix_int $16 = mix($17, $18, $16) 113copy_from_indirect_uniform_unm $7 = Indirect(u3[0] + $16) 114mul_float $6 *= $7 115copy_slot_unmasked prod = $6 116trace_var TraceVar(prod) when $12 is true 117trace_scope TraceScope(-1) when $5 is true 118trace_line TraceLine(20) when $12 is true 119copy_slot_unmasked $5 = i₁ 120add_imm_int $5 += 0x00000001 121copy_slot_unmasked i₁ = $5 122trace_var TraceVar(i₁) when $12 is true 123copy_slot_unmasked $5 = i₁ 124cmplt_imm_int $5 = lessThan($5, 0x00000004) 125stack_rewind 126branch_if_no_active_lanes_eq branch -25 (label 6 at #99) if no lanes of $5 == 0 127label label 0x00000005 128trace_scope TraceScope(-1) when $4 is true 129trace_line TraceLine(23) when $12 is true 130copy_slot_unmasked [index_by_complex_loop].result = prod 131trace_var TraceVar([index_by_complex_loop].result) when $12 is true 132trace_scope TraceScope(-1) when $3 is true 133trace_exit TraceExit(float index_by_complex_loop()) when $12 is true 134copy_slot_unmasked $3 = [index_by_complex_loop].result 135label label 0x00000004 136trace_enter TraceEnter(float index_out_of_bounds_checked()) when $12 is true 137copy_constant $4 = 0 138copy_slot_unmasked $5 = $12 139copy_slot_masked $4 = Mask($5) 140trace_scope TraceScope(+1) when $4 is true 141trace_line TraceLine(28) when $12 is true 142copy_constant sum₁ = 0 143trace_var TraceVar(sum₁) when $12 is true 144copy_constant $5 = 0 145copy_slot_unmasked $6 = $12 146copy_slot_masked $5 = Mask($6) 147trace_scope TraceScope(+1) when $5 is true 148trace_line TraceLine(29) when $12 is true 149copy_constant f = 0xC0133333 (-2.3) 150trace_var TraceVar(f) when $12 is true 151label label 0x0000000A 152copy_constant $6 = 0 153copy_slot_unmasked $7 = $12 154copy_slot_masked $6 = Mask($7) 155trace_scope TraceScope(+1) when $6 is true 156trace_line TraceLine(30) when $12 is true 157store_condition_mask $7 = CondMask 158copy_constant $8 = 0 159copy_slot_unmasked $9 = f 160cmplt_float $8 = lessThan($8, $9) 161copy_slot_unmasked $9 = f 162cmplt_imm_float $9 = lessThan($9, 0x41800000 (16.0)) 163bitwise_and_int $8 &= $9 164merge_condition_mask CondMask = $7 & $8 165copy_constant $9 = 0 166copy_slot_unmasked $10 = $12 167copy_slot_masked $9 = Mask($10) 168trace_scope TraceScope(+1) when $9 is true 169trace_line TraceLine(31) when $12 is true 170copy_slot_unmasked $10 = sum₁ 171copy_slot_unmasked $16 = f 172cast_to_int_from_float $16 = FloatToInt($16) 173copy_from_indirect_uniform_unm $11 = Indirect(u4[0] + $16) 174sub_float $10 -= $11 175copy_slot_masked sum₁ = Mask($10) 176trace_var TraceVar(sum₁) when $12 is true 177trace_scope TraceScope(-1) when $9 is true 178load_condition_mask CondMask = $7 179trace_scope TraceScope(-1) when $6 is true 180trace_line TraceLine(29) when $12 is true 181copy_slot_unmasked $6 = f 182add_imm_float $6 += 0x406CCCCD (3.7) 183copy_slot_unmasked f = $6 184trace_var TraceVar(f) when $12 is true 185copy_slot_unmasked $6 = f 186cmplt_imm_float $6 = lessThan($6, 0x41880000 (17.0)) 187stack_rewind 188branch_if_no_active_lanes_eq branch -37 (label 10 at #149) if no lanes of $6 == 0 189label label 0x00000009 190trace_scope TraceScope(-1) when $5 is true 191trace_line TraceLine(34) when $12 is true 192copy_slot_unmasked [index_out_of_bounds_checked].result = sum₁ 193trace_var TraceVar([index_out_of_bounds_checked].result) when $12 is true 194trace_scope TraceScope(-1) when $4 is true 195trace_exit TraceExit(float index_out_of_bounds_checked()) when $12 is true 196copy_slot_unmasked $4 = [index_out_of_bounds_checked].result 197label label 0x00000008 198copy_4_slots_unmasked [main].result = $1..4 199trace_var TraceVar([main].result) when $12 is true 200trace_scope TraceScope(-1) when $0 is true 201trace_exit TraceExit(float4 main(float2 xy)) when $12 is true 202load_src src.rgba = [main].result 203