867 instructions [immutable slots] i0 = 0 i1 = 0 i2 = 0 i3 = 0 i4 = 0 i5 = 0 i6 = 0 i7 = 0 i8 = 0 i9 = 0 i10 = 0 i11 = 0 i12 = 0 i13 = 0 i14 = 0 i15 = 0 i16 = 0 i17 = 0 i18 = 0 i19 = 0 i20 = 0 i21 = 0 i22 = 0 i23 = 0 i24 = 0 i25 = 0 i26 = 0 i27 = 0 i28 = 0 i29 = 0x3F800000 (1.0) i30 = 0x3F800000 (1.0) i31 = 0x3F800000 (1.0) i32 = 0x3F800000 (1.0) i33 = 0x3F800000 (1.0) i34 = 0x3F800000 (1.0) i35 = 0x3F800000 (1.0) i36 = 0x3F800000 (1.0) i37 = 0x3F800000 (1.0) i38 = 0x3F800000 (1.0) i39 = 0x3F800000 (1.0) i40 = 0x3F800000 (1.0) i41 = 0x3F800000 (1.0) i42 = 0x3F800000 (1.0) i43 = 0x3F800000 (1.0) i44 = 0x3F800000 (1.0) i45 = 0x3F800000 (1.0) i46 = 0x3F800000 (1.0) i47 = 0x3F800000 (1.0) i48 = 0x3F800000 (1.0) i49 = 0x3F800000 (1.0) i50 = 0x3F800000 (1.0) i51 = 0x3F800000 (1.0) i52 = 0x3F800000 (1.0) i53 = 0x3F800000 (1.0) i54 = 0x3F800000 (1.0) i55 = 0x3F800000 (1.0) i56 = 0x3F800000 (1.0) i57 = 0x3F800000 (1.0) store_src_rg coords = src.rg init_lane_masks CondMask = LoopMask = RetMask = true store_condition_mask $51 = CondMask store_condition_mask $82 = CondMask store_condition_mask $98 = CondMask store_condition_mask $150 = CondMask store_condition_mask $181 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +67 (label 6 at #75) store_return_mask $182 = RetMask splat_4_constants m = 0 splat_4_constants mm = 0 copy_4_uniforms $183..186 = testMatrix2x2 copy_4_slots_masked m = Mask($183..186) copy_4_uniforms $183..186 = testMatrix2x2 copy_4_slots_masked m = Mask($183..186) store_condition_mask $183 = CondMask copy_4_slots_unmasked $184..187 = m copy_4_uniforms $188..191 = testMatrix2x2 cmpne_4_floats $184..187 = notEqual($184..187, $188..191) bitwise_or_2_ints $184..185 |= $186..187 bitwise_or_int $184 |= $185 merge_condition_mask CondMask = $183 & $184 copy_constant $185 = 0 copy_slot_masked [test_no_op_scalar_X_mat2].result = Mask($185) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $183 copy_4_slots_unmasked $184..187 = m copy_4_uniforms $188..191 = testMatrix2x2 cmpne_4_floats $184..187 = notEqual($184..187, $188..191) bitwise_or_2_ints $184..185 |= $186..187 bitwise_or_int $184 |= $185 merge_condition_mask CondMask = $183 & $184 copy_constant $185 = 0 copy_slot_masked [test_no_op_scalar_X_mat2].result = Mask($185) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $183 copy_4_slots_unmasked $184..187 = m copy_4_uniforms $188..191 = testMatrix2x2 cmpne_4_floats $184..187 = notEqual($184..187, $188..191) bitwise_or_2_ints $184..185 |= $186..187 bitwise_or_int $184 |= $185 merge_condition_mask CondMask = $183 & $184 copy_constant $185 = 0 copy_slot_masked [test_no_op_scalar_X_mat2].result = Mask($185) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $183 copy_4_slots_unmasked $183..186 = m splat_4_constants $187..190 = 0x80000000 (-0.0) bitwise_xor_4_ints $183..186 ^= $187..190 copy_4_slots_masked m = Mask($183..186) store_condition_mask $183 = CondMask copy_4_slots_unmasked $184..187 = m copy_4_uniforms $188..191 = testMatrix2x2 splat_4_constants $192..195 = 0x80000000 (-0.0) bitwise_xor_4_ints $188..191 ^= $192..195 cmpne_4_floats $184..187 = notEqual($184..187, $188..191) bitwise_or_2_ints $184..185 |= $186..187 bitwise_or_int $184 |= $185 merge_condition_mask CondMask = $183 & $184 copy_constant $185 = 0 copy_slot_masked [test_no_op_scalar_X_mat2].result = Mask($185) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $183 splat_4_constants $183..186 = 0 copy_4_slots_masked mm = Mask($183..186) splat_4_constants $183..186 = 0 copy_4_slots_masked mm = Mask($183..186) splat_4_constants $187..190 = 0 cmpeq_4_floats $183..186 = equal($183..186, $187..190) bitwise_and_2_ints $183..184 &= $185..186 bitwise_and_int $183 &= $184 copy_slot_masked [test_no_op_scalar_X_mat2].result = Mask($183) load_return_mask RetMask = $182 copy_slot_unmasked $182 = [test_no_op_scalar_X_mat2].result label label 0x00000006 copy_constant $151 = 0 merge_condition_mask CondMask = $181 & $182 branch_if_no_lanes_active branch_if_no_lanes_active +124 (label 5 at #202) store_return_mask $152 = RetMask splat_4_constants m₁(0..3) = 0 splat_4_constants m₁(4..7) = 0 splat_4_constants m₁(8), mm₁(0..2) = 0 splat_4_constants mm₁(3..6) = 0 splat_2_constants mm₁(7..8) = 0 copy_4_uniforms $153..156 = testMatrix3x3(0..3) copy_4_uniforms $157..160 = testMatrix3x3(4..7) copy_uniform $161 = testMatrix3x3(8) copy_4_slots_masked m₁(0..3) = Mask($153..156) copy_4_slots_masked m₁(4..7) = Mask($157..160) copy_slot_masked m₁(8) = Mask($161) copy_4_uniforms $153..156 = testMatrix3x3(0..3) copy_4_uniforms $157..160 = testMatrix3x3(4..7) copy_uniform $161 = testMatrix3x3(8) copy_4_slots_masked m₁(0..3) = Mask($153..156) copy_4_slots_masked m₁(4..7) = Mask($157..160) copy_slot_masked m₁(8) = Mask($161) store_condition_mask $153 = CondMask copy_4_slots_unmasked $154..157 = m₁(0..3) copy_4_slots_unmasked $158..161 = m₁(4..7) copy_slot_unmasked $162 = m₁(8) copy_4_uniforms $163..166 = testMatrix3x3(0..3) copy_4_uniforms $167..170 = testMatrix3x3(4..7) copy_uniform $171 = testMatrix3x3(8) cmpne_n_floats $154..162 = notEqual($154..162, $163..171) bitwise_or_4_ints $155..158 |= $159..162 bitwise_or_2_ints $155..156 |= $157..158 bitwise_or_int $155 |= $156 bitwise_or_int $154 |= $155 merge_condition_mask CondMask = $153 & $154 copy_constant $155 = 0 copy_slot_masked [test_no_op_scalar_X_mat3].result = Mask($155) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $153 copy_4_slots_unmasked $154..157 = m₁(0..3) copy_4_slots_unmasked $158..161 = m₁(4..7) copy_slot_unmasked $162 = m₁(8) copy_4_uniforms $163..166 = testMatrix3x3(0..3) copy_4_uniforms $167..170 = testMatrix3x3(4..7) copy_uniform $171 = testMatrix3x3(8) cmpne_n_floats $154..162 = notEqual($154..162, $163..171) bitwise_or_4_ints $155..158 |= $159..162 bitwise_or_2_ints $155..156 |= $157..158 bitwise_or_int $155 |= $156 bitwise_or_int $154 |= $155 merge_condition_mask CondMask = $153 & $154 copy_constant $155 = 0 copy_slot_masked [test_no_op_scalar_X_mat3].result = Mask($155) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $153 copy_4_slots_unmasked $154..157 = m₁(0..3) copy_4_slots_unmasked $158..161 = m₁(4..7) copy_slot_unmasked $162 = m₁(8) copy_4_uniforms $163..166 = testMatrix3x3(0..3) copy_4_uniforms $167..170 = testMatrix3x3(4..7) copy_uniform $171 = testMatrix3x3(8) cmpne_n_floats $154..162 = notEqual($154..162, $163..171) bitwise_or_4_ints $155..158 |= $159..162 bitwise_or_2_ints $155..156 |= $157..158 bitwise_or_int $155 |= $156 bitwise_or_int $154 |= $155 merge_condition_mask CondMask = $153 & $154 copy_constant $155 = 0 copy_slot_masked [test_no_op_scalar_X_mat3].result = Mask($155) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $153 copy_4_slots_unmasked $153..156 = m₁(0..3) copy_4_slots_unmasked $157..160 = m₁(4..7) copy_slot_unmasked $161 = m₁(8) splat_4_constants $162..165 = 0x80000000 (-0.0) splat_4_constants $166..169 = 0x80000000 (-0.0) copy_constant $170 = 0x80000000 (-0.0) bitwise_xor_n_ints $153..161 ^= $162..170 copy_4_slots_masked m₁(0..3) = Mask($153..156) copy_4_slots_masked m₁(4..7) = Mask($157..160) copy_slot_masked m₁(8) = Mask($161) store_condition_mask $153 = CondMask copy_4_slots_unmasked $154..157 = m₁(0..3) copy_4_slots_unmasked $158..161 = m₁(4..7) copy_slot_unmasked $162 = m₁(8) copy_4_uniforms $163..166 = testMatrix3x3(0..3) copy_4_uniforms $167..170 = testMatrix3x3(4..7) copy_uniform $171 = testMatrix3x3(8) splat_4_constants $172..175 = 0x80000000 (-0.0) splat_4_constants $176..179 = 0x80000000 (-0.0) copy_constant $180 = 0x80000000 (-0.0) bitwise_xor_n_ints $163..171 ^= $172..180 cmpne_n_floats $154..162 = notEqual($154..162, $163..171) bitwise_or_4_ints $155..158 |= $159..162 bitwise_or_2_ints $155..156 |= $157..158 bitwise_or_int $155 |= $156 bitwise_or_int $154 |= $155 merge_condition_mask CondMask = $153 & $154 copy_constant $155 = 0 copy_slot_masked [test_no_op_scalar_X_mat3].result = Mask($155) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $153 splat_4_constants $153..156 = 0 splat_4_constants $157..160 = 0 copy_constant $161 = 0 copy_4_slots_masked mm₁(0..3) = Mask($153..156) copy_4_slots_masked mm₁(4..7) = Mask($157..160) copy_slot_masked mm₁(8) = Mask($161) splat_4_constants $153..156 = 0 splat_4_constants $157..160 = 0 copy_constant $161 = 0 copy_4_slots_masked mm₁(0..3) = Mask($153..156) copy_4_slots_masked mm₁(4..7) = Mask($157..160) copy_slot_masked mm₁(8) = Mask($161) splat_4_constants $162..165 = 0 splat_4_constants $166..169 = 0 copy_constant $170 = 0 cmpeq_n_floats $153..161 = equal($153..161, $162..170) bitwise_and_4_ints $154..157 &= $158..161 bitwise_and_2_ints $154..155 &= $156..157 bitwise_and_int $154 &= $155 bitwise_and_int $153 &= $154 copy_slot_masked [test_no_op_scalar_X_mat3].result = Mask($153) load_return_mask RetMask = $152 copy_slot_unmasked $152 = [test_no_op_scalar_X_mat3].result label label 0x00000007 copy_slot_masked $151 = Mask($152) label label 0x00000005 load_condition_mask CondMask = $181 copy_constant $99 = 0 merge_condition_mask CondMask = $150 & $151 branch_if_no_lanes_active branch_if_no_lanes_active +157 (label 4 at #363) store_return_mask $100 = RetMask copy_4_uniforms testMatrix4x4(0..3) = testInputs copy_4_uniforms testMatrix4x4(4..7) = testInputs copy_4_uniforms testMatrix4x4(8..11) = testInputs copy_4_uniforms testMatrix4x4(12..15) = testInputs splat_4_constants m₂(0..3) = 0 splat_4_constants m₂(4..7) = 0 splat_4_constants m₂(8..11) = 0 splat_4_constants m₂(12..15) = 0 splat_4_constants mm₂(0..3) = 0 splat_4_constants mm₂(4..7) = 0 splat_4_constants mm₂(8..11) = 0 splat_4_constants mm₂(12..15) = 0 copy_4_slots_unmasked $101..104 = testMatrix4x4(0..3) copy_4_slots_unmasked $105..108 = testMatrix4x4(4..7) copy_4_slots_unmasked $109..112 = testMatrix4x4(8..11) copy_4_slots_unmasked $113..116 = testMatrix4x4(12..15) copy_4_slots_masked m₂(0..3) = Mask($101..104) copy_4_slots_masked m₂(4..7) = Mask($105..108) copy_4_slots_masked m₂(8..11) = Mask($109..112) copy_4_slots_masked m₂(12..15) = Mask($113..116) copy_4_slots_unmasked $101..104 = testMatrix4x4(0..3) copy_4_slots_unmasked $105..108 = testMatrix4x4(4..7) copy_4_slots_unmasked $109..112 = testMatrix4x4(8..11) copy_4_slots_unmasked $113..116 = testMatrix4x4(12..15) copy_4_slots_masked m₂(0..3) = Mask($101..104) copy_4_slots_masked m₂(4..7) = Mask($105..108) copy_4_slots_masked m₂(8..11) = Mask($109..112) copy_4_slots_masked m₂(12..15) = Mask($113..116) store_condition_mask $101 = CondMask copy_4_slots_unmasked $102..105 = m₂(0..3) copy_4_slots_unmasked $106..109 = m₂(4..7) copy_4_slots_unmasked $110..113 = m₂(8..11) copy_4_slots_unmasked $114..117 = m₂(12..15) copy_4_slots_unmasked $118..121 = testMatrix4x4(0..3) copy_4_slots_unmasked $122..125 = testMatrix4x4(4..7) copy_4_slots_unmasked $126..129 = testMatrix4x4(8..11) copy_4_slots_unmasked $130..133 = testMatrix4x4(12..15) cmpne_n_floats $102..117 = notEqual($102..117, $118..133) bitwise_or_4_ints $110..113 |= $114..117 bitwise_or_4_ints $106..109 |= $110..113 bitwise_or_4_ints $102..105 |= $106..109 bitwise_or_2_ints $102..103 |= $104..105 bitwise_or_int $102 |= $103 merge_condition_mask CondMask = $101 & $102 copy_constant $103 = 0 copy_slot_masked [test_no_op_scalar_X_mat4].result = Mask($103) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $101 copy_4_slots_unmasked $102..105 = m₂(0..3) copy_4_slots_unmasked $106..109 = m₂(4..7) copy_4_slots_unmasked $110..113 = m₂(8..11) copy_4_slots_unmasked $114..117 = m₂(12..15) copy_4_slots_unmasked $118..121 = testMatrix4x4(0..3) copy_4_slots_unmasked $122..125 = testMatrix4x4(4..7) copy_4_slots_unmasked $126..129 = testMatrix4x4(8..11) copy_4_slots_unmasked $130..133 = testMatrix4x4(12..15) cmpne_n_floats $102..117 = notEqual($102..117, $118..133) bitwise_or_4_ints $110..113 |= $114..117 bitwise_or_4_ints $106..109 |= $110..113 bitwise_or_4_ints $102..105 |= $106..109 bitwise_or_2_ints $102..103 |= $104..105 bitwise_or_int $102 |= $103 merge_condition_mask CondMask = $101 & $102 copy_constant $103 = 0 copy_slot_masked [test_no_op_scalar_X_mat4].result = Mask($103) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $101 copy_4_slots_unmasked $102..105 = m₂(0..3) copy_4_slots_unmasked $106..109 = m₂(4..7) copy_4_slots_unmasked $110..113 = m₂(8..11) copy_4_slots_unmasked $114..117 = m₂(12..15) copy_4_slots_unmasked $118..121 = testMatrix4x4(0..3) copy_4_slots_unmasked $122..125 = testMatrix4x4(4..7) copy_4_slots_unmasked $126..129 = testMatrix4x4(8..11) copy_4_slots_unmasked $130..133 = testMatrix4x4(12..15) cmpne_n_floats $102..117 = notEqual($102..117, $118..133) bitwise_or_4_ints $110..113 |= $114..117 bitwise_or_4_ints $106..109 |= $110..113 bitwise_or_4_ints $102..105 |= $106..109 bitwise_or_2_ints $102..103 |= $104..105 bitwise_or_int $102 |= $103 merge_condition_mask CondMask = $101 & $102 copy_constant $103 = 0 copy_slot_masked [test_no_op_scalar_X_mat4].result = Mask($103) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $101 copy_4_slots_unmasked $101..104 = m₂(0..3) copy_4_slots_unmasked $105..108 = m₂(4..7) copy_4_slots_unmasked $109..112 = m₂(8..11) copy_4_slots_unmasked $113..116 = m₂(12..15) splat_4_constants $117..120 = 0x80000000 (-0.0) splat_4_constants $121..124 = 0x80000000 (-0.0) splat_4_constants $125..128 = 0x80000000 (-0.0) splat_4_constants $129..132 = 0x80000000 (-0.0) bitwise_xor_n_ints $101..116 ^= $117..132 copy_4_slots_masked m₂(0..3) = Mask($101..104) copy_4_slots_masked m₂(4..7) = Mask($105..108) copy_4_slots_masked m₂(8..11) = Mask($109..112) copy_4_slots_masked m₂(12..15) = Mask($113..116) store_condition_mask $101 = CondMask copy_4_slots_unmasked $102..105 = m₂(0..3) copy_4_slots_unmasked $106..109 = m₂(4..7) copy_4_slots_unmasked $110..113 = m₂(8..11) copy_4_slots_unmasked $114..117 = m₂(12..15) copy_4_slots_unmasked $118..121 = testMatrix4x4(0..3) copy_4_slots_unmasked $122..125 = testMatrix4x4(4..7) copy_4_slots_unmasked $126..129 = testMatrix4x4(8..11) copy_4_slots_unmasked $130..133 = testMatrix4x4(12..15) splat_4_constants $134..137 = 0x80000000 (-0.0) splat_4_constants $138..141 = 0x80000000 (-0.0) splat_4_constants $142..145 = 0x80000000 (-0.0) splat_4_constants $146..149 = 0x80000000 (-0.0) bitwise_xor_n_ints $118..133 ^= $134..149 cmpne_n_floats $102..117 = notEqual($102..117, $118..133) bitwise_or_4_ints $110..113 |= $114..117 bitwise_or_4_ints $106..109 |= $110..113 bitwise_or_4_ints $102..105 |= $106..109 bitwise_or_2_ints $102..103 |= $104..105 bitwise_or_int $102 |= $103 merge_condition_mask CondMask = $101 & $102 copy_constant $103 = 0 copy_slot_masked [test_no_op_scalar_X_mat4].result = Mask($103) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $101 splat_4_constants $101..104 = 0 splat_4_constants $105..108 = 0 splat_4_constants $109..112 = 0 splat_4_constants $113..116 = 0 copy_4_slots_masked mm₂(0..3) = Mask($101..104) copy_4_slots_masked mm₂(4..7) = Mask($105..108) copy_4_slots_masked mm₂(8..11) = Mask($109..112) copy_4_slots_masked mm₂(12..15) = Mask($113..116) splat_4_constants $101..104 = 0 splat_4_constants $105..108 = 0 splat_4_constants $109..112 = 0 splat_4_constants $113..116 = 0 copy_4_slots_masked mm₂(0..3) = Mask($101..104) copy_4_slots_masked mm₂(4..7) = Mask($105..108) copy_4_slots_masked mm₂(8..11) = Mask($109..112) copy_4_slots_masked mm₂(12..15) = Mask($113..116) splat_4_constants $117..120 = 0 splat_4_constants $121..124 = 0 splat_4_constants $125..128 = 0 splat_4_constants $129..132 = 0 cmpeq_n_floats $101..116 = equal($101..116, $117..132) bitwise_and_4_ints $109..112 &= $113..116 bitwise_and_4_ints $105..108 &= $109..112 bitwise_and_4_ints $101..104 &= $105..108 bitwise_and_2_ints $101..102 &= $103..104 bitwise_and_int $101 &= $102 copy_slot_masked [test_no_op_scalar_X_mat4].result = Mask($101) load_return_mask RetMask = $100 copy_slot_unmasked $100 = [test_no_op_scalar_X_mat4].result label label 0x00000008 copy_slot_masked $99 = Mask($100) label label 0x00000004 load_condition_mask CondMask = $150 copy_constant $83 = 0 merge_condition_mask CondMask = $98 & $99 branch_if_no_lanes_active branch_if_no_lanes_active +108 (label 3 at #475) store_return_mask $84 = RetMask splat_4_constants m₃ = 0 splat_4_constants mm₃ = 0 copy_uniform scalar = testInputs(0) copy_constant $85 = 0 copy_slot_unmasked $86 = scalar swizzle_4 $85..88 = ($85..88).yxxy copy_4_slots_masked m₃ = Mask($85..88) copy_constant $85 = 0 copy_slot_unmasked $86 = scalar swizzle_4 $85..88 = ($85..88).yxxy copy_4_slots_masked m₃ = Mask($85..88) store_condition_mask $85 = CondMask copy_4_slots_unmasked $86..89 = m₃ copy_constant $90 = 0 copy_slot_unmasked $91 = scalar swizzle_4 $90..93 = ($90..93).yxxy cmpne_4_floats $86..89 = notEqual($86..89, $90..93) bitwise_or_2_ints $86..87 |= $88..89 bitwise_or_int $86 |= $87 merge_condition_mask CondMask = $85 & $86 copy_constant $87 = 0 copy_slot_masked [test_no_op_mat2_X_scalar].result = Mask($87) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $85 copy_slot_unmasked $85 = scalar swizzle_4 $85..88 = ($85..88).xxxx splat_4_constants $89..92 = 0x3F800000 (1.0) div_4_floats $85..88 /= $89..92 copy_4_slots_masked m₃ = Mask($85..88) store_condition_mask $85 = CondMask copy_4_slots_unmasked $86..89 = m₃ copy_slot_unmasked $90 = scalar copy_slot_unmasked $91 = scalar copy_slot_unmasked $92 = scalar copy_slot_unmasked $93 = scalar cmpne_4_floats $86..89 = notEqual($86..89, $90..93) bitwise_or_2_ints $86..87 |= $88..89 bitwise_or_int $86 |= $87 merge_condition_mask CondMask = $85 & $86 copy_constant $87 = 0 copy_slot_masked [test_no_op_mat2_X_scalar].result = Mask($87) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $85 copy_slot_unmasked $85 = scalar swizzle_4 $85..88 = ($85..88).xxxx splat_4_constants $89..92 = 0 add_4_floats $85..88 += $89..92 copy_4_slots_masked m₃ = Mask($85..88) splat_4_constants $85..88 = 0 copy_slot_unmasked $89 = scalar swizzle_4 $89..92 = ($89..92).xxxx add_4_floats $85..88 += $89..92 copy_4_slots_masked m₃ = Mask($85..88) store_condition_mask $85 = CondMask copy_4_slots_unmasked $86..89 = m₃ copy_slot_unmasked $90 = scalar copy_slot_unmasked $91 = scalar copy_slot_unmasked $92 = scalar copy_slot_unmasked $93 = scalar cmpne_4_floats $86..89 = notEqual($86..89, $90..93) bitwise_or_2_ints $86..87 |= $88..89 bitwise_or_int $86 |= $87 merge_condition_mask CondMask = $85 & $86 copy_constant $87 = 0 copy_slot_masked [test_no_op_mat2_X_scalar].result = Mask($87) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $85 copy_slot_unmasked $85 = scalar swizzle_4 $85..88 = ($85..88).xxxx splat_4_constants $89..92 = 0 sub_4_floats $85..88 -= $89..92 copy_4_slots_masked m₃ = Mask($85..88) splat_4_constants $85..88 = 0 copy_slot_unmasked $89 = scalar swizzle_4 $89..92 = ($89..92).xxxx sub_4_floats $85..88 -= $89..92 copy_4_slots_masked m₃ = Mask($85..88) store_condition_mask $85 = CondMask copy_4_slots_unmasked $86..89 = m₃ copy_slot_unmasked $90 = scalar copy_slot_unmasked $91 = scalar copy_slot_unmasked $92 = scalar copy_slot_unmasked $93 = scalar splat_4_constants $94..97 = 0x80000000 (-0.0) bitwise_xor_4_ints $90..93 ^= $94..97 cmpne_4_floats $86..89 = notEqual($86..89, $90..93) bitwise_or_2_ints $86..87 |= $88..89 bitwise_or_int $86 |= $87 merge_condition_mask CondMask = $85 & $86 copy_constant $87 = 0 copy_slot_masked [test_no_op_mat2_X_scalar].result = Mask($87) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $85 splat_4_constants $85..88 = 0 copy_4_slots_masked mm₃ = Mask($85..88) splat_4_constants $85..88 = 0 copy_4_slots_masked mm₃ = Mask($85..88) splat_4_constants $89..92 = 0 cmpeq_4_floats $85..88 = equal($85..88, $89..92) bitwise_and_2_ints $85..86 &= $87..88 bitwise_and_int $85 &= $86 copy_slot_masked [test_no_op_mat2_X_scalar].result = Mask($85) load_return_mask RetMask = $84 copy_slot_unmasked $84 = [test_no_op_mat2_X_scalar].result label label 0x00000009 copy_slot_masked $83 = Mask($84) label label 0x00000003 load_condition_mask CondMask = $98 copy_constant $52 = 0 merge_condition_mask CondMask = $82 & $83 branch_if_no_lanes_active branch_if_no_lanes_active +176 (label 2 at #655) store_return_mask $53 = RetMask splat_4_constants m₄(0..3) = 0 splat_4_constants m₄(4..7) = 0 splat_4_constants m₄(8), mm₄(0..2) = 0 splat_4_constants mm₄(3..6) = 0 splat_2_constants mm₄(7..8) = 0 copy_uniform scalar₁ = testInputs(0) copy_slot_unmasked $54 = scalar₁ swizzle_3 $54..56 = ($54..56).xxx copy_3_slots_unmasked scalar3 = $54..56 copy_constant $54 = 0 copy_slot_unmasked $55 = scalar₁ shuffle $54..62 = ($54..62)[1 0 0 0 1 0 0 0 1] copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) copy_constant $54 = 0 copy_slot_unmasked $55 = scalar₁ shuffle $54..62 = ($54..62)[1 0 0 0 1 0 0 0 1] copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) stack_rewind store_condition_mask $54 = CondMask copy_4_slots_unmasked $55..58 = m₄(0..3) copy_4_slots_unmasked $59..62 = m₄(4..7) copy_slot_unmasked $63 = m₄(8) copy_constant $64 = 0 copy_slot_unmasked $65 = scalar₁ shuffle $64..72 = ($64..72)[1 0 0 0 1 0 0 0 1] cmpne_n_floats $55..63 = notEqual($55..63, $64..72) bitwise_or_4_ints $56..59 |= $60..63 bitwise_or_2_ints $56..57 |= $58..59 bitwise_or_int $56 |= $57 bitwise_or_int $55 |= $56 merge_condition_mask CondMask = $54 & $55 copy_constant $56 = 0 copy_slot_masked [test_no_op_mat3_X_scalar].result = Mask($56) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $54 copy_slot_unmasked $54 = scalar₁ swizzle_4 $54..57 = ($54..57).xxxx copy_4_slots_unmasked $58..61 = $54..57 copy_slot_unmasked $62 = $61 splat_4_constants $63..66 = 0x3F800000 (1.0) splat_4_constants $67..70 = 0x3F800000 (1.0) copy_constant $71 = 0x3F800000 (1.0) div_n_floats $54..62 /= $63..71 copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) store_condition_mask $54 = CondMask copy_4_slots_unmasked $55..58 = m₄(0..3) copy_4_slots_unmasked $59..62 = m₄(4..7) copy_slot_unmasked $63 = m₄(8) copy_3_slots_unmasked $64..66 = scalar3 copy_3_slots_unmasked $67..69 = scalar3 copy_3_slots_unmasked $70..72 = scalar3 cmpne_n_floats $55..63 = notEqual($55..63, $64..72) bitwise_or_4_ints $56..59 |= $60..63 bitwise_or_2_ints $56..57 |= $58..59 bitwise_or_int $56 |= $57 bitwise_or_int $55 |= $56 merge_condition_mask CondMask = $54 & $55 copy_constant $56 = 0 copy_slot_masked [test_no_op_mat3_X_scalar].result = Mask($56) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $54 copy_slot_unmasked $54 = scalar₁ swizzle_4 $54..57 = ($54..57).xxxx copy_4_slots_unmasked $58..61 = $54..57 copy_slot_unmasked $62 = $61 splat_4_constants $63..66 = 0 splat_4_constants $67..70 = 0 copy_constant $71 = 0 add_n_floats $54..62 += $63..71 copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) splat_4_constants $54..57 = 0 splat_4_constants $58..61 = 0 copy_constant $62 = 0 copy_slot_unmasked $63 = scalar₁ swizzle_4 $63..66 = ($63..66).xxxx copy_4_slots_unmasked $67..70 = $63..66 copy_slot_unmasked $71 = $70 add_n_floats $54..62 += $63..71 copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) store_condition_mask $54 = CondMask copy_4_slots_unmasked $55..58 = m₄(0..3) copy_4_slots_unmasked $59..62 = m₄(4..7) copy_slot_unmasked $63 = m₄(8) copy_3_slots_unmasked $64..66 = scalar3 copy_3_slots_unmasked $67..69 = scalar3 copy_3_slots_unmasked $70..72 = scalar3 cmpne_n_floats $55..63 = notEqual($55..63, $64..72) bitwise_or_4_ints $56..59 |= $60..63 bitwise_or_2_ints $56..57 |= $58..59 bitwise_or_int $56 |= $57 bitwise_or_int $55 |= $56 merge_condition_mask CondMask = $54 & $55 copy_constant $56 = 0 copy_slot_masked [test_no_op_mat3_X_scalar].result = Mask($56) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $54 copy_slot_unmasked $54 = scalar₁ swizzle_4 $54..57 = ($54..57).xxxx copy_4_slots_unmasked $58..61 = $54..57 copy_slot_unmasked $62 = $61 splat_4_constants $63..66 = 0 splat_4_constants $67..70 = 0 copy_constant $71 = 0 sub_n_floats $54..62 -= $63..71 copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) splat_4_constants $54..57 = 0 splat_4_constants $58..61 = 0 copy_constant $62 = 0 copy_slot_unmasked $63 = scalar₁ swizzle_4 $63..66 = ($63..66).xxxx copy_4_slots_unmasked $67..70 = $63..66 copy_slot_unmasked $71 = $70 sub_n_floats $54..62 -= $63..71 copy_4_slots_masked m₄(0..3) = Mask($54..57) copy_4_slots_masked m₄(4..7) = Mask($58..61) copy_slot_masked m₄(8) = Mask($62) store_condition_mask $54 = CondMask copy_4_slots_unmasked $55..58 = m₄(0..3) copy_4_slots_unmasked $59..62 = m₄(4..7) copy_slot_unmasked $63 = m₄(8) copy_3_slots_unmasked $64..66 = scalar3 copy_3_slots_unmasked $67..69 = scalar3 copy_3_slots_unmasked $70..72 = scalar3 splat_4_constants $73..76 = 0x80000000 (-0.0) splat_4_constants $77..80 = 0x80000000 (-0.0) copy_constant $81 = 0x80000000 (-0.0) bitwise_xor_n_ints $64..72 ^= $73..81 cmpne_n_floats $55..63 = notEqual($55..63, $64..72) bitwise_or_4_ints $56..59 |= $60..63 bitwise_or_2_ints $56..57 |= $58..59 bitwise_or_int $56 |= $57 bitwise_or_int $55 |= $56 merge_condition_mask CondMask = $54 & $55 copy_constant $56 = 0 copy_slot_masked [test_no_op_mat3_X_scalar].result = Mask($56) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $54 splat_4_constants $54..57 = 0 splat_4_constants $58..61 = 0 copy_constant $62 = 0 copy_4_slots_masked mm₄(0..3) = Mask($54..57) copy_4_slots_masked mm₄(4..7) = Mask($58..61) copy_slot_masked mm₄(8) = Mask($62) splat_4_constants $54..57 = 0 splat_4_constants $58..61 = 0 copy_constant $62 = 0 copy_4_slots_masked mm₄(0..3) = Mask($54..57) copy_4_slots_masked mm₄(4..7) = Mask($58..61) copy_slot_masked mm₄(8) = Mask($62) splat_4_constants $63..66 = 0 splat_4_constants $67..70 = 0 copy_constant $71 = 0 cmpeq_n_floats $54..62 = equal($54..62, $63..71) bitwise_and_4_ints $55..58 &= $59..62 bitwise_and_2_ints $55..56 &= $57..58 bitwise_and_int $55 &= $56 bitwise_and_int $54 &= $55 copy_slot_masked [test_no_op_mat3_X_scalar].result = Mask($54) load_return_mask RetMask = $53 copy_slot_unmasked $53 = [test_no_op_mat3_X_scalar].result label label 0x0000000A copy_slot_masked $52 = Mask($53) label label 0x00000002 load_condition_mask CondMask = $82 copy_constant $0 = 0 merge_condition_mask CondMask = $51 & $52 branch_if_no_lanes_active branch_if_no_lanes_active +213 (label 1 at #872) store_return_mask $1 = RetMask splat_4_constants m₅(0..3) = 0 splat_4_constants m₅(4..7) = 0 splat_4_constants m₅(8..11) = 0 splat_4_constants m₅(12..15) = 0 splat_4_constants mm₅(0..3) = 0 splat_4_constants mm₅(4..7) = 0 splat_4_constants mm₅(8..11) = 0 splat_4_constants mm₅(12..15) = 0 copy_uniform scalar₂ = testInputs(0) copy_slot_unmasked $2 = scalar₂ swizzle_4 $2..5 = ($2..5).xxxx copy_4_slots_unmasked scalar4 = $2..5 copy_constant $2 = 0 copy_slot_unmasked $3 = scalar₂ shuffle $2..17 = ($2..17)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) copy_constant $2 = 0 copy_slot_unmasked $3 = scalar₂ shuffle $2..17 = ($2..17)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) store_condition_mask $2 = CondMask copy_4_slots_unmasked $3..6 = m₅(0..3) copy_4_slots_unmasked $7..10 = m₅(4..7) copy_4_slots_unmasked $11..14 = m₅(8..11) copy_4_slots_unmasked $15..18 = m₅(12..15) copy_constant $19 = 0 copy_slot_unmasked $20 = scalar₂ shuffle $19..34 = ($19..34)[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1] cmpne_n_floats $3..18 = notEqual($3..18, $19..34) bitwise_or_4_ints $11..14 |= $15..18 bitwise_or_4_ints $7..10 |= $11..14 bitwise_or_4_ints $3..6 |= $7..10 bitwise_or_2_ints $3..4 |= $5..6 bitwise_or_int $3 |= $4 merge_condition_mask CondMask = $2 & $3 copy_constant $4 = 0 copy_slot_masked [test_no_op_mat4_X_scalar].result = Mask($4) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $2 copy_slot_unmasked $2 = scalar₂ swizzle_4 $2..5 = ($2..5).xxxx copy_4_slots_unmasked $6..9 = $2..5 copy_4_slots_unmasked $10..13 = $6..9 copy_4_slots_unmasked $14..17 = $10..13 splat_4_constants $18..21 = 0x3F800000 (1.0) splat_4_constants $22..25 = 0x3F800000 (1.0) splat_4_constants $26..29 = 0x3F800000 (1.0) splat_4_constants $30..33 = 0x3F800000 (1.0) div_n_floats $2..17 /= $18..33 copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) store_condition_mask $2 = CondMask copy_4_slots_unmasked $3..6 = m₅(0..3) copy_4_slots_unmasked $7..10 = m₅(4..7) copy_4_slots_unmasked $11..14 = m₅(8..11) copy_4_slots_unmasked $15..18 = m₅(12..15) copy_4_slots_unmasked $19..22 = scalar4 copy_4_slots_unmasked $23..26 = scalar4 copy_4_slots_unmasked $27..30 = scalar4 copy_4_slots_unmasked $31..34 = scalar4 cmpne_n_floats $3..18 = notEqual($3..18, $19..34) bitwise_or_4_ints $11..14 |= $15..18 bitwise_or_4_ints $7..10 |= $11..14 bitwise_or_4_ints $3..6 |= $7..10 bitwise_or_2_ints $3..4 |= $5..6 bitwise_or_int $3 |= $4 merge_condition_mask CondMask = $2 & $3 copy_constant $4 = 0 copy_slot_masked [test_no_op_mat4_X_scalar].result = Mask($4) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $2 copy_slot_unmasked $2 = scalar₂ swizzle_4 $2..5 = ($2..5).xxxx copy_4_slots_unmasked $6..9 = $2..5 copy_4_slots_unmasked $10..13 = $6..9 copy_4_slots_unmasked $14..17 = $10..13 splat_4_constants $18..21 = 0 splat_4_constants $22..25 = 0 splat_4_constants $26..29 = 0 splat_4_constants $30..33 = 0 add_n_floats $2..17 += $18..33 copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) splat_4_constants $2..5 = 0 splat_4_constants $6..9 = 0 splat_4_constants $10..13 = 0 splat_4_constants $14..17 = 0 copy_slot_unmasked $18 = scalar₂ swizzle_4 $18..21 = ($18..21).xxxx copy_4_slots_unmasked $22..25 = $18..21 copy_4_slots_unmasked $26..29 = $22..25 copy_4_slots_unmasked $30..33 = $26..29 add_n_floats $2..17 += $18..33 copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) store_condition_mask $2 = CondMask copy_4_slots_unmasked $3..6 = m₅(0..3) copy_4_slots_unmasked $7..10 = m₅(4..7) copy_4_slots_unmasked $11..14 = m₅(8..11) copy_4_slots_unmasked $15..18 = m₅(12..15) copy_4_slots_unmasked $19..22 = scalar4 copy_4_slots_unmasked $23..26 = scalar4 copy_4_slots_unmasked $27..30 = scalar4 copy_4_slots_unmasked $31..34 = scalar4 cmpne_n_floats $3..18 = notEqual($3..18, $19..34) bitwise_or_4_ints $11..14 |= $15..18 bitwise_or_4_ints $7..10 |= $11..14 bitwise_or_4_ints $3..6 |= $7..10 bitwise_or_2_ints $3..4 |= $5..6 bitwise_or_int $3 |= $4 merge_condition_mask CondMask = $2 & $3 copy_constant $4 = 0 copy_slot_masked [test_no_op_mat4_X_scalar].result = Mask($4) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $2 copy_slot_unmasked $2 = scalar₂ swizzle_4 $2..5 = ($2..5).xxxx copy_4_slots_unmasked $6..9 = $2..5 copy_4_slots_unmasked $10..13 = $6..9 copy_4_slots_unmasked $14..17 = $10..13 splat_4_constants $18..21 = 0 splat_4_constants $22..25 = 0 splat_4_constants $26..29 = 0 splat_4_constants $30..33 = 0 sub_n_floats $2..17 -= $18..33 copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) splat_4_constants $2..5 = 0 splat_4_constants $6..9 = 0 splat_4_constants $10..13 = 0 splat_4_constants $14..17 = 0 copy_slot_unmasked $18 = scalar₂ swizzle_4 $18..21 = ($18..21).xxxx copy_4_slots_unmasked $22..25 = $18..21 copy_4_slots_unmasked $26..29 = $22..25 copy_4_slots_unmasked $30..33 = $26..29 sub_n_floats $2..17 -= $18..33 copy_4_slots_masked m₅(0..3) = Mask($2..5) copy_4_slots_masked m₅(4..7) = Mask($6..9) copy_4_slots_masked m₅(8..11) = Mask($10..13) copy_4_slots_masked m₅(12..15) = Mask($14..17) store_condition_mask $2 = CondMask copy_4_slots_unmasked $3..6 = m₅(0..3) copy_4_slots_unmasked $7..10 = m₅(4..7) copy_4_slots_unmasked $11..14 = m₅(8..11) copy_4_slots_unmasked $15..18 = m₅(12..15) copy_4_slots_unmasked $19..22 = scalar4 copy_4_slots_unmasked $23..26 = scalar4 copy_4_slots_unmasked $27..30 = scalar4 copy_4_slots_unmasked $31..34 = scalar4 splat_4_constants $35..38 = 0x80000000 (-0.0) splat_4_constants $39..42 = 0x80000000 (-0.0) splat_4_constants $43..46 = 0x80000000 (-0.0) splat_4_constants $47..50 = 0x80000000 (-0.0) bitwise_xor_n_ints $19..34 ^= $35..50 cmpne_n_floats $3..18 = notEqual($3..18, $19..34) bitwise_or_4_ints $11..14 |= $15..18 bitwise_or_4_ints $7..10 |= $11..14 bitwise_or_4_ints $3..6 |= $7..10 bitwise_or_2_ints $3..4 |= $5..6 bitwise_or_int $3 |= $4 merge_condition_mask CondMask = $2 & $3 copy_constant $4 = 0 copy_slot_masked [test_no_op_mat4_X_scalar].result = Mask($4) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $2 splat_4_constants $2..5 = 0 splat_4_constants $6..9 = 0 splat_4_constants $10..13 = 0 splat_4_constants $14..17 = 0 copy_4_slots_masked mm₅(0..3) = Mask($2..5) copy_4_slots_masked mm₅(4..7) = Mask($6..9) copy_4_slots_masked mm₅(8..11) = Mask($10..13) copy_4_slots_masked mm₅(12..15) = Mask($14..17) splat_4_constants $2..5 = 0 splat_4_constants $6..9 = 0 splat_4_constants $10..13 = 0 splat_4_constants $14..17 = 0 copy_4_slots_masked mm₅(0..3) = Mask($2..5) copy_4_slots_masked mm₅(4..7) = Mask($6..9) copy_4_slots_masked mm₅(8..11) = Mask($10..13) copy_4_slots_masked mm₅(12..15) = Mask($14..17) splat_4_constants $18..21 = 0 splat_4_constants $22..25 = 0 splat_4_constants $26..29 = 0 splat_4_constants $30..33 = 0 cmpeq_n_floats $2..17 = equal($2..17, $18..33) bitwise_and_4_ints $10..13 &= $14..17 bitwise_and_4_ints $6..9 &= $10..13 bitwise_and_4_ints $2..5 &= $6..9 bitwise_and_2_ints $2..3 &= $4..5 bitwise_and_int $2 &= $3 copy_slot_masked [test_no_op_mat4_X_scalar].result = Mask($2) load_return_mask RetMask = $1 copy_slot_unmasked $1 = [test_no_op_mat4_X_scalar].result label label 0x0000000B copy_slot_masked $0 = Mask($1) label label 0x00000001 load_condition_mask CondMask = $51 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