703 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(1) mul_imm_float $0 *= 0x42340000 (45.0) copy_slot_unmasked F45 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x42380000 (46.0) copy_slot_unmasked F46 = $0 copy_uniform $0 = colorGreen(1) mul_imm_float $0 *= 0x423C0000 (47.0) copy_slot_unmasked F47 = $0 copy_uniform $0 = colorGreen(0) add_imm_float $0 += 0x3F800000 (1.0) copy_slot_unmasked _0_one = $0 splat_4_constants _1_a[0].f1, _1_a[0].v2, _1_a[1].f1 = 0 splat_2_constants _1_a[1].v2 = 0 copy_slot_unmasked _1_a[0].f1 = F42 copy_slot_unmasked _1_a[0].v2(0) = ZM copy_slot_unmasked _1_a[0].v2(1) = ZP copy_3_slots_unmasked _1_a[1].f1, _1_a[1].v2 = F43, F44, F45 splat_4_constants _2_b[0].f1, _2_b[0].v2, _2_b[1].f1 = 0 splat_2_constants _2_b[1].v2 = 0 copy_slot_unmasked $0 = F42 copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked _2_b[0].f1 = $0 copy_slot_unmasked $0 = ZM copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked $1 = ZP copy_slot_unmasked $2 = _0_one mul_float $1 *= $2 copy_2_slots_unmasked _2_b[0].v2 = $0..1 copy_slot_unmasked $0 = F43 copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked _2_b[1].f1 = $0 copy_slot_unmasked $0 = F44 copy_slot_unmasked $1 = _0_one mul_float $0 *= $1 copy_slot_unmasked $1 = F45 copy_slot_unmasked $2 = _0_one mul_float $1 *= $2 copy_2_slots_unmasked _2_b[1].v2 = $0..1 store_condition_mask $12 = CondMask store_condition_mask $21 = CondMask store_condition_mask $30 = CondMask store_condition_mask $39 = CondMask store_condition_mask $48 = CondMask store_condition_mask $57 = CondMask store_condition_mask $66 = CondMask store_condition_mask $74 = CondMask copy_constant $75 = 0xFFFFFFFF copy_slot_unmasked $67 = _1_a[0].f1 copy_slot_unmasked $68 = _2_b[0].f1 cmpne_float $67 = notEqual($67, $68) copy_2_slots_unmasked $68..69 = _1_a[0].v2 copy_2_slots_unmasked $70..71 = _2_b[0].v2 cmpne_2_floats $68..69 = notEqual($68..69, $70..71) bitwise_or_int $68 |= $69 bitwise_or_int $67 |= $68 copy_slot_unmasked $68 = _1_a[1].f1 copy_slot_unmasked $69 = _2_b[1].f1 cmpne_float $68 = notEqual($68, $69) copy_2_slots_unmasked $69..70 = _1_a[1].v2 copy_2_slots_unmasked $71..72 = _2_b[1].v2 cmpne_2_floats $69..70 = notEqual($69..70, $71..72) bitwise_or_int $69 |= $70 bitwise_or_int $68 |= $69 bitwise_or_int $67 |= $68 merge_condition_mask CondMask = $74 & $75 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 8 at #117) copy_slot_unmasked $68 = _1_a[0].f1 copy_slot_unmasked $69 = _2_b[0].f1 cmpeq_float $68 = equal($68, $69) copy_2_slots_unmasked $69..70 = _1_a[0].v2 copy_2_slots_unmasked $71..72 = _2_b[0].v2 cmpeq_2_floats $69..70 = equal($69..70, $71..72) bitwise_and_int $69 &= $70 bitwise_and_int $68 &= $69 copy_slot_unmasked $69 = _1_a[1].f1 copy_slot_unmasked $70 = _2_b[1].f1 cmpeq_float $69 = equal($69, $70) copy_2_slots_unmasked $70..71 = _1_a[1].v2 copy_2_slots_unmasked $72..73 = _2_b[1].v2 cmpeq_2_floats $70..71 = equal($70..71, $72..73) bitwise_and_int $70 &= $71 bitwise_and_int $69 &= $70 bitwise_and_int $68 &= $69 copy_slot_masked $67 = Mask($68) label label 0x00000008 load_condition_mask CondMask = $74 copy_constant $58 = 0 merge_condition_mask CondMask = $66 & $67 branch_if_no_lanes_active branch_if_no_lanes_active +84 (label 7 at #205) copy_constant eq = 0 copy_uniform $59 = colorGreen(0) add_imm_float $59 += 0x3F800000 (1.0) copy_slot_unmasked one = $59 splat_4_constants a[0].f1, a[0].v2, a[1].f1 = 0 splat_2_constants a[1].v2 = 0 copy_slot_unmasked $59 = F42 copy_slot_masked a[0].f1 = Mask($59) copy_slot_unmasked $59 = ZM copy_slot_unmasked $60 = ZP copy_2_slots_masked a[0].v2 = Mask($59..60) copy_slot_unmasked $59 = F43 copy_slot_masked a[1].f1 = Mask($59) copy_2_slots_unmasked $59..60 = F44, F45 copy_2_slots_masked a[1].v2 = Mask($59..60) splat_4_constants b[0].f1, b[0].v2, b[1].f1 = 0 splat_2_constants b[1].v2 = 0 copy_slot_unmasked $59 = F42 copy_slot_unmasked $60 = one mul_float $59 *= $60 copy_slot_masked b[0].f1 = Mask($59) copy_slot_unmasked $59 = ZM copy_slot_unmasked $60 = one mul_float $59 *= $60 copy_slot_unmasked $60 = ZP copy_slot_unmasked $61 = one mul_float $60 *= $61 copy_2_slots_masked b[0].v2 = Mask($59..60) copy_slot_unmasked $59 = F43 copy_slot_unmasked $60 = one mul_float $59 *= $60 copy_slot_masked b[1].f1 = Mask($59) copy_slot_unmasked $59 = F44 copy_slot_unmasked $60 = one mul_float $59 *= $60 copy_slot_unmasked $60 = F45 copy_slot_unmasked $61 = one mul_float $60 *= $61 copy_2_slots_masked b[1].v2 = Mask($59..60) store_condition_mask $74 = CondMask copy_slot_unmasked $75 = eq copy_slot_unmasked $59 = a[0].f1 copy_slot_unmasked $60 = b[0].f1 cmpne_float $59 = notEqual($59, $60) copy_2_slots_unmasked $60..61 = a[0].v2 copy_2_slots_unmasked $62..63 = b[0].v2 cmpne_2_floats $60..61 = notEqual($60..61, $62..63) bitwise_or_int $60 |= $61 bitwise_or_int $59 |= $60 copy_slot_unmasked $60 = a[1].f1 copy_slot_unmasked $61 = b[1].f1 cmpne_float $60 = notEqual($60, $61) copy_2_slots_unmasked $61..62 = a[1].v2 copy_2_slots_unmasked $63..64 = b[1].v2 cmpne_2_floats $61..62 = notEqual($61..62, $63..64) bitwise_or_int $61 |= $62 bitwise_or_int $60 |= $61 bitwise_or_int $59 |= $60 merge_condition_mask CondMask = $74 & $75 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 10 at #200) copy_slot_unmasked $60 = a[0].f1 copy_slot_unmasked $61 = b[0].f1 cmpeq_float $60 = equal($60, $61) copy_2_slots_unmasked $61..62 = a[0].v2 copy_2_slots_unmasked $63..64 = b[0].v2 cmpeq_2_floats $61..62 = equal($61..62, $63..64) bitwise_and_int $61 &= $62 bitwise_and_int $60 &= $61 copy_slot_unmasked $61 = a[1].f1 copy_slot_unmasked $62 = b[1].f1 cmpeq_float $61 = equal($61, $62) copy_2_slots_unmasked $62..63 = a[1].v2 copy_2_slots_unmasked $64..65 = b[1].v2 cmpeq_2_floats $62..63 = equal($62..63, $64..65) bitwise_and_int $62 &= $63 bitwise_and_int $61 &= $62 bitwise_and_int $60 &= $61 copy_slot_masked $59 = Mask($60) label label 0x0000000A load_condition_mask CondMask = $74 label label 0x00000009 bitwise_xor_imm_int $59 ^= 0xFFFFFFFF copy_slot_masked $58 = Mask($59) label label 0x00000007 load_condition_mask CondMask = $66 copy_constant $49 = 0 merge_condition_mask CondMask = $57 & $58 branch_if_no_lanes_active branch_if_no_lanes_active +82 (label 6 at #291) copy_constant eq = 0 copy_uniform $50 = colorGreen(0) add_imm_float $50 += 0x3F800000 (1.0) copy_slot_unmasked one = $50 splat_4_constants a[0].f1, a[0].v2, a[1].f1 = 0 splat_2_constants a[1].v2 = 0 copy_slot_unmasked $50 = F42 copy_slot_masked a[0].f1 = Mask($50) copy_2_slots_unmasked $50..51 = NAN1, NAN2 copy_2_slots_masked a[0].v2 = Mask($50..51) copy_slot_unmasked $50 = F43 copy_slot_masked a[1].f1 = Mask($50) copy_2_slots_unmasked $50..51 = F44, F45 copy_2_slots_masked a[1].v2 = Mask($50..51) splat_4_constants b[0].f1, b[0].v2, b[1].f1 = 0 splat_2_constants b[1].v2 = 0 copy_slot_unmasked $50 = F42 copy_slot_unmasked $51 = one mul_float $50 *= $51 copy_slot_masked b[0].f1 = Mask($50) copy_slot_unmasked $50 = NAN1 copy_slot_unmasked $51 = one mul_float $50 *= $51 copy_slot_unmasked $51 = NAN2 copy_slot_unmasked $52 = one mul_float $51 *= $52 copy_2_slots_masked b[0].v2 = Mask($50..51) copy_slot_unmasked $50 = F43 copy_slot_unmasked $51 = one mul_float $50 *= $51 copy_slot_masked b[1].f1 = Mask($50) copy_slot_unmasked $50 = F44 copy_slot_unmasked $51 = one mul_float $50 *= $51 copy_slot_unmasked $51 = F45 copy_slot_unmasked $52 = one mul_float $51 *= $52 copy_2_slots_masked b[1].v2 = Mask($50..51) store_condition_mask $66 = CondMask copy_slot_unmasked $67 = eq copy_slot_unmasked $50 = a[0].f1 copy_slot_unmasked $51 = b[0].f1 cmpne_float $50 = notEqual($50, $51) copy_2_slots_unmasked $51..52 = a[0].v2 copy_2_slots_unmasked $53..54 = b[0].v2 cmpne_2_floats $51..52 = notEqual($51..52, $53..54) bitwise_or_int $51 |= $52 bitwise_or_int $50 |= $51 copy_slot_unmasked $51 = a[1].f1 copy_slot_unmasked $52 = b[1].f1 cmpne_float $51 = notEqual($51, $52) copy_2_slots_unmasked $52..53 = a[1].v2 copy_2_slots_unmasked $54..55 = b[1].v2 cmpne_2_floats $52..53 = notEqual($52..53, $54..55) bitwise_or_int $52 |= $53 bitwise_or_int $51 |= $52 bitwise_or_int $50 |= $51 merge_condition_mask CondMask = $66 & $67 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 12 at #287) copy_slot_unmasked $51 = a[0].f1 copy_slot_unmasked $52 = b[0].f1 cmpeq_float $51 = equal($51, $52) copy_2_slots_unmasked $52..53 = a[0].v2 copy_2_slots_unmasked $54..55 = b[0].v2 cmpeq_2_floats $52..53 = equal($52..53, $54..55) bitwise_and_int $52 &= $53 bitwise_and_int $51 &= $52 copy_slot_unmasked $52 = a[1].f1 copy_slot_unmasked $53 = b[1].f1 cmpeq_float $52 = equal($52, $53) copy_2_slots_unmasked $53..54 = a[1].v2 copy_2_slots_unmasked $55..56 = b[1].v2 cmpeq_2_floats $53..54 = equal($53..54, $55..56) bitwise_and_int $53 &= $54 bitwise_and_int $52 &= $53 bitwise_and_int $51 &= $52 copy_slot_masked $50 = Mask($51) label label 0x0000000C load_condition_mask CondMask = $66 label label 0x0000000B copy_slot_masked $49 = Mask($50) label label 0x00000006 load_condition_mask CondMask = $57 copy_constant $40 = 0 merge_condition_mask CondMask = $48 & $49 branch_if_no_lanes_active branch_if_no_lanes_active +83 (label 5 at #378) copy_constant eq = 0xFFFFFFFF copy_uniform $41 = colorGreen(0) add_imm_float $41 += 0x3F800000 (1.0) copy_slot_unmasked one = $41 splat_4_constants a[0].f1, a[0].v2, a[1].f1 = 0 splat_2_constants a[1].v2 = 0 copy_slot_unmasked $41 = F42 copy_slot_masked a[0].f1 = Mask($41) copy_2_slots_unmasked $41..42 = NAN1, NAN2 copy_2_slots_masked a[0].v2 = Mask($41..42) copy_slot_unmasked $41 = F43 copy_slot_masked a[1].f1 = Mask($41) copy_2_slots_unmasked $41..42 = F44, F45 copy_2_slots_masked a[1].v2 = Mask($41..42) splat_4_constants b[0].f1, b[0].v2, b[1].f1 = 0 splat_2_constants b[1].v2 = 0 copy_slot_unmasked $41 = F42 copy_slot_unmasked $42 = one mul_float $41 *= $42 copy_slot_masked b[0].f1 = Mask($41) copy_slot_unmasked $41 = NAN1 copy_slot_unmasked $42 = one mul_float $41 *= $42 copy_slot_unmasked $42 = NAN2 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_2_slots_masked b[0].v2 = Mask($41..42) copy_slot_unmasked $41 = F43 copy_slot_unmasked $42 = one mul_float $41 *= $42 copy_slot_masked b[1].f1 = Mask($41) copy_slot_unmasked $41 = F44 copy_slot_unmasked $42 = one mul_float $41 *= $42 copy_slot_unmasked $42 = F45 copy_slot_unmasked $43 = one mul_float $42 *= $43 copy_2_slots_masked b[1].v2 = Mask($41..42) store_condition_mask $57 = CondMask copy_slot_unmasked $58 = eq copy_slot_unmasked $41 = a[0].f1 copy_slot_unmasked $42 = b[0].f1 cmpne_float $41 = notEqual($41, $42) copy_2_slots_unmasked $42..43 = a[0].v2 copy_2_slots_unmasked $44..45 = b[0].v2 cmpne_2_floats $42..43 = notEqual($42..43, $44..45) bitwise_or_int $42 |= $43 bitwise_or_int $41 |= $42 copy_slot_unmasked $42 = a[1].f1 copy_slot_unmasked $43 = b[1].f1 cmpne_float $42 = notEqual($42, $43) copy_2_slots_unmasked $43..44 = a[1].v2 copy_2_slots_unmasked $45..46 = b[1].v2 cmpne_2_floats $43..44 = notEqual($43..44, $45..46) bitwise_or_int $43 |= $44 bitwise_or_int $42 |= $43 bitwise_or_int $41 |= $42 merge_condition_mask CondMask = $57 & $58 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 14 at #373) copy_slot_unmasked $42 = a[0].f1 copy_slot_unmasked $43 = b[0].f1 cmpeq_float $42 = equal($42, $43) copy_2_slots_unmasked $43..44 = a[0].v2 copy_2_slots_unmasked $45..46 = b[0].v2 cmpeq_2_floats $43..44 = equal($43..44, $45..46) bitwise_and_int $43 &= $44 bitwise_and_int $42 &= $43 copy_slot_unmasked $43 = a[1].f1 copy_slot_unmasked $44 = b[1].f1 cmpeq_float $43 = equal($43, $44) copy_2_slots_unmasked $44..45 = a[1].v2 copy_2_slots_unmasked $46..47 = b[1].v2 cmpeq_2_floats $44..45 = equal($44..45, $46..47) bitwise_and_int $44 &= $45 bitwise_and_int $43 &= $44 bitwise_and_int $42 &= $43 copy_slot_masked $41 = Mask($42) label label 0x0000000E load_condition_mask CondMask = $57 label label 0x0000000D bitwise_xor_imm_int $41 ^= 0xFFFFFFFF copy_slot_masked $40 = Mask($41) label label 0x00000005 load_condition_mask CondMask = $48 copy_constant $31 = 0 merge_condition_mask CondMask = $39 & $40 branch_if_no_lanes_active branch_if_no_lanes_active +80 (label 4 at #462) copy_constant eq₁ = 0 copy_uniform $32 = colorGreen(0) add_imm_float $32 += 0x40000000 (2.0) copy_slot_unmasked two = $32 splat_4_constants a[0].f1₁, a[0].v2₁, a[1].f1₁ = 0 splat_2_constants a[1].v2₁ = 0 copy_slot_unmasked $32 = F42 copy_slot_masked a[0].f1₁ = Mask($32) copy_2_slots_unmasked $32..33 = F43, F44 copy_2_slots_masked a[0].v2₁ = Mask($32..33) copy_slot_unmasked $32 = F45 copy_slot_masked a[1].f1₁ = Mask($32) copy_2_slots_unmasked $32..33 = F46, F47 copy_2_slots_masked a[1].v2₁ = Mask($32..33) splat_4_constants b[0].f1₁, b[0].v2₁, b[1].f1₁ = 0 splat_2_constants b[1].v2₁ = 0 copy_slot_unmasked $32 = F42 copy_slot_unmasked $33 = two mul_float $32 *= $33 copy_slot_masked b[0].f1₁ = Mask($32) copy_slot_unmasked $32 = F43 copy_slot_unmasked $33 = two mul_float $32 *= $33 copy_slot_unmasked $33 = F44 copy_slot_unmasked $34 = two mul_float $33 *= $34 copy_2_slots_masked b[0].v2₁ = Mask($32..33) copy_slot_unmasked $32 = F45 copy_slot_unmasked $33 = two mul_float $32 *= $33 copy_slot_masked b[1].f1₁ = Mask($32) copy_slot_unmasked $32 = F46 copy_slot_unmasked $33 = two mul_float $32 *= $33 copy_slot_unmasked $33 = F47 copy_2_slots_masked b[1].v2₁ = Mask($32..33) store_condition_mask $48 = CondMask copy_slot_unmasked $49 = eq₁ copy_slot_unmasked $32 = a[0].f1₁ copy_slot_unmasked $33 = b[0].f1₁ cmpne_float $32 = notEqual($32, $33) copy_2_slots_unmasked $33..34 = a[0].v2₁ copy_2_slots_unmasked $35..36 = b[0].v2₁ cmpne_2_floats $33..34 = notEqual($33..34, $35..36) bitwise_or_int $33 |= $34 bitwise_or_int $32 |= $33 copy_slot_unmasked $33 = a[1].f1₁ copy_slot_unmasked $34 = b[1].f1₁ cmpne_float $33 = notEqual($33, $34) copy_2_slots_unmasked $34..35 = a[1].v2₁ copy_2_slots_unmasked $36..37 = b[1].v2₁ cmpne_2_floats $34..35 = notEqual($34..35, $36..37) bitwise_or_int $34 |= $35 bitwise_or_int $33 |= $34 bitwise_or_int $32 |= $33 merge_condition_mask CondMask = $48 & $49 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 16 at #458) copy_slot_unmasked $33 = a[0].f1₁ copy_slot_unmasked $34 = b[0].f1₁ cmpeq_float $33 = equal($33, $34) copy_2_slots_unmasked $34..35 = a[0].v2₁ copy_2_slots_unmasked $36..37 = b[0].v2₁ cmpeq_2_floats $34..35 = equal($34..35, $36..37) bitwise_and_int $34 &= $35 bitwise_and_int $33 &= $34 copy_slot_unmasked $34 = a[1].f1₁ copy_slot_unmasked $35 = b[1].f1₁ cmpeq_float $34 = equal($34, $35) copy_2_slots_unmasked $35..36 = a[1].v2₁ copy_2_slots_unmasked $37..38 = b[1].v2₁ cmpeq_2_floats $35..36 = equal($35..36, $37..38) bitwise_and_int $35 &= $36 bitwise_and_int $34 &= $35 bitwise_and_int $33 &= $34 copy_slot_masked $32 = Mask($33) label label 0x00000010 load_condition_mask CondMask = $48 label label 0x0000000F copy_slot_masked $31 = Mask($32) label label 0x00000004 load_condition_mask CondMask = $39 copy_constant $22 = 0 merge_condition_mask CondMask = $30 & $31 branch_if_no_lanes_active branch_if_no_lanes_active +82 (label 3 at #548) copy_constant eq₁ = 0xFFFFFFFF copy_uniform $23 = colorGreen(0) add_imm_float $23 += 0x40000000 (2.0) copy_slot_unmasked two = $23 splat_4_constants a[0].f1₁, a[0].v2₁, a[1].f1₁ = 0 splat_2_constants a[1].v2₁ = 0 copy_slot_unmasked $23 = F42 copy_slot_masked a[0].f1₁ = Mask($23) copy_2_slots_unmasked $23..24 = F43, F44 copy_2_slots_masked a[0].v2₁ = Mask($23..24) copy_slot_unmasked $23 = F45 copy_slot_masked a[1].f1₁ = Mask($23) copy_2_slots_unmasked $23..24 = F46, F47 copy_2_slots_masked a[1].v2₁ = Mask($23..24) splat_4_constants b[0].f1₁, b[0].v2₁, b[1].f1₁ = 0 splat_2_constants b[1].v2₁ = 0 copy_slot_unmasked $23 = F42 copy_slot_unmasked $24 = two mul_float $23 *= $24 copy_slot_masked b[0].f1₁ = Mask($23) copy_slot_unmasked $23 = F43 copy_slot_unmasked $24 = two mul_float $23 *= $24 copy_slot_unmasked $24 = F44 copy_slot_unmasked $25 = two mul_float $24 *= $25 copy_2_slots_masked b[0].v2₁ = Mask($23..24) copy_slot_unmasked $23 = F45 copy_slot_unmasked $24 = two mul_float $23 *= $24 copy_slot_masked b[1].f1₁ = Mask($23) copy_slot_unmasked $23 = F46 copy_slot_unmasked $24 = two mul_float $23 *= $24 copy_slot_unmasked $24 = F47 stack_rewind copy_2_slots_masked b[1].v2₁ = Mask($23..24) store_condition_mask $39 = CondMask copy_slot_unmasked $40 = eq₁ copy_slot_unmasked $23 = a[0].f1₁ copy_slot_unmasked $24 = b[0].f1₁ cmpne_float $23 = notEqual($23, $24) copy_2_slots_unmasked $24..25 = a[0].v2₁ copy_2_slots_unmasked $26..27 = b[0].v2₁ cmpne_2_floats $24..25 = notEqual($24..25, $26..27) bitwise_or_int $24 |= $25 bitwise_or_int $23 |= $24 copy_slot_unmasked $24 = a[1].f1₁ copy_slot_unmasked $25 = b[1].f1₁ cmpne_float $24 = notEqual($24, $25) copy_2_slots_unmasked $25..26 = a[1].v2₁ copy_2_slots_unmasked $27..28 = b[1].v2₁ cmpne_2_floats $25..26 = notEqual($25..26, $27..28) bitwise_or_int $25 |= $26 bitwise_or_int $24 |= $25 bitwise_or_int $23 |= $24 merge_condition_mask CondMask = $39 & $40 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 18 at #543) copy_slot_unmasked $24 = a[0].f1₁ copy_slot_unmasked $25 = b[0].f1₁ cmpeq_float $24 = equal($24, $25) copy_2_slots_unmasked $25..26 = a[0].v2₁ copy_2_slots_unmasked $27..28 = b[0].v2₁ cmpeq_2_floats $25..26 = equal($25..26, $27..28) bitwise_and_int $25 &= $26 bitwise_and_int $24 &= $25 copy_slot_unmasked $25 = a[1].f1₁ copy_slot_unmasked $26 = b[1].f1₁ cmpeq_float $25 = equal($25, $26) copy_2_slots_unmasked $26..27 = a[1].v2₁ copy_2_slots_unmasked $28..29 = b[1].v2₁ cmpeq_2_floats $26..27 = equal($26..27, $28..29) bitwise_and_int $26 &= $27 bitwise_and_int $25 &= $26 bitwise_and_int $24 &= $25 copy_slot_masked $23 = Mask($24) label label 0x00000012 load_condition_mask CondMask = $39 label label 0x00000011 bitwise_xor_imm_int $23 ^= 0xFFFFFFFF copy_slot_masked $22 = Mask($23) label label 0x00000003 load_condition_mask CondMask = $30 copy_constant $13 = 0 merge_condition_mask CondMask = $21 & $22 branch_if_no_lanes_active branch_if_no_lanes_active +81 (label 2 at #633) copy_constant eq₁ = 0 copy_uniform $14 = colorGreen(0) add_imm_float $14 += 0x40000000 (2.0) copy_slot_unmasked two = $14 splat_4_constants a[0].f1₁, a[0].v2₁, a[1].f1₁ = 0 splat_2_constants a[1].v2₁ = 0 copy_slot_unmasked $14 = NAN1 copy_slot_masked a[0].f1₁ = Mask($14) copy_slot_unmasked $14 = ZM copy_slot_unmasked $15 = ZP copy_2_slots_masked a[0].v2₁ = Mask($14..15) copy_slot_unmasked $14 = F42 copy_slot_masked a[1].f1₁ = Mask($14) copy_2_slots_unmasked $14..15 = F43, F44 copy_2_slots_masked a[1].v2₁ = Mask($14..15) splat_4_constants b[0].f1₁, b[0].v2₁, b[1].f1₁ = 0 splat_2_constants b[1].v2₁ = 0 copy_slot_unmasked $14 = NAN1 copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_masked b[0].f1₁ = Mask($14) copy_slot_unmasked $14 = ZM copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_unmasked $15 = ZP copy_slot_unmasked $16 = two mul_float $15 *= $16 copy_2_slots_masked b[0].v2₁ = Mask($14..15) copy_slot_unmasked $14 = F42 copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_masked b[1].f1₁ = Mask($14) copy_slot_unmasked $14 = F43 copy_slot_unmasked $15 = two mul_float $14 *= $15 copy_slot_unmasked $15 = F44 copy_2_slots_masked b[1].v2₁ = Mask($14..15) store_condition_mask $30 = CondMask copy_slot_unmasked $31 = eq₁ copy_slot_unmasked $14 = a[0].f1₁ copy_slot_unmasked $15 = b[0].f1₁ cmpne_float $14 = notEqual($14, $15) copy_2_slots_unmasked $15..16 = a[0].v2₁ copy_2_slots_unmasked $17..18 = b[0].v2₁ cmpne_2_floats $15..16 = notEqual($15..16, $17..18) bitwise_or_int $15 |= $16 bitwise_or_int $14 |= $15 copy_slot_unmasked $15 = a[1].f1₁ copy_slot_unmasked $16 = b[1].f1₁ cmpne_float $15 = notEqual($15, $16) copy_2_slots_unmasked $16..17 = a[1].v2₁ copy_2_slots_unmasked $18..19 = b[1].v2₁ cmpne_2_floats $16..17 = notEqual($16..17, $18..19) bitwise_or_int $16 |= $17 bitwise_or_int $15 |= $16 bitwise_or_int $14 |= $15 merge_condition_mask CondMask = $30 & $31 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 20 at #629) copy_slot_unmasked $15 = a[0].f1₁ copy_slot_unmasked $16 = b[0].f1₁ cmpeq_float $15 = equal($15, $16) copy_2_slots_unmasked $16..17 = a[0].v2₁ copy_2_slots_unmasked $18..19 = b[0].v2₁ cmpeq_2_floats $16..17 = equal($16..17, $18..19) bitwise_and_int $16 &= $17 bitwise_and_int $15 &= $16 copy_slot_unmasked $16 = a[1].f1₁ copy_slot_unmasked $17 = b[1].f1₁ cmpeq_float $16 = equal($16, $17) copy_2_slots_unmasked $17..18 = a[1].v2₁ copy_2_slots_unmasked $19..20 = b[1].v2₁ cmpeq_2_floats $17..18 = equal($17..18, $19..20) bitwise_and_int $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 = $30 label label 0x00000013 copy_slot_masked $13 = Mask($14) label label 0x00000002 load_condition_mask CondMask = $21 copy_constant $0 = 0 merge_condition_mask CondMask = $12 & $13 branch_if_no_lanes_active branch_if_no_lanes_active +82 (label 1 at #719) copy_constant eq₁ = 0xFFFFFFFF copy_uniform $1 = colorGreen(0) add_imm_float $1 += 0x40000000 (2.0) copy_slot_unmasked two = $1 splat_4_constants a[0].f1₁, a[0].v2₁, a[1].f1₁ = 0 splat_2_constants a[1].v2₁ = 0 copy_slot_unmasked $1 = NAN1 copy_slot_masked a[0].f1₁ = Mask($1) copy_slot_unmasked $1 = ZM copy_slot_unmasked $2 = ZP copy_2_slots_masked a[0].v2₁ = Mask($1..2) copy_slot_unmasked $1 = F42 copy_slot_masked a[1].f1₁ = Mask($1) copy_2_slots_unmasked $1..2 = F43, F44 copy_2_slots_masked a[1].v2₁ = Mask($1..2) splat_4_constants b[0].f1₁, b[0].v2₁, b[1].f1₁ = 0 splat_2_constants b[1].v2₁ = 0 copy_slot_unmasked $1 = NAN1 copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_masked b[0].f1₁ = Mask($1) copy_slot_unmasked $1 = ZM copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_unmasked $2 = ZP copy_slot_unmasked $3 = two mul_float $2 *= $3 copy_2_slots_masked b[0].v2₁ = Mask($1..2) copy_slot_unmasked $1 = F42 copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_masked b[1].f1₁ = Mask($1) copy_slot_unmasked $1 = F43 copy_slot_unmasked $2 = two mul_float $1 *= $2 copy_slot_unmasked $2 = F44 copy_2_slots_masked b[1].v2₁ = Mask($1..2) store_condition_mask $21 = CondMask copy_slot_unmasked $22 = eq₁ copy_slot_unmasked $1 = a[0].f1₁ copy_slot_unmasked $2 = b[0].f1₁ cmpne_float $1 = notEqual($1, $2) copy_2_slots_unmasked $2..3 = a[0].v2₁ copy_2_slots_unmasked $4..5 = b[0].v2₁ cmpne_2_floats $2..3 = notEqual($2..3, $4..5) bitwise_or_int $2 |= $3 bitwise_or_int $1 |= $2 copy_slot_unmasked $2 = a[1].f1₁ copy_slot_unmasked $3 = b[1].f1₁ cmpne_float $2 = notEqual($2, $3) copy_2_slots_unmasked $3..4 = a[1].v2₁ copy_2_slots_unmasked $5..6 = b[1].v2₁ cmpne_2_floats $3..4 = notEqual($3..4, $5..6) bitwise_or_int $3 |= $4 bitwise_or_int $2 |= $3 bitwise_or_int $1 |= $2 merge_condition_mask CondMask = $21 & $22 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 22 at #714) copy_slot_unmasked $2 = a[0].f1₁ copy_slot_unmasked $3 = b[0].f1₁ cmpeq_float $2 = equal($2, $3) copy_2_slots_unmasked $3..4 = a[0].v2₁ copy_2_slots_unmasked $5..6 = b[0].v2₁ cmpeq_2_floats $3..4 = equal($3..4, $5..6) bitwise_and_int $3 &= $4 bitwise_and_int $2 &= $3 copy_slot_unmasked $3 = a[1].f1₁ copy_slot_unmasked $4 = b[1].f1₁ cmpeq_float $3 = equal($3, $4) copy_2_slots_unmasked $4..5 = a[1].v2₁ copy_2_slots_unmasked $6..7 = b[1].v2₁ cmpeq_2_floats $4..5 = equal($4..5, $6..7) bitwise_and_int $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 = $21 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 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