1447 instructions 2 3[immutable slots] 4i0 = 0xBF800000 (-1.0) 5i1 = 0xBF800000 (-1.0) 6i2 = 0x3F800000 (1.0) 7i3 = 0x3F800000 (1.0) 8i4 = 0 9i5 = 0 10i6 = 0x40400000 (3.0) 11i7 = 0x40E00000 (7.0) 12i8 = 0x40800000 (4.0) 13i9 = 0x40C00000 (6.0) 14i10 = 0xC0400000 (-3.0) 15i11 = 0xC0E00000 (-7.0) 16i12 = 0xC0800000 (-4.0) 17i13 = 0xC0C00000 (-6.0) 18i14 = 0xBF800000 (-1.0) 19i15 = 0xBF800000 (-1.0) 20i16 = 0xBF800000 (-1.0) 21i17 = 0x3F800000 (1.0) 22i18 = 0x3F800000 (1.0) 23i19 = 0x3F800000 (1.0) 24i20 = 0 25i21 = 0 26i22 = 0 27i23 = 0x40C00000 (6.0) 28i24 = 0x41700000 (15.0) 29i25 = 0x41C00000 (24.0) 30i26 = 0x41400000 (12.0) 31i27 = 0x41700000 (15.0) 32i28 = 0x41900000 (18.0) 33i29 = 0xC0C00000 (-6.0) 34i30 = 0xC1700000 (-15.0) 35i31 = 0xC1C00000 (-24.0) 36i32 = 0xC1400000 (-12.0) 37i33 = 0xC1700000 (-15.0) 38i34 = 0xC1900000 (-18.0) 39i35 = 0xBF800000 (-1.0) 40i36 = 0xBF800000 (-1.0) 41i37 = 0xBF800000 (-1.0) 42i38 = 0xBF800000 (-1.0) 43i39 = 0x3F800000 (1.0) 44i40 = 0x3F800000 (1.0) 45i41 = 0x3F800000 (1.0) 46i42 = 0x3F800000 (1.0) 47i43 = 0 48i44 = 0 49i45 = 0 50i46 = 0 51i47 = 0x40800000 (4.0) 52i48 = 0x41000000 (8.0) 53i49 = 0x41400000 (12.0) 54i50 = 0x41800000 (16.0) 55i51 = 0xC0800000 (-4.0) 56i52 = 0xC1000000 (-8.0) 57i53 = 0xC1400000 (-12.0) 58i54 = 0xC1800000 (-16.0) 59 60store_src_rg coords = src.rg 61init_lane_masks CondMask = LoopMask = RetMask = true 62store_condition_mask $26 = CondMask 63store_condition_mask $44 = CondMask 64store_condition_mask $55 = CondMask 65store_condition_mask $71 = CondMask 66store_condition_mask $84 = CondMask 67branch_if_no_lanes_active branch_if_no_lanes_active +56 (label 6 at #64) 68store_return_mask $85 = RetMask 69splat_4_constants v, vv = 0 70copy_2_uniforms $86..87 = testInputs(0..1) 71copy_2_slots_masked v = Mask($86..87) 72copy_2_uniforms $86..87 = testInputs(0..1) 73copy_2_slots_masked v = Mask($86..87) 74store_condition_mask $86 = CondMask 75copy_2_slots_unmasked $87..88 = v 76copy_2_uniforms $89..90 = testInputs(0..1) 77cmpne_2_floats $87..88 = notEqual($87..88, $89..90) 78bitwise_or_int $87 |= $88 79merge_condition_mask CondMask = $86 & $87 80copy_constant $88 = 0 81copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($88) 82mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 83load_condition_mask CondMask = $86 84copy_2_slots_unmasked $87..88 = v 85copy_2_uniforms $89..90 = testInputs(0..1) 86cmpne_2_floats $87..88 = notEqual($87..88, $89..90) 87bitwise_or_int $87 |= $88 88merge_condition_mask CondMask = $86 & $87 89copy_constant $88 = 0 90copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($88) 91mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 92load_condition_mask CondMask = $86 93copy_2_uniforms $86..87 = testInputs(0..1) 94bitwise_xor_imm_int $86 ^= 0x80000000 95bitwise_xor_imm_int $87 ^= 0x80000000 96copy_2_slots_masked v = Mask($86..87) 97copy_2_uniforms $86..87 = testInputs(0..1) 98bitwise_xor_imm_int $86 ^= 0x80000000 99bitwise_xor_imm_int $87 ^= 0x80000000 100copy_2_slots_masked v = Mask($86..87) 101store_condition_mask $86 = CondMask 102copy_2_slots_unmasked $87..88 = v 103copy_2_uniforms $89..90 = testInputs(0..1) 104bitwise_xor_imm_int $89 ^= 0x80000000 105bitwise_xor_imm_int $90 ^= 0x80000000 106cmpne_2_floats $87..88 = notEqual($87..88, $89..90) 107bitwise_or_int $87 |= $88 108merge_condition_mask CondMask = $86 & $87 109copy_constant $88 = 0 110copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($88) 111mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 112load_condition_mask CondMask = $86 113splat_2_constants $86..87 = 0 114copy_2_slots_masked vv = Mask($86..87) 115splat_2_constants $86..87 = 0 116copy_2_slots_masked vv = Mask($86..87) 117cmpeq_imm_float $86 = equal($86, 0) 118cmpeq_imm_float $87 = equal($87, 0) 119bitwise_and_int $86 &= $87 120copy_slot_masked [test_no_op_mat2_X_vec2].result = Mask($86) 121load_return_mask RetMask = $85 122copy_slot_unmasked $85 = [test_no_op_mat2_X_vec2].result 123label label 0x00000006 124copy_constant $72 = 0 125merge_condition_mask CondMask = $84 & $85 126branch_if_no_lanes_active branch_if_no_lanes_active +63 (label 5 at #130) 127store_return_mask $73 = RetMask 128splat_4_constants v₁, vv₁(0) = 0 129splat_2_constants vv₁(1..2) = 0 130copy_3_uniforms $74..76 = testInputs(0..2) 131copy_3_slots_masked v₁ = Mask($74..76) 132copy_3_uniforms $74..76 = testInputs(0..2) 133copy_3_slots_masked v₁ = Mask($74..76) 134store_condition_mask $74 = CondMask 135copy_3_slots_unmasked $75..77 = v₁ 136copy_3_uniforms $78..80 = testInputs(0..2) 137cmpne_3_floats $75..77 = notEqual($75..77, $78..80) 138bitwise_or_int $76 |= $77 139bitwise_or_int $75 |= $76 140merge_condition_mask CondMask = $74 & $75 141copy_constant $76 = 0 142copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($76) 143mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 144load_condition_mask CondMask = $74 145copy_3_slots_unmasked $75..77 = v₁ 146copy_3_uniforms $78..80 = testInputs(0..2) 147cmpne_3_floats $75..77 = notEqual($75..77, $78..80) 148bitwise_or_int $76 |= $77 149bitwise_or_int $75 |= $76 150merge_condition_mask CondMask = $74 & $75 151copy_constant $76 = 0 152copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($76) 153mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 154load_condition_mask CondMask = $74 155copy_3_uniforms $74..76 = testInputs(0..2) 156splat_3_constants $77..79 = 0x80000000 (-0.0) 157bitwise_xor_3_ints $74..76 ^= $77..79 158copy_3_slots_masked v₁ = Mask($74..76) 159copy_3_uniforms $74..76 = testInputs(0..2) 160splat_3_constants $77..79 = 0x80000000 (-0.0) 161bitwise_xor_3_ints $74..76 ^= $77..79 162copy_3_slots_masked v₁ = Mask($74..76) 163store_condition_mask $74 = CondMask 164copy_3_slots_unmasked $75..77 = v₁ 165copy_3_uniforms $78..80 = testInputs(0..2) 166splat_3_constants $81..83 = 0x80000000 (-0.0) 167bitwise_xor_3_ints $78..80 ^= $81..83 168cmpne_3_floats $75..77 = notEqual($75..77, $78..80) 169bitwise_or_int $76 |= $77 170bitwise_or_int $75 |= $76 171merge_condition_mask CondMask = $74 & $75 172copy_constant $76 = 0 173copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($76) 174mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 175load_condition_mask CondMask = $74 176splat_3_constants $74..76 = 0 177copy_3_slots_masked vv₁ = Mask($74..76) 178splat_3_constants $74..76 = 0 179copy_3_slots_masked vv₁ = Mask($74..76) 180splat_3_constants $77..79 = 0 181cmpeq_3_floats $74..76 = equal($74..76, $77..79) 182bitwise_and_int $75 &= $76 183bitwise_and_int $74 &= $75 184copy_slot_masked [test_no_op_mat3_X_vec3].result = Mask($74) 185load_return_mask RetMask = $73 186copy_slot_unmasked $73 = [test_no_op_mat3_X_vec3].result 187label label 0x00000007 188copy_slot_masked $72 = Mask($73) 189label label 0x00000005 190load_condition_mask CondMask = $84 191copy_constant $56 = 0 192merge_condition_mask CondMask = $71 & $72 193branch_if_no_lanes_active branch_if_no_lanes_active +63 (label 4 at #197) 194store_return_mask $57 = RetMask 195splat_4_constants v₂ = 0 196splat_4_constants vv₂ = 0 197copy_4_uniforms $58..61 = testInputs 198copy_4_slots_masked v₂ = Mask($58..61) 199copy_4_uniforms $58..61 = testInputs 200copy_4_slots_masked v₂ = Mask($58..61) 201store_condition_mask $58 = CondMask 202copy_4_slots_unmasked $59..62 = v₂ 203copy_4_uniforms $63..66 = testInputs 204cmpne_4_floats $59..62 = notEqual($59..62, $63..66) 205bitwise_or_2_ints $59..60 |= $61..62 206bitwise_or_int $59 |= $60 207merge_condition_mask CondMask = $58 & $59 208copy_constant $60 = 0 209copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($60) 210mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 211load_condition_mask CondMask = $58 212copy_4_slots_unmasked $59..62 = v₂ 213copy_4_uniforms $63..66 = testInputs 214cmpne_4_floats $59..62 = notEqual($59..62, $63..66) 215bitwise_or_2_ints $59..60 |= $61..62 216bitwise_or_int $59 |= $60 217merge_condition_mask CondMask = $58 & $59 218copy_constant $60 = 0 219copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($60) 220mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 221load_condition_mask CondMask = $58 222copy_4_uniforms $58..61 = testInputs 223splat_4_constants $62..65 = 0x80000000 (-0.0) 224bitwise_xor_4_ints $58..61 ^= $62..65 225copy_4_slots_masked v₂ = Mask($58..61) 226copy_4_uniforms $58..61 = testInputs 227splat_4_constants $62..65 = 0x80000000 (-0.0) 228bitwise_xor_4_ints $58..61 ^= $62..65 229copy_4_slots_masked v₂ = Mask($58..61) 230store_condition_mask $58 = CondMask 231copy_4_slots_unmasked $59..62 = v₂ 232copy_4_uniforms $63..66 = testInputs 233splat_4_constants $67..70 = 0x80000000 (-0.0) 234bitwise_xor_4_ints $63..66 ^= $67..70 235cmpne_4_floats $59..62 = notEqual($59..62, $63..66) 236bitwise_or_2_ints $59..60 |= $61..62 237bitwise_or_int $59 |= $60 238merge_condition_mask CondMask = $58 & $59 239copy_constant $60 = 0 240copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($60) 241mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 242load_condition_mask CondMask = $58 243splat_4_constants $58..61 = 0 244copy_4_slots_masked vv₂ = Mask($58..61) 245splat_4_constants $58..61 = 0 246copy_4_slots_masked vv₂ = Mask($58..61) 247splat_4_constants $62..65 = 0 248cmpeq_4_floats $58..61 = equal($58..61, $62..65) 249bitwise_and_2_ints $58..59 &= $60..61 250bitwise_and_int $58 &= $59 251copy_slot_masked [test_no_op_mat4_X_vec4].result = Mask($58) 252load_return_mask RetMask = $57 253copy_slot_unmasked $57 = [test_no_op_mat4_X_vec4].result 254label label 0x00000008 255copy_slot_masked $56 = Mask($57) 256label label 0x00000004 257load_condition_mask CondMask = $71 258copy_constant $45 = 0 259merge_condition_mask CondMask = $55 & $56 260branch_if_no_lanes_active branch_if_no_lanes_active +69 (label 3 at #270) 261store_return_mask $46 = RetMask 262splat_4_constants v₃, vv₃ = 0 263splat_2_constants $47..48 = 0 264copy_2_slots_masked vv₃ = Mask($47..48) 265store_condition_mask $47 = CondMask 266copy_2_slots_unmasked $48..49 = vv₃ 267cmpne_imm_float $48 = notEqual($48, 0) 268cmpne_imm_float $49 = notEqual($49, 0) 269bitwise_or_int $48 |= $49 270merge_condition_mask CondMask = $47 & $48 271copy_constant $49 = 0 272copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($49) 273mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 274load_condition_mask CondMask = $47 275splat_2_constants $49..50 = 0x3F800000 (1.0) 276copy_4_uniforms $51..54 = testMatrix2x2 277matrix_multiply_2 mat2x1($47..48) = mat2x1($49..50) * mat2x2($51..54) 278copy_2_slots_masked v₃ = Mask($47..48) 279store_condition_mask $47 = CondMask 280copy_2_slots_unmasked $48..49 = v₃ 281copy_2_immutables_unmasked $50..51 = i6..7 [0x40400000 (3.0), 0x40E00000 (7.0)] 282cmpne_2_floats $48..49 = notEqual($48..49, $50..51) 283bitwise_or_int $48 |= $49 284merge_condition_mask CondMask = $47 & $48 285copy_constant $49 = 0 286copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($49) 287mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 288load_condition_mask CondMask = $47 289copy_4_uniforms $49..52 = testMatrix2x2 290splat_2_constants $53..54 = 0x3F800000 (1.0) 291matrix_multiply_2 mat1x2($47..48) = mat2x2($49..52) * mat1x2($53..54) 292copy_2_slots_masked v₃ = Mask($47..48) 293store_condition_mask $47 = CondMask 294copy_2_slots_unmasked $48..49 = v₃ 295copy_2_immutables_unmasked $50..51 = i8..9 [0x40800000 (4.0), 0x40C00000 (6.0)] 296cmpne_2_floats $48..49 = notEqual($48..49, $50..51) 297bitwise_or_int $48 |= $49 298merge_condition_mask CondMask = $47 & $48 299copy_constant $49 = 0 300copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($49) 301mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 302load_condition_mask CondMask = $47 303splat_2_constants $49..50 = 0xBF800000 (-1.0) 304copy_4_uniforms $51..54 = testMatrix2x2 305matrix_multiply_2 mat2x1($47..48) = mat2x1($49..50) * mat2x2($51..54) 306copy_2_slots_masked v₃ = Mask($47..48) 307store_condition_mask $47 = CondMask 308copy_2_slots_unmasked $48..49 = v₃ 309copy_2_immutables_unmasked $50..51 = i10..11 [0xC0400000 (-3.0), 0xC0E00000 (-7.0)] 310cmpne_2_floats $48..49 = notEqual($48..49, $50..51) 311bitwise_or_int $48 |= $49 312merge_condition_mask CondMask = $47 & $48 313copy_constant $49 = 0 314copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($49) 315mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 316load_condition_mask CondMask = $47 317copy_4_uniforms $49..52 = testMatrix2x2 318splat_2_constants $53..54 = 0xBF800000 (-1.0) 319matrix_multiply_2 mat1x2($47..48) = mat2x2($49..52) * mat1x2($53..54) 320copy_2_slots_masked v₃ = Mask($47..48) 321copy_2_immutables_unmasked $49..50 = i12..13 [0xC0800000 (-4.0), 0xC0C00000 (-6.0)] 322cmpeq_2_floats $47..48 = equal($47..48, $49..50) 323bitwise_and_int $47 &= $48 324copy_slot_masked [test_no_op_vec2_X_mat2].result = Mask($47) 325load_return_mask RetMask = $46 326copy_slot_unmasked $46 = [test_no_op_vec2_X_mat2].result 327label label 0x00000009 328copy_slot_masked $45 = Mask($46) 329label label 0x00000003 330load_condition_mask CondMask = $55 331copy_constant $27 = 0 332merge_condition_mask CondMask = $44 & $45 333branch_if_no_lanes_active branch_if_no_lanes_active +83 (label 2 at #357) 334store_return_mask $28 = RetMask 335splat_4_constants v₄, vv₄(0) = 0 336splat_2_constants vv₄(1..2) = 0 337splat_3_constants $29..31 = 0 338copy_3_slots_masked vv₄ = Mask($29..31) 339store_condition_mask $29 = CondMask 340copy_3_slots_unmasked $30..32 = vv₄ 341splat_3_constants $33..35 = 0 342cmpne_3_floats $30..32 = notEqual($30..32, $33..35) 343bitwise_or_int $31 |= $32 344bitwise_or_int $30 |= $31 345merge_condition_mask CondMask = $29 & $30 346copy_constant $31 = 0 347copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($31) 348mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 349load_condition_mask CondMask = $29 350splat_3_constants $32..34 = 0x3F800000 (1.0) 351copy_4_uniforms $35..38 = testMatrix3x3(0..3) 352copy_4_uniforms $39..42 = testMatrix3x3(4..7) 353copy_uniform $43 = testMatrix3x3(8) 354matrix_multiply_3 mat3x1($29..31) = mat3x1($32..34) * mat3x3($35..43) 355copy_3_slots_masked v₄ = Mask($29..31) 356store_condition_mask $29 = CondMask 357copy_3_slots_unmasked $30..32 = v₄ 358copy_3_immutables_unmasked $33..35 = i23..25 [0x40C00000 (6.0), 0x41700000 (15.0), 0x41C00000 (24.0)] 359cmpne_3_floats $30..32 = notEqual($30..32, $33..35) 360bitwise_or_int $31 |= $32 361bitwise_or_int $30 |= $31 362merge_condition_mask CondMask = $29 & $30 363copy_constant $31 = 0 364copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($31) 365mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 366load_condition_mask CondMask = $29 367copy_4_uniforms $32..35 = testMatrix3x3(0..3) 368copy_4_uniforms $36..39 = testMatrix3x3(4..7) 369copy_uniform $40 = testMatrix3x3(8) 370splat_3_constants $41..43 = 0x3F800000 (1.0) 371matrix_multiply_3 mat1x3($29..31) = mat3x3($32..40) * mat1x3($41..43) 372copy_3_slots_masked v₄ = Mask($29..31) 373store_condition_mask $29 = CondMask 374copy_3_slots_unmasked $30..32 = v₄ 375copy_3_immutables_unmasked $33..35 = i26..28 [0x41400000 (12.0), 0x41700000 (15.0), 0x41900000 (18.0)] 376cmpne_3_floats $30..32 = notEqual($30..32, $33..35) 377bitwise_or_int $31 |= $32 378bitwise_or_int $30 |= $31 379merge_condition_mask CondMask = $29 & $30 380copy_constant $31 = 0 381copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($31) 382mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 383load_condition_mask CondMask = $29 384splat_3_constants $32..34 = 0xBF800000 (-1.0) 385copy_4_uniforms $35..38 = testMatrix3x3(0..3) 386copy_4_uniforms $39..42 = testMatrix3x3(4..7) 387copy_uniform $43 = testMatrix3x3(8) 388matrix_multiply_3 mat3x1($29..31) = mat3x1($32..34) * mat3x3($35..43) 389copy_3_slots_masked v₄ = Mask($29..31) 390store_condition_mask $29 = CondMask 391copy_3_slots_unmasked $30..32 = v₄ 392copy_3_immutables_unmasked $33..35 = i29..31 [0xC0C00000 (-6.0), 0xC1700000 (-15.0), 0xC1C00000 (-24.0)] 393cmpne_3_floats $30..32 = notEqual($30..32, $33..35) 394bitwise_or_int $31 |= $32 395bitwise_or_int $30 |= $31 396merge_condition_mask CondMask = $29 & $30 397copy_constant $31 = 0 398copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($31) 399mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 400load_condition_mask CondMask = $29 401copy_4_uniforms $32..35 = testMatrix3x3(0..3) 402copy_4_uniforms $36..39 = testMatrix3x3(4..7) 403copy_uniform $40 = testMatrix3x3(8) 404splat_3_constants $41..43 = 0xBF800000 (-1.0) 405matrix_multiply_3 mat1x3($29..31) = mat3x3($32..40) * mat1x3($41..43) 406copy_3_slots_masked v₄ = Mask($29..31) 407copy_3_immutables_unmasked $32..34 = i32..34 [0xC1400000 (-12.0), 0xC1700000 (-15.0), 0xC1900000 (-18.0)] 408cmpeq_3_floats $29..31 = equal($29..31, $32..34) 409bitwise_and_int $30 &= $31 410bitwise_and_int $29 &= $30 411copy_slot_masked [test_no_op_vec3_X_mat3].result = Mask($29) 412load_return_mask RetMask = $28 413copy_slot_unmasked $28 = [test_no_op_vec3_X_mat3].result 414label label 0x0000000A 415copy_slot_masked $27 = Mask($28) 416label label 0x00000002 417load_condition_mask CondMask = $44 418copy_constant $0 = 0 419merge_condition_mask CondMask = $26 & $27 420branch_if_no_lanes_active branch_if_no_lanes_active +91 (label 1 at #452) 421store_return_mask $1 = RetMask 422copy_4_uniforms testMatrix4x4(0..3) = testMatrix2x2 423copy_4_uniforms testMatrix4x4(4..7) = testMatrix2x2 424copy_4_uniforms testMatrix4x4(8..11) = testMatrix2x2 425copy_4_uniforms testMatrix4x4(12..15) = testMatrix2x2 426splat_4_constants v₅ = 0 427splat_4_constants vv₅ = 0 428splat_4_constants $2..5 = 0 429copy_4_slots_masked vv₅ = Mask($2..5) 430store_condition_mask $2 = CondMask 431copy_4_slots_unmasked $3..6 = vv₅ 432splat_4_constants $7..10 = 0 433cmpne_4_floats $3..6 = notEqual($3..6, $7..10) 434bitwise_or_2_ints $3..4 |= $5..6 435bitwise_or_int $3 |= $4 436merge_condition_mask CondMask = $2 & $3 437copy_constant $4 = 0 438copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4) 439mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 440load_condition_mask CondMask = $2 441splat_4_constants $6..9 = 0x3F800000 (1.0) 442copy_4_slots_unmasked $10..13 = testMatrix4x4(0..3) 443copy_4_slots_unmasked $14..17 = testMatrix4x4(4..7) 444copy_4_slots_unmasked $18..21 = testMatrix4x4(8..11) 445copy_4_slots_unmasked $22..25 = testMatrix4x4(12..15) 446matrix_multiply_4 mat4x1($2..5) = mat4x1($6..9) * mat4x4($10..25) 447copy_4_slots_masked v₅ = Mask($2..5) 448store_condition_mask $2 = CondMask 449copy_4_slots_unmasked $3..6 = v₅ 450splat_4_constants $7..10 = 0x41200000 (10.0) 451cmpne_4_floats $3..6 = notEqual($3..6, $7..10) 452bitwise_or_2_ints $3..4 |= $5..6 453bitwise_or_int $3 |= $4 454merge_condition_mask CondMask = $2 & $3 455copy_constant $4 = 0 456copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4) 457mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 458load_condition_mask CondMask = $2 459copy_4_slots_unmasked $6..9 = testMatrix4x4(0..3) 460copy_4_slots_unmasked $10..13 = testMatrix4x4(4..7) 461copy_4_slots_unmasked $14..17 = testMatrix4x4(8..11) 462copy_4_slots_unmasked $18..21 = testMatrix4x4(12..15) 463splat_4_constants $22..25 = 0x3F800000 (1.0) 464matrix_multiply_4 mat1x4($2..5) = mat4x4($6..21) * mat1x4($22..25) 465copy_4_slots_masked v₅ = Mask($2..5) 466store_condition_mask $2 = CondMask 467copy_4_slots_unmasked $3..6 = v₅ 468copy_4_immutables_unmasked $7..10 = i47..50 [0x40800000 (4.0), 0x41000000 (8.0), 0x41400000 (12.0), 0x41800000 (16.0)] 469cmpne_4_floats $3..6 = notEqual($3..6, $7..10) 470bitwise_or_2_ints $3..4 |= $5..6 471bitwise_or_int $3 |= $4 472merge_condition_mask CondMask = $2 & $3 473copy_constant $4 = 0 474copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4) 475mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 476load_condition_mask CondMask = $2 477splat_4_constants $6..9 = 0xBF800000 (-1.0) 478copy_4_slots_unmasked $10..13 = testMatrix4x4(0..3) 479copy_4_slots_unmasked $14..17 = testMatrix4x4(4..7) 480copy_4_slots_unmasked $18..21 = testMatrix4x4(8..11) 481copy_4_slots_unmasked $22..25 = testMatrix4x4(12..15) 482matrix_multiply_4 mat4x1($2..5) = mat4x1($6..9) * mat4x4($10..25) 483copy_4_slots_masked v₅ = Mask($2..5) 484store_condition_mask $2 = CondMask 485copy_4_slots_unmasked $3..6 = v₅ 486splat_4_constants $7..10 = 0xC1200000 (-10.0) 487cmpne_4_floats $3..6 = notEqual($3..6, $7..10) 488bitwise_or_2_ints $3..4 |= $5..6 489bitwise_or_int $3 |= $4 490merge_condition_mask CondMask = $2 & $3 491copy_constant $4 = 0 492copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($4) 493mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 494load_condition_mask CondMask = $2 495copy_4_slots_unmasked $6..9 = testMatrix4x4(0..3) 496copy_4_slots_unmasked $10..13 = testMatrix4x4(4..7) 497copy_4_slots_unmasked $14..17 = testMatrix4x4(8..11) 498copy_4_slots_unmasked $18..21 = testMatrix4x4(12..15) 499splat_4_constants $22..25 = 0xBF800000 (-1.0) 500matrix_multiply_4 mat1x4($2..5) = mat4x4($6..21) * mat1x4($22..25) 501copy_4_slots_masked v₅ = Mask($2..5) 502copy_4_immutables_unmasked $6..9 = i51..54 [0xC0800000 (-4.0), 0xC1000000 (-8.0), 0xC1400000 (-12.0), 0xC1800000 (-16.0)] 503cmpeq_4_floats $2..5 = equal($2..5, $6..9) 504bitwise_and_2_ints $2..3 &= $4..5 505bitwise_and_int $2 &= $3 506copy_slot_masked [test_no_op_vec4_X_mat4].result = Mask($2) 507load_return_mask RetMask = $1 508copy_slot_unmasked $1 = [test_no_op_vec4_X_mat4].result 509label label 0x0000000B 510copy_slot_masked $0 = Mask($1) 511label label 0x00000001 512load_condition_mask CondMask = $26 513swizzle_4 $0..3 = ($0..3).xxxx 514copy_4_uniforms $4..7 = colorRed 515copy_4_uniforms $8..11 = colorGreen 516mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 517load_src src.rgba = $0..3 518