A8 over A8 3 registers, 15 instructions: r0 = load8 arg(0) r1 = splat 3B808081 (1/255) r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = load8 arg(1) r2 = to_f32 r2 r2 = mul_f32 r1 r2 r1 = splat 3F800000 (1) r1 = sub_f32 r1 r0 r1 = mad_f32 r2 r1 r0 r2 = splat 437F0000 (255) r0 = splat 3F000000 (1/2) r0 = mad_f32 r1 r2 r0 r0 = to_i32 r0 store8 arg(1) r0 A8 over G8 4 registers, 21 instructions: r0 = load8 arg(0) r1 = splat 3B808081 (1/255) r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = load8 arg(1) r2 = to_f32 r2 r2 = mul_f32 r1 r2 r1 = splat 3F800000 (1) r1 = sub_f32 r1 r0 r1 = mul_f32 r2 r1 r2 = splat 3E59B3D0 (0.21259999) r0 = splat 3F371759 (0.71520001) r3 = splat 3D93DD98 (0.0722) r3 = mul_f32 r1 r3 r3 = mad_f32 r1 r0 r3 r3 = mad_f32 r1 r2 r3 r2 = splat 437F0000 (255) r1 = splat 3F000000 (1/2) r1 = mad_f32 r3 r2 r1 r1 = to_i32 r1 store8 arg(1) r1 A8 over RGBA_8888 6 registers, 37 instructions: r0 = load8 arg(0) r1 = splat 3B808081 (1/255) r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = load32 arg(1) r3 = extract r2 FF r3 = to_f32 r3 r3 = mul_f32 r1 r3 r4 = extract r2 FF00 r4 = to_f32 r4 r4 = mul_f32 r1 r4 r5 = extract r2 FF0000 r5 = to_f32 r5 r5 = mul_f32 r1 r5 r2 = shr r2 24 r2 = to_f32 r2 r2 = mul_f32 r1 r2 r1 = splat 3F800000 (1) r1 = sub_f32 r1 r0 r3 = mul_f32 r3 r1 r4 = mul_f32 r4 r1 r5 = mul_f32 r5 r1 r1 = mad_f32 r2 r1 r0 r2 = splat 437F0000 (255) r0 = splat 3F000000 (1/2) r3 = mad_f32 r3 r2 r0 r3 = to_i32 r3 r4 = mad_f32 r4 r2 r0 r4 = to_i32 r4 r5 = mad_f32 r5 r2 r0 r5 = to_i32 r5 r0 = mad_f32 r1 r2 r0 r0 = to_i32 r0 r4 = pack r3 r4 8 r0 = pack r5 r0 8 r0 = pack r4 r0 16 store32 arg(1) r0 G8 over A8 3 registers, 12 instructions: r0 = splat 3B808081 (1/255) r1 = splat 3F800000 (1) r2 = load8 arg(1) r2 = to_f32 r2 r2 = mul_f32 r0 r2 r0 = sub_f32 r1 r1 r0 = mad_f32 r2 r0 r1 r2 = splat 437F0000 (255) r1 = splat 3F000000 (1/2) r1 = mad_f32 r0 r2 r1 r1 = to_i32 r1 store8 arg(1) r1 G8 over G8 4 registers, 21 instructions: r0 = load8 arg(0) r1 = splat 3B808081 (1/255) r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = splat 3F800000 (1) r3 = load8 arg(1) r3 = to_f32 r3 r3 = mul_f32 r1 r3 r2 = sub_f32 r2 r2 r2 = mad_f32 r3 r2 r0 r3 = splat 3E59B3D0 (0.21259999) r0 = splat 3F371759 (0.71520001) r1 = splat 3D93DD98 (0.0722) r1 = mul_f32 r2 r1 r1 = mad_f32 r2 r0 r1 r1 = mad_f32 r2 r3 r1 r3 = splat 437F0000 (255) r2 = splat 3F000000 (1/2) r2 = mad_f32 r1 r3 r2 r2 = to_i32 r2 store8 arg(1) r2 G8 over RGBA_8888 7 registers, 37 instructions: r0 = load8 arg(0) r1 = splat 3B808081 (1/255) r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = splat 3F800000 (1) r3 = load32 arg(1) r4 = extract r3 FF r4 = to_f32 r4 r4 = mul_f32 r1 r4 r5 = extract r3 FF00 r5 = to_f32 r5 r5 = mul_f32 r1 r5 r6 = extract r3 FF0000 r6 = to_f32 r6 r6 = mul_f32 r1 r6 r3 = shr r3 24 r3 = to_f32 r3 r3 = mul_f32 r1 r3 r1 = sub_f32 r2 r2 r4 = mad_f32 r4 r1 r0 r5 = mad_f32 r5 r1 r0 r6 = mad_f32 r6 r1 r0 r1 = mad_f32 r3 r1 r2 r3 = splat 437F0000 (255) r2 = splat 3F000000 (1/2) r4 = mad_f32 r4 r3 r2 r4 = to_i32 r4 r5 = mad_f32 r5 r3 r2 r5 = to_i32 r5 r6 = mad_f32 r6 r3 r2 r6 = to_i32 r6 r2 = mad_f32 r1 r3 r2 r2 = to_i32 r2 r5 = pack r4 r5 8 r2 = pack r6 r2 8 r2 = pack r5 r2 16 store32 arg(1) r2 RGBA_8888 over A8 3 registers, 16 instructions: r0 = load32 arg(0) r1 = splat 3B808081 (1/255) r0 = shr r0 24 r0 = to_f32 r0 r0 = mul_f32 r1 r0 r2 = load8 arg(1) r2 = to_f32 r2 r2 = mul_f32 r1 r2 r1 = splat 3F800000 (1) r1 = sub_f32 r1 r0 r1 = mad_f32 r2 r1 r0 r2 = splat 437F0000 (255) r0 = splat 3F000000 (1/2) r0 = mad_f32 r1 r2 r0 r0 = to_i32 r0 store8 arg(1) r0 RGBA_8888 over G8 6 registers, 33 instructions: r0 = load32 arg(0) r1 = extract r0 FF r2 = splat 3B808081 (1/255) r1 = to_f32 r1 r1 = mul_f32 r2 r1 r3 = extract r0 FF00 r3 = to_f32 r3 r3 = mul_f32 r2 r3 r4 = extract r0 FF0000 r4 = to_f32 r4 r4 = mul_f32 r2 r4 r0 = shr r0 24 r0 = to_f32 r0 r0 = mul_f32 r2 r0 r5 = load8 arg(1) r5 = to_f32 r5 r5 = mul_f32 r2 r5 r2 = splat 3F800000 (1) r2 = sub_f32 r2 r0 r1 = mad_f32 r5 r2 r1 r3 = mad_f32 r5 r2 r3 r2 = mad_f32 r5 r2 r4 r5 = splat 3E59B3D0 (0.21259999) r4 = splat 3F371759 (0.71520001) r0 = splat 3D93DD98 (0.0722) r0 = mul_f32 r2 r0 r0 = mad_f32 r3 r4 r0 r0 = mad_f32 r1 r5 r0 r5 = splat 437F0000 (255) r1 = splat 3F000000 (1/2) r1 = mad_f32 r0 r5 r1 r1 = to_i32 r1 store8 arg(1) r1 RGBA_8888 over RGBA_8888 9 registers, 47 instructions: r0 = load32 arg(0) r1 = extract r0 FF r2 = splat 3B808081 (1/255) r1 = to_f32 r1 r1 = mul_f32 r2 r1 r3 = extract r0 FF00 r3 = to_f32 r3 r3 = mul_f32 r2 r3 r4 = extract r0 FF0000 r4 = to_f32 r4 r4 = mul_f32 r2 r4 r0 = shr r0 24 r0 = to_f32 r0 r0 = mul_f32 r2 r0 r5 = load32 arg(1) r6 = extract r5 FF r6 = to_f32 r6 r6 = mul_f32 r2 r6 r7 = extract r5 FF00 r7 = to_f32 r7 r7 = mul_f32 r2 r7 r8 = extract r5 FF0000 r8 = to_f32 r8 r8 = mul_f32 r2 r8 r5 = shr r5 24 r5 = to_f32 r5 r5 = mul_f32 r2 r5 r2 = splat 3F800000 (1) r2 = sub_f32 r2 r0 r6 = mad_f32 r6 r2 r1 r7 = mad_f32 r7 r2 r3 r8 = mad_f32 r8 r2 r4 r2 = mad_f32 r5 r2 r0 r5 = splat 437F0000 (255) r0 = splat 3F000000 (1/2) r6 = mad_f32 r6 r5 r0 r6 = to_i32 r6 r7 = mad_f32 r7 r5 r0 r7 = to_i32 r7 r8 = mad_f32 r8 r5 r0 r8 = to_i32 r8 r0 = mad_f32 r2 r5 r0 r0 = to_i32 r0 r7 = pack r6 r7 8 r0 = pack r8 r0 8 r0 = pack r7 r0 16 store32 arg(1) r0 I32 8888 over 8888 9 registers, 24 instructions: r0 = load32 arg(0) r1 = extract r0 FF r2 = extract r0 FF00 r3 = extract r0 FF0000 r0 = shr r0 24 r4 = load32 arg(1) r5 = extract r4 FF r6 = extract r4 FF00 r7 = extract r4 FF0000 r4 = shr r4 24 r8 = splat FF (3.5733111e-43) r8 = sub_i32 r8 r0 r5 = mul_unorm8 r5 r8 r5 = add_i32 r1 r5 r6 = mul_unorm8 r6 r8 r6 = add_i32 r2 r6 r7 = mul_unorm8 r7 r8 r7 = add_i32 r3 r7 r8 = mul_unorm8 r4 r8 r8 = add_i32 r0 r8 r6 = pack r5 r6 8 r8 = pack r7 r8 8 r8 = pack r6 r8 16 store32 arg(1) r8 I32 (SWAR) 8888 over 8888 6 registers, 20 instructions: r0 = load32 arg(0) r1 = extract r0 FF00FF r0 = extract r0 FF00FF00 r2 = load32 arg(1) r3 = extract r2 FF00FF r2 = extract r2 FF00FF00 r4 = splat FF (3.5733111e-43) r5 = shr r0 16 r5 = sub_i32 r4 r5 r4 = splat FF00FF (2.3418409e-38) r3 = mul_i32 r3 r5 r3 = add_i32 r3 r4 r3 = extract r3 FF00FF00 r3 = add_i32 r1 r3 r5 = mul_i32 r2 r5 r5 = add_i32 r5 r4 r5 = extract r5 FF00FF00 r5 = add_i32 r0 r5 r5 = pack r3 r5 8 store32 arg(1) r5