1*c8dee2aaSAndroid Build Coastguard Worker179 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 = 0x3F800000 (1.0) 6*c8dee2aaSAndroid Build Coastguard Workeri2 = 0x40000000 (2.0) 7*c8dee2aaSAndroid Build Coastguard Workeri3 = 0x40400000 (3.0) 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Workerstore_src_rg coords = src.rg 10*c8dee2aaSAndroid Build Coastguard Workerinit_lane_masks CondMask = LoopMask = RetMask = true 11*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms v = testInputs 12*c8dee2aaSAndroid Build Coastguard Workercopy_constant $0 = 0 13*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $1..4 = v 14*c8dee2aaSAndroid Build Coastguard Workerswizzle_3 $1..3 = ($1..3).zyx 15*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 16*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants $0..1 = 0 17*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $2..5 = v 18*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = $5 19*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 20*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants $0..1 = 0x3F800000 (1.0) 21*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $2..5 = v 22*c8dee2aaSAndroid Build Coastguard Workerswizzle_2 $2..3 = ($2..5).wx 23*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 24*c8dee2aaSAndroid Build Coastguard Workerswizzle_2 $0..1 = ($0..2).zy 25*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants v(2..3) = 0x3F800000 (1.0) 26*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked v(0..1) = $0..1 27*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $0..3 = v 28*c8dee2aaSAndroid Build Coastguard Workerswizzle_2 $0..1 = ($0..1).xx 29*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants v(2..3) = 0x3F800000 (1.0) 30*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked v(0..1) = $0..1 31*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $0..3 = v 32*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).wzwz 33*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 34*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $0 = RetMask 35*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 36*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $1 = LoopMask 37*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 2 at #37) 38*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000003 39*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = v(0) 40*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($2) 41*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 42*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 43*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $2 += 0x00000001 44*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($2) 45*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000002 46*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 47*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $2 = lessThanEqual($2, 0x00000002) 48*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $2 49*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 50*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 3 at #30) 51*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000001 52*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $1 53*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $0 54*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $0 = [fn].result 55*c8dee2aaSAndroid Build Coastguard Workerlabel label 0 56*c8dee2aaSAndroid Build Coastguard Workercopy_constant $1 = 0x42F60000 (123.0) 57*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x43E40000 (456.0) 58*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).yyzz 59*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 60*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $0 = RetMask 61*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 62*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $1 = LoopMask 63*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 6 at #63) 64*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000007 65*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = v(0) 66*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($2) 67*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 68*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 69*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $2 += 0x00000001 70*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($2) 71*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000006 72*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 73*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $2 = lessThanEqual($2, 0x00000002) 74*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $2 75*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 76*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 7 at #56) 77*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000005 78*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $1 79*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $0 80*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $0 = [fn].result 81*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000004 82*c8dee2aaSAndroid Build Coastguard Workercopy_constant $1 = 0x42F60000 (123.0) 83*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x43E40000 (456.0) 84*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).yyzz 85*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 86*c8dee2aaSAndroid Build Coastguard Workercopy_constant $0 = 0x42F60000 (123.0) 87*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants $1..2 = 0x43E40000 (456.0) 88*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $3 = RetMask 89*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 90*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $4 = LoopMask 91*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 10 at #91) 92*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000B 93*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = v(0) 94*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($5) 95*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 96*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = x 97*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $5 += 0x00000001 98*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($5) 99*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000A 100*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = x 101*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $5 = lessThanEqual($5, 0x00000002) 102*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $5 103*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 104*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 11 at #84) 105*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000009 106*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $4 107*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $3 108*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = [fn].result 109*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000008 110*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 111*c8dee2aaSAndroid Build Coastguard Workercopy_constant $0 = 0x42F60000 (123.0) 112*c8dee2aaSAndroid Build Coastguard Workersplat_2_constants $1..2 = 0x43E40000 (456.0) 113*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $3 = RetMask 114*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 115*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $4 = LoopMask 116*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 14 at #116) 117*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000F 118*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = v(0) 119*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($5) 120*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 121*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = x 122*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $5 += 0x00000001 123*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($5) 124*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000E 125*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $5 = x 126*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $5 = lessThanEqual($5, 0x00000002) 127*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $5 128*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 129*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 15 at #109) 130*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000D 131*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $4 132*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $3 133*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $3 = [fn].result 134*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x0000000C 135*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 136*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $0 = RetMask 137*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 138*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $1 = LoopMask 139*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 18 at #139) 140*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000013 141*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = v(0) 142*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($2) 143*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 144*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 145*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $2 += 0x00000001 146*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($2) 147*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000012 148*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 149*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $2 = lessThanEqual($2, 0x00000002) 150*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $2 151*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 152*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 19 at #132) 153*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000011 154*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $1 155*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $0 156*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $0 = [fn].result 157*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000010 158*c8dee2aaSAndroid Build Coastguard Workercopy_constant $1 = 0x42F60000 (123.0) 159*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x43E40000 (456.0) 160*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).yxxz 161*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 162*c8dee2aaSAndroid Build Coastguard Workerstore_return_mask $0 = RetMask 163*c8dee2aaSAndroid Build Coastguard Workercopy_constant x = 0x00000001 (1.401298e-45) 164*c8dee2aaSAndroid Build Coastguard Workerstore_loop_mask $1 = LoopMask 165*c8dee2aaSAndroid Build Coastguard Workerjump jump +8 (label 22 at #165) 166*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000017 167*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = v(0) 168*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked [fn].result = Mask($2) 169*c8dee2aaSAndroid Build Coastguard Workermask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 170*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 171*c8dee2aaSAndroid Build Coastguard Workeradd_imm_int $2 += 0x00000001 172*c8dee2aaSAndroid Build Coastguard Workercopy_slot_masked x = Mask($2) 173*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000016 174*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $2 = x 175*c8dee2aaSAndroid Build Coastguard Workercmple_imm_int $2 = lessThanEqual($2, 0x00000002) 176*c8dee2aaSAndroid Build Coastguard Workermerge_loop_mask LoopMask &= $2 177*c8dee2aaSAndroid Build Coastguard Workerstack_rewind 178*c8dee2aaSAndroid Build Coastguard Workerbranch_if_any_lanes_active branch_if_any_lanes_active -12 (label 23 at #158) 179*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000015 180*c8dee2aaSAndroid Build Coastguard Workerload_loop_mask LoopMask = $1 181*c8dee2aaSAndroid Build Coastguard Workerload_return_mask RetMask = $0 182*c8dee2aaSAndroid Build Coastguard Workercopy_slot_unmasked $0 = [fn].result 183*c8dee2aaSAndroid Build Coastguard Workerlabel label 0x00000014 184*c8dee2aaSAndroid Build Coastguard Workercopy_constant $1 = 0x42F60000 (123.0) 185*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x43E40000 (456.0) 186*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).yxxz 187*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked v = $0..3 188*c8dee2aaSAndroid Build Coastguard Workercopy_4_immutables_unmasked v = i0..3 [0x3F800000 (1.0), 0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0)] 189*c8dee2aaSAndroid Build Coastguard Workercopy_3_uniforms v(0..2) = colorRed(0..2) 190*c8dee2aaSAndroid Build Coastguard Workercopy_constant v(3) = 0x3F800000 (1.0) 191*c8dee2aaSAndroid Build Coastguard Workercopy_uniform v(0) = colorRed(0) 192*c8dee2aaSAndroid Build Coastguard Workercopy_constant v(1) = 0x3F800000 (1.0) 193*c8dee2aaSAndroid Build Coastguard Workercopy_2_uniforms v(2..3) = colorRed(1..2) 194*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $0..3 = v 195*c8dee2aaSAndroid Build Coastguard Workerswizzle_copy_4_slots_masked (v).wzyx = Mask($0..3) 196*c8dee2aaSAndroid Build Coastguard Workercopy_2_slots_unmasked $0..1 = v(1..2) 197*c8dee2aaSAndroid Build Coastguard Workerswizzle_copy_2_slots_masked (v).xw = Mask($0..1) 198*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $0..3 = v 199*c8dee2aaSAndroid Build Coastguard Workerswizzle_2 $0..1 = ($0..3).ww 200*c8dee2aaSAndroid Build Coastguard Workercopy_constant $2 = 0x3F800000 (1.0) 201*c8dee2aaSAndroid Build Coastguard Workerswizzle_copy_3_slots_masked (v(0..2)).zyx = Mask($0..2) 202*c8dee2aaSAndroid Build Coastguard Workercopy_4_slots_unmasked $0..3 = v 203*c8dee2aaSAndroid Build Coastguard Workersplat_4_constants $4..7 = 0x3F800000 (1.0) 204*c8dee2aaSAndroid Build Coastguard Workercmpeq_4_floats $0..3 = equal($0..3, $4..7) 205*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_2_ints $0..1 &= $2..3 206*c8dee2aaSAndroid Build Coastguard Workerbitwise_and_int $0 &= $1 207*c8dee2aaSAndroid Build Coastguard Workerswizzle_4 $0..3 = ($0..3).xxxx 208*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $4..7 = colorRed 209*c8dee2aaSAndroid Build Coastguard Workercopy_4_uniforms $8..11 = colorGreen 210*c8dee2aaSAndroid Build Coastguard Workermix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 211*c8dee2aaSAndroid Build Coastguard Workerload_src src.rgba = $0..3 212