1*c8dee2aaSAndroid Build Coastguard Worker105 instructions 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Worker[immutable slots] 4*c8dee2aaSAndroid Build Coastguard Workeri0 = 0 5*c8dee2aaSAndroid Build Coastguard Workeri1 = 0x41200000 (10.0) 6*c8dee2aaSAndroid Build Coastguard Workeri2 = 0x3F800000 (1.0) 7*c8dee2aaSAndroid Build Coastguard Workeri3 = 0x40000000 (2.0) 8*c8dee2aaSAndroid Build Coastguard Workeri4 = 0x40400000 (3.0) 9*c8dee2aaSAndroid Build Coastguard Workeri5 = 0x40800000 (4.0) 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Workerstore_src_rg coords = src.rg 12*c8dee2aaSAndroid Build Coastguard Workerinit_lane_masks CondMask = LoopMask = RetMask = true 13*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants sumA, sumB, a = 0 14*c8dee2aaSAndroid Build Coastguard Workercopy_constant b = 0x41200000 (10.0) 15*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 16*c8dee2aaSAndroid Build Coastguard Workerjump jump +16 (label 1 at #22) 17*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000002 18*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumA 19*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = a 20*c8dee2aaSAndroid Build Coastguard Workeradd_float $1 += $2 21*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked sumA = Mask($1) 22*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumB 23*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = b 24*c8dee2aaSAndroid Build Coastguard Workeradd_float $1 += $2 25*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked sumB = Mask($1) 26*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = a 27*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float $1 += 0x3F800000 (1.0) 28*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked a = Mask($1) 29*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = b 30*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float $1 += 0xBF800000 (-1.0) 31*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked b = Mask($1) 32*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000001 33*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = a 34*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_float $1 = lessThan($1, 0x41200000 (10.0)) 35*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0 36*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = b 37*c8dee2aaSAndroid Build Coastguard Workercmplt_float $2 = lessThan($2, $3) 38*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int $1 &= $2 39*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $1 40*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 41*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -24 (label 2 at #7) 42*c8dee2aaSAndroid Build Coastguard Workerlabel label 0 43*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 44*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask $0 = CondMask 45*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumA 46*c8dee2aaSAndroid Build Coastguard Workercmpne_imm_float $1 = notEqual($1, 0x42340000 (45.0)) 47*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = sumB 48*c8dee2aaSAndroid Build Coastguard Workercmpne_imm_float $2 = notEqual($2, 0x425C0000 (55.0)) 49*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int $1 |= $2 50*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask CondMask = $0 & $1 51*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $2..5 = colorRed 52*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($2..5) 53*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 54*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask CondMask = $0 55*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants sumC, c = 0 56*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 57*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 4 at #55) 58*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000005 59*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked $1..2 = sumC, c 60*c8dee2aaSAndroid Build Coastguard Workeradd_int $1 += $2 61*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked sumC = Mask($1) 62*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = c 63*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $1 += 0x00000001 64*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked c = Mask($1) 65*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000004 66*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = c 67*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int $1 = lessThan($1, 0x0000000A) 68*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $1 69*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 70*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 5 at #48) 71*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000003 72*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 73*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask $0 = CondMask 74*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumC 75*c8dee2aaSAndroid Build Coastguard Workercmpne_imm_int $1 = notEqual($1, 0x0000002D) 76*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask CondMask = $0 & $1 77*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $2..5 = colorRed 78*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($2..5) 79*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 80*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask CondMask = $0 81*c8dee2aaSAndroid Build Coastguard Workercopy_constant sumE = 0 82*c8dee2aaSAndroid Build Coastguard Workercopy_2_immutables_unmasked d[0], d[1] = i0..1 [0, 0x41200000 (10.0)] 83*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 84*c8dee2aaSAndroid Build Coastguard Workerjump jump +9 (label 7 at #83) 85*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000008 86*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumE 87*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x3F800000 (1.0) 88*c8dee2aaSAndroid Build Coastguard Workeradd_float $1 += $2 89*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked sumE = Mask($1) 90*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = d[0] 91*c8dee2aaSAndroid Build Coastguard Workeradd_imm_float $1 += 0x3F800000 (1.0) 92*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked d[0] = Mask($1) 93*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000007 94*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked $1..2 = d[0], d[1] 95*c8dee2aaSAndroid Build Coastguard Workercmplt_float $1 = lessThan($1, $2) 96*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $1 97*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 98*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -13 (label 8 at #75) 99*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000006 100*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 101*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask $0 = CondMask 102*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = sumE 103*c8dee2aaSAndroid Build Coastguard Workercmpne_imm_float $1 = notEqual($1, 0x41200000 (10.0)) 104*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask CondMask = $0 & $1 105*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $2..5 = colorRed 106*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($2..5) 107*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 108*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask CondMask = $0 109*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 110*c8dee2aaSAndroid Build Coastguard Workerjump jump +4 (label 10 at #104) 111*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000B 112*c8dee2aaSAndroid Build Coastguard Workerbranch_if_all_lanes_active branch_if_all_lanes_active +5 (label 9 at #107) 113*c8dee2aaSAndroid Build Coastguard Workermask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 114*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000A 115*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 116*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -5 (label 11 at #101) 117*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000009 118*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 119*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 120*c8dee2aaSAndroid Build Coastguard Workerjump jump +5 (label 13 at #115) 121*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000E 122*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $1..4 = colorGreen 123*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($1..4) 124*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 125*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000D 126*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 127*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -6 (label 14 at #111) 128*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000C 129*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 130*c8dee2aaSAndroid Build Coastguard Workerload_src src.rgba = [main].result 131