116 instructions [immutable slots] i0 = 0x40400000 (3.0) i1 = 0x40000000 (2.0) i2 = 0x3F800000 (1.0) i3 = 0x00000002 (2.802597e-45) i4 = 0x00000001 (1.401298e-45) i5 = 0 i6 = 0x40800000 (4.0) i7 = 0x40400000 (3.0) i8 = 0x40000000 (2.0) i9 = 0x3F800000 (1.0) i10 = 0x00000003 (4.203895e-45) i11 = 0x00000002 (2.802597e-45) i12 = 0x00000001 (1.401298e-45) i13 = 0 store_src_rg coords = src.rg init_lane_masks CondMask = LoopMask = RetMask = true store_condition_mask $12 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +58 (label 2 at #62) store_return_mask $13 = RetMask copy_3_immutables_unmasked expected = i0..2 [0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)] copy_constant c = 0 store_loop_mask $14 = LoopMask jump jump +41 (label 4 at #50) label label 0x00000005 copy_slot_unmasked $21 = c mul_imm_int $21 *= 0x00000003 copy_from_indirect_uniform_unm $15..17 = Indirect(testMatrix3x3(0..2) + $21) copy_3_slots_unmasked vec = $15..17 copy_constant r = 0 store_loop_mask $15 = LoopMask jump jump +18 (label 7 at #35) label label 0x00000008 store_condition_mask $16 = CondMask copy_slot_unmasked $22 = r copy_3_immutables_unmasked $26..28 = i3..5 [0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45), 0] copy_from_indirect_unmasked $21 = Indirect($26 + $22) copy_from_indirect_unmasked $17 = Indirect(vec(0) + $21) copy_slot_unmasked $21 = r copy_from_indirect_unmasked $18 = Indirect(expected(0) + $21) cmpne_float $17 = notEqual($17, $18) merge_condition_mask CondMask = $16 & $17 copy_constant $18 = 0 copy_slot_masked [test3x3].result = Mask($18) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $16 copy_slot_unmasked $16 = r add_imm_int $16 += 0x00000001 copy_slot_masked r = Mask($16) label label 0x00000007 copy_slot_unmasked $16 = r cmplt_imm_int $16 = lessThan($16, 0x00000003) merge_loop_mask LoopMask &= $16 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -22 (label 8 at #18) label label 0x00000006 load_loop_mask LoopMask = $15 copy_3_slots_unmasked $15..17 = expected splat_3_constants $18..20 = 0x40400000 (3.0) add_3_floats $15..17 += $18..20 copy_3_slots_masked expected = Mask($15..17) copy_slot_unmasked $15 = c add_imm_int $15 += 0x00000001 copy_slot_masked c = Mask($15) label label 0x00000004 copy_slot_unmasked $15 = c cmplt_imm_int $15 = lessThan($15, 0x00000003) merge_loop_mask LoopMask &= $15 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -45 (label 5 at #10) label label 0x00000003 load_loop_mask LoopMask = $14 copy_constant $14 = 0xFFFFFFFF copy_slot_masked [test3x3].result = Mask($14) load_return_mask RetMask = $13 copy_slot_unmasked $13 = [test3x3].result label label 0x00000002 copy_constant $0 = 0 merge_condition_mask CondMask = $12 & $13 branch_if_no_lanes_active branch_if_no_lanes_active +60 (label 1 at #125) store_return_mask $1 = RetMask copy_4_immutables_unmasked expected₁ = i6..9 [0x40800000 (4.0), 0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)] copy_constant c₁ = 0 store_loop_mask $2 = LoopMask jump jump +41 (label 11 at #111) label label 0x0000000C copy_slot_unmasked $21 = c₁ mul_imm_int $21 *= 0x00000004 copy_from_indirect_uniform_unm $3..6 = Indirect(testMatrix4x4(0..3) + $21) copy_4_slots_unmasked vec₁ = $3..6 copy_constant r₁ = 0 store_loop_mask $3 = LoopMask jump jump +18 (label 14 at #96) label label 0x0000000F store_condition_mask $4 = CondMask copy_slot_unmasked $26 = r₁ copy_4_immutables_unmasked $22..25 = i10..13 [0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45), 0] copy_from_indirect_unmasked $21 = Indirect($22 + $26) copy_from_indirect_unmasked $5 = Indirect(vec₁(0) + $21) copy_slot_unmasked $21 = r₁ copy_from_indirect_unmasked $6 = Indirect(expected₁(0) + $21) cmpne_float $5 = notEqual($5, $6) merge_condition_mask CondMask = $4 & $5 copy_constant $6 = 0 copy_slot_masked [test4x4].result = Mask($6) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $4 copy_slot_unmasked $4 = r₁ add_imm_int $4 += 0x00000001 copy_slot_masked r₁ = Mask($4) label label 0x0000000E copy_slot_unmasked $4 = r₁ cmplt_imm_int $4 = lessThan($4, 0x00000004) merge_loop_mask LoopMask &= $4 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -22 (label 15 at #79) label label 0x0000000D load_loop_mask LoopMask = $3 copy_4_slots_unmasked $3..6 = expected₁ splat_4_constants $7..10 = 0x40800000 (4.0) add_4_floats $3..6 += $7..10 copy_4_slots_masked expected₁ = Mask($3..6) copy_slot_unmasked $3 = c₁ add_imm_int $3 += 0x00000001 copy_slot_masked c₁ = Mask($3) label label 0x0000000B copy_slot_unmasked $3 = c₁ cmplt_imm_int $3 = lessThan($3, 0x00000004) merge_loop_mask LoopMask &= $3 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -45 (label 12 at #71) label label 0x0000000A load_loop_mask LoopMask = $2 copy_constant $2 = 0xFFFFFFFF copy_slot_masked [test4x4].result = Mask($2) load_return_mask RetMask = $1 copy_slot_unmasked $1 = [test4x4].result label label 0x00000009 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