1*c8dee2aaSAndroid Build Coastguard Worker107 instructions 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Worker[immutable slots] 4*c8dee2aaSAndroid Build Coastguard Workeri0 = 0x3F800000 (1.0) 5*c8dee2aaSAndroid Build Coastguard Workeri1 = 0x41200000 (10.0) 6*c8dee2aaSAndroid Build Coastguard Workeri2 = 0x42C80000 (100.0) 7*c8dee2aaSAndroid Build Coastguard Workeri3 = 0x40000000 (2.0) 8*c8dee2aaSAndroid Build Coastguard Workeri4 = 0x41A00000 (20.0) 9*c8dee2aaSAndroid Build Coastguard Workeri5 = 0x43480000 (200.0) 10*c8dee2aaSAndroid Build Coastguard Workeri6 = 0x40400000 (3.0) 11*c8dee2aaSAndroid Build Coastguard Workeri7 = 0x41F00000 (30.0) 12*c8dee2aaSAndroid Build Coastguard Workeri8 = 0x43960000 (300.0) 13*c8dee2aaSAndroid Build Coastguard Workeri9 = 0x40800000 (4.0) 14*c8dee2aaSAndroid Build Coastguard Workeri10 = 0x42200000 (40.0) 15*c8dee2aaSAndroid Build Coastguard Workeri11 = 0x43C80000 (400.0) 16*c8dee2aaSAndroid Build Coastguard Workeri12 = 0x40A00000 (5.0) 17*c8dee2aaSAndroid Build Coastguard Workeri13 = 0x42480000 (50.0) 18*c8dee2aaSAndroid Build Coastguard Workeri14 = 0x43FA0000 (500.0) 19*c8dee2aaSAndroid Build Coastguard Workeri15 = 0x40C00000 (6.0) 20*c8dee2aaSAndroid Build Coastguard Workeri16 = 0x42700000 (60.0) 21*c8dee2aaSAndroid Build Coastguard Workeri17 = 0x44160000 (600.0) 22*c8dee2aaSAndroid Build Coastguard Workeri18 = 0x40E00000 (7.0) 23*c8dee2aaSAndroid Build Coastguard Workeri19 = 0x428C0000 (70.0) 24*c8dee2aaSAndroid Build Coastguard Workeri20 = 0x442F0000 (700.0) 25*c8dee2aaSAndroid Build Coastguard Workeri21 = 0x41000000 (8.0) 26*c8dee2aaSAndroid Build Coastguard Workeri22 = 0x42A00000 (80.0) 27*c8dee2aaSAndroid Build Coastguard Workeri23 = 0x44480000 (800.0) 28*c8dee2aaSAndroid Build Coastguard Workeri24 = 0x41100000 (9.0) 29*c8dee2aaSAndroid Build Coastguard Workeri25 = 0x42B40000 (90.0) 30*c8dee2aaSAndroid Build Coastguard Workeri26 = 0x44610000 (900.0) 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Workerstore_src_rg coords = src.rg 33*c8dee2aaSAndroid Build Coastguard Workerinit_lane_masks CondMask = LoopMask = RetMask = true 34*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[0].inner[0].values, data.outer[0].inner[1].values(0) = 0 35*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[0].inner[1].values(1..2), data.outer[0].inner[2].values(0..1) = 0 36*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[0].inner[2].values(2), data.outer[1].inner[0].values = 0 37*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[1].inner[1].values, data.outer[1].inner[2].values(0) = 0 38*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[1].inner[2].values(1..2), data.outer[2].inner[0].values(0..1) = 0 39*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants data.outer[2].inner[0].values(2), data.outer[2].inner[1].values = 0 40*c8dee2aaSAndroid Build Coastguard Workersplat_3_constants data.outer[2].inner[2].values = 0 41*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)] 42*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[0].inner[0].values = Mask($0..2) 43*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i3..5 [0x40000000 (2.0), 0x41A00000 (20.0), 0x43480000 (200.0)] 44*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[0].inner[1].values = Mask($0..2) 45*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i6..8 [0x40400000 (3.0), 0x41F00000 (30.0), 0x43960000 (300.0)] 46*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[0].inner[2].values = Mask($0..2) 47*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i9..11 [0x40800000 (4.0), 0x42200000 (40.0), 0x43C80000 (400.0)] 48*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[1].inner[0].values = Mask($0..2) 49*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i12..14 [0x40A00000 (5.0), 0x42480000 (50.0), 0x43FA0000 (500.0)] 50*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[1].inner[1].values = Mask($0..2) 51*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i15..17 [0x40C00000 (6.0), 0x42700000 (60.0), 0x44160000 (600.0)] 52*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[1].inner[2].values = Mask($0..2) 53*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i18..20 [0x40E00000 (7.0), 0x428C0000 (70.0), 0x442F0000 (700.0)] 54*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[2].inner[0].values = Mask($0..2) 55*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i21..23 [0x41000000 (8.0), 0x42A00000 (80.0), 0x44480000 (800.0)] 56*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[2].inner[1].values = Mask($0..2) 57*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $0..2 = i24..26 [0x41100000 (9.0), 0x42B40000 (90.0), 0x44610000 (900.0)] 58*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked data.outer[2].inner[2].values = Mask($0..2) 59*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants expected, i = 0 60*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $0 = LoopMask 61*c8dee2aaSAndroid Build Coastguard Workerjump jump +75 (label 1 at #105) 62*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000002 63*c8dee2aaSAndroid Build Coastguard Workercopy_constant j = 0 64*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $1 = LoopMask 65*c8dee2aaSAndroid Build Coastguard Workerjump jump +60 (label 4 at #94) 66*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000005 67*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_unmasked $2..4 = expected 68*c8dee2aaSAndroid Build Coastguard Workercopy_3_immutables_unmasked $5..7 = i0..2 [0x3F800000 (1.0), 0x41200000 (10.0), 0x42C80000 (100.0)] 69*c8dee2aaSAndroid Build Coastguard Workeradd_3_floats $2..4 += $5..7 70*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_masked expected = Mask($2..4) 71*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask $2 = CondMask 72*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $9 = i 73*c8dee2aaSAndroid Build Coastguard Workermul_imm_int $9 *= 0x00000009 74*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $10 = j 75*c8dee2aaSAndroid Build Coastguard Workermul_imm_int $10 *= 0x00000003 76*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $11 = $9 77*c8dee2aaSAndroid Build Coastguard Workeradd_int $10 += $11 78*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_unmasked $3..5 = Indirect(data.outer[0].inner[0].values + $10) 79*c8dee2aaSAndroid Build Coastguard Workercopy_3_slots_unmasked $6..8 = expected 80*c8dee2aaSAndroid Build Coastguard Workercmpne_3_floats $3..5 = notEqual($3..5, $6..8) 81*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int $4 |= $5 82*c8dee2aaSAndroid Build Coastguard Workerbitwise_or_int $3 |= $4 83*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask CondMask = $2 & $3 84*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $4..7 = colorRed 85*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($4..7) 86*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 87*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask CondMask = $2 88*c8dee2aaSAndroid Build Coastguard Workercopy_constant k = 0 89*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $2 = LoopMask 90*c8dee2aaSAndroid Build Coastguard Workerjump jump +24 (label 7 at #83) 91*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000008 92*c8dee2aaSAndroid Build Coastguard Workerstore_condition_mask $3 = CondMask 93*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $9 = i 94*c8dee2aaSAndroid Build Coastguard Workermul_imm_int $9 *= 0x00000009 95*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $10 = j 96*c8dee2aaSAndroid Build Coastguard Workermul_imm_int $10 *= 0x00000003 97*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $11 = $9 98*c8dee2aaSAndroid Build Coastguard Workeradd_int $10 += $11 99*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $12 = k 100*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $13 = $10 101*c8dee2aaSAndroid Build Coastguard Workeradd_int $12 += $13 102*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_unmasked $4 = Indirect(data.outer[0].inner[0].values(0) + $12) 103*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $9 = k 104*c8dee2aaSAndroid Build Coastguard Workercopy_from_indirect_unmasked $5 = Indirect(expected(0) + $9) 105*c8dee2aaSAndroid Build Coastguard Workercmpne_float $4 = notEqual($4, $5) 106*c8dee2aaSAndroid Build Coastguard Workermerge_condition_mask CondMask = $3 & $4 107*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $5..8 = colorRed 108*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($5..8) 109*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 110*c8dee2aaSAndroid Build Coastguard Workerload_condition_mask CondMask = $3 111*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = k 112*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $3 += 0x00000001 113*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked k = Mask($3) 114*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000007 115*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = k 116*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int $3 = lessThan($3, 0x00000003) 117*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $3 118*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 119*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -28 (label 8 at #60) 120*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000006 121*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $2 122*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = j 123*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $2 += 0x00000001 124*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked j = Mask($2) 125*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000004 126*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = j 127*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int $2 = lessThan($2, 0x00000003) 128*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $2 129*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 130*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -64 (label 5 at #35) 131*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000003 132*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $1 133*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = i 134*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $1 += 0x00000001 135*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked i = Mask($1) 136*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000001 137*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $1 = i 138*c8dee2aaSAndroid Build Coastguard Workercmplt_imm_int $1 = lessThan($1, 0x00000003) 139*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $1 140*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 141*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -79 (label 2 at #31) 142*c8dee2aaSAndroid Build Coastguard Workerlabel label 0 143*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $0 144*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $0..3 = colorGreen 145*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_masked [main].result = Mask($0..3) 146*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 147*c8dee2aaSAndroid Build Coastguard Workerload_src src.rgba = [main].result 148