blob: bccae3225c7e356c93d9ee14084e8171533a7b85 [file] [log] [blame]
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