484 instructions [immutable slots] i0 = 0xFFFFFFFF i1 = 0 store_src_rg coords = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_uniform $0 = colorGreen(0) copy_uniform $1 = colorGreen(2) div_float $0 /= $1 copy_slot_unmasked NAN1 = $0 copy_uniform $0 = colorGreen(2) copy_uniform $1 = colorGreen(0) div_float $0 /= $1 copy_slot_unmasked NAN2 = $0 copy_uniform $0 = colorGreen(0) copy_uniform $1 = colorGreen(2) mul_float $0 *= $1 copy_slot_unmasked ZP = $0 copy_uniform $0 = colorGreen(0) bitwise_xor_imm_int $0 ^= 0x80000000 copy_uniform $1 = colorGreen(2) mul_float $0 *= $1 copy_slot_unmasked ZM = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x42280000 (42.0) copy_slot_unmasked F42 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x422C0000 (43.0) copy_slot_unmasked F43 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x42300000 (44.0) copy_slot_unmasked F44 = $0 copy_uniform $0 = colorGreen(0) add_imm_float $0 += 0x3F800000 (1.0) copy_slot_unmasked _0_one = $0 splat_3_constants _1_a.f1, _1_a.f2, _1_a.f3 = 0 copy_slot_unmasked _1_a.f1 = F42 copy_slot_unmasked _1_a.f2 = ZM copy_slot_unmasked _1_a.f3 = ZP splat_3_constants _2_b.f1, _2_b.f2, _2_b.f3 = 0 copy_slot_unmasked $0 = F42 copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked _2_b.f1 = $0 copy_slot_unmasked $0 = ZM copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked _2_b.f2 = $0 copy_slot_unmasked $0 = ZP copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked _2_b.f3 = $0 store_condition_mask $12 = CondMask store_condition_mask $19 = CondMask store_condition_mask $26 = CondMask store_condition_mask $33 = CondMask store_condition_mask $40 = CondMask store_condition_mask $47 = CondMask store_condition_mask $54 = CondMask store_condition_mask $60 = CondMask copy_constant $61 = 0xFFFFFFFF copy_slot_unmasked $55 = _1_a.f1 copy_slot_unmasked $56 = _2_b.f1 cmpne_float $55 = notEqual($55, $56) copy_slot_unmasked $56 = _1_a.f2 copy_slot_unmasked $57 = _2_b.f2 cmpne_float $56 = notEqual($56, $57) copy_slot_unmasked $57 = _1_a.f3 copy_slot_unmasked $58 = _2_b.f3 cmpne_float $57 = notEqual($57, $58) bitwise_or_int $56 |= $57 bitwise_or_int $55 |= $56 merge_condition_mask CondMask = $60 & $61 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 8 at #83) copy_slot_unmasked $56 = _1_a.f1 copy_slot_unmasked $57 = _2_b.f1 cmpeq_float $56 = equal($56, $57) copy_slot_unmasked $57 = _1_a.f2 copy_slot_unmasked $58 = _2_b.f2 cmpeq_float $57 = equal($57, $58) copy_slot_unmasked $58 = _1_a.f3 copy_slot_unmasked $59 = _2_b.f3 cmpeq_float $58 = equal($58, $59) bitwise_and_int $57 &= $58 bitwise_and_int $56 &= $57 copy_slot_masked $55 = Mask($56) label label 0x00000008 load_condition_mask CondMask = $60 copy_constant $48 = 0 merge_condition_mask CondMask = $54 & $55 branch_if_no_lanes_active branch_if_no_lanes_active +57 (label 7 at #144) copy_constant eq = 0 copy_uniform $49 = colorGreen(0) add_imm_float $49 += 0x3F800000 (1.0) copy_slot_unmasked one = $49 splat_3_constants a.f1, a.f2, a.f3 = 0 copy_slot_unmasked $49 = F42 copy_slot_masked a.f1 = Mask($49) copy_slot_unmasked $49 = ZM copy_slot_masked a.f2 = Mask($49) copy_slot_unmasked $49 = ZP copy_slot_masked a.f3 = Mask($49) splat_3_constants b.f1, b.f2, b.f3 = 0 copy_slot_unmasked $49 = F42 copy_slot_unmasked $50 = one mul_float $49 *= $50 copy_slot_masked b.f1 = Mask($49) copy_slot_unmasked $49 = ZM copy_slot_unmasked $50 = one mul_float $49 *= $50 copy_slot_masked b.f2 = Mask($49) copy_slot_unmasked $49 = ZP copy_slot_unmasked $50 = one mul_float $49 *= $50 copy_slot_masked b.f3 = Mask($49) store_condition_mask $60 = CondMask copy_slot_unmasked $61 = eq copy_slot_unmasked $49 = a.f1 copy_slot_unmasked $50 = b.f1 cmpne_float $49 = notEqual($49, $50) copy_slot_unmasked $50 = a.f2 copy_slot_unmasked $51 = b.f2 cmpne_float $50 = notEqual($50, $51) copy_slot_unmasked $51 = a.f3 copy_slot_unmasked $52 = b.f3 cmpne_float $51 = notEqual($51, $52) bitwise_or_int $50 |= $51 bitwise_or_int $49 |= $50 merge_condition_mask CondMask = $60 & $61 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 10 at #139) copy_slot_unmasked $50 = a.f1 copy_slot_unmasked $51 = b.f1 cmpeq_float $50 = equal($50, $51) copy_slot_unmasked $51 = a.f2 copy_slot_unmasked $52 = b.f2 cmpeq_float $51 = equal($51, $52) copy_slot_unmasked $52 = a.f3 copy_slot_unmasked $53 = b.f3 cmpeq_float $52 = equal($52, $53) bitwise_and_int $51 &= $52 bitwise_and_int $50 &= $51 copy_slot_masked $49 = Mask($50) label label 0x0000000A load_condition_mask CondMask = $60 label label 0x00000009 bitwise_xor_imm_int $49 ^= 0xFFFFFFFF copy_slot_masked $48 = Mask($49) label label 0x00000007 load_condition_mask CondMask = $54 copy_constant $41 = 0 merge_condition_mask CondMask = $47 & $48 branch_if_no_lanes_active branch_if_no_lanes_active +56 (label 6 at #204) copy_constant eq = 0 copy_uniform $42 = colorGreen(0) add_imm_float $42 += 0x3F800000 (1.0) copy_slot_unmasked one = $42 splat_3_constants a.f1, a.f2, a.f3 = 0 copy_slot_unmasked $42 = F42 copy_slot_masked a.f1 = Mask($42) copy_slot_unmasked $42 = NAN1 copy_slot_masked a.f2 = Mask($42) copy_slot_unmasked $42 = NAN2 copy_slot_masked a.f3 = Mask($42) splat_3_constants b.f1, b.f2, b.f3 = 0 copy_slot_unmasked $42 = F42 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_slot_masked b.f1 = Mask($42) copy_slot_unmasked $42 = NAN1 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_slot_masked b.f2 = Mask($42) copy_slot_unmasked $42 = NAN2 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_slot_masked b.f3 = Mask($42) store_condition_mask $54 = CondMask copy_slot_unmasked $55 = eq copy_slot_unmasked $42 = a.f1 copy_slot_unmasked $43 = b.f1 cmpne_float $42 = notEqual($42, $43) copy_slot_unmasked $43 = a.f2 copy_slot_unmasked $44 = b.f2 cmpne_float $43 = notEqual($43, $44) copy_slot_unmasked $44 = a.f3 copy_slot_unmasked $45 = b.f3 cmpne_float $44 = notEqual($44, $45) bitwise_or_int $43 |= $44 bitwise_or_int $42 |= $43 merge_condition_mask CondMask = $54 & $55 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 12 at #200) copy_slot_unmasked $43 = a.f1 copy_slot_unmasked $44 = b.f1 cmpeq_float $43 = equal($43, $44) copy_slot_unmasked $44 = a.f2 copy_slot_unmasked $45 = b.f2 cmpeq_float $44 = equal($44, $45) copy_slot_unmasked $45 = a.f3 copy_slot_unmasked $46 = b.f3 cmpeq_float $45 = equal($45, $46) bitwise_and_int $44 &= $45 bitwise_and_int $43 &= $44 copy_slot_masked $42 = Mask($43) label label 0x0000000C load_condition_mask CondMask = $54 label label 0x0000000B copy_slot_masked $41 = Mask($42) label label 0x00000006 load_condition_mask CondMask = $47 copy_constant $34 = 0 merge_condition_mask CondMask = $40 & $41 branch_if_no_lanes_active branch_if_no_lanes_active +57 (label 5 at #265) copy_constant eq = 0xFFFFFFFF copy_uniform $35 = colorGreen(0) add_imm_float $35 += 0x3F800000 (1.0) copy_slot_unmasked one = $35 splat_3_constants a.f1, a.f2, a.f3 = 0 copy_slot_unmasked $35 = F42 copy_slot_masked a.f1 = Mask($35) copy_slot_unmasked $35 = NAN1 copy_slot_masked a.f2 = Mask($35) copy_slot_unmasked $35 = NAN2 copy_slot_masked a.f3 = Mask($35) splat_3_constants b.f1, b.f2, b.f3 = 0 copy_slot_unmasked $35 = F42 copy_slot_unmasked $36 = one mul_float $35 *= $36 copy_slot_masked b.f1 = Mask($35) copy_slot_unmasked $35 = NAN1 copy_slot_unmasked $36 = one mul_float $35 *= $36 copy_slot_masked b.f2 = Mask($35) copy_slot_unmasked $35 = NAN2 copy_slot_unmasked $36 = one mul_float $35 *= $36 copy_slot_masked b.f3 = Mask($35) store_condition_mask $47 = CondMask copy_slot_unmasked $48 = eq copy_slot_unmasked $35 = a.f1 copy_slot_unmasked $36 = b.f1 cmpne_float $35 = notEqual($35, $36) copy_slot_unmasked $36 = a.f2 copy_slot_unmasked $37 = b.f2 cmpne_float $36 = notEqual($36, $37) copy_slot_unmasked $37 = a.f3 copy_slot_unmasked $38 = b.f3 cmpne_float $37 = notEqual($37, $38) bitwise_or_int $36 |= $37 bitwise_or_int $35 |= $36 merge_condition_mask CondMask = $47 & $48 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 14 at #260) copy_slot_unmasked $36 = a.f1 copy_slot_unmasked $37 = b.f1 cmpeq_float $36 = equal($36, $37) copy_slot_unmasked $37 = a.f2 copy_slot_unmasked $38 = b.f2 cmpeq_float $37 = equal($37, $38) copy_slot_unmasked $38 = a.f3 copy_slot_unmasked $39 = b.f3 cmpeq_float $38 = equal($38, $39) bitwise_and_int $37 &= $38 bitwise_and_int $36 &= $37 copy_slot_masked $35 = Mask($36) label label 0x0000000E load_condition_mask CondMask = $47 label label 0x0000000D bitwise_xor_imm_int $35 ^= 0xFFFFFFFF copy_slot_masked $34 = Mask($35) label label 0x00000005 load_condition_mask CondMask = $40 copy_constant $27 = 0 merge_condition_mask CondMask = $33 & $34 branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 4 at #323) copy_constant eq₁ = 0 copy_uniform $28 = colorGreen(0) add_imm_float $28 += 0x40000000 (2.0) copy_slot_unmasked two = $28 splat_3_constants a.f1₁, a.f2₁, a.f3₁ = 0 copy_slot_unmasked $28 = F42 copy_slot_masked a.f1₁ = Mask($28) copy_slot_unmasked $28 = F43 copy_slot_masked a.f2₁ = Mask($28) copy_slot_unmasked $28 = F44 copy_slot_masked a.f3₁ = Mask($28) splat_3_constants b.f1₁, b.f2₁, b.f3₁ = 0 copy_slot_unmasked $28 = F42 copy_slot_unmasked $29 = two mul_float $28 *= $29 copy_slot_masked b.f1₁ = Mask($28) copy_slot_unmasked $28 = F43 copy_slot_unmasked $29 = two mul_float $28 *= $29 copy_slot_masked b.f2₁ = Mask($28) copy_slot_unmasked $28 = F44 copy_slot_masked b.f3₁ = Mask($28) store_condition_mask $40 = CondMask copy_slot_unmasked $41 = eq₁ copy_slot_unmasked $28 = a.f1₁ copy_slot_unmasked $29 = b.f1₁ cmpne_float $28 = notEqual($28, $29) copy_slot_unmasked $29 = a.f2₁ copy_slot_unmasked $30 = b.f2₁ cmpne_float $29 = notEqual($29, $30) copy_slot_unmasked $30 = a.f3₁ copy_slot_unmasked $31 = b.f3₁ cmpne_float $30 = notEqual($30, $31) bitwise_or_int $29 |= $30 bitwise_or_int $28 |= $29 merge_condition_mask CondMask = $40 & $41 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 16 at #319) copy_slot_unmasked $29 = a.f1₁ copy_slot_unmasked $30 = b.f1₁ cmpeq_float $29 = equal($29, $30) copy_slot_unmasked $30 = a.f2₁ copy_slot_unmasked $31 = b.f2₁ cmpeq_float $30 = equal($30, $31) copy_slot_unmasked $31 = a.f3₁ copy_slot_unmasked $32 = b.f3₁ cmpeq_float $31 = equal($31, $32) bitwise_and_int $30 &= $31 bitwise_and_int $29 &= $30 copy_slot_masked $28 = Mask($29) label label 0x00000010 load_condition_mask CondMask = $40 label label 0x0000000F copy_slot_masked $27 = Mask($28) label label 0x00000004 load_condition_mask CondMask = $33 copy_constant $20 = 0 merge_condition_mask CondMask = $26 & $27 branch_if_no_lanes_active branch_if_no_lanes_active +55 (label 3 at #382) copy_constant eq₁ = 0xFFFFFFFF copy_uniform $21 = colorGreen(0) add_imm_float $21 += 0x40000000 (2.0) copy_slot_unmasked two = $21 splat_3_constants a.f1₁, a.f2₁, a.f3₁ = 0 copy_slot_unmasked $21 = F42 copy_slot_masked a.f1₁ = Mask($21) copy_slot_unmasked $21 = F43 copy_slot_masked a.f2₁ = Mask($21) copy_slot_unmasked $21 = F44 copy_slot_masked a.f3₁ = Mask($21) splat_3_constants b.f1₁, b.f2₁, b.f3₁ = 0 copy_slot_unmasked $21 = F42 copy_slot_unmasked $22 = two mul_float $21 *= $22 copy_slot_masked b.f1₁ = Mask($21) copy_slot_unmasked $21 = F43 copy_slot_unmasked $22 = two mul_float $21 *= $22 copy_slot_masked b.f2₁ = Mask($21) copy_slot_unmasked $21 = F44 copy_slot_masked b.f3₁ = Mask($21) store_condition_mask $33 = CondMask copy_slot_unmasked $34 = eq₁ copy_slot_unmasked $21 = a.f1₁ copy_slot_unmasked $22 = b.f1₁ cmpne_float $21 = notEqual($21, $22) copy_slot_unmasked $22 = a.f2₁ copy_slot_unmasked $23 = b.f2₁ cmpne_float $22 = notEqual($22, $23) copy_slot_unmasked $23 = a.f3₁ copy_slot_unmasked $24 = b.f3₁ cmpne_float $23 = notEqual($23, $24) bitwise_or_int $22 |= $23 bitwise_or_int $21 |= $22 merge_condition_mask CondMask = $33 & $34 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 18 at #377) copy_slot_unmasked $22 = a.f1₁ copy_slot_unmasked $23 = b.f1₁ cmpeq_float $22 = equal($22, $23) copy_slot_unmasked $23 = a.f2₁ copy_slot_unmasked $24 = b.f2₁ cmpeq_float $23 = equal($23, $24) copy_slot_unmasked $24 = a.f3₁ copy_slot_unmasked $25 = b.f3₁ cmpeq_float $24 = equal($24, $25) bitwise_and_int $23 &= $24 bitwise_and_int $22 &= $23 copy_slot_masked $21 = Mask($22) label label 0x00000012 load_condition_mask CondMask = $33 label label 0x00000011 bitwise_xor_imm_int $21 ^= 0xFFFFFFFF copy_slot_masked $20 = Mask($21) label label 0x00000003 load_condition_mask CondMask = $26 copy_constant $13 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 2 at #440) copy_constant eq₁ = 0 copy_uniform $14 = colorGreen(0) add_imm_float $14 += 0x40000000 (2.0) copy_slot_unmasked two = $14 splat_3_constants a.f1₁, a.f2₁, a.f3₁ = 0 copy_slot_unmasked $14 = NAN1 copy_slot_masked a.f1₁ = Mask($14) copy_slot_unmasked $14 = ZM copy_slot_masked a.f2₁ = Mask($14) copy_slot_unmasked $14 = ZP copy_slot_masked a.f3₁ = Mask($14) splat_3_constants b.f1₁, b.f2₁, b.f3₁ = 0 copy_slot_unmasked $14 = NAN1 copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_masked b.f1₁ = Mask($14) copy_slot_unmasked $14 = ZM copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_masked b.f2₁ = Mask($14) copy_slot_unmasked $14 = ZP copy_slot_masked b.f3₁ = Mask($14) store_condition_mask $26 = CondMask copy_slot_unmasked $27 = eq₁ copy_slot_unmasked $14 = a.f1₁ copy_slot_unmasked $15 = b.f1₁ cmpne_float $14 = notEqual($14, $15) copy_slot_unmasked $15 = a.f2₁ copy_slot_unmasked $16 = b.f2₁ cmpne_float $15 = notEqual($15, $16) copy_slot_unmasked $16 = a.f3₁ copy_slot_unmasked $17 = b.f3₁ cmpne_float $16 = notEqual($16, $17) bitwise_or_int $15 |= $16 bitwise_or_int $14 |= $15 merge_condition_mask CondMask = $26 & $27 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 20 at #436) copy_slot_unmasked $15 = a.f1₁ copy_slot_unmasked $16 = b.f1₁ cmpeq_float $15 = equal($15, $16) copy_slot_unmasked $16 = a.f2₁ copy_slot_unmasked $17 = b.f2₁ cmpeq_float $16 = equal($16, $17) copy_slot_unmasked $17 = a.f3₁ copy_slot_unmasked $18 = b.f3₁ cmpeq_float $17 = equal($17, $18) bitwise_and_int $16 &= $17 bitwise_and_int $15 &= $16 copy_slot_masked $14 = Mask($15) label label 0x00000014 load_condition_mask CondMask = $26 label label 0x00000013 copy_slot_masked $13 = Mask($14) label label 0x00000002 load_condition_mask CondMask = $19 copy_constant $0 = 0 merge_condition_mask CondMask = $12 & $13 branch_if_no_lanes_active branch_if_no_lanes_active +55 (label 1 at #499) copy_constant eq₁ = 0xFFFFFFFF copy_uniform $1 = colorGreen(0) add_imm_float $1 += 0x40000000 (2.0) copy_slot_unmasked two = $1 splat_3_constants a.f1₁, a.f2₁, a.f3₁ = 0 copy_slot_unmasked $1 = NAN1 copy_slot_masked a.f1₁ = Mask($1) copy_slot_unmasked $1 = ZM copy_slot_masked a.f2₁ = Mask($1) copy_slot_unmasked $1 = ZP copy_slot_masked a.f3₁ = Mask($1) splat_3_constants b.f1₁, b.f2₁, b.f3₁ = 0 copy_slot_unmasked $1 = NAN1 copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_masked b.f1₁ = Mask($1) copy_slot_unmasked $1 = ZM copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_masked b.f2₁ = Mask($1) copy_slot_unmasked $1 = ZP copy_slot_masked b.f3₁ = Mask($1) store_condition_mask $19 = CondMask copy_slot_unmasked $20 = eq₁ copy_slot_unmasked $1 = a.f1₁ copy_slot_unmasked $2 = b.f1₁ cmpne_float $1 = notEqual($1, $2) copy_slot_unmasked $2 = a.f2₁ copy_slot_unmasked $3 = b.f2₁ cmpne_float $2 = notEqual($2, $3) copy_slot_unmasked $3 = a.f3₁ copy_slot_unmasked $4 = b.f3₁ cmpne_float $3 = notEqual($3, $4) bitwise_or_int $2 |= $3 bitwise_or_int $1 |= $2 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +13 (label 22 at #494) copy_slot_unmasked $2 = a.f1₁ copy_slot_unmasked $3 = b.f1₁ cmpeq_float $2 = equal($2, $3) copy_slot_unmasked $3 = a.f2₁ copy_slot_unmasked $4 = b.f2₁ cmpeq_float $3 = equal($3, $4) copy_slot_unmasked $4 = a.f3₁ copy_slot_unmasked $5 = b.f3₁ cmpeq_float $4 = equal($4, $5) bitwise_and_int $3 &= $4 bitwise_and_int $2 &= $3 copy_slot_masked $1 = Mask($2) label label 0x00000016 load_condition_mask CondMask = $19 label label 0x00000015 bitwise_xor_imm_int $1 ^= 0xFFFFFFFF copy_slot_masked $0 = Mask($1) label label 0x00000001 load_condition_mask CondMask = $12 swizzle_4 $0..3 = ($0..3).xxxx stack_rewind copy_4_uniforms $4..7 = colorRed copy_4_uniforms $8..11 = colorGreen mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) load_src src.rgba = $0..3