r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], LINEAR DCL OUT[0], COLOR DCL SAMP[0] 0: TEX OUT[0], IN[0], SAMP[0], 2D 1: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[1], input[0], 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[1], input[0], 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[0], input[0].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[0], temp[0].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=0************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) TEX: TEX t0, t0, texture[0] (00008000) 0: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL OUT[0], COLOR DCL TEMP[0] 0: MOV TEMP[0], IN[0] 1: MOV OUT[0], TEMP[0] 2: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=1************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], COLOR, PERSPECTIVE DCL OUT[0], COLOR 0: MOV OUT[0], IN[0] 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=2************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL TEMP[0..1] 0: TEX TEMP[0], IN[1], SAMP[0], 2D 1: MUL TEMP[1], IN[0], TEMP[0] 2: MOV OUT[0], TEMP[1] 3: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MOV output[0], temp[1]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[2], input[1].xy__, 2D[0]; 1: MUL temp[3], input[0], temp[2]; 2: MOV output[0], temp[3]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[2], input[1].xy__, 2D[0]; 1: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[2], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 2: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[2], input[1].xy__, 2D[0]; 2: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[2], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[1], temp[1].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[1], src1.w = temp[1] MAD temp[0].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[0].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=3************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 1, tex_end: 0 (code_addr: 00400040) TEX: TEX t1, t1, texture[0] (00008041) 0: xyz: t0 t1 t0 bias-> t0.xyz (03800040) w: t0 t1 t0 bias-> t0.w (00800040) xyz: t0.xyz t1.xyz 0.0 op: 00050200 w: t0.w t1.w 0.0 op: 00040509 1: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL TEMP[0..1] 0: TEX TEMP[0], IN[1], SAMP[0], 2D 1: MUL TEMP[1], IN[0], TEMP[0].wwww 2: MOV OUT[0], TEMP[1] 3: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[0].w, input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[0].w, input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0].w, input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0].w, input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[0].w, input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[2].w, input[1].xy__, 2D[0]; 1: MUL temp[3], input[0], temp[2].wwww; 2: MOV output[0], temp[3]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[2].w, input[1].xy__, 2D[0]; 1: src0.xyz = input[0], src0.w = input[0], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.www, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 2: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[2].w, input[1].xy__, 2D[0]; 2: src0.xyz = input[0], src0.w = input[0], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.www, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[1].w, temp[1].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.w = temp[1] MAD temp[0].xyz, src0.xyz, src1.www, src0.000 MAD temp[0].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=4************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 1, tex_end: 0 (code_addr: 00400040) TEX: TEX t1, t1, texture[0] (00008041) 0: xyz: t0 t0 t0 bias-> t0.xyz (03800000) w: t0 t1 t0 bias-> t0.w (00800040) xyz: t0.xyz t1.www 0.0 op: 00050680 w: t0.w t1.w 0.0 op: 00040509 1: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 (gnome-shell:5753): GdmUser-WARNING **: Unable to parse history: (null) 1 r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], LINEAR DCL OUT[0], COLOR 0: MOV OUT[0], IN[0] 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=5************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0] DCL TEMP[0..1] 0: TEX TEMP[0], IN[0], SAMP[0], 2D 1: MUL TEMP[1], CONST[0], TEMP[0].wwww 2: MOV OUT[0], TEMP[1] 3: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[0], input[0], 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[0].w, input[0].xy__, 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[0].w, input[0].xy__, 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0].w, input[0].xy__, 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0].w, input[0].xy__, 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[0].w, input[0].xy__, 2D[0]; 1: MUL temp[1], const[0], temp[0].wwww; 2: MOV output[0], temp[1]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[2].w, input[0].xy__, 2D[0]; 1: MUL temp[3], const[0], temp[2].wwww; 2: MOV output[0], temp[3]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[2].w, input[0].xy__, 2D[0]; 1: src0.xyz = const[0], src0.w = const[0], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.www, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 2: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[2].w, input[0].xy__, 2D[0]; 2: src0.xyz = const[0], src0.w = const[0], src1.w = temp[2] MAD temp[3].xyz, src0.xyz, src1.www, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[0].w, temp[0].xy__, 2D[0]; 2: src0.xyz = const[0], src0.w = const[0], src1.w = temp[0] MAD temp[0].xyz, src0.xyz, src1.www, src0.000 MAD temp[0].w, src0.w, src1.w, src0.0 3: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=6************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 1, tex_end: 0 (code_addr: 00400040) TEX: TEX t0, t0, texture[0] (00008000) 0: xyz: c0 t0 t0 bias-> t0.xyz (03800020) w: c0 t0 t0 bias-> t0.w (00800020) xyz: c0.xyz t0.www 0.0 op: 00050680 w: c0.w t0.w 0.0 op: 00040509 1: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0..5] DCL TEMP[0..12] IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: TEX TEMP[0], IN[1].xyyy, SAMP[0], 2D 1: MUL TEMP[1], IN[0], TEMP[0] 2: MUL TEMP[0].x, CONST[5].xxxx, IN[1].yyyy 3: MUL TEMP[2].x, CONST[4].xxxx, IN[1].xxxx 4: ADD TEMP[3].x, CONST[5].xxxx, -CONST[2].xxxx 5: SNE TEMP[4].x, CONST[1].xxxx, IMM[0].xxxx 6: SLT TEMP[5].x, TEMP[0].xxxx, CONST[1].xxxx 7: CMP TEMP[6], -TEMP[4].xxxx, TEMP[5].xxxx, TEMP[6] 8: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 9: CMP TEMP[6], -TEMP[5].xxxx, IMM[0].xxxx, TEMP[6] 10: CMP TEMP[4], -TEMP[6].xxxx, CONST[0].xxxx, TEMP[4] 11: SGT TEMP[5].x, TEMP[2].xxxx, CONST[3].xxxx 12: MUL TEMP[7].x, TEMP[6].xxxx, TEMP[4].xxxx 13: CMP TEMP[8], -TEMP[7].xxxx, TEMP[5].xxxx, TEMP[8] 14: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 15: MUL TEMP[4].x, TEMP[6].xxxx, TEMP[5].xxxx 16: CMP TEMP[8], -TEMP[4].xxxx, IMM[0].xxxx, TEMP[8] 17: CMP TEMP[4], -TEMP[6].xxxx, TEMP[8].xxxx, TEMP[4] 18: MUL TEMP[5].x, TEMP[6].xxxx, TEMP[4].xxxx 19: CMP TEMP[7], -TEMP[5].xxxx, IMM[0].yyyy, TEMP[7] 20: SEQ TEMP[5].x, CONST[0].xxxx, IMM[0].xxxx 21: SEQ TEMP[8].x, TEMP[4].xxxx, IMM[0].xxxx 22: MUL TEMP[9].x, TEMP[6].xxxx, TEMP[8].xxxx 23: CMP TEMP[8], -TEMP[9].xxxx, TEMP[5].xxxx, TEMP[8] 24: ADD TEMP[5].x, CONST[4].xxxx, -CONST[3].xxxx 25: SLT TEMP[9].x, TEMP[2].xxxx, TEMP[5].xxxx 26: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 27: MUL TEMP[10].x, TEMP[5].xxxx, TEMP[8].xxxx 28: MUL TEMP[5].x, TEMP[6].xxxx, TEMP[10].xxxx 29: CMP TEMP[10], -TEMP[5].xxxx, TEMP[9].xxxx, TEMP[10] 30: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 31: SEQ TEMP[9].x, TEMP[8].xxxx, IMM[0].xxxx 32: MUL TEMP[8].x, TEMP[5].xxxx, TEMP[9].xxxx 33: MUL TEMP[5].x, TEMP[6].xxxx, TEMP[8].xxxx 34: CMP TEMP[10], -TEMP[5].xxxx, IMM[0].xxxx, TEMP[10] 35: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 36: MUL TEMP[4].x, TEMP[6].xxxx, TEMP[5].xxxx 37: CMP TEMP[7], -TEMP[4].xxxx, TEMP[10].xxxx, TEMP[7] 38: CMP TEMP[4], -TEMP[6].xxxx, TEMP[7].xxxx, TEMP[4] 39: SEQ TEMP[5].x, TEMP[6].xxxx, IMM[0].xxxx 40: CMP TEMP[4], -TEMP[5].xxxx, IMM[0].xxxx, TEMP[4] 41: RCP TEMP[5].x, CONST[1].xxxx 42: MUL TEMP[6].x, TEMP[0].xxxx, TEMP[5].xxxx 43: MUL TEMP[5], TEMP[1], TEMP[6].xxxx 44: CMP TEMP[11], -TEMP[4].xxxx, TEMP[5], TEMP[11] 45: SNE TEMP[5].x, CONST[2].xxxx, IMM[0].xxxx 46: SEQ TEMP[6].x, TEMP[4].xxxx, IMM[0].xxxx 47: CMP TEMP[7], -TEMP[6].xxxx, TEMP[5].xxxx, TEMP[7] 48: SGT TEMP[5].x, TEMP[0].xxxx, TEMP[3].xxxx 49: SEQ TEMP[6].x, TEMP[4].xxxx, IMM[0].xxxx 50: MUL TEMP[8].x, TEMP[6].xxxx, TEMP[7].xxxx 51: CMP TEMP[6], -TEMP[8].xxxx, TEMP[5].xxxx, TEMP[6] 52: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 53: SEQ TEMP[8].x, TEMP[7].xxxx, IMM[0].xxxx 54: MUL TEMP[7].x, TEMP[5].xxxx, TEMP[8].xxxx 55: CMP TEMP[6], -TEMP[7].xxxx, IMM[0].xxxx, TEMP[6] 56: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 57: CMP TEMP[7], -TEMP[5].xxxx, TEMP[6].xxxx, TEMP[7] 58: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 59: MUL TEMP[6].x, TEMP[5].xxxx, TEMP[7].xxxx 60: CMP TEMP[5], -TEMP[6].xxxx, CONST[0].xxxx, TEMP[5] 61: SGT TEMP[6].x, TEMP[2].xxxx, CONST[3].xxxx 62: SEQ TEMP[8].x, TEMP[4].xxxx, IMM[0].xxxx 63: MUL TEMP[9].x, TEMP[7].xxxx, TEMP[5].xxxx 64: MUL TEMP[10].x, TEMP[8].xxxx, TEMP[9].xxxx 65: CMP TEMP[8], -TEMP[10].xxxx, TEMP[6].xxxx, TEMP[8] 66: SEQ TEMP[6].x, TEMP[4].xxxx, IMM[0].xxxx 67: SEQ TEMP[9].x, TEMP[5].xxxx, IMM[0].xxxx 68: MUL TEMP[5].x, TEMP[7].xxxx, TEMP[9].xxxx 69: MUL TEMP[9].x, TEMP[6].xxxx, TEMP[5].xxxx 70: CMP TEMP[8], -TEMP[9].xxxx, IMM[0].xxxx, TEMP[8] 71: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 72: MUL TEMP[6].x, TEMP[5].xxxx, TEMP[7].xxxx 73: CMP TEMP[5], -TEMP[6].xxxx, TEMP[8].xxxx, TEMP[5] 74: SEQ TEMP[6].x, TEMP[4].xxxx, IMM[0].xxxx 75: MUL TEMP[8].x, TEMP[7].xxxx, TEMP[5].xxxx 76: MUL TEMP[9].x, TEMP[6].xxxx, TEMP[8].xxxx 77: CMP TEMP[6], -TEMP[9].xxxx, IMM[0].yyyy, TEMP[6] 78: SEQ TEMP[8].x, CONST[0].xxxx, IMM[0].xxxx 79: SEQ TEMP[9].x, TEMP[4].xxxx, IMM[0].xxxx 80: SEQ TEMP[10].x, TEMP[5].xxxx, IMM[0].xxxx 81: MUL TEMP[12].x, TEMP[7].xxxx, TEMP[10].xxxx 82: MUL TEMP[10].x, TEMP[9].xxxx, TEMP[12].xxxx 83: CMP TEMP[9], -TEMP[10].xxxx, TEMP[8].xxxx, TEMP[9] 84: ADD TEMP[8].x, CONST[4].xxxx, -CONST[3].xxxx 85: SLT TEMP[10].x, TEMP[2].xxxx, TEMP[8].xxxx 86: SEQ TEMP[2].x, TEMP[4].xxxx, IMM[0].xxxx 87: SEQ TEMP[8].x, TEMP[5].xxxx, IMM[0].xxxx 88: MUL TEMP[12].x, TEMP[8].xxxx, TEMP[9].xxxx 89: MUL TEMP[8].x, TEMP[7].xxxx, TEMP[12].xxxx 90: MUL TEMP[12].x, TEMP[2].xxxx, TEMP[8].xxxx 91: CMP TEMP[2], -TEMP[12].xxxx, TEMP[10].xxxx, TEMP[2] 92: SEQ TEMP[8].x, TEMP[4].xxxx, IMM[0].xxxx 93: SEQ TEMP[10].x, TEMP[5].xxxx, IMM[0].xxxx 94: SEQ TEMP[12].x, TEMP[9].xxxx, IMM[0].xxxx 95: MUL TEMP[9].x, TEMP[10].xxxx, TEMP[12].xxxx 96: MUL TEMP[10].x, TEMP[7].xxxx, TEMP[9].xxxx 97: MUL TEMP[9].x, TEMP[8].xxxx, TEMP[10].xxxx 98: CMP TEMP[2], -TEMP[9].xxxx, IMM[0].xxxx, TEMP[2] 99: SEQ TEMP[8].x, TEMP[4].xxxx, IMM[0].xxxx 100: SEQ TEMP[9].x, TEMP[5].xxxx, IMM[0].xxxx 101: MUL TEMP[5].x, TEMP[7].xxxx, TEMP[9].xxxx 102: MUL TEMP[9].x, TEMP[8].xxxx, TEMP[5].xxxx 103: CMP TEMP[6], -TEMP[9].xxxx, TEMP[2].xxxx, TEMP[6] 104: SEQ TEMP[2].x, TEMP[4].xxxx, IMM[0].xxxx 105: MUL TEMP[5].x, TEMP[2].xxxx, TEMP[7].xxxx 106: CMP TEMP[2], -TEMP[5].xxxx, TEMP[6].xxxx, TEMP[2] 107: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 108: SEQ TEMP[6].x, TEMP[7].xxxx, IMM[0].xxxx 109: MUL TEMP[7].x, TEMP[5].xxxx, TEMP[6].xxxx 110: CMP TEMP[2], -TEMP[7].xxxx, IMM[0].xxxx, TEMP[2] 111: SEQ TEMP[5].x, TEMP[4].xxxx, IMM[0].xxxx 112: CMP TEMP[6], -TEMP[5].xxxx, TEMP[2].xxxx, TEMP[6] 113: ADD TEMP[2].x, CONST[5].xxxx, -TEMP[0].xxxx 114: ADD TEMP[0].x, CONST[5].xxxx, -TEMP[3].xxxx 115: RCP TEMP[3].x, TEMP[0].xxxx 116: MUL TEMP[0].x, TEMP[2].xxxx, TEMP[3].xxxx 117: MUL TEMP[2], TEMP[1], TEMP[0].xxxx 118: SEQ TEMP[0].x, TEMP[4].xxxx, IMM[0].xxxx 119: MUL TEMP[3].x, TEMP[0].xxxx, TEMP[6].xxxx 120: CMP TEMP[11], -TEMP[3].xxxx, TEMP[2], TEMP[11] 121: SEQ TEMP[0].x, TEMP[4].xxxx, IMM[0].xxxx 122: SEQ TEMP[2].x, TEMP[6].xxxx, IMM[0].xxxx 123: MUL TEMP[3].x, TEMP[0].xxxx, TEMP[2].xxxx 124: CMP TEMP[11], -TEMP[3].xxxx, TEMP[1], TEMP[11] 125: MOV OUT[0], TEMP[11] 126: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: SNE temp[4].x, const[1].xxxx, temp[0].0000; 6: SLT temp[5].x, temp[0].xxxx, const[1].xxxx; 7: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 8: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 9: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 10: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 11: SGT temp[5].x, temp[2].xxxx, const[3].xxxx; 12: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 13: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 14: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 15: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 16: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 17: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 18: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 19: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 20: SEQ temp[5].x, const[0].xxxx, temp[0].0000; 21: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 22: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 23: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 24: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 25: SLT temp[9].x, temp[2].xxxx, temp[5].xxxx; 26: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 27: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 28: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 29: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 30: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 31: SEQ temp[9].x, temp[8].xxxx, temp[0].0000; 32: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 33: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 34: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 35: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 36: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 37: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 38: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 39: SEQ temp[5].x, temp[6].xxxx, temp[0].0000; 40: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 41: RCP temp[5].x, const[1].xxxx; 42: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 43: MUL temp[5], temp[1], temp[6].xxxx; 44: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 45: SNE temp[5].x, const[2].xxxx, temp[0].0000; 46: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 47: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 48: SGT temp[5].x, temp[0].xxxx, temp[3].xxxx; 49: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 50: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 51: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 52: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 53: SEQ temp[8].x, temp[7].xxxx, temp[0].0000; 54: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 55: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 56: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 57: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 58: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 59: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 60: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 61: SGT temp[6].x, temp[2].xxxx, const[3].xxxx; 62: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 63: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 64: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 65: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 66: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 67: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 68: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 69: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 70: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 71: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 72: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 73: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 74: SEQ temp[6].x, temp[4].xxxx, temp[0].0000; 75: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 76: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 77: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 78: SEQ temp[8].x, const[0].xxxx, temp[0].0000; 79: SEQ temp[9].x, temp[4].xxxx, temp[0].0000; 80: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 81: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 82: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 83: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 84: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 85: SLT temp[10].x, temp[2].xxxx, temp[8].xxxx; 86: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 87: SEQ temp[8].x, temp[5].xxxx, temp[0].0000; 88: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 89: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 90: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 91: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 92: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 93: SEQ temp[10].x, temp[5].xxxx, temp[0].0000; 94: SEQ temp[12].x, temp[9].xxxx, temp[0].0000; 95: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 96: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 97: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 98: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 99: SEQ temp[8].x, temp[4].xxxx, temp[0].0000; 100: SEQ temp[9].x, temp[5].xxxx, temp[0].0000; 101: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 102: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 103: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 104: SEQ temp[2].x, temp[4].xxxx, temp[0].0000; 105: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 106: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 107: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 108: SEQ temp[6].x, temp[7].xxxx, temp[0].0000; 109: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 110: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 111: SEQ temp[5].x, temp[4].xxxx, temp[0].0000; 112: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 113: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 114: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 115: RCP temp[3].x, temp[0].xxxx; 116: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 117: MUL temp[2], temp[1], temp[0].xxxx; 118: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 119: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 120: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 121: SEQ temp[0].x, temp[4].xxxx, temp[0].0000; 122: SEQ temp[2].x, temp[6].xxxx, temp[0].0000; 123: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 124: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 125: MOV output[0], temp[11]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[0], input[1].xyyy, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].xxxx, input[1].yyyy; 3: MUL temp[2].x, const[4].xxxx, input[1].xxxx; 4: ADD temp[3].x, const[5].xxxx, -const[2].xxxx; 5: ADD temp[4].x, const[1].xxxx, -temp[0].0000; 6: CMP temp[4].x, -|temp[4]|, none.1111, none.0000; 7: ADD temp[5].x, temp[0].xxxx, -const[1].xxxx; 8: CMP temp[5].x, temp[5], none.1111, none.0000; 9: CMP temp[6], -temp[4].xxxx, temp[5].xxxx, temp[6]; 10: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 11: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 12: CMP temp[6], -temp[5].xxxx, temp[0].0000, temp[6]; 13: CMP temp[4], -temp[6].xxxx, const[0].xxxx, temp[4]; 14: ADD temp[5].x, -temp[2].xxxx, const[3].xxxx; 15: CMP temp[5].x, temp[5], none.1111, none.0000; 16: MUL temp[7].x, temp[6].xxxx, temp[4].xxxx; 17: CMP temp[8], -temp[7].xxxx, temp[5].xxxx, temp[8]; 18: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 19: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 20: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 21: CMP temp[8], -temp[4].xxxx, temp[0].0000, temp[8]; 22: CMP temp[4], -temp[6].xxxx, temp[8].xxxx, temp[4]; 23: MUL temp[5].x, temp[6].xxxx, temp[4].xxxx; 24: CMP temp[7], -temp[5].xxxx, temp[0].1111, temp[7]; 25: ADD temp[5].x, const[0].xxxx, -temp[0].0000; 26: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 27: ADD temp[8].x, temp[4].xxxx, -temp[0].0000; 28: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 29: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 30: CMP temp[8], -temp[9].xxxx, temp[5].xxxx, temp[8]; 31: ADD temp[5].x, const[4].xxxx, -const[3].xxxx; 32: ADD temp[9].x, temp[2].xxxx, -temp[5].xxxx; 33: CMP temp[9].x, temp[9], none.1111, none.0000; 34: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 35: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 36: MUL temp[10].x, temp[5].xxxx, temp[8].xxxx; 37: MUL temp[5].x, temp[6].xxxx, temp[10].xxxx; 38: CMP temp[10], -temp[5].xxxx, temp[9].xxxx, temp[10]; 39: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 40: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 41: ADD temp[9].x, temp[8].xxxx, -temp[0].0000; 42: CMP temp[9].x, -|temp[9]|, none.0000, none.1111; 43: MUL temp[8].x, temp[5].xxxx, temp[9].xxxx; 44: MUL temp[5].x, temp[6].xxxx, temp[8].xxxx; 45: CMP temp[10], -temp[5].xxxx, temp[0].0000, temp[10]; 46: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 47: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 48: MUL temp[4].x, temp[6].xxxx, temp[5].xxxx; 49: CMP temp[7], -temp[4].xxxx, temp[10].xxxx, temp[7]; 50: CMP temp[4], -temp[6].xxxx, temp[7].xxxx, temp[4]; 51: ADD temp[5].x, temp[6].xxxx, -temp[0].0000; 52: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 53: CMP temp[4], -temp[5].xxxx, temp[0].0000, temp[4]; 54: RCP temp[5].x, const[1].xxxx; 55: MUL temp[6].x, temp[0].xxxx, temp[5].xxxx; 56: MUL temp[5], temp[1], temp[6].xxxx; 57: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 58: ADD temp[5].x, const[2].xxxx, -temp[0].0000; 59: CMP temp[5].x, -|temp[5]|, none.1111, none.0000; 60: ADD temp[6].x, temp[4].xxxx, -temp[0].0000; 61: CMP temp[6].x, -|temp[6]|, none.0000, none.1111; 62: CMP temp[7], -temp[6].xxxx, temp[5].xxxx, temp[7]; 63: ADD temp[5].x, -temp[0].xxxx, temp[3].xxxx; 64: CMP temp[5].x, temp[5], none.1111, none.0000; 65: ADD temp[6].x, temp[4].xxxx, -temp[0].0000; 66: CMP temp[6].x, -|temp[6]|, none.0000, none.1111; 67: MUL temp[8].x, temp[6].xxxx, temp[7].xxxx; 68: CMP temp[6], -temp[8].xxxx, temp[5].xxxx, temp[6]; 69: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 70: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 71: ADD temp[8].x, temp[7].xxxx, -temp[0].0000; 72: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 73: MUL temp[7].x, temp[5].xxxx, temp[8].xxxx; 74: CMP temp[6], -temp[7].xxxx, temp[0].0000, temp[6]; 75: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 76: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 77: CMP temp[7], -temp[5].xxxx, temp[6].xxxx, temp[7]; 78: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 79: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 80: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 81: CMP temp[5], -temp[6].xxxx, const[0].xxxx, temp[5]; 82: ADD temp[6].x, -temp[2].xxxx, const[3].xxxx; 83: CMP temp[6].x, temp[6], none.1111, none.0000; 84: ADD temp[8].x, temp[4].xxxx, -temp[0].0000; 85: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 86: MUL temp[9].x, temp[7].xxxx, temp[5].xxxx; 87: MUL temp[10].x, temp[8].xxxx, temp[9].xxxx; 88: CMP temp[8], -temp[10].xxxx, temp[6].xxxx, temp[8]; 89: ADD temp[6].x, temp[4].xxxx, -temp[0].0000; 90: CMP temp[6].x, -|temp[6]|, none.0000, none.1111; 91: ADD temp[9].x, temp[5].xxxx, -temp[0].0000; 92: CMP temp[9].x, -|temp[9]|, none.0000, none.1111; 93: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 94: MUL temp[9].x, temp[6].xxxx, temp[5].xxxx; 95: CMP temp[8], -temp[9].xxxx, temp[0].0000, temp[8]; 96: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 97: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 98: MUL temp[6].x, temp[5].xxxx, temp[7].xxxx; 99: CMP temp[5], -temp[6].xxxx, temp[8].xxxx, temp[5]; 100: ADD temp[6].x, temp[4].xxxx, -temp[0].0000; 101: CMP temp[6].x, -|temp[6]|, none.0000, none.1111; 102: MUL temp[8].x, temp[7].xxxx, temp[5].xxxx; 103: MUL temp[9].x, temp[6].xxxx, temp[8].xxxx; 104: CMP temp[6], -temp[9].xxxx, temp[0].1111, temp[6]; 105: ADD temp[8].x, const[0].xxxx, -temp[0].0000; 106: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 107: ADD temp[9].x, temp[4].xxxx, -temp[0].0000; 108: CMP temp[9].x, -|temp[9]|, none.0000, none.1111; 109: ADD temp[10].x, temp[5].xxxx, -temp[0].0000; 110: CMP temp[10].x, -|temp[10]|, none.0000, none.1111; 111: MUL temp[12].x, temp[7].xxxx, temp[10].xxxx; 112: MUL temp[10].x, temp[9].xxxx, temp[12].xxxx; 113: CMP temp[9], -temp[10].xxxx, temp[8].xxxx, temp[9]; 114: ADD temp[8].x, const[4].xxxx, -const[3].xxxx; 115: ADD temp[10].x, temp[2].xxxx, -temp[8].xxxx; 116: CMP temp[10].x, temp[10], none.1111, none.0000; 117: ADD temp[2].x, temp[4].xxxx, -temp[0].0000; 118: CMP temp[2].x, -|temp[2]|, none.0000, none.1111; 119: ADD temp[8].x, temp[5].xxxx, -temp[0].0000; 120: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 121: MUL temp[12].x, temp[8].xxxx, temp[9].xxxx; 122: MUL temp[8].x, temp[7].xxxx, temp[12].xxxx; 123: MUL temp[12].x, temp[2].xxxx, temp[8].xxxx; 124: CMP temp[2], -temp[12].xxxx, temp[10].xxxx, temp[2]; 125: ADD temp[8].x, temp[4].xxxx, -temp[0].0000; 126: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 127: ADD temp[10].x, temp[5].xxxx, -temp[0].0000; 128: CMP temp[10].x, -|temp[10]|, none.0000, none.1111; 129: ADD temp[12].x, temp[9].xxxx, -temp[0].0000; 130: CMP temp[12].x, -|temp[12]|, none.0000, none.1111; 131: MUL temp[9].x, temp[10].xxxx, temp[12].xxxx; 132: MUL temp[10].x, temp[7].xxxx, temp[9].xxxx; 133: MUL temp[9].x, temp[8].xxxx, temp[10].xxxx; 134: CMP temp[2], -temp[9].xxxx, temp[0].0000, temp[2]; 135: ADD temp[8].x, temp[4].xxxx, -temp[0].0000; 136: CMP temp[8].x, -|temp[8]|, none.0000, none.1111; 137: ADD temp[9].x, temp[5].xxxx, -temp[0].0000; 138: CMP temp[9].x, -|temp[9]|, none.0000, none.1111; 139: MUL temp[5].x, temp[7].xxxx, temp[9].xxxx; 140: MUL temp[9].x, temp[8].xxxx, temp[5].xxxx; 141: CMP temp[6], -temp[9].xxxx, temp[2].xxxx, temp[6]; 142: ADD temp[2].x, temp[4].xxxx, -temp[0].0000; 143: CMP temp[2].x, -|temp[2]|, none.0000, none.1111; 144: MUL temp[5].x, temp[2].xxxx, temp[7].xxxx; 145: CMP temp[2], -temp[5].xxxx, temp[6].xxxx, temp[2]; 146: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 147: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 148: ADD temp[6].x, temp[7].xxxx, -temp[0].0000; 149: CMP temp[6].x, -|temp[6]|, none.0000, none.1111; 150: MUL temp[7].x, temp[5].xxxx, temp[6].xxxx; 151: CMP temp[2], -temp[7].xxxx, temp[0].0000, temp[2]; 152: ADD temp[5].x, temp[4].xxxx, -temp[0].0000; 153: CMP temp[5].x, -|temp[5]|, none.0000, none.1111; 154: CMP temp[6], -temp[5].xxxx, temp[2].xxxx, temp[6]; 155: ADD temp[2].x, const[5].xxxx, -temp[0].xxxx; 156: ADD temp[0].x, const[5].xxxx, -temp[3].xxxx; 157: RCP temp[3].x, temp[0].xxxx; 158: MUL temp[0].x, temp[2].xxxx, temp[3].xxxx; 159: MUL temp[2], temp[1], temp[0].xxxx; 160: ADD temp[13].x, temp[4].xxxx, -temp[0].0000; 161: CMP temp[0].x, -|temp[13]|, none.0000, none.1111; 162: MUL temp[3].x, temp[0].xxxx, temp[6].xxxx; 163: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 164: ADD temp[14].x, temp[4].xxxx, -temp[0].0000; 165: CMP temp[0].x, -|temp[14]|, none.0000, none.1111; 166: ADD temp[2].x, temp[6].xxxx, -temp[0].0000; 167: CMP temp[2].x, -|temp[2]|, none.0000, none.1111; 168: MUL temp[3].x, temp[0].xxxx, temp[2].xxxx; 169: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 170: MOV output[0], temp[11]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].x___, input[1].y___; 3: MUL temp[2].x, const[4].x___, input[1].x___; 4: ADD temp[3].x, const[5].x___, -const[2].x___; 5: ADD temp[4].x, const[1].x___, -temp[0].0___; 6: CMP temp[4].x, -|temp[4].x___|, none.1___, none.0___; 7: ADD temp[5].x, temp[0].x___, -const[1].x___; 8: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 9: CMP temp[6].x, -temp[4].x___, temp[5].x___, temp[6].x___; 10: ADD temp[5].x, temp[4].x___, -temp[0].0___; 11: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 12: CMP temp[6].x, -temp[5].x___, temp[0].0___, temp[6].x___; 13: CMP temp[4].x, -temp[6].x___, const[0].x___, temp[4].x___; 14: ADD temp[5].x, -temp[2].x___, const[3].x___; 15: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 16: MUL temp[7].x, temp[6].x___, temp[4].x___; 17: CMP temp[8].x, -temp[7].x___, temp[5].x___, temp[8].x___; 18: ADD temp[5].x, temp[4].x___, -temp[0].0___; 19: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 20: MUL temp[4].x, temp[6].x___, temp[5].x___; 21: CMP temp[8].x, -temp[4].x___, temp[0].0___, temp[8].x___; 22: CMP temp[4].x, -temp[6].x___, temp[8].x___, temp[4].x___; 23: MUL temp[5].x, temp[6].x___, temp[4].x___; 24: CMP temp[7].x, -temp[5].x___, temp[0].1___, temp[7].x___; 25: ADD temp[5].x, const[0].x___, -temp[0].0___; 26: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 27: ADD temp[8].x, temp[4].x___, -temp[0].0___; 28: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 29: MUL temp[9].x, temp[6].x___, temp[8].x___; 30: CMP temp[8].x, -temp[9].x___, temp[5].x___, temp[8].x___; 31: ADD temp[5].x, const[4].x___, -const[3].x___; 32: ADD temp[9].x, temp[2].x___, -temp[5].x___; 33: CMP temp[9].x, temp[9].x___, none.1___, none.0___; 34: ADD temp[5].x, temp[4].x___, -temp[0].0___; 35: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 36: MUL temp[10].x, temp[5].x___, temp[8].x___; 37: MUL temp[5].x, temp[6].x___, temp[10].x___; 38: CMP temp[10].x, -temp[5].x___, temp[9].x___, temp[10].x___; 39: ADD temp[5].x, temp[4].x___, -temp[0].0___; 40: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 41: ADD temp[9].x, temp[8].x___, -temp[0].0___; 42: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 43: MUL temp[8].x, temp[5].x___, temp[9].x___; 44: MUL temp[5].x, temp[6].x___, temp[8].x___; 45: CMP temp[10].x, -temp[5].x___, temp[0].0___, temp[10].x___; 46: ADD temp[5].x, temp[4].x___, -temp[0].0___; 47: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 48: MUL temp[4].x, temp[6].x___, temp[5].x___; 49: CMP temp[7].x, -temp[4].x___, temp[10].x___, temp[7].x___; 50: CMP temp[4].x, -temp[6].x___, temp[7].x___, temp[4].x___; 51: ADD temp[5].x, temp[6].x___, -temp[0].0___; 52: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 53: CMP temp[4].x, -temp[5].x___, temp[0].0___, temp[4].x___; 54: RCP temp[5].x, const[1].x___; 55: MUL temp[6].x, temp[0].x___, temp[5].x___; 56: MUL temp[5], temp[1], temp[6].xxxx; 57: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 58: ADD temp[5].x, const[2].x___, -temp[0].0___; 59: CMP temp[5].x, -|temp[5].x___|, none.1___, none.0___; 60: ADD temp[6].x, temp[4].x___, -temp[0].0___; 61: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 62: CMP temp[7].x, -temp[6].x___, temp[5].x___, temp[7].x___; 63: ADD temp[5].x, -temp[0].x___, temp[3].x___; 64: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 65: ADD temp[6].x, temp[4].x___, -temp[0].0___; 66: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 67: MUL temp[8].x, temp[6].x___, temp[7].x___; 68: CMP temp[6].x, -temp[8].x___, temp[5].x___, temp[6].x___; 69: ADD temp[5].x, temp[4].x___, -temp[0].0___; 70: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 71: ADD temp[8].x, temp[7].x___, -temp[0].0___; 72: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 73: MUL temp[7].x, temp[5].x___, temp[8].x___; 74: CMP temp[6].x, -temp[7].x___, temp[0].0___, temp[6].x___; 75: ADD temp[5].x, temp[4].x___, -temp[0].0___; 76: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 77: CMP temp[7].x, -temp[5].x___, temp[6].x___, temp[7].x___; 78: ADD temp[5].x, temp[4].x___, -temp[0].0___; 79: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 80: MUL temp[6].x, temp[5].x___, temp[7].x___; 81: CMP temp[5].x, -temp[6].x___, const[0].x___, temp[5].x___; 82: ADD temp[6].x, -temp[2].x___, const[3].x___; 83: CMP temp[6].x, temp[6].x___, none.1___, none.0___; 84: ADD temp[8].x, temp[4].x___, -temp[0].0___; 85: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 86: MUL temp[9].x, temp[7].x___, temp[5].x___; 87: MUL temp[10].x, temp[8].x___, temp[9].x___; 88: CMP temp[8].x, -temp[10].x___, temp[6].x___, temp[8].x___; 89: ADD temp[6].x, temp[4].x___, -temp[0].0___; 90: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 91: ADD temp[9].x, temp[5].x___, -temp[0].0___; 92: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 93: MUL temp[5].x, temp[7].x___, temp[9].x___; 94: MUL temp[9].x, temp[6].x___, temp[5].x___; 95: CMP temp[8].x, -temp[9].x___, temp[0].0___, temp[8].x___; 96: ADD temp[5].x, temp[4].x___, -temp[0].0___; 97: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 98: MUL temp[6].x, temp[5].x___, temp[7].x___; 99: CMP temp[5].x, -temp[6].x___, temp[8].x___, temp[5].x___; 100: ADD temp[6].x, temp[4].x___, -temp[0].0___; 101: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 102: MUL temp[8].x, temp[7].x___, temp[5].x___; 103: MUL temp[9].x, temp[6].x___, temp[8].x___; 104: CMP temp[6].x, -temp[9].x___, temp[0].1___, temp[6].x___; 105: ADD temp[8].x, const[0].x___, -temp[0].0___; 106: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 107: ADD temp[9].x, temp[4].x___, -temp[0].0___; 108: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 109: ADD temp[10].x, temp[5].x___, -temp[0].0___; 110: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 111: MUL temp[12].x, temp[7].x___, temp[10].x___; 112: MUL temp[10].x, temp[9].x___, temp[12].x___; 113: CMP temp[9].x, -temp[10].x___, temp[8].x___, temp[9].x___; 114: ADD temp[8].x, const[4].x___, -const[3].x___; 115: ADD temp[10].x, temp[2].x___, -temp[8].x___; 116: CMP temp[10].x, temp[10].x___, none.1___, none.0___; 117: ADD temp[2].x, temp[4].x___, -temp[0].0___; 118: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 119: ADD temp[8].x, temp[5].x___, -temp[0].0___; 120: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 121: MUL temp[12].x, temp[8].x___, temp[9].x___; 122: MUL temp[8].x, temp[7].x___, temp[12].x___; 123: MUL temp[12].x, temp[2].x___, temp[8].x___; 124: CMP temp[2].x, -temp[12].x___, temp[10].x___, temp[2].x___; 125: ADD temp[8].x, temp[4].x___, -temp[0].0___; 126: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 127: ADD temp[10].x, temp[5].x___, -temp[0].0___; 128: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 129: ADD temp[12].x, temp[9].x___, -temp[0].0___; 130: CMP temp[12].x, -|temp[12].x___|, none.0___, none.1___; 131: MUL temp[9].x, temp[10].x___, temp[12].x___; 132: MUL temp[10].x, temp[7].x___, temp[9].x___; 133: MUL temp[9].x, temp[8].x___, temp[10].x___; 134: CMP temp[2].x, -temp[9].x___, temp[0].0___, temp[2].x___; 135: ADD temp[8].x, temp[4].x___, -temp[0].0___; 136: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 137: ADD temp[9].x, temp[5].x___, -temp[0].0___; 138: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 139: MUL temp[5].x, temp[7].x___, temp[9].x___; 140: MUL temp[9].x, temp[8].x___, temp[5].x___; 141: CMP temp[6].x, -temp[9].x___, temp[2].x___, temp[6].x___; 142: ADD temp[2].x, temp[4].x___, -temp[0].0___; 143: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 144: MUL temp[5].x, temp[2].x___, temp[7].x___; 145: CMP temp[2].x, -temp[5].x___, temp[6].x___, temp[2].x___; 146: ADD temp[5].x, temp[4].x___, -temp[0].0___; 147: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 148: ADD temp[6].x, temp[7].x___, -temp[0].0___; 149: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 150: MUL temp[7].x, temp[5].x___, temp[6].x___; 151: CMP temp[2].x, -temp[7].x___, temp[0].0___, temp[2].x___; 152: ADD temp[5].x, temp[4].x___, -temp[0].0___; 153: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 154: CMP temp[6].x, -temp[5].x___, temp[2].x___, temp[6].x___; 155: ADD temp[2].x, const[5].x___, -temp[0].x___; 156: ADD temp[0].x, const[5].x___, -temp[3].x___; 157: RCP temp[3].x, temp[0].x___; 158: MUL temp[0].x, temp[2].x___, temp[3].x___; 159: MUL temp[2], temp[1], temp[0].xxxx; 160: ADD temp[13].x, temp[4].x___, -temp[0].0___; 161: CMP temp[0].x, -|temp[13].x___|, none.0___, none.1___; 162: MUL temp[3].x, temp[0].x___, temp[6].x___; 163: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 164: ADD temp[14].x, temp[4].x___, -temp[0].0___; 165: CMP temp[0].x, -|temp[14].x___|, none.0___, none.1___; 166: ADD temp[2].x, temp[6].x___, -temp[0].0___; 167: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 168: MUL temp[3].x, temp[0].x___, temp[2].x___; 169: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 170: MOV output[0], temp[11]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].x___, input[1].y___; 3: MUL temp[2].x, const[4].x___, input[1].x___; 4: ADD temp[3].x, const[5].x___, -const[2].x___; 5: ADD temp[4].x, const[1].x___, -temp[0].0___; 6: CMP temp[4].x, -|temp[4].x___|, none.1___, none.0___; 7: ADD temp[5].x, temp[0].x___, -const[1].x___; 8: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 9: CMP temp[6].x, -temp[4].x___, temp[5].x___, temp[6].x___; 10: ADD temp[5].x, temp[4].x___, -temp[0].0___; 11: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 12: CMP temp[6].x, -temp[5].x___, temp[0].0___, temp[6].x___; 13: CMP temp[4].x, -temp[6].x___, const[0].x___, temp[4].x___; 14: ADD temp[5].x, -temp[2].x___, const[3].x___; 15: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 16: MUL temp[7].x, temp[6].x___, temp[4].x___; 17: CMP temp[8].x, -temp[7].x___, temp[5].x___, temp[8].x___; 18: ADD temp[5].x, temp[4].x___, -temp[0].0___; 19: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 20: MUL temp[4].x, temp[6].x___, temp[5].x___; 21: CMP temp[8].x, -temp[4].x___, temp[0].0___, temp[8].x___; 22: CMP temp[4].x, -temp[6].x___, temp[8].x___, temp[4].x___; 23: MUL temp[5].x, temp[6].x___, temp[4].x___; 24: CMP temp[7].x, -temp[5].x___, temp[0].1___, temp[7].x___; 25: ADD temp[5].x, const[0].x___, -temp[0].0___; 26: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 27: ADD temp[8].x, temp[4].x___, -temp[0].0___; 28: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 29: MUL temp[9].x, temp[6].x___, temp[8].x___; 30: CMP temp[8].x, -temp[9].x___, temp[5].x___, temp[8].x___; 31: ADD temp[5].x, const[4].x___, -const[3].x___; 32: ADD temp[9].x, temp[2].x___, -temp[5].x___; 33: CMP temp[9].x, temp[9].x___, none.1___, none.0___; 34: ADD temp[5].x, temp[4].x___, -temp[0].0___; 35: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 36: MUL temp[10].x, temp[5].x___, temp[8].x___; 37: MUL temp[5].x, temp[6].x___, temp[10].x___; 38: CMP temp[10].x, -temp[5].x___, temp[9].x___, temp[10].x___; 39: ADD temp[5].x, temp[4].x___, -temp[0].0___; 40: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 41: ADD temp[9].x, temp[8].x___, -temp[0].0___; 42: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 43: MUL temp[8].x, temp[5].x___, temp[9].x___; 44: MUL temp[5].x, temp[6].x___, temp[8].x___; 45: CMP temp[10].x, -temp[5].x___, temp[0].0___, temp[10].x___; 46: ADD temp[5].x, temp[4].x___, -temp[0].0___; 47: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 48: MUL temp[4].x, temp[6].x___, temp[5].x___; 49: CMP temp[7].x, -temp[4].x___, temp[10].x___, temp[7].x___; 50: CMP temp[4].x, -temp[6].x___, temp[7].x___, temp[4].x___; 51: ADD temp[5].x, temp[6].x___, -temp[0].0___; 52: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 53: CMP temp[4].x, -temp[5].x___, temp[0].0___, temp[4].x___; 54: RCP temp[5].x, const[1].x___; 55: MUL temp[6].x, temp[0].x___, temp[5].x___; 56: MUL temp[5], temp[1], temp[6].xxxx; 57: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 58: ADD temp[5].x, const[2].x___, -temp[0].0___; 59: CMP temp[5].x, -|temp[5].x___|, none.1___, none.0___; 60: ADD temp[6].x, temp[4].x___, -temp[0].0___; 61: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 62: CMP temp[7].x, -temp[6].x___, temp[5].x___, temp[7].x___; 63: ADD temp[5].x, -temp[0].x___, temp[3].x___; 64: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 65: ADD temp[6].x, temp[4].x___, -temp[0].0___; 66: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 67: MUL temp[8].x, temp[6].x___, temp[7].x___; 68: CMP temp[6].x, -temp[8].x___, temp[5].x___, temp[6].x___; 69: ADD temp[5].x, temp[4].x___, -temp[0].0___; 70: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 71: ADD temp[8].x, temp[7].x___, -temp[0].0___; 72: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 73: MUL temp[7].x, temp[5].x___, temp[8].x___; 74: CMP temp[6].x, -temp[7].x___, temp[0].0___, temp[6].x___; 75: ADD temp[5].x, temp[4].x___, -temp[0].0___; 76: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 77: CMP temp[7].x, -temp[5].x___, temp[6].x___, temp[7].x___; 78: ADD temp[5].x, temp[4].x___, -temp[0].0___; 79: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 80: MUL temp[6].x, temp[5].x___, temp[7].x___; 81: CMP temp[5].x, -temp[6].x___, const[0].x___, temp[5].x___; 82: ADD temp[6].x, -temp[2].x___, const[3].x___; 83: CMP temp[6].x, temp[6].x___, none.1___, none.0___; 84: ADD temp[8].x, temp[4].x___, -temp[0].0___; 85: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 86: MUL temp[9].x, temp[7].x___, temp[5].x___; 87: MUL temp[10].x, temp[8].x___, temp[9].x___; 88: CMP temp[8].x, -temp[10].x___, temp[6].x___, temp[8].x___; 89: ADD temp[6].x, temp[4].x___, -temp[0].0___; 90: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 91: ADD temp[9].x, temp[5].x___, -temp[0].0___; 92: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 93: MUL temp[5].x, temp[7].x___, temp[9].x___; 94: MUL temp[9].x, temp[6].x___, temp[5].x___; 95: CMP temp[8].x, -temp[9].x___, temp[0].0___, temp[8].x___; 96: ADD temp[5].x, temp[4].x___, -temp[0].0___; 97: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 98: MUL temp[6].x, temp[5].x___, temp[7].x___; 99: CMP temp[5].x, -temp[6].x___, temp[8].x___, temp[5].x___; 100: ADD temp[6].x, temp[4].x___, -temp[0].0___; 101: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 102: MUL temp[8].x, temp[7].x___, temp[5].x___; 103: MUL temp[9].x, temp[6].x___, temp[8].x___; 104: CMP temp[6].x, -temp[9].x___, temp[0].1___, temp[6].x___; 105: ADD temp[8].x, const[0].x___, -temp[0].0___; 106: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 107: ADD temp[9].x, temp[4].x___, -temp[0].0___; 108: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 109: ADD temp[10].x, temp[5].x___, -temp[0].0___; 110: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 111: MUL temp[12].x, temp[7].x___, temp[10].x___; 112: MUL temp[10].x, temp[9].x___, temp[12].x___; 113: CMP temp[9].x, -temp[10].x___, temp[8].x___, temp[9].x___; 114: ADD temp[8].x, const[4].x___, -const[3].x___; 115: ADD temp[10].x, temp[2].x___, -temp[8].x___; 116: CMP temp[10].x, temp[10].x___, none.1___, none.0___; 117: ADD temp[2].x, temp[4].x___, -temp[0].0___; 118: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 119: ADD temp[8].x, temp[5].x___, -temp[0].0___; 120: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 121: MUL temp[12].x, temp[8].x___, temp[9].x___; 122: MUL temp[8].x, temp[7].x___, temp[12].x___; 123: MUL temp[12].x, temp[2].x___, temp[8].x___; 124: CMP temp[2].x, -temp[12].x___, temp[10].x___, temp[2].x___; 125: ADD temp[8].x, temp[4].x___, -temp[0].0___; 126: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 127: ADD temp[10].x, temp[5].x___, -temp[0].0___; 128: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 129: ADD temp[12].x, temp[9].x___, -temp[0].0___; 130: CMP temp[12].x, -|temp[12].x___|, none.0___, none.1___; 131: MUL temp[9].x, temp[10].x___, temp[12].x___; 132: MUL temp[10].x, temp[7].x___, temp[9].x___; 133: MUL temp[9].x, temp[8].x___, temp[10].x___; 134: CMP temp[2].x, -temp[9].x___, temp[0].0___, temp[2].x___; 135: ADD temp[8].x, temp[4].x___, -temp[0].0___; 136: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 137: ADD temp[9].x, temp[5].x___, -temp[0].0___; 138: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 139: MUL temp[5].x, temp[7].x___, temp[9].x___; 140: MUL temp[9].x, temp[8].x___, temp[5].x___; 141: CMP temp[6].x, -temp[9].x___, temp[2].x___, temp[6].x___; 142: ADD temp[2].x, temp[4].x___, -temp[0].0___; 143: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 144: MUL temp[5].x, temp[2].x___, temp[7].x___; 145: CMP temp[2].x, -temp[5].x___, temp[6].x___, temp[2].x___; 146: ADD temp[5].x, temp[4].x___, -temp[0].0___; 147: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 148: ADD temp[6].x, temp[7].x___, -temp[0].0___; 149: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 150: MUL temp[7].x, temp[5].x___, temp[6].x___; 151: CMP temp[2].x, -temp[7].x___, temp[0].0___, temp[2].x___; 152: ADD temp[5].x, temp[4].x___, -temp[0].0___; 153: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 154: CMP temp[6].x, -temp[5].x___, temp[2].x___, temp[6].x___; 155: ADD temp[2].x, const[5].x___, -temp[0].x___; 156: ADD temp[0].x, const[5].x___, -temp[3].x___; 157: RCP temp[3].x, temp[0].x___; 158: MUL temp[0].x, temp[2].x___, temp[3].x___; 159: MUL temp[2], temp[1], temp[0].xxxx; 160: ADD temp[13].x, temp[4].x___, -temp[0].0___; 161: CMP temp[0].x, -|temp[13].x___|, none.0___, none.1___; 162: MUL temp[3].x, temp[0].x___, temp[6].x___; 163: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 164: ADD temp[14].x, temp[4].x___, -temp[0].0___; 165: CMP temp[0].x, -|temp[14].x___|, none.0___, none.1___; 166: ADD temp[2].x, temp[6].x___, -temp[0].0___; 167: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 168: MUL temp[3].x, temp[0].x___, temp[2].x___; 169: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 170: MOV output[0], temp[11]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].x___, input[1].y___; 3: MUL temp[2].x, const[4].x___, input[1].x___; 4: ADD temp[4].x, const[1].x___, -temp[0].0___; 5: CMP temp[4].x, -|temp[4].x___|, none.1___, none.0___; 6: CMP temp[5].x, (temp[0] - const[1]).x___, none.1___, none.0___; 7: CMP temp[6].x, -temp[4].x___, temp[5].x___, temp[6].x___; 8: ADD temp[5].x, temp[4].x___, -temp[0].0___; 9: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 10: CMP temp[6].x, -temp[5].x___, temp[0].0___, temp[6].x___; 11: CMP temp[4].x, -temp[6].x___, const[0].x___, temp[4].x___; 12: CMP temp[5].x, (const[3] - temp[2]).x___, none.1___, none.0___; 13: MUL temp[7].x, temp[6].x___, temp[4].x___; 14: CMP temp[8].x, -temp[7].x___, temp[5].x___, temp[8].x___; 15: ADD temp[5].x, temp[4].x___, -temp[0].0___; 16: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 17: MUL temp[4].x, temp[6].x___, temp[5].x___; 18: CMP temp[8].x, -temp[4].x___, temp[0].0___, temp[8].x___; 19: CMP temp[4].x, -temp[6].x___, temp[8].x___, temp[4].x___; 20: MUL temp[5].x, temp[6].x___, temp[4].x___; 21: CMP temp[7].x, -temp[5].x___, temp[0].1___, temp[7].x___; 22: ADD temp[5].x, const[0].x___, -temp[0].0___; 23: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 24: ADD temp[8].x, temp[4].x___, -temp[0].0___; 25: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 26: MUL temp[9].x, temp[6].x___, temp[8].x___; 27: CMP temp[8].x, -temp[9].x___, temp[5].x___, temp[8].x___; 28: ADD temp[9].x, temp[2].x___, -(const[4] - const[3]).x___; 29: CMP temp[9].x, temp[9].x___, none.1___, none.0___; 30: ADD temp[5].x, temp[4].x___, -temp[0].0___; 31: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 32: MUL temp[10].x, temp[5].x___, temp[8].x___; 33: MUL temp[5].x, temp[6].x___, temp[10].x___; 34: CMP temp[10].x, -temp[5].x___, temp[9].x___, temp[10].x___; 35: ADD temp[5].x, temp[4].x___, -temp[0].0___; 36: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 37: ADD temp[9].x, temp[8].x___, -temp[0].0___; 38: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 39: MUL temp[8].x, temp[5].x___, temp[9].x___; 40: MUL temp[5].x, temp[6].x___, temp[8].x___; 41: CMP temp[10].x, -temp[5].x___, temp[0].0___, temp[10].x___; 42: ADD temp[5].x, temp[4].x___, -temp[0].0___; 43: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 44: MUL temp[4].x, temp[6].x___, temp[5].x___; 45: CMP temp[7].x, -temp[4].x___, temp[10].x___, temp[7].x___; 46: CMP temp[4].x, -temp[6].x___, temp[7].x___, temp[4].x___; 47: ADD temp[5].x, temp[6].x___, -temp[0].0___; 48: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 49: CMP temp[4].x, -temp[5].x___, temp[0].0___, temp[4].x___; 50: RCP temp[5].x, const[1].x___; 51: MUL temp[6].x, temp[0].x___, temp[5].x___; 52: MUL temp[5], temp[1], temp[6].xxxx; 53: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 54: ADD temp[5].x, const[2].x___, -temp[0].0___; 55: CMP temp[5].x, -|temp[5].x___|, none.1___, none.0___; 56: ADD temp[6].x, temp[4].x___, -temp[0].0___; 57: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 58: CMP temp[7].x, -temp[6].x___, temp[5].x___, temp[7].x___; 59: ADD temp[5].x, -temp[0].x___, (const[5] - const[2]).x___; 60: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 61: ADD temp[6].x, temp[4].x___, -temp[0].0___; 62: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 63: MUL temp[8].x, temp[6].x___, temp[7].x___; 64: CMP temp[6].x, -temp[8].x___, temp[5].x___, temp[6].x___; 65: ADD temp[5].x, temp[4].x___, -temp[0].0___; 66: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 67: ADD temp[8].x, temp[7].x___, -temp[0].0___; 68: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 69: MUL temp[7].x, temp[5].x___, temp[8].x___; 70: CMP temp[6].x, -temp[7].x___, temp[0].0___, temp[6].x___; 71: ADD temp[5].x, temp[4].x___, -temp[0].0___; 72: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 73: CMP temp[7].x, -temp[5].x___, temp[6].x___, temp[7].x___; 74: ADD temp[5].x, temp[4].x___, -temp[0].0___; 75: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 76: MUL temp[6].x, temp[5].x___, temp[7].x___; 77: CMP temp[5].x, -temp[6].x___, const[0].x___, temp[5].x___; 78: CMP temp[6].x, (const[3] - temp[2]).x___, none.1___, none.0___; 79: ADD temp[8].x, temp[4].x___, -temp[0].0___; 80: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 81: MUL temp[9].x, temp[7].x___, temp[5].x___; 82: MUL temp[10].x, temp[8].x___, temp[9].x___; 83: CMP temp[8].x, -temp[10].x___, temp[6].x___, temp[8].x___; 84: ADD temp[6].x, temp[4].x___, -temp[0].0___; 85: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 86: ADD temp[9].x, temp[5].x___, -temp[0].0___; 87: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 88: MUL temp[5].x, temp[7].x___, temp[9].x___; 89: MUL temp[9].x, temp[6].x___, temp[5].x___; 90: CMP temp[8].x, -temp[9].x___, temp[0].0___, temp[8].x___; 91: ADD temp[5].x, temp[4].x___, -temp[0].0___; 92: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 93: MUL temp[6].x, temp[5].x___, temp[7].x___; 94: CMP temp[5].x, -temp[6].x___, temp[8].x___, temp[5].x___; 95: ADD temp[6].x, temp[4].x___, -temp[0].0___; 96: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 97: MUL temp[8].x, temp[7].x___, temp[5].x___; 98: MUL temp[9].x, temp[6].x___, temp[8].x___; 99: CMP temp[6].x, -temp[9].x___, temp[0].1___, temp[6].x___; 100: ADD temp[8].x, const[0].x___, -temp[0].0___; 101: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 102: ADD temp[9].x, temp[4].x___, -temp[0].0___; 103: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 104: ADD temp[10].x, temp[5].x___, -temp[0].0___; 105: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 106: MUL temp[12].x, temp[7].x___, temp[10].x___; 107: MUL temp[10].x, temp[9].x___, temp[12].x___; 108: CMP temp[9].x, -temp[10].x___, temp[8].x___, temp[9].x___; 109: ADD temp[10].x, temp[2].x___, -(const[4] - const[3]).x___; 110: CMP temp[10].x, temp[10].x___, none.1___, none.0___; 111: ADD temp[2].x, temp[4].x___, -temp[0].0___; 112: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 113: ADD temp[8].x, temp[5].x___, -temp[0].0___; 114: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 115: MUL temp[12].x, temp[8].x___, temp[9].x___; 116: MUL temp[8].x, temp[7].x___, temp[12].x___; 117: MUL temp[12].x, temp[2].x___, temp[8].x___; 118: CMP temp[2].x, -temp[12].x___, temp[10].x___, temp[2].x___; 119: ADD temp[8].x, temp[4].x___, -temp[0].0___; 120: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 121: ADD temp[10].x, temp[5].x___, -temp[0].0___; 122: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 123: ADD temp[12].x, temp[9].x___, -temp[0].0___; 124: CMP temp[12].x, -|temp[12].x___|, none.0___, none.1___; 125: MUL temp[9].x, temp[10].x___, temp[12].x___; 126: MUL temp[10].x, temp[7].x___, temp[9].x___; 127: MUL temp[9].x, temp[8].x___, temp[10].x___; 128: CMP temp[2].x, -temp[9].x___, temp[0].0___, temp[2].x___; 129: ADD temp[8].x, temp[4].x___, -temp[0].0___; 130: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 131: ADD temp[9].x, temp[5].x___, -temp[0].0___; 132: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 133: MUL temp[5].x, temp[7].x___, temp[9].x___; 134: MUL temp[9].x, temp[8].x___, temp[5].x___; 135: CMP temp[6].x, -temp[9].x___, temp[2].x___, temp[6].x___; 136: ADD temp[2].x, temp[4].x___, -temp[0].0___; 137: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 138: MUL temp[5].x, temp[2].x___, temp[7].x___; 139: CMP temp[2].x, -temp[5].x___, temp[6].x___, temp[2].x___; 140: ADD temp[5].x, temp[4].x___, -temp[0].0___; 141: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 142: ADD temp[6].x, temp[7].x___, -temp[0].0___; 143: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 144: MUL temp[7].x, temp[5].x___, temp[6].x___; 145: CMP temp[2].x, -temp[7].x___, temp[0].0___, temp[2].x___; 146: ADD temp[5].x, temp[4].x___, -temp[0].0___; 147: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 148: CMP temp[6].x, -temp[5].x___, temp[2].x___, temp[6].x___; 149: ADD temp[2].x, const[5].x___, -temp[0].x___; 150: ADD temp[0].x, const[5].x___, -(const[5] - const[2]).x___; 151: RCP temp[3].x, temp[0].x___; 152: MUL temp[0].x, temp[2].x___, temp[3].x___; 153: MUL temp[2], temp[1], temp[0].xxxx; 154: ADD temp[13].x, temp[4].x___, -temp[0].0___; 155: CMP temp[0].x, -|temp[13].x___|, none.0___, none.1___; 156: MUL temp[3].x, temp[0].x___, temp[6].x___; 157: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 158: ADD temp[14].x, temp[4].x___, -temp[0].0___; 159: CMP temp[0].x, -|temp[14].x___|, none.0___, none.1___; 160: ADD temp[2].x, temp[6].x___, -temp[0].0___; 161: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 162: MUL temp[3].x, temp[0].x___, temp[2].x___; 163: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 164: MOV output[0], temp[11]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].x___, input[1].y___; 3: MUL temp[2].x, const[4].x___, input[1].x___; 4: ADD temp[4].x, const[1].x___, -temp[0].0___; 5: CMP temp[4].x, -|temp[4].x___|, none.1___, none.0___; 6: CMP temp[5].x, (temp[0] - const[1]).x___, none.1___, none.0___; 7: CMP temp[6].x, -temp[4].x___, temp[5].x___, temp[6].x___; 8: ADD temp[5].x, temp[4].x___, -temp[0].0___; 9: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 10: CMP temp[6].x, -temp[5].x___, temp[0].0___, temp[6].x___; 11: CMP temp[4].x, -temp[6].x___, const[0].x___, temp[4].x___; 12: CMP temp[5].x, (const[3] - temp[2]).x___, none.1___, none.0___; 13: MUL temp[7].x, temp[6].x___, temp[4].x___; 14: CMP temp[8].x, -temp[7].x___, temp[5].x___, temp[8].x___; 15: ADD temp[5].x, temp[4].x___, -temp[0].0___; 16: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 17: MUL temp[4].x, temp[6].x___, temp[5].x___; 18: CMP temp[8].x, -temp[4].x___, temp[0].0___, temp[8].x___; 19: CMP temp[4].x, -temp[6].x___, temp[8].x___, temp[4].x___; 20: MUL temp[5].x, temp[6].x___, temp[4].x___; 21: CMP temp[7].x, -temp[5].x___, temp[0].1___, temp[7].x___; 22: ADD temp[5].x, const[0].x___, -temp[0].0___; 23: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 24: ADD temp[8].x, temp[4].x___, -temp[0].0___; 25: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 26: MUL temp[9].x, temp[6].x___, temp[8].x___; 27: CMP temp[8].x, -temp[9].x___, temp[5].x___, temp[8].x___; 28: ADD temp[9].x, temp[2].x___, -(const[4] - const[3]).x___; 29: CMP temp[9].x, temp[9].x___, none.1___, none.0___; 30: ADD temp[5].x, temp[4].x___, -temp[0].0___; 31: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 32: MUL temp[10].x, temp[5].x___, temp[8].x___; 33: MUL temp[5].x, temp[6].x___, temp[10].x___; 34: CMP temp[10].x, -temp[5].x___, temp[9].x___, temp[10].x___; 35: ADD temp[5].x, temp[4].x___, -temp[0].0___; 36: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 37: ADD temp[9].x, temp[8].x___, -temp[0].0___; 38: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 39: MUL temp[8].x, temp[5].x___, temp[9].x___; 40: MUL temp[5].x, temp[6].x___, temp[8].x___; 41: CMP temp[10].x, -temp[5].x___, temp[0].0___, temp[10].x___; 42: ADD temp[5].x, temp[4].x___, -temp[0].0___; 43: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 44: MUL temp[4].x, temp[6].x___, temp[5].x___; 45: CMP temp[7].x, -temp[4].x___, temp[10].x___, temp[7].x___; 46: CMP temp[4].x, -temp[6].x___, temp[7].x___, temp[4].x___; 47: ADD temp[5].x, temp[6].x___, -temp[0].0___; 48: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 49: CMP temp[4].x, -temp[5].x___, temp[0].0___, temp[4].x___; 50: RCP temp[5].x, const[1].x___; 51: MUL temp[6].x, temp[0].x___, temp[5].x___; 52: MUL temp[5], temp[1], temp[6].xxxx; 53: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 54: ADD temp[5].x, const[2].x___, -temp[0].0___; 55: CMP temp[5].x, -|temp[5].x___|, none.1___, none.0___; 56: ADD temp[6].x, temp[4].x___, -temp[0].0___; 57: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 58: CMP temp[7].x, -temp[6].x___, temp[5].x___, temp[7].x___; 59: ADD temp[5].x, -temp[0].x___, (const[5] - const[2]).x___; 60: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 61: ADD temp[6].x, temp[4].x___, -temp[0].0___; 62: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 63: MUL temp[8].x, temp[6].x___, temp[7].x___; 64: CMP temp[6].x, -temp[8].x___, temp[5].x___, temp[6].x___; 65: ADD temp[5].x, temp[4].x___, -temp[0].0___; 66: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 67: ADD temp[8].x, temp[7].x___, -temp[0].0___; 68: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 69: MUL temp[7].x, temp[5].x___, temp[8].x___; 70: CMP temp[6].x, -temp[7].x___, temp[0].0___, temp[6].x___; 71: ADD temp[5].x, temp[4].x___, -temp[0].0___; 72: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 73: CMP temp[7].x, -temp[5].x___, temp[6].x___, temp[7].x___; 74: ADD temp[5].x, temp[4].x___, -temp[0].0___; 75: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 76: MUL temp[6].x, temp[5].x___, temp[7].x___; 77: CMP temp[5].x, -temp[6].x___, const[0].x___, temp[5].x___; 78: CMP temp[6].x, (const[3] - temp[2]).x___, none.1___, none.0___; 79: ADD temp[8].x, temp[4].x___, -temp[0].0___; 80: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 81: MUL temp[9].x, temp[7].x___, temp[5].x___; 82: MUL temp[10].x, temp[8].x___, temp[9].x___; 83: CMP temp[8].x, -temp[10].x___, temp[6].x___, temp[8].x___; 84: ADD temp[6].x, temp[4].x___, -temp[0].0___; 85: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 86: ADD temp[9].x, temp[5].x___, -temp[0].0___; 87: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 88: MUL temp[5].x, temp[7].x___, temp[9].x___; 89: MUL temp[9].x, temp[6].x___, temp[5].x___; 90: CMP temp[8].x, -temp[9].x___, temp[0].0___, temp[8].x___; 91: ADD temp[5].x, temp[4].x___, -temp[0].0___; 92: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 93: MUL temp[6].x, temp[5].x___, temp[7].x___; 94: CMP temp[5].x, -temp[6].x___, temp[8].x___, temp[5].x___; 95: ADD temp[6].x, temp[4].x___, -temp[0].0___; 96: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 97: MUL temp[8].x, temp[7].x___, temp[5].x___; 98: MUL temp[9].x, temp[6].x___, temp[8].x___; 99: CMP temp[6].x, -temp[9].x___, temp[0].1___, temp[6].x___; 100: ADD temp[8].x, const[0].x___, -temp[0].0___; 101: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 102: ADD temp[9].x, temp[4].x___, -temp[0].0___; 103: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 104: ADD temp[10].x, temp[5].x___, -temp[0].0___; 105: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 106: MUL temp[12].x, temp[7].x___, temp[10].x___; 107: MUL temp[10].x, temp[9].x___, temp[12].x___; 108: CMP temp[9].x, -temp[10].x___, temp[8].x___, temp[9].x___; 109: ADD temp[10].x, temp[2].x___, -(const[4] - const[3]).x___; 110: CMP temp[10].x, temp[10].x___, none.1___, none.0___; 111: ADD temp[2].x, temp[4].x___, -temp[0].0___; 112: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 113: ADD temp[8].x, temp[5].x___, -temp[0].0___; 114: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 115: MUL temp[12].x, temp[8].x___, temp[9].x___; 116: MUL temp[8].x, temp[7].x___, temp[12].x___; 117: MUL temp[12].x, temp[2].x___, temp[8].x___; 118: CMP temp[2].x, -temp[12].x___, temp[10].x___, temp[2].x___; 119: ADD temp[8].x, temp[4].x___, -temp[0].0___; 120: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 121: ADD temp[10].x, temp[5].x___, -temp[0].0___; 122: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 123: ADD temp[12].x, temp[9].x___, -temp[0].0___; 124: CMP temp[12].x, -|temp[12].x___|, none.0___, none.1___; 125: MUL temp[9].x, temp[10].x___, temp[12].x___; 126: MUL temp[10].x, temp[7].x___, temp[9].x___; 127: MUL temp[9].x, temp[8].x___, temp[10].x___; 128: CMP temp[2].x, -temp[9].x___, temp[0].0___, temp[2].x___; 129: ADD temp[8].x, temp[4].x___, -temp[0].0___; 130: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 131: ADD temp[9].x, temp[5].x___, -temp[0].0___; 132: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 133: MUL temp[5].x, temp[7].x___, temp[9].x___; 134: MUL temp[9].x, temp[8].x___, temp[5].x___; 135: CMP temp[6].x, -temp[9].x___, temp[2].x___, temp[6].x___; 136: ADD temp[2].x, temp[4].x___, -temp[0].0___; 137: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 138: MUL temp[5].x, temp[2].x___, temp[7].x___; 139: CMP temp[2].x, -temp[5].x___, temp[6].x___, temp[2].x___; 140: ADD temp[5].x, temp[4].x___, -temp[0].0___; 141: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 142: ADD temp[6].x, temp[7].x___, -temp[0].0___; 143: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 144: MUL temp[7].x, temp[5].x___, temp[6].x___; 145: CMP temp[2].x, -temp[7].x___, temp[0].0___, temp[2].x___; 146: ADD temp[5].x, temp[4].x___, -temp[0].0___; 147: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 148: CMP temp[6].x, -temp[5].x___, temp[2].x___, temp[6].x___; 149: ADD temp[2].x, const[5].x___, -temp[0].x___; 150: ADD temp[0].x, const[5].x___, -(const[5] - const[2]).x___; 151: RCP temp[3].x, temp[0].x___; 152: MUL temp[0].x, temp[2].x___, temp[3].x___; 153: MUL temp[2], temp[1], temp[0].xxxx; 154: ADD temp[13].x, temp[4].x___, -temp[0].0___; 155: CMP temp[0].x, -|temp[13].x___|, none.0___, none.1___; 156: MUL temp[3].x, temp[0].x___, temp[6].x___; 157: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 158: ADD temp[14].x, temp[4].x___, -temp[0].0___; 159: CMP temp[0].x, -|temp[14].x___|, none.0___, none.1___; 160: ADD temp[2].x, temp[6].x___, -temp[0].0___; 161: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 162: MUL temp[3].x, temp[0].x___, temp[2].x___; 163: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 164: MOV output[0], temp[11]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MUL temp[1], input[0], temp[0]; 2: MUL temp[0].x, const[5].x___, input[1].y___; 3: MUL temp[2].x, const[4].x___, input[1].x___; 4: ADD temp[4].x, const[1].x___, -temp[0].0___; 5: CMP temp[4].x, -|temp[4].x___|, none.1___, none.0___; 6: CMP temp[5].x, (temp[0] - const[1]).x___, none.1___, none.0___; 7: CMP temp[6].x, -temp[4].x___, temp[5].x___, temp[6].x___; 8: ADD temp[5].x, temp[4].x___, -temp[0].0___; 9: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 10: CMP temp[6].x, -temp[5].x___, temp[0].0___, temp[6].x___; 11: CMP temp[4].x, -temp[6].x___, const[0].x___, temp[4].x___; 12: CMP temp[5].x, (const[3] - temp[2]).x___, none.1___, none.0___; 13: MUL temp[7].x, temp[6].x___, temp[4].x___; 14: CMP temp[8].x, -temp[7].x___, temp[5].x___, temp[8].x___; 15: ADD temp[5].x, temp[4].x___, -temp[0].0___; 16: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 17: MUL temp[4].x, temp[6].x___, temp[5].x___; 18: CMP temp[8].x, -temp[4].x___, temp[0].0___, temp[8].x___; 19: CMP temp[4].x, -temp[6].x___, temp[8].x___, temp[4].x___; 20: MUL temp[5].x, temp[6].x___, temp[4].x___; 21: CMP temp[7].x, -temp[5].x___, temp[0].1___, temp[7].x___; 22: ADD temp[5].x, const[0].x___, -temp[0].0___; 23: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 24: ADD temp[8].x, temp[4].x___, -temp[0].0___; 25: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 26: MUL temp[9].x, temp[6].x___, temp[8].x___; 27: CMP temp[8].x, -temp[9].x___, temp[5].x___, temp[8].x___; 28: ADD temp[9].x, temp[2].x___, -(const[4] - const[3]).x___; 29: CMP temp[9].x, temp[9].x___, none.1___, none.0___; 30: ADD temp[5].x, temp[4].x___, -temp[0].0___; 31: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 32: MUL temp[10].x, temp[5].x___, temp[8].x___; 33: MUL temp[5].x, temp[6].x___, temp[10].x___; 34: CMP temp[10].x, -temp[5].x___, temp[9].x___, temp[10].x___; 35: ADD temp[5].x, temp[4].x___, -temp[0].0___; 36: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 37: ADD temp[9].x, temp[8].x___, -temp[0].0___; 38: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 39: MUL temp[8].x, temp[5].x___, temp[9].x___; 40: MUL temp[5].x, temp[6].x___, temp[8].x___; 41: CMP temp[10].x, -temp[5].x___, temp[0].0___, temp[10].x___; 42: ADD temp[5].x, temp[4].x___, -temp[0].0___; 43: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 44: MUL temp[4].x, temp[6].x___, temp[5].x___; 45: CMP temp[7].x, -temp[4].x___, temp[10].x___, temp[7].x___; 46: CMP temp[4].x, -temp[6].x___, temp[7].x___, temp[4].x___; 47: ADD temp[5].x, temp[6].x___, -temp[0].0___; 48: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 49: CMP temp[4].x, -temp[5].x___, temp[0].0___, temp[4].x___; 50: RCP temp[5].x, const[1].x___; 51: MUL temp[6].x, temp[0].x___, temp[5].x___; 52: MUL temp[5], temp[1], temp[6].xxxx; 53: CMP temp[11], -temp[4].xxxx, temp[5], temp[11]; 54: ADD temp[5].x, const[2].x___, -temp[0].0___; 55: CMP temp[5].x, -|temp[5].x___|, none.1___, none.0___; 56: ADD temp[6].x, temp[4].x___, -temp[0].0___; 57: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 58: CMP temp[7].x, -temp[6].x___, temp[5].x___, temp[7].x___; 59: ADD temp[5].x, -temp[0].x___, (const[5] - const[2]).x___; 60: CMP temp[5].x, temp[5].x___, none.1___, none.0___; 61: ADD temp[6].x, temp[4].x___, -temp[0].0___; 62: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 63: MUL temp[8].x, temp[6].x___, temp[7].x___; 64: CMP temp[6].x, -temp[8].x___, temp[5].x___, temp[6].x___; 65: ADD temp[5].x, temp[4].x___, -temp[0].0___; 66: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 67: ADD temp[8].x, temp[7].x___, -temp[0].0___; 68: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 69: MUL temp[7].x, temp[5].x___, temp[8].x___; 70: CMP temp[6].x, -temp[7].x___, temp[0].0___, temp[6].x___; 71: ADD temp[5].x, temp[4].x___, -temp[0].0___; 72: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 73: CMP temp[7].x, -temp[5].x___, temp[6].x___, temp[7].x___; 74: ADD temp[5].x, temp[4].x___, -temp[0].0___; 75: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 76: MUL temp[6].x, temp[5].x___, temp[7].x___; 77: CMP temp[5].x, -temp[6].x___, const[0].x___, temp[5].x___; 78: CMP temp[6].x, (const[3] - temp[2]).x___, none.1___, none.0___; 79: ADD temp[8].x, temp[4].x___, -temp[0].0___; 80: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 81: MUL temp[9].x, temp[7].x___, temp[5].x___; 82: MUL temp[10].x, temp[8].x___, temp[9].x___; 83: CMP temp[8].x, -temp[10].x___, temp[6].x___, temp[8].x___; 84: ADD temp[6].x, temp[4].x___, -temp[0].0___; 85: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 86: ADD temp[9].x, temp[5].x___, -temp[0].0___; 87: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 88: MUL temp[5].x, temp[7].x___, temp[9].x___; 89: MUL temp[9].x, temp[6].x___, temp[5].x___; 90: CMP temp[8].x, -temp[9].x___, temp[0].0___, temp[8].x___; 91: ADD temp[5].x, temp[4].x___, -temp[0].0___; 92: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 93: MUL temp[6].x, temp[5].x___, temp[7].x___; 94: CMP temp[5].x, -temp[6].x___, temp[8].x___, temp[5].x___; 95: ADD temp[6].x, temp[4].x___, -temp[0].0___; 96: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 97: MUL temp[8].x, temp[7].x___, temp[5].x___; 98: MUL temp[9].x, temp[6].x___, temp[8].x___; 99: CMP temp[6].x, -temp[9].x___, temp[0].1___, temp[6].x___; 100: ADD temp[8].x, const[0].x___, -temp[0].0___; 101: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 102: ADD temp[9].x, temp[4].x___, -temp[0].0___; 103: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 104: ADD temp[10].x, temp[5].x___, -temp[0].0___; 105: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 106: MUL temp[12].x, temp[7].x___, temp[10].x___; 107: MUL temp[10].x, temp[9].x___, temp[12].x___; 108: CMP temp[9].x, -temp[10].x___, temp[8].x___, temp[9].x___; 109: ADD temp[10].x, temp[2].x___, -(const[4] - const[3]).x___; 110: CMP temp[10].x, temp[10].x___, none.1___, none.0___; 111: ADD temp[2].x, temp[4].x___, -temp[0].0___; 112: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 113: ADD temp[8].x, temp[5].x___, -temp[0].0___; 114: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 115: MUL temp[12].x, temp[8].x___, temp[9].x___; 116: MUL temp[8].x, temp[7].x___, temp[12].x___; 117: MUL temp[12].x, temp[2].x___, temp[8].x___; 118: CMP temp[2].x, -temp[12].x___, temp[10].x___, temp[2].x___; 119: ADD temp[8].x, temp[4].x___, -temp[0].0___; 120: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 121: ADD temp[10].x, temp[5].x___, -temp[0].0___; 122: CMP temp[10].x, -|temp[10].x___|, none.0___, none.1___; 123: ADD temp[12].x, temp[9].x___, -temp[0].0___; 124: CMP temp[12].x, -|temp[12].x___|, none.0___, none.1___; 125: MUL temp[9].x, temp[10].x___, temp[12].x___; 126: MUL temp[10].x, temp[7].x___, temp[9].x___; 127: MUL temp[9].x, temp[8].x___, temp[10].x___; 128: CMP temp[2].x, -temp[9].x___, temp[0].0___, temp[2].x___; 129: ADD temp[8].x, temp[4].x___, -temp[0].0___; 130: CMP temp[8].x, -|temp[8].x___|, none.0___, none.1___; 131: ADD temp[9].x, temp[5].x___, -temp[0].0___; 132: CMP temp[9].x, -|temp[9].x___|, none.0___, none.1___; 133: MUL temp[5].x, temp[7].x___, temp[9].x___; 134: MUL temp[9].x, temp[8].x___, temp[5].x___; 135: CMP temp[6].x, -temp[9].x___, temp[2].x___, temp[6].x___; 136: ADD temp[2].x, temp[4].x___, -temp[0].0___; 137: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 138: MUL temp[5].x, temp[2].x___, temp[7].x___; 139: CMP temp[2].x, -temp[5].x___, temp[6].x___, temp[2].x___; 140: ADD temp[5].x, temp[4].x___, -temp[0].0___; 141: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 142: ADD temp[6].x, temp[7].x___, -temp[0].0___; 143: CMP temp[6].x, -|temp[6].x___|, none.0___, none.1___; 144: MUL temp[7].x, temp[5].x___, temp[6].x___; 145: CMP temp[2].x, -temp[7].x___, temp[0].0___, temp[2].x___; 146: ADD temp[5].x, temp[4].x___, -temp[0].0___; 147: CMP temp[5].x, -|temp[5].x___|, none.0___, none.1___; 148: CMP temp[6].x, -temp[5].x___, temp[2].x___, temp[6].x___; 149: ADD temp[2].x, const[5].x___, -temp[0].x___; 150: ADD temp[0].x, const[5].x___, -(const[5] - const[2]).x___; 151: RCP temp[3].x, temp[0].x___; 152: MUL temp[0].x, temp[2].x___, temp[3].x___; 153: MUL temp[2], temp[1], temp[0].xxxx; 154: ADD temp[13].x, temp[4].x___, -temp[0].0___; 155: CMP temp[0].x, -|temp[13].x___|, none.0___, none.1___; 156: MUL temp[3].x, temp[0].x___, temp[6].x___; 157: CMP temp[11], -temp[3].xxxx, temp[2], temp[11]; 158: ADD temp[14].x, temp[4].x___, -temp[0].0___; 159: CMP temp[0].x, -|temp[14].x___|, none.0___, none.1___; 160: ADD temp[2].x, temp[6].x___, -temp[0].0___; 161: CMP temp[2].x, -|temp[2].x___|, none.0___, none.1___; 162: MUL temp[3].x, temp[0].x___, temp[2].x___; 163: CMP temp[11], -temp[3].xxxx, temp[1], temp[11]; 164: MOV output[0], temp[11]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[15], input[1].xy__, 2D[0]; 1: MUL temp[16], input[0], temp[15]; 2: MUL temp[17].x, const[5].x___, input[1].y___; 3: MUL temp[18].x, const[4].x___, input[1].x___; 4: ADD temp[19].x, const[1].x___, -temp[0].0___; 5: CMP temp[20].x, -|temp[19].x___|, none.1___, none.0___; 6: CMP temp[21].x, (temp[17] - const[1]).x___, none.1___, none.0___; 7: CMP temp[22].x, -temp[20].x___, temp[21].x___, temp[6].x___; 8: ADD temp[23].x, temp[20].x___, -temp[0].0___; 9: CMP temp[24].x, -|temp[23].x___|, none.0___, none.1___; 10: CMP temp[25].x, -temp[24].x___, temp[0].0___, temp[22].x___; 11: CMP temp[26].x, -temp[25].x___, const[0].x___, temp[20].x___; 12: CMP temp[27].x, (const[3] - temp[18]).x___, none.1___, none.0___; 13: MUL temp[28].x, temp[25].x___, temp[26].x___; 14: CMP temp[29].x, -temp[28].x___, temp[27].x___, temp[8].x___; 15: ADD temp[30].x, temp[26].x___, -temp[0].0___; 16: CMP temp[31].x, -|temp[30].x___|, none.0___, none.1___; 17: MUL temp[32].x, temp[25].x___, temp[31].x___; 18: CMP temp[33].x, -temp[32].x___, temp[0].0___, temp[29].x___; 19: CMP temp[34].x, -temp[25].x___, temp[33].x___, temp[32].x___; 20: MUL temp[35].x, temp[25].x___, temp[34].x___; 21: CMP temp[36].x, -temp[35].x___, temp[0].1___, temp[28].x___; 22: ADD temp[37].x, const[0].x___, -temp[0].0___; 23: CMP temp[38].x, -|temp[37].x___|, none.0___, none.1___; 24: ADD temp[39].x, temp[34].x___, -temp[0].0___; 25: CMP temp[40].x, -|temp[39].x___|, none.0___, none.1___; 26: MUL temp[41].x, temp[25].x___, temp[40].x___; 27: CMP temp[42].x, -temp[41].x___, temp[38].x___, temp[40].x___; 28: ADD temp[43].x, temp[18].x___, -(const[4] - const[3]).x___; 29: CMP temp[44].x, temp[43].x___, none.1___, none.0___; 30: ADD temp[45].x, temp[34].x___, -temp[0].0___; 31: CMP temp[46].x, -|temp[45].x___|, none.0___, none.1___; 32: MUL temp[47].x, temp[46].x___, temp[42].x___; 33: MUL temp[48].x, temp[25].x___, temp[47].x___; 34: CMP temp[49].x, -temp[48].x___, temp[44].x___, temp[47].x___; 35: ADD temp[50].x, temp[34].x___, -temp[0].0___; 36: CMP temp[51].x, -|temp[50].x___|, none.0___, none.1___; 37: ADD temp[52].x, temp[42].x___, -temp[0].0___; 38: CMP temp[53].x, -|temp[52].x___|, none.0___, none.1___; 39: MUL temp[54].x, temp[51].x___, temp[53].x___; 40: MUL temp[55].x, temp[25].x___, temp[54].x___; 41: CMP temp[56].x, -temp[55].x___, temp[0].0___, temp[49].x___; 42: ADD temp[57].x, temp[34].x___, -temp[0].0___; 43: CMP temp[58].x, -|temp[57].x___|, none.0___, none.1___; 44: MUL temp[59].x, temp[25].x___, temp[58].x___; 45: CMP temp[60].x, -temp[59].x___, temp[56].x___, temp[36].x___; 46: CMP temp[61].x, -temp[25].x___, temp[60].x___, temp[59].x___; 47: ADD temp[62].x, temp[25].x___, -temp[0].0___; 48: CMP temp[63].x, -|temp[62].x___|, none.0___, none.1___; 49: CMP temp[64].x, -temp[63].x___, temp[0].0___, temp[61].x___; 50: RCP temp[65].x, const[1].x___; 51: MUL temp[66].x, temp[17].x___, temp[65].x___; 52: MUL temp[67], temp[16], temp[66].xxxx; 53: CMP temp[68], -temp[64].xxxx, temp[67], temp[11]; 54: ADD temp[69].x, const[2].x___, -temp[0].0___; 55: CMP temp[70].x, -|temp[69].x___|, none.1___, none.0___; 56: ADD temp[71].x, temp[64].x___, -temp[0].0___; 57: CMP temp[72].x, -|temp[71].x___|, none.0___, none.1___; 58: CMP temp[73].x, -temp[72].x___, temp[70].x___, temp[60].x___; 59: ADD temp[74].x, -temp[17].x___, (const[5] - const[2]).x___; 60: CMP temp[75].x, temp[74].x___, none.1___, none.0___; 61: ADD temp[76].x, temp[64].x___, -temp[0].0___; 62: CMP temp[77].x, -|temp[76].x___|, none.0___, none.1___; 63: MUL temp[78].x, temp[77].x___, temp[73].x___; 64: CMP temp[79].x, -temp[78].x___, temp[75].x___, temp[77].x___; 65: ADD temp[80].x, temp[64].x___, -temp[0].0___; 66: CMP temp[81].x, -|temp[80].x___|, none.0___, none.1___; 67: ADD temp[82].x, temp[73].x___, -temp[0].0___; 68: CMP temp[83].x, -|temp[82].x___|, none.0___, none.1___; 69: MUL temp[84].x, temp[81].x___, temp[83].x___; 70: CMP temp[85].x, -temp[84].x___, temp[0].0___, temp[79].x___; 71: ADD temp[86].x, temp[64].x___, -temp[0].0___; 72: CMP temp[87].x, -|temp[86].x___|, none.0___, none.1___; 73: CMP temp[88].x, -temp[87].x___, temp[85].x___, temp[84].x___; 74: ADD temp[89].x, temp[64].x___, -temp[0].0___; 75: CMP temp[90].x, -|temp[89].x___|, none.0___, none.1___; 76: MUL temp[91].x, temp[90].x___, temp[88].x___; 77: CMP temp[92].x, -temp[91].x___, const[0].x___, temp[90].x___; 78: CMP temp[93].x, (const[3] - temp[18]).x___, none.1___, none.0___; 79: ADD temp[94].x, temp[64].x___, -temp[0].0___; 80: CMP temp[95].x, -|temp[94].x___|, none.0___, none.1___; 81: MUL temp[96].x, temp[88].x___, temp[92].x___; 82: MUL temp[97].x, temp[95].x___, temp[96].x___; 83: CMP temp[98].x, -temp[97].x___, temp[93].x___, temp[95].x___; 84: ADD temp[99].x, temp[64].x___, -temp[0].0___; 85: CMP temp[100].x, -|temp[99].x___|, none.0___, none.1___; 86: ADD temp[101].x, temp[92].x___, -temp[0].0___; 87: CMP temp[102].x, -|temp[101].x___|, none.0___, none.1___; 88: MUL temp[103].x, temp[88].x___, temp[102].x___; 89: MUL temp[104].x, temp[100].x___, temp[103].x___; 90: CMP temp[105].x, -temp[104].x___, temp[0].0___, temp[98].x___; 91: ADD temp[106].x, temp[64].x___, -temp[0].0___; 92: CMP temp[107].x, -|temp[106].x___|, none.0___, none.1___; 93: MUL temp[108].x, temp[107].x___, temp[88].x___; 94: CMP temp[109].x, -temp[108].x___, temp[105].x___, temp[107].x___; 95: ADD temp[110].x, temp[64].x___, -temp[0].0___; 96: CMP temp[111].x, -|temp[110].x___|, none.0___, none.1___; 97: MUL temp[112].x, temp[88].x___, temp[109].x___; 98: MUL temp[113].x, temp[111].x___, temp[112].x___; 99: CMP temp[114].x, -temp[113].x___, temp[0].1___, temp[111].x___; 100: ADD temp[115].x, const[0].x___, -temp[0].0___; 101: CMP temp[116].x, -|temp[115].x___|, none.0___, none.1___; 102: ADD temp[117].x, temp[64].x___, -temp[0].0___; 103: CMP temp[118].x, -|temp[117].x___|, none.0___, none.1___; 104: ADD temp[119].x, temp[109].x___, -temp[0].0___; 105: CMP temp[120].x, -|temp[119].x___|, none.0___, none.1___; 106: MUL temp[121].x, temp[88].x___, temp[120].x___; 107: MUL temp[122].x, temp[118].x___, temp[121].x___; 108: CMP temp[123].x, -temp[122].x___, temp[116].x___, temp[118].x___; 109: ADD temp[124].x, temp[18].x___, -(const[4] - const[3]).x___; 110: CMP temp[125].x, temp[124].x___, none.1___, none.0___; 111: ADD temp[126].x, temp[64].x___, -temp[0].0___; 112: CMP temp[127].x, -|temp[126].x___|, none.0___, none.1___; 113: ADD temp[128].x, temp[109].x___, -temp[0].0___; 114: CMP temp[129].x, -|temp[128].x___|, none.0___, none.1___; 115: MUL temp[130].x, temp[129].x___, temp[123].x___; 116: MUL temp[131].x, temp[88].x___, temp[130].x___; 117: MUL temp[132].x, temp[127].x___, temp[131].x___; 118: CMP temp[133].x, -temp[132].x___, temp[125].x___, temp[127].x___; 119: ADD temp[134].x, temp[64].x___, -temp[0].0___; 120: CMP temp[135].x, -|temp[134].x___|, none.0___, none.1___; 121: ADD temp[136].x, temp[109].x___, -temp[0].0___; 122: CMP temp[137].x, -|temp[136].x___|, none.0___, none.1___; 123: ADD temp[138].x, temp[123].x___, -temp[0].0___; 124: CMP temp[139].x, -|temp[138].x___|, none.0___, none.1___; 125: MUL temp[140].x, temp[137].x___, temp[139].x___; 126: MUL temp[141].x, temp[88].x___, temp[140].x___; 127: MUL temp[142].x, temp[135].x___, temp[141].x___; 128: CMP temp[143].x, -temp[142].x___, temp[0].0___, temp[133].x___; 129: ADD temp[144].x, temp[64].x___, -temp[0].0___; 130: CMP temp[145].x, -|temp[144].x___|, none.0___, none.1___; 131: ADD temp[146].x, temp[109].x___, -temp[0].0___; 132: CMP temp[147].x, -|temp[146].x___|, none.0___, none.1___; 133: MUL temp[148].x, temp[88].x___, temp[147].x___; 134: MUL temp[149].x, temp[145].x___, temp[148].x___; 135: CMP temp[150].x, -temp[149].x___, temp[143].x___, temp[114].x___; 136: ADD temp[151].x, temp[64].x___, -temp[0].0___; 137: CMP temp[152].x, -|temp[151].x___|, none.0___, none.1___; 138: MUL temp[153].x, temp[152].x___, temp[88].x___; 139: CMP temp[154].x, -temp[153].x___, temp[150].x___, temp[152].x___; 140: ADD temp[155].x, temp[64].x___, -temp[0].0___; 141: CMP temp[156].x, -|temp[155].x___|, none.0___, none.1___; 142: ADD temp[157].x, temp[88].x___, -temp[0].0___; 143: CMP temp[158].x, -|temp[157].x___|, none.0___, none.1___; 144: MUL temp[159].x, temp[156].x___, temp[158].x___; 145: CMP temp[160].x, -temp[159].x___, temp[0].0___, temp[154].x___; 146: ADD temp[161].x, temp[64].x___, -temp[0].0___; 147: CMP temp[162].x, -|temp[161].x___|, none.0___, none.1___; 148: CMP temp[163].x, -temp[162].x___, temp[160].x___, temp[158].x___; 149: ADD temp[164].x, const[5].x___, -temp[17].x___; 150: ADD temp[165].x, const[5].x___, -(const[5] - const[2]).x___; 151: RCP temp[166].x, temp[165].x___; 152: MUL temp[167].x, temp[164].x___, temp[166].x___; 153: MUL temp[168], temp[16], temp[167].xxxx; 154: ADD temp[169].x, temp[64].x___, -temp[0].0___; 155: CMP temp[170].x, -|temp[169].x___|, none.0___, none.1___; 156: MUL temp[171].x, temp[170].x___, temp[163].x___; 157: CMP temp[172], -temp[171].xxxx, temp[168], temp[68]; 158: ADD temp[173].x, temp[64].x___, -temp[0].0___; 159: CMP temp[174].x, -|temp[173].x___|, none.0___, none.1___; 160: ADD temp[175].x, temp[163].x___, -temp[0].0___; 161: CMP temp[176].x, -|temp[175].x___|, none.0___, none.1___; 162: MUL temp[177].x, temp[174].x___, temp[176].x___; 163: CMP temp[178], -temp[177].xxxx, temp[16], temp[172]; 164: MOV output[0], temp[178]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[15], input[1].xy__, 2D[0]; 1: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[15], src1.w = temp[15] MAD temp[16].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[16].w, src0.w, src1.w, src0.0 2: src0.xyz = const[5], src1.xyz = input[1] MAD temp[17].x, src0.x__, src1.y__, src0.000 3: src0.xyz = const[4], src1.xyz = input[1] MAD temp[18].x, src0.x__, src1.x__, src0.000 4: src0.xyz = const[1] MAD temp[19].x, src0.x__, src0.111, -src0.0__ 5: src0.xyz = temp[19] CMP temp[20].x, src0.0__, src0.1__, -|src0.x__| 6: src0.xyz = const[1], src1.xyz = temp[17], srcp.xyz = (src1 - src0) CMP temp[21].x, src0.0__, src0.1__, srcp.x__ 7: src0.xyz = temp[6], src1.xyz = temp[21], src2.xyz = temp[20] CMP temp[22].x, src0.x__, src1.x__, -src2.x__ 8: src0.xyz = temp[20] MAD temp[23].x, src0.x__, src0.111, -src0.0__ 9: src0.xyz = temp[23] CMP temp[24].x, src0.1__, src0.0__, -|src0.x__| 10: src0.xyz = temp[22], src1.xyz = temp[24] CMP temp[25].x, src0.x__, src0.0__, -src1.x__ 11: src0.xyz = temp[20], src1.xyz = const[0], src2.xyz = temp[25] CMP temp[26].x, src0.x__, src1.x__, -src2.x__ 12: src0.xyz = temp[18], src1.xyz = const[3], srcp.xyz = (src1 - src0) CMP temp[27].x, src0.0__, src0.1__, srcp.x__ 13: src0.xyz = temp[25], src1.xyz = temp[26] MAD temp[28].x, src0.x__, src1.x__, src0.000 14: src0.xyz = temp[8], src1.xyz = temp[27], src2.xyz = temp[28] CMP temp[29].x, src0.x__, src1.x__, -src2.x__ 15: src0.xyz = temp[26] MAD temp[30].x, src0.x__, src0.111, -src0.0__ 16: src0.xyz = temp[30] CMP temp[31].x, src0.1__, src0.0__, -|src0.x__| 17: src0.xyz = temp[25], src1.xyz = temp[31] MAD temp[32].x, src0.x__, src1.x__, src0.000 18: src0.xyz = temp[29], src1.xyz = temp[32] CMP temp[33].x, src0.x__, src0.0__, -src1.x__ 19: src0.xyz = temp[32], src1.xyz = temp[33], src2.xyz = temp[25] CMP temp[34].x, src0.x__, src1.x__, -src2.x__ 20: src0.xyz = temp[25], src1.xyz = temp[34] MAD temp[35].x, src0.x__, src1.x__, src0.000 21: src0.xyz = temp[28], src1.xyz = temp[35] CMP temp[36].x, src0.x__, src0.1__, -src1.x__ 22: src0.xyz = const[0] MAD temp[37].x, src0.x__, src0.111, -src0.0__ 23: src0.xyz = temp[37] CMP temp[38].x, src0.1__, src0.0__, -|src0.x__| 24: src0.xyz = temp[34] MAD temp[39].x, src0.x__, src0.111, -src0.0__ 25: src0.xyz = temp[39] CMP temp[40].x, src0.1__, src0.0__, -|src0.x__| 26: src0.xyz = temp[25], src1.xyz = temp[40] MAD temp[41].x, src0.x__, src1.x__, src0.000 27: src0.xyz = temp[40], src1.xyz = temp[38], src2.xyz = temp[41] CMP temp[42].x, src0.x__, src1.x__, -src2.x__ 28: src0.xyz = const[3], src1.xyz = const[4], src2.xyz = temp[18], srcp.xyz = (src1 - src0) MAD temp[43].x, src2.x__, src0.111, -srcp.x__ 29: src0.xyz = temp[43] CMP temp[44].x, src0.0__, src0.1__, src0.x__ 30: src0.xyz = temp[34] MAD temp[45].x, src0.x__, src0.111, -src0.0__ 31: src0.xyz = temp[45] CMP temp[46].x, src0.1__, src0.0__, -|src0.x__| 32: src0.xyz = temp[46], src1.xyz = temp[42] MAD temp[47].x, src0.x__, src1.x__, src0.000 33: src0.xyz = temp[25], src1.xyz = temp[47] MAD temp[48].x, src0.x__, src1.x__, src0.000 34: src0.xyz = temp[47], src1.xyz = temp[44], src2.xyz = temp[48] CMP temp[49].x, src0.x__, src1.x__, -src2.x__ 35: src0.xyz = temp[34] MAD temp[50].x, src0.x__, src0.111, -src0.0__ 36: src0.xyz = temp[50] CMP temp[51].x, src0.1__, src0.0__, -|src0.x__| 37: src0.xyz = temp[42] MAD temp[52].x, src0.x__, src0.111, -src0.0__ 38: src0.xyz = temp[52] CMP temp[53].x, src0.1__, src0.0__, -|src0.x__| 39: src0.xyz = temp[51], src1.xyz = temp[53] MAD temp[54].x, src0.x__, src1.x__, src0.000 40: src0.xyz = temp[25], src1.xyz = temp[54] MAD temp[55].x, src0.x__, src1.x__, src0.000 41: src0.xyz = temp[49], src1.xyz = temp[55] CMP temp[56].x, src0.x__, src0.0__, -src1.x__ 42: src0.xyz = temp[34] MAD temp[57].x, src0.x__, src0.111, -src0.0__ 43: src0.xyz = temp[57] CMP temp[58].x, src0.1__, src0.0__, -|src0.x__| 44: src0.xyz = temp[25], src1.xyz = temp[58] MAD temp[59].x, src0.x__, src1.x__, src0.000 45: src0.xyz = temp[36], src1.xyz = temp[56], src2.xyz = temp[59] CMP temp[60].x, src0.x__, src1.x__, -src2.x__ 46: src0.xyz = temp[59], src1.xyz = temp[60], src2.xyz = temp[25] CMP temp[61].x, src0.x__, src1.x__, -src2.x__ 47: src0.xyz = temp[25] MAD temp[62].x, src0.x__, src0.111, -src0.0__ 48: src0.xyz = temp[62] CMP temp[63].x, src0.1__, src0.0__, -|src0.x__| 49: src0.xyz = temp[61], src1.xyz = temp[63] CMP temp[64].x, src0.x__, src0.0__, -src1.x__ 50: src0.xyz = const[1] REPL_ALPHA temp[65].x RCP, src0.x 51: src0.xyz = temp[17], src1.xyz = temp[65] MAD temp[66].x, src0.x__, src1.x__, src0.000 52: src0.xyz = temp[16], src0.w = temp[16], src1.xyz = temp[66] MAD temp[67].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[67].w, src0.w, src1.x, src0.0 53: src0.xyz = temp[11], src0.w = temp[11], src1.xyz = temp[67], src1.w = temp[67], src2.xyz = temp[64] CMP temp[68].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[68].w, src0.w, src1.w, -src2.x 54: src0.xyz = const[2] MAD temp[69].x, src0.x__, src0.111, -src0.0__ 55: src0.xyz = temp[69] CMP temp[70].x, src0.0__, src0.1__, -|src0.x__| 56: src0.xyz = temp[64] MAD temp[71].x, src0.x__, src0.111, -src0.0__ 57: src0.xyz = temp[71] CMP temp[72].x, src0.1__, src0.0__, -|src0.x__| 58: src0.xyz = temp[60], src1.xyz = temp[70], src2.xyz = temp[72] CMP temp[73].x, src0.x__, src1.x__, -src2.x__ 59: src0.xyz = const[2], src1.xyz = const[5], src2.xyz = temp[17], srcp.xyz = (src1 - src0) MAD temp[74].x, -src2.x__, src0.111, srcp.x__ 60: src0.xyz = temp[74] CMP temp[75].x, src0.0__, src0.1__, src0.x__ 61: src0.xyz = temp[64] MAD temp[76].x, src0.x__, src0.111, -src0.0__ 62: src0.xyz = temp[76] CMP temp[77].x, src0.1__, src0.0__, -|src0.x__| 63: src0.xyz = temp[77], src1.xyz = temp[73] MAD temp[78].x, src0.x__, src1.x__, src0.000 64: src0.xyz = temp[77], src1.xyz = temp[75], src2.xyz = temp[78] CMP temp[79].x, src0.x__, src1.x__, -src2.x__ 65: src0.xyz = temp[64] MAD temp[80].x, src0.x__, src0.111, -src0.0__ 66: src0.xyz = temp[80] CMP temp[81].x, src0.1__, src0.0__, -|src0.x__| 67: src0.xyz = temp[73] MAD temp[82].x, src0.x__, src0.111, -src0.0__ 68: src0.xyz = temp[82] CMP temp[83].x, src0.1__, src0.0__, -|src0.x__| 69: src0.xyz = temp[81], src1.xyz = temp[83] MAD temp[84].x, src0.x__, src1.x__, src0.000 70: src0.xyz = temp[79], src1.xyz = temp[84] CMP temp[85].x, src0.x__, src0.0__, -src1.x__ 71: src0.xyz = temp[64] MAD temp[86].x, src0.x__, src0.111, -src0.0__ 72: src0.xyz = temp[86] CMP temp[87].x, src0.1__, src0.0__, -|src0.x__| 73: src0.xyz = temp[84], src1.xyz = temp[85], src2.xyz = temp[87] CMP temp[88].x, src0.x__, src1.x__, -src2.x__ 74: src0.xyz = temp[64] MAD temp[89].x, src0.x__, src0.111, -src0.0__ 75: src0.xyz = temp[89] CMP temp[90].x, src0.1__, src0.0__, -|src0.x__| 76: src0.xyz = temp[90], src1.xyz = temp[88] MAD temp[91].x, src0.x__, src1.x__, src0.000 77: src0.xyz = temp[90], src1.xyz = const[0], src2.xyz = temp[91] CMP temp[92].x, src0.x__, src1.x__, -src2.x__ 78: src0.xyz = temp[18], src1.xyz = const[3], srcp.xyz = (src1 - src0) CMP temp[93].x, src0.0__, src0.1__, srcp.x__ 79: src0.xyz = temp[64] MAD temp[94].x, src0.x__, src0.111, -src0.0__ 80: src0.xyz = temp[94] CMP temp[95].x, src0.1__, src0.0__, -|src0.x__| 81: src0.xyz = temp[88], src1.xyz = temp[92] MAD temp[96].x, src0.x__, src1.x__, src0.000 82: src0.xyz = temp[95], src1.xyz = temp[96] MAD temp[97].x, src0.x__, src1.x__, src0.000 83: src0.xyz = temp[95], src1.xyz = temp[93], src2.xyz = temp[97] CMP temp[98].x, src0.x__, src1.x__, -src2.x__ 84: src0.xyz = temp[64] MAD temp[99].x, src0.x__, src0.111, -src0.0__ 85: src0.xyz = temp[99] CMP temp[100].x, src0.1__, src0.0__, -|src0.x__| 86: src0.xyz = temp[92] MAD temp[101].x, src0.x__, src0.111, -src0.0__ 87: src0.xyz = temp[101] CMP temp[102].x, src0.1__, src0.0__, -|src0.x__| 88: src0.xyz = temp[88], src1.xyz = temp[102] MAD temp[103].x, src0.x__, src1.x__, src0.000 89: src0.xyz = temp[100], src1.xyz = temp[103] MAD temp[104].x, src0.x__, src1.x__, src0.000 90: src0.xyz = temp[98], src1.xyz = temp[104] CMP temp[105].x, src0.x__, src0.0__, -src1.x__ 91: src0.xyz = temp[64] MAD temp[106].x, src0.x__, src0.111, -src0.0__ 92: src0.xyz = temp[106] CMP temp[107].x, src0.1__, src0.0__, -|src0.x__| 93: src0.xyz = temp[107], src1.xyz = temp[88] MAD temp[108].x, src0.x__, src1.x__, src0.000 94: src0.xyz = temp[107], src1.xyz = temp[105], src2.xyz = temp[108] CMP temp[109].x, src0.x__, src1.x__, -src2.x__ 95: src0.xyz = temp[64] MAD temp[110].x, src0.x__, src0.111, -src0.0__ 96: src0.xyz = temp[110] CMP temp[111].x, src0.1__, src0.0__, -|src0.x__| 97: src0.xyz = temp[88], src1.xyz = temp[109] MAD temp[112].x, src0.x__, src1.x__, src0.000 98: src0.xyz = temp[111], src1.xyz = temp[112] MAD temp[113].x, src0.x__, src1.x__, src0.000 99: src0.xyz = temp[111], src1.xyz = temp[113] CMP temp[114].x, src0.x__, src0.1__, -src1.x__ 100: src0.xyz = const[0] MAD temp[115].x, src0.x__, src0.111, -src0.0__ 101: src0.xyz = temp[115] CMP temp[116].x, src0.1__, src0.0__, -|src0.x__| 102: src0.xyz = temp[64] MAD temp[117].x, src0.x__, src0.111, -src0.0__ 103: src0.xyz = temp[117] CMP temp[118].x, src0.1__, src0.0__, -|src0.x__| 104: src0.xyz = temp[109] MAD temp[119].x, src0.x__, src0.111, -src0.0__ 105: src0.xyz = temp[119] CMP temp[120].x, src0.1__, src0.0__, -|src0.x__| 106: src0.xyz = temp[88], src1.xyz = temp[120] MAD temp[121].x, src0.x__, src1.x__, src0.000 107: src0.xyz = temp[118], src1.xyz = temp[121] MAD temp[122].x, src0.x__, src1.x__, src0.000 108: src0.xyz = temp[118], src1.xyz = temp[116], src2.xyz = temp[122] CMP temp[123].x, src0.x__, src1.x__, -src2.x__ 109: src0.xyz = const[3], src1.xyz = const[4], src2.xyz = temp[18], srcp.xyz = (src1 - src0) MAD temp[124].x, src2.x__, src0.111, -srcp.x__ 110: src0.xyz = temp[124] CMP temp[125].x, src0.0__, src0.1__, src0.x__ 111: src0.xyz = temp[64] MAD temp[126].x, src0.x__, src0.111, -src0.0__ 112: src0.xyz = temp[126] CMP temp[127].x, src0.1__, src0.0__, -|src0.x__| 113: src0.xyz = temp[109] MAD temp[128].x, src0.x__, src0.111, -src0.0__ 114: src0.xyz = temp[128] CMP temp[129].x, src0.1__, src0.0__, -|src0.x__| 115: src0.xyz = temp[129], src1.xyz = temp[123] MAD temp[130].x, src0.x__, src1.x__, src0.000 116: src0.xyz = temp[88], src1.xyz = temp[130] MAD temp[131].x, src0.x__, src1.x__, src0.000 117: src0.xyz = temp[127], src1.xyz = temp[131] MAD temp[132].x, src0.x__, src1.x__, src0.000 118: src0.xyz = temp[127], src1.xyz = temp[125], src2.xyz = temp[132] CMP temp[133].x, src0.x__, src1.x__, -src2.x__ 119: src0.xyz = temp[64] MAD temp[134].x, src0.x__, src0.111, -src0.0__ 120: src0.xyz = temp[134] CMP temp[135].x, src0.1__, src0.0__, -|src0.x__| 121: src0.xyz = temp[109] MAD temp[136].x, src0.x__, src0.111, -src0.0__ 122: src0.xyz = temp[136] CMP temp[137].x, src0.1__, src0.0__, -|src0.x__| 123: src0.xyz = temp[123] MAD temp[138].x, src0.x__, src0.111, -src0.0__ 124: src0.xyz = temp[138] CMP temp[139].x, src0.1__, src0.0__, -|src0.x__| 125: src0.xyz = temp[137], src1.xyz = temp[139] MAD temp[140].x, src0.x__, src1.x__, src0.000 126: src0.xyz = temp[88], src1.xyz = temp[140] MAD temp[141].x, src0.x__, src1.x__, src0.000 127: src0.xyz = temp[135], src1.xyz = temp[141] MAD temp[142].x, src0.x__, src1.x__, src0.000 128: src0.xyz = temp[133], src1.xyz = temp[142] CMP temp[143].x, src0.x__, src0.0__, -src1.x__ 129: src0.xyz = temp[64] MAD temp[144].x, src0.x__, src0.111, -src0.0__ 130: src0.xyz = temp[144] CMP temp[145].x, src0.1__, src0.0__, -|src0.x__| 131: src0.xyz = temp[109] MAD temp[146].x, src0.x__, src0.111, -src0.0__ 132: src0.xyz = temp[146] CMP temp[147].x, src0.1__, src0.0__, -|src0.x__| 133: src0.xyz = temp[88], src1.xyz = temp[147] MAD temp[148].x, src0.x__, src1.x__, src0.000 134: src0.xyz = temp[145], src1.xyz = temp[148] MAD temp[149].x, src0.x__, src1.x__, src0.000 135: src0.xyz = temp[114], src1.xyz = temp[143], src2.xyz = temp[149] CMP temp[150].x, src0.x__, src1.x__, -src2.x__ 136: src0.xyz = temp[64] MAD temp[151].x, src0.x__, src0.111, -src0.0__ 137: src0.xyz = temp[151] CMP temp[152].x, src0.1__, src0.0__, -|src0.x__| 138: src0.xyz = temp[152], src1.xyz = temp[88] MAD temp[153].x, src0.x__, src1.x__, src0.000 139: src0.xyz = temp[152], src1.xyz = temp[150], src2.xyz = temp[153] CMP temp[154].x, src0.x__, src1.x__, -src2.x__ 140: src0.xyz = temp[64] MAD temp[155].x, src0.x__, src0.111, -src0.0__ 141: src0.xyz = temp[155] CMP temp[156].x, src0.1__, src0.0__, -|src0.x__| 142: src0.xyz = temp[88] MAD temp[157].x, src0.x__, src0.111, -src0.0__ 143: src0.xyz = temp[157] CMP temp[158].x, src0.1__, src0.0__, -|src0.x__| 144: src0.xyz = temp[156], src1.xyz = temp[158] MAD temp[159].x, src0.x__, src1.x__, src0.000 145: src0.xyz = temp[154], src1.xyz = temp[159] CMP temp[160].x, src0.x__, src0.0__, -src1.x__ 146: src0.xyz = temp[64] MAD temp[161].x, src0.x__, src0.111, -src0.0__ 147: src0.xyz = temp[161] CMP temp[162].x, src0.1__, src0.0__, -|src0.x__| 148: src0.xyz = temp[158], src1.xyz = temp[160], src2.xyz = temp[162] CMP temp[163].x, src0.x__, src1.x__, -src2.x__ 149: src0.xyz = const[5], src1.xyz = temp[17] MAD temp[164].x, src0.x__, src0.111, -src1.x__ 150: src0.xyz = const[2], src1.xyz = const[5], srcp.xyz = (src1 - src0) MAD temp[165].x, src1.x__, src0.111, -srcp.x__ 151: src0.xyz = temp[165] REPL_ALPHA temp[166].x RCP, src0.x 152: src0.xyz = temp[164], src1.xyz = temp[166] MAD temp[167].x, src0.x__, src1.x__, src0.000 153: src0.xyz = temp[16], src0.w = temp[16], src1.xyz = temp[167] MAD temp[168].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[168].w, src0.w, src1.x, src0.0 154: src0.xyz = temp[64] MAD temp[169].x, src0.x__, src0.111, -src0.0__ 155: src0.xyz = temp[169] CMP temp[170].x, src0.1__, src0.0__, -|src0.x__| 156: src0.xyz = temp[170], src1.xyz = temp[163] MAD temp[171].x, src0.x__, src1.x__, src0.000 157: src0.xyz = temp[68], src0.w = temp[68], src1.xyz = temp[168], src1.w = temp[168], src2.xyz = temp[171] CMP temp[172].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[172].w, src0.w, src1.w, -src2.x 158: src0.xyz = temp[64] MAD temp[173].x, src0.x__, src0.111, -src0.0__ 159: src0.xyz = temp[173] CMP temp[174].x, src0.1__, src0.0__, -|src0.x__| 160: src0.xyz = temp[163] MAD temp[175].x, src0.x__, src0.111, -src0.0__ 161: src0.xyz = temp[175] CMP temp[176].x, src0.1__, src0.0__, -|src0.x__| 162: src0.xyz = temp[174], src1.xyz = temp[176] MAD temp[177].x, src0.x__, src1.x__, src0.000 163: src0.xyz = temp[172], src0.w = temp[172], src1.xyz = temp[16], src1.w = temp[16], src2.xyz = temp[177] CMP temp[178].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[178].w, src0.w, src1.w, -src2.x 164: src0.xyz = temp[178], src0.w = temp[178] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[15], input[1].xy__, 2D[0]; 2: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[15], src1.w = temp[15] MAD temp[16].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[16].w, src0.w, src1.w, src0.0 3: src0.xyz = const[1] REPL_ALPHA temp[65].x RCP, src0.x 4: src0.xyz = const[2], src1.xyz = const[5], src2.xyz = const[0], srcp.xyz = (src1 - src0) MAD temp[165].x, src1.x__, src0.111, -srcp.x__ MAD temp[115].w, src2.x, src0.1, -src0.0 5: src0.xyz = temp[165] REPL_ALPHA temp[166].x RCP, src0.x 6: src0.xyz = const[2], src0.w = temp[115] MAD temp[69].x, src0.x__, src0.111, -src0.0__ CMP temp[116].w, src0.1, src0.0, -|src0.w| 7: src0.xyz = const[0], src1.xyz = temp[69] MAD temp[37].x, src0.x__, src0.111, -src0.0__ CMP temp[70].w, src0.0, src0.1, -|src1.x| 8: src0.xyz = const[1], src1.xyz = temp[37] MAD temp[19].x, src0.x__, src0.111, -src0.0__ CMP temp[38].w, src0.1, src0.0, -|src1.x| 9: src0.xyz = const[4], src1.xyz = input[1], src2.xyz = temp[19] MAD temp[18].x, src0.x__, src1.x__, src0.000 CMP temp[20].w, src0.0, src0.1, -|src2.x| 10: src0.xyz = temp[18], src0.w = temp[20], src1.xyz = const[3], srcp.xyz = (src1 - src0) CMP temp[27].x, src0.0__, src0.1__, srcp.x__ MAD temp[23].w, src0.w, src0.1, -src0.0 11: src0.xyz = const[3], src0.w = temp[23], src1.xyz = const[4], src2.xyz = temp[18], srcp.xyz = (src1 - src0) MAD temp[43].x, src2.x__, src0.111, -srcp.x__ CMP temp[24].w, src0.1, src0.0, -|src0.w| 12: src0.xyz = temp[18], src1.xyz = const[3], src2.xyz = temp[43], srcp.xyz = (src1 - src0) CMP temp[93].x, src0.0__, src0.1__, srcp.x__ CMP temp[44].w, src0.0, src0.1, src2.x 13: src0.xyz = const[5], src1.xyz = input[1] MAD temp[17].x, src0.x__, src1.y__, src0.000 14: src0.xyz = const[1], src1.xyz = temp[17], src2.xyz = temp[65], srcp.xyz = (src1 - src0) MAD temp[66].x, src1.x__, src2.x__, src0.000 CMP temp[21].w, src0.0, src0.1, srcp.x 15: src0.xyz = temp[16], src0.w = temp[16], src1.xyz = temp[66] MAD temp[67].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[67].w, src0.w, src1.x, src0.0 16: src0.xyz = const[5], src0.w = temp[21], src1.xyz = temp[17], src1.w = temp[20], src2.xyz = temp[6] MAD temp[164].x, src0.x__, src0.111, -src1.x__ CMP temp[22].w, src2.x, src0.w, -src1.w 17: src0.xyz = temp[164], src0.w = temp[22], src1.xyz = temp[166], src1.w = temp[24] MAD temp[167].x, src0.x__, src1.x__, src0.000 CMP temp[25].w, src0.w, src0.0, -src1.w 18: src0.xyz = temp[16], src0.w = temp[16], src1.xyz = temp[167] MAD temp[168].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[168].w, src0.w, src1.x, src0.0 19: src0.xyz = temp[25], src0.w = temp[25], src1.xyz = const[0], src1.w = temp[20] MAD temp[62].x, src0.w__, src0.111, -src0.0__ CMP temp[26].w, src1.w, src1.x, -src0.w 20: src0.xyz = temp[26], src0.w = temp[26], src1.w = temp[25] MAD temp[30].x, src0.w__, src0.111, -src0.0__ MAD temp[28].w, src1.w, src0.w, src0.0 21: src0.xyz = temp[30], src0.w = temp[28], src1.xyz = temp[8], src2.xyz = temp[27] CMP temp[31].x, src0.1__, src0.0__, -|src0.x__| CMP temp[29].w, src1.x, src2.x, -src0.w 22: src0.xyz = temp[62], src0.w = temp[25], src1.xyz = temp[31] CMP temp[63].x, src0.1__, src0.0__, -|src0.x__| MAD temp[32].w, src0.w, src1.x, src0.0 23: src0.xyz = const[2], src0.w = temp[29], src1.xyz = const[5], src1.w = temp[32], src2.xyz = temp[17], srcp.xyz = (src1 - src0) MAD temp[74].x, -src2.x__, src0.111, srcp.x__ CMP temp[33].w, src0.w, src0.0, -src1.w 24: src0.xyz = temp[74], src0.w = temp[32], src1.w = temp[33], src2.w = temp[25] CMP temp[75].x, src0.0__, src0.1__, src0.x__ CMP temp[34].w, src0.w, src1.w, -src2.w 25: src0.xyz = temp[34], src0.w = temp[34], src1.w = temp[25] MAD temp[39].x, src0.w__, src0.111, -src0.0__ MAD temp[35].w, src1.w, src0.w, src0.0 26: src0.xyz = temp[39], src0.w = temp[28], src1.w = temp[35] CMP temp[40].x, src0.1__, src0.0__, -|src0.x__| CMP temp[36].w, src0.w, src0.1, -src1.w 27: src0.xyz = temp[34], src0.w = temp[34], src1.xyz = temp[40], src1.w = temp[25] MAD temp[45].x, src0.w__, src0.111, -src0.0__ MAD temp[41].w, src1.w, src1.x, src0.0 28: src0.xyz = temp[45], src0.w = temp[38], src1.xyz = temp[40], src1.w = temp[41] CMP temp[46].x, src0.1__, src0.0__, -|src0.x__| CMP temp[42].w, src1.x, src0.w, -src1.w 29: src0.xyz = temp[42], src0.w = temp[42], src1.xyz = temp[46] MAD temp[52].x, src0.w__, src0.111, -src0.0__ MAD temp[47].w, src1.x, src0.w, src0.0 30: src0.xyz = temp[52], src0.w = temp[25], src1.w = temp[47] CMP temp[53].x, src0.1__, src0.0__, -|src0.x__| MAD temp[48].w, src0.w, src1.w, src0.0 31: src0.xyz = temp[34], src0.w = temp[34] MAD temp[57].x, src0.w__, src0.111, -src0.0__ MAD temp[50].w, src0.w, src0.1, -src0.0 32: src0.xyz = temp[57], src0.w = temp[47], src1.w = temp[44], src2.w = temp[48] CMP temp[58].x, src0.1__, src0.0__, -|src0.x__| CMP temp[49].w, src0.w, src1.w, -src2.w 33: src0.xyz = temp[50], src0.w = temp[50], src1.xyz = temp[58], src1.w = temp[25] CMP temp[51].x, src0.1__, src0.0__, -|src0.w__| MAD temp[59].w, src1.w, src1.x, src0.0 34: src0.xyz = temp[51], src1.xyz = temp[53] MAD temp[54].x, src0.x__, src1.x__, src0.000 35: src0.xyz = temp[25], src0.w = temp[25], src1.xyz = temp[54] MAD temp[55].x, src0.w__, src1.x__, src0.000 36: src0.xyz = temp[49], src0.w = temp[49], src1.xyz = temp[55] CMP temp[56].x, src0.w__, src0.0__, -src1.x__ 37: src0.xyz = temp[36], src0.w = temp[36], src1.xyz = temp[56], src1.w = temp[59], src2.xyz = temp[59] CMP temp[60].x, src0.w__, src1.x__, -src1.w__ 38: src0.xyz = temp[59], src0.w = temp[25], src1.xyz = temp[60], src1.w = temp[59], src2.xyz = temp[25] CMP temp[61].x, src1.w__, src1.x__, -src0.w__ 39: src0.xyz = temp[61], src1.xyz = temp[63] CMP temp[64].x, src0.x__, src0.0__, -src1.x__ 40: src0.xyz = temp[11], src0.w = temp[11], src1.xyz = temp[67], src1.w = temp[67], src2.xyz = temp[64] CMP temp[68].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[68].w, src0.w, src1.w, -src2.x 41: src0.xyz = temp[64] MAD temp[76].x, src0.x__, src0.111, -src0.0__ MAD temp[71].w, src0.x, src0.1, -src0.0 42: src0.xyz = temp[76], src0.w = temp[71] CMP temp[77].x, src0.1__, src0.0__, -|src0.x__| CMP temp[72].w, src0.1, src0.0, -|src0.w| 43: src0.xyz = temp[64], src0.w = temp[70], src1.xyz = temp[60], src1.w = temp[72] MAD temp[80].x, src0.x__, src0.111, -src0.0__ CMP temp[73].w, src1.x, src0.w, -src1.w 44: src0.xyz = temp[73], src0.w = temp[73], src1.xyz = temp[77] MAD temp[82].x, src0.w__, src0.111, -src0.0__ MAD temp[78].w, src1.x, src0.w, src0.0 45: src0.xyz = temp[82], src0.w = temp[78], src1.xyz = temp[77], src2.xyz = temp[75] CMP temp[83].x, src0.1__, src0.0__, -|src0.x__| CMP temp[79].w, src1.x, src2.x, -src0.w 46: src0.xyz = temp[64], src1.xyz = temp[80] MAD temp[86].x, src0.x__, src0.111, -src0.0__ CMP temp[81].w, src0.1, src0.0, -|src1.x| 47: src0.xyz = temp[86], src0.w = temp[81], src1.xyz = temp[83] CMP temp[87].x, src0.1__, src0.0__, -|src0.x__| MAD temp[84].w, src0.w, src1.x, src0.0 48: src0.xyz = temp[64], src0.w = temp[79], src1.w = temp[84] MAD temp[89].x, src0.x__, src0.111, -src0.0__ CMP temp[85].w, src0.w, src0.0, -src1.w 49: src0.xyz = temp[89], src0.w = temp[84], src1.xyz = temp[87], src1.w = temp[85] CMP temp[90].x, src0.1__, src0.0__, -|src0.x__| CMP temp[88].w, src0.w, src1.w, -src1.x 50: src0.xyz = temp[88], src0.w = temp[88], src1.xyz = temp[90] MAD temp[157].x, src0.w__, src0.111, -src0.0__ MAD temp[91].w, src1.x, src0.w, src0.0 51: src0.xyz = temp[157], src0.w = temp[91], src1.xyz = temp[90], src2.xyz = const[0] CMP temp[158].x, src0.1__, src0.0__, -|src0.x__| CMP temp[92].w, src1.x, src2.x, -src0.w 52: src0.xyz = temp[92], src0.w = temp[92], src1.w = temp[88] MAD temp[101].x, src0.w__, src0.111, -src0.0__ MAD temp[96].w, src1.w, src0.w, src0.0 53: src0.xyz = temp[64], src1.xyz = temp[101] MAD temp[94].x, src0.x__, src0.111, -src0.0__ CMP temp[102].w, src0.1, src0.0, -|src1.x| 54: src0.xyz = temp[94], src0.w = temp[88], src1.w = temp[102] CMP temp[95].x, src0.1__, src0.0__, -|src0.x__| MAD temp[103].w, src0.w, src1.w, src0.0 55: src0.xyz = temp[64], src0.w = temp[96], src1.xyz = temp[95] MAD temp[99].x, src0.x__, src0.111, -src0.0__ MAD temp[97].w, src1.x, src0.w, src0.0 56: src0.xyz = temp[99], src0.w = temp[97], src1.xyz = temp[95], src2.xyz = temp[93] CMP temp[100].x, src0.1__, src0.0__, -|src0.x__| CMP temp[98].w, src1.x, src2.x, -src0.w 57: src0.xyz = temp[64], src0.w = temp[103], src1.xyz = temp[100] MAD temp[106].x, src0.x__, src0.111, -src0.0__ MAD temp[104].w, src1.x, src0.w, src0.0 58: src0.xyz = temp[106], src0.w = temp[98], src1.w = temp[104] CMP temp[107].x, src0.1__, src0.0__, -|src0.x__| CMP temp[105].w, src0.w, src0.0, -src1.w 59: src0.xyz = temp[64], src0.w = temp[88], src1.xyz = temp[107] MAD temp[110].x, src0.x__, src0.111, -src0.0__ MAD temp[108].w, src1.x, src0.w, src0.0 60: src0.xyz = temp[110], src0.w = temp[105], src1.xyz = temp[107], src1.w = temp[108] CMP temp[111].x, src0.1__, src0.0__, -|src0.x__| CMP temp[109].w, src1.x, src0.w, -src1.w 61: src0.xyz = temp[109], src0.w = temp[109], src1.w = temp[88] MAD temp[119].x, src0.w__, src0.111, -src0.0__ MAD temp[112].w, src1.w, src0.w, src0.0 62: src0.xyz = temp[119], src0.w = temp[112], src1.xyz = temp[111] CMP temp[120].x, src0.1__, src0.0__, -|src0.x__| MAD temp[113].w, src1.x, src0.w, src0.0 63: src0.xyz = temp[88], src0.w = temp[88], src1.xyz = temp[120], src1.w = temp[113], src2.xyz = temp[111] MAD temp[121].x, src0.w__, src1.x__, src0.000 CMP temp[114].w, src2.x, src0.1, -src1.w 64: src0.xyz = temp[109], src0.w = temp[109] MAD temp[136].x, src0.w__, src0.111, -src0.0__ MAD temp[128].w, src0.w, src0.1, -src0.0 65: src0.xyz = temp[136], src0.w = temp[128] CMP temp[137].x, src0.1__, src0.0__, -|src0.x__| CMP temp[129].w, src0.1, src0.0, -|src0.w| 66: src0.xyz = temp[64], src0.w = temp[109] MAD temp[117].x, src0.x__, src0.111, -src0.0__ MAD temp[146].w, src0.w, src0.1, -src0.0 67: src0.xyz = temp[117], src0.w = temp[146] CMP temp[118].x, src0.1__, src0.0__, -|src0.x__| CMP temp[147].w, src0.1, src0.0, -|src0.w| 68: src0.xyz = temp[118], src0.w = temp[88], src1.xyz = temp[121], src1.w = temp[147] MAD temp[122].x, src0.x__, src1.x__, src0.000 MAD temp[148].w, src0.w, src1.w, src0.0 69: src0.xyz = temp[64], src0.w = temp[116], src1.xyz = temp[118], src2.xyz = temp[122] MAD temp[126].x, src0.x__, src0.111, -src0.0__ CMP temp[123].w, src1.x, src0.w, -src2.x 70: src0.xyz = temp[123], src0.w = temp[123], src1.w = temp[129] MAD temp[138].x, src0.w__, src0.111, -src0.0__ MAD temp[130].w, src1.w, src0.w, src0.0 71: src0.xyz = temp[138], src0.w = temp[88], src1.w = temp[130] CMP temp[139].x, src0.1__, src0.0__, -|src0.x__| MAD temp[131].w, src0.w, src1.w, src0.0 72: src0.xyz = temp[126], src1.xyz = temp[137], src2.xyz = temp[139] CMP temp[127].x, src0.1__, src0.0__, -|src0.x__| MAD temp[140].w, src1.x, src2.x, src0.0 73: src0.xyz = temp[127], src0.w = temp[131], src1.xyz = temp[131], src1.w = temp[88], src2.w = temp[140] MAD temp[132].x, src0.x__, src0.w__, src0.000 MAD temp[141].w, src1.w, src2.w, src0.0 74: src0.xyz = temp[64] MAD temp[144].x, src0.x__, src0.111, -src0.0__ MAD temp[134].w, src0.x, src0.1, -src0.0 75: src0.xyz = temp[144], src0.w = temp[134] CMP temp[145].x, src0.1__, src0.0__, -|src0.x__| CMP temp[135].w, src0.1, src0.0, -|src0.w| 76: src0.xyz = temp[145], src0.w = temp[148], src1.xyz = temp[148], src1.w = temp[135], src2.w = temp[141] MAD temp[149].x, src0.x__, src0.w__, src0.000 MAD temp[142].w, src1.w, src2.w, src0.0 77: src0.xyz = temp[64] MAD temp[155].x, src0.x__, src0.111, -src0.0__ MAD temp[151].w, src0.x, src0.1, -src0.0 78: src0.xyz = temp[155], src0.w = temp[151] CMP temp[156].x, src0.1__, src0.0__, -|src0.x__| CMP temp[152].w, src0.1, src0.0, -|src0.w| 79: src0.xyz = temp[156], src0.w = temp[152], src1.xyz = temp[158], src1.w = temp[88] MAD temp[159].x, src0.x__, src1.x__, src0.000 MAD temp[153].w, src0.w, src1.w, src0.0 80: src0.xyz = temp[64] MAD temp[169].x, src0.x__, src0.111, -src0.0__ MAD temp[161].w, src0.x, src0.1, -src0.0 81: src0.xyz = temp[169], src0.w = temp[161] CMP temp[170].x, src0.1__, src0.0__, -|src0.x__| CMP temp[162].w, src0.1, src0.0, -|src0.w| 82: src0.xyz = temp[64] MAD temp[173].x, src0.x__, src0.111, -src0.0__ 83: src0.xyz = temp[173] CMP temp[174].x, src0.1__, src0.0__, -|src0.x__| 84: src0.xyz = const[3], src1.xyz = const[4], src2.xyz = temp[18], srcp.xyz = (src1 - src0) MAD temp[124].w, src2.x, src0.1, -srcp.x 85: src0.xyz = temp[124], src0.w = temp[124] CMP temp[125].x, src0.0__, src0.1__, src0.w__ 86: src0.xyz = temp[127], src1.xyz = temp[125], src2.xyz = temp[132] CMP temp[133].x, src0.x__, src1.x__, -src2.x__ 87: src0.xyz = temp[133], src0.w = temp[142], src1.xyz = temp[142] CMP temp[143].x, src0.x__, src0.0__, -src0.w__ 88: src0.xyz = temp[114], src0.w = temp[114], src1.xyz = temp[143], src2.xyz = temp[149] CMP temp[150].x, src0.w__, src1.x__, -src2.x__ 89: src0.xyz = temp[152], src0.w = temp[152], src1.xyz = temp[150], src1.w = temp[153], src2.xyz = temp[153] CMP temp[154].x, src0.w__, src1.x__, -src1.w__ 90: src0.xyz = temp[154], src1.xyz = temp[159] CMP temp[160].x, src0.x__, src0.0__, -src1.x__ 91: src0.xyz = temp[158], src0.w = temp[162], src1.xyz = temp[160], src2.xyz = temp[162] CMP temp[163].x, src0.x__, src1.x__, -src0.w__ 92: src0.xyz = temp[170], src1.xyz = temp[163] MAD temp[171].x, src0.x__, src1.x__, src0.000 MAD temp[175].w, src1.x, src0.1, -src0.0 93: src0.xyz = temp[68], src0.w = temp[68], src1.xyz = temp[168], src1.w = temp[168], src2.xyz = temp[171] CMP temp[172].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[172].w, src0.w, src1.w, -src2.x 94: src0.xyz = temp[175], src0.w = temp[175] CMP temp[176].x, src0.1__, src0.0__, -|src0.w__| 95: src0.xyz = temp[174], src1.xyz = temp[176] MAD temp[177].x, src0.x__, src1.x__, src0.000 96: src0.xyz = temp[172], src0.w = temp[172], src1.xyz = temp[16], src1.w = temp[16], src2.xyz = temp[177] CMP temp[178].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[178].w, src0.w, src1.w, -src2.x 97: src0.xyz = temp[178], src0.w = temp[178] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[2], temp[1].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[2], src1.w = temp[2] MAD temp[2].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[2].w, src0.w, src1.w, src0.0 3: src0.xyz = const[1] REPL_ALPHA temp[5].x RCP, src0.x 4: src0.xyz = const[2], src1.xyz = const[5], src2.xyz = const[0], srcp.xyz = (src1 - src0) MAD temp[3].x, src1.x__, src0.111, -srcp.x__ MAD temp[0].w, src2.x, src0.1, -src0.0 5: src0.xyz = temp[3] REPL_ALPHA temp[10].x RCP, src0.x 6: src0.xyz = const[2], src0.w = temp[0] MAD temp[0].x, src0.x__, src0.111, -src0.0__ CMP temp[15].w, src0.1, src0.0, -|src0.w| 7: src0.xyz = const[0], src1.xyz = temp[0] MAD temp[0].x, src0.x__, src0.111, -src0.0__ CMP temp[12].w, src0.0, src0.1, -|src1.x| 8: src0.xyz = const[1], src1.xyz = temp[0] MAD temp[0].x, src0.x__, src0.111, -src0.0__ CMP temp[8].w, src0.1, src0.0, -|src1.x| 9: src0.xyz = const[4], src1.xyz = temp[1], src2.xyz = temp[0] MAD temp[3].x, src0.x__, src1.x__, src0.000 CMP temp[4].w, src0.0, src0.1, -|src2.x| 10: src0.xyz = temp[3], src0.w = temp[4], src1.xyz = const[3], srcp.xyz = (src1 - src0) CMP temp[7].x, src0.0__, src0.1__, srcp.x__ MAD temp[0].w, src0.w, src0.1, -src0.0 11: src0.xyz = const[3], src0.w = temp[0], src1.xyz = const[4], src2.xyz = temp[3], srcp.xyz = (src1 - src0) MAD temp[0].x, src2.x__, src0.111, -srcp.x__ CMP temp[6].w, src0.1, src0.0, -|src0.w| 12: src0.xyz = temp[3], src1.xyz = const[3], src2.xyz = temp[0], srcp.xyz = (src1 - src0) CMP temp[14].x, src0.0__, src0.1__, srcp.x__ CMP temp[9].w, src0.0, src0.1, src2.x 13: src0.xyz = const[5], src1.xyz = temp[1] MAD temp[1].x, src0.x__, src1.y__, src0.000 14: src0.xyz = const[1], src1.xyz = temp[1], src2.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[0].x, src1.x__, src2.x__, src0.000 CMP temp[5].w, src0.0, src0.1, srcp.x 15: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = temp[0] MAD temp[11].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[11].w, src0.w, src1.x, src0.0 16: src0.xyz = const[5], src0.w = temp[5], src1.xyz = temp[1], src1.w = temp[4], src2.xyz = temp[0] MAD temp[5].x, src0.x__, src0.111, -src1.x__ CMP temp[0].w, src2.x, src0.w, -src1.w 17: src0.xyz = temp[5], src0.w = temp[0], src1.xyz = temp[10], src1.w = temp[6] MAD temp[0].x, src0.x__, src1.x__, src0.000 CMP temp[5].w, src0.w, src0.0, -src1.w 18: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = temp[0] MAD temp[16].xyz, src0.xyz, src1.xxx, src0.000 MAD temp[16].w, src0.w, src1.x, src0.0 19: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[0], src1.w = temp[4] MAD temp[10].x, src0.w__, src0.111, -src0.0__ CMP temp[0].w, src1.w, src1.x, -src0.w 20: src0.xyz = temp[0], src0.w = temp[0], src1.w = temp[5] MAD temp[0].x, src0.w__, src0.111, -src0.0__ MAD temp[4].w, src1.w, src0.w, src0.0 21: src0.xyz = temp[0], src0.w = temp[4], src1.xyz = temp[0], src2.xyz = temp[7] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[0].w, src1.x, src2.x, -src0.w 22: src0.xyz = temp[10], src0.w = temp[5], src1.xyz = temp[6] CMP temp[10].x, src0.1__, src0.0__, -|src0.x__| MAD temp[6].w, src0.w, src1.x, src0.0 23: src0.xyz = const[2], src0.w = temp[0], src1.xyz = const[5], src1.w = temp[6], src2.xyz = temp[1], srcp.xyz = (src1 - src0) MAD temp[1].x, -src2.x__, src0.111, srcp.x__ CMP temp[0].w, src0.w, src0.0, -src1.w 24: src0.xyz = temp[1], src0.w = temp[6], src1.w = temp[0], src2.w = temp[5] CMP temp[13].x, src0.0__, src0.1__, src0.x__ CMP temp[0].w, src0.w, src1.w, -src2.w 25: src0.xyz = temp[0], src0.w = temp[0], src1.w = temp[5] MAD temp[6].x, src0.w__, src0.111, -src0.0__ MAD temp[1].w, src1.w, src0.w, src0.0 26: src0.xyz = temp[6], src0.w = temp[4], src1.w = temp[1] CMP temp[4].x, src0.1__, src0.0__, -|src0.x__| CMP temp[1].w, src0.w, src0.1, -src1.w 27: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[4], src1.w = temp[5] MAD temp[7].x, src0.w__, src0.111, -src0.0__ MAD temp[6].w, src1.w, src1.x, src0.0 28: src0.xyz = temp[7], src0.w = temp[8], src1.xyz = temp[4], src1.w = temp[6] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[4].w, src1.x, src0.w, -src1.w 29: src0.xyz = temp[4], src0.w = temp[4], src1.xyz = temp[6] MAD temp[6].x, src0.w__, src0.111, -src0.0__ MAD temp[4].w, src1.x, src0.w, src0.0 30: src0.xyz = temp[6], src0.w = temp[5], src1.w = temp[4] CMP temp[8].x, src0.1__, src0.0__, -|src0.x__| MAD temp[6].w, src0.w, src1.w, src0.0 31: src0.xyz = temp[0], src0.w = temp[0] MAD temp[0].x, src0.w__, src0.111, -src0.0__ MAD temp[7].w, src0.w, src0.1, -src0.0 32: src0.xyz = temp[0], src0.w = temp[4], src1.w = temp[9], src2.w = temp[6] CMP temp[4].x, src0.1__, src0.0__, -|src0.x__| CMP temp[0].w, src0.w, src1.w, -src2.w 33: src0.xyz = temp[7], src0.w = temp[7], src1.xyz = temp[4], src1.w = temp[5] CMP temp[4].x, src0.1__, src0.0__, -|src0.w__| MAD temp[6].w, src1.w, src1.x, src0.0 34: src0.xyz = temp[4], src1.xyz = temp[8] MAD temp[4].x, src0.x__, src1.x__, src0.000 35: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = temp[4] MAD temp[4].x, src0.w__, src1.x__, src0.000 36: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[4] CMP temp[0].x, src0.w__, src0.0__, -src1.x__ 37: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[0], src1.w = temp[6], src2.xyz = temp[6] CMP temp[1].x, src0.w__, src1.x__, -src1.w__ 38: src0.xyz = temp[6], src0.w = temp[5], src1.xyz = temp[1], src1.w = temp[6], src2.xyz = temp[5] CMP temp[0].x, src1.w__, src1.x__, -src0.w__ 39: src0.xyz = temp[0], src1.xyz = temp[10] CMP temp[4].x, src0.x__, src0.0__, -src1.x__ 40: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[11], src1.w = temp[11], src2.xyz = temp[4] CMP temp[0].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[0].w, src0.w, src1.w, -src2.x 41: src0.xyz = temp[4] MAD temp[6].x, src0.x__, src0.111, -src0.0__ MAD temp[5].w, src0.x, src0.1, -src0.0 42: src0.xyz = temp[6], src0.w = temp[5] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[5].w, src0.1, src0.0, -|src0.w| 43: src0.xyz = temp[4], src0.w = temp[12], src1.xyz = temp[1], src1.w = temp[5] MAD temp[5].x, src0.x__, src0.111, -src0.0__ CMP temp[1].w, src1.x, src0.w, -src1.w 44: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[6] MAD temp[7].x, src0.w__, src0.111, -src0.0__ MAD temp[1].w, src1.x, src0.w, src0.0 45: src0.xyz = temp[7], src0.w = temp[1], src1.xyz = temp[6], src2.xyz = temp[13] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[1].w, src1.x, src2.x, -src0.w 46: src0.xyz = temp[4], src1.xyz = temp[5] MAD temp[7].x, src0.x__, src0.111, -src0.0__ CMP temp[5].w, src0.1, src0.0, -|src1.x| 47: src0.xyz = temp[7], src0.w = temp[5], src1.xyz = temp[6] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| MAD temp[5].w, src0.w, src1.x, src0.0 48: src0.xyz = temp[4], src0.w = temp[1], src1.w = temp[5] MAD temp[7].x, src0.x__, src0.111, -src0.0__ CMP temp[1].w, src0.w, src0.0, -src1.w 49: src0.xyz = temp[7], src0.w = temp[5], src1.xyz = temp[6], src1.w = temp[1] CMP temp[5].x, src0.1__, src0.0__, -|src0.x__| CMP temp[1].w, src0.w, src1.w, -src1.x 50: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[5] MAD temp[7].x, src0.w__, src0.111, -src0.0__ MAD temp[6].w, src1.x, src0.w, src0.0 51: src0.xyz = temp[7], src0.w = temp[6], src1.xyz = temp[5], src2.xyz = const[0] CMP temp[12].x, src0.1__, src0.0__, -|src0.x__| CMP temp[5].w, src1.x, src2.x, -src0.w 52: src0.xyz = temp[5], src0.w = temp[5], src1.w = temp[1] MAD temp[5].x, src0.w__, src0.111, -src0.0__ MAD temp[6].w, src1.w, src0.w, src0.0 53: src0.xyz = temp[4], src1.xyz = temp[5] MAD temp[5].x, src0.x__, src0.111, -src0.0__ CMP temp[7].w, src0.1, src0.0, -|src1.x| 54: src0.xyz = temp[5], src0.w = temp[1], src1.w = temp[7] CMP temp[5].x, src0.1__, src0.0__, -|src0.x__| MAD temp[8].w, src0.w, src1.w, src0.0 55: src0.xyz = temp[4], src0.w = temp[6], src1.xyz = temp[5] MAD temp[7].x, src0.x__, src0.111, -src0.0__ MAD temp[6].w, src1.x, src0.w, src0.0 56: src0.xyz = temp[7], src0.w = temp[6], src1.xyz = temp[5], src2.xyz = temp[14] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[5].w, src1.x, src2.x, -src0.w 57: src0.xyz = temp[4], src0.w = temp[8], src1.xyz = temp[6] MAD temp[7].x, src0.x__, src0.111, -src0.0__ MAD temp[6].w, src1.x, src0.w, src0.0 58: src0.xyz = temp[7], src0.w = temp[5], src1.w = temp[6] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[5].w, src0.w, src0.0, -src1.w 59: src0.xyz = temp[4], src0.w = temp[1], src1.xyz = temp[6] MAD temp[8].x, src0.x__, src0.111, -src0.0__ MAD temp[7].w, src1.x, src0.w, src0.0 60: src0.xyz = temp[8], src0.w = temp[5], src1.xyz = temp[6], src1.w = temp[7] CMP temp[6].x, src0.1__, src0.0__, -|src0.x__| CMP temp[5].w, src1.x, src0.w, -src1.w 61: src0.xyz = temp[5], src0.w = temp[5], src1.w = temp[1] MAD temp[8].x, src0.w__, src0.111, -src0.0__ MAD temp[7].w, src1.w, src0.w, src0.0 62: src0.xyz = temp[8], src0.w = temp[7], src1.xyz = temp[6] CMP temp[8].x, src0.1__, src0.0__, -|src0.x__| MAD temp[7].w, src1.x, src0.w, src0.0 63: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[8], src1.w = temp[7], src2.xyz = temp[6] MAD temp[7].x, src0.w__, src1.x__, src0.000 CMP temp[6].w, src2.x, src0.1, -src1.w 64: src0.xyz = temp[5], src0.w = temp[5] MAD temp[9].x, src0.w__, src0.111, -src0.0__ MAD temp[8].w, src0.w, src0.1, -src0.0 65: src0.xyz = temp[9], src0.w = temp[8] CMP temp[9].x, src0.1__, src0.0__, -|src0.x__| CMP temp[8].w, src0.1, src0.0, -|src0.w| 66: src0.xyz = temp[4], src0.w = temp[5] MAD temp[5].x, src0.x__, src0.111, -src0.0__ MAD temp[10].w, src0.w, src0.1, -src0.0 67: src0.xyz = temp[5], src0.w = temp[10] CMP temp[5].x, src0.1__, src0.0__, -|src0.x__| CMP temp[10].w, src0.1, src0.0, -|src0.w| 68: src0.xyz = temp[5], src0.w = temp[1], src1.xyz = temp[7], src1.w = temp[10] MAD temp[7].x, src0.x__, src1.x__, src0.000 MAD temp[11].w, src0.w, src1.w, src0.0 69: src0.xyz = temp[4], src0.w = temp[15], src1.xyz = temp[5], src2.xyz = temp[7] MAD temp[7].x, src0.x__, src0.111, -src0.0__ CMP temp[5].w, src1.x, src0.w, -src2.x 70: src0.xyz = temp[5], src0.w = temp[5], src1.w = temp[8] MAD temp[8].x, src0.w__, src0.111, -src0.0__ MAD temp[5].w, src1.w, src0.w, src0.0 71: src0.xyz = temp[8], src0.w = temp[1], src1.w = temp[5] CMP temp[5].x, src0.1__, src0.0__, -|src0.x__| MAD temp[8].w, src0.w, src1.w, src0.0 72: src0.xyz = temp[7], src1.xyz = temp[9], src2.xyz = temp[5] CMP temp[5].x, src0.1__, src0.0__, -|src0.x__| MAD temp[7].w, src1.x, src2.x, src0.0 73: src0.xyz = temp[5], src0.w = temp[8], src1.xyz = temp[8], src1.w = temp[1], src2.w = temp[7] MAD temp[7].x, src0.x__, src0.w__, src0.000 MAD temp[9].w, src1.w, src2.w, src0.0 74: src0.xyz = temp[4] MAD temp[10].x, src0.x__, src0.111, -src0.0__ MAD temp[8].w, src0.x, src0.1, -src0.0 75: src0.xyz = temp[10], src0.w = temp[8] CMP temp[10].x, src0.1__, src0.0__, -|src0.x__| CMP temp[8].w, src0.1, src0.0, -|src0.w| 76: src0.xyz = temp[10], src0.w = temp[11], src1.xyz = temp[11], src1.w = temp[8], src2.w = temp[9] MAD temp[9].x, src0.x__, src0.w__, src0.000 MAD temp[8].w, src1.w, src2.w, src0.0 77: src0.xyz = temp[4] MAD temp[11].x, src0.x__, src0.111, -src0.0__ MAD temp[10].w, src0.x, src0.1, -src0.0 78: src0.xyz = temp[11], src0.w = temp[10] CMP temp[11].x, src0.1__, src0.0__, -|src0.x__| CMP temp[10].w, src0.1, src0.0, -|src0.w| 79: src0.xyz = temp[11], src0.w = temp[10], src1.xyz = temp[12], src1.w = temp[1] MAD temp[13].x, src0.x__, src1.x__, src0.000 MAD temp[11].w, src0.w, src1.w, src0.0 80: src0.xyz = temp[4] MAD temp[14].x, src0.x__, src0.111, -src0.0__ MAD temp[1].w, src0.x, src0.1, -src0.0 81: src0.xyz = temp[14], src0.w = temp[1] CMP temp[15].x, src0.1__, src0.0__, -|src0.x__| CMP temp[14].w, src0.1, src0.0, -|src0.w| 82: src0.xyz = temp[4] MAD temp[1].x, src0.x__, src0.111, -src0.0__ 83: src0.xyz = temp[1] CMP temp[4].x, src0.1__, src0.0__, -|src0.x__| 84: src0.xyz = const[3], src1.xyz = const[4], src2.xyz = temp[3], srcp.xyz = (src1 - src0) MAD temp[1].w, src2.x, src0.1, -srcp.x 85: src0.xyz = temp[1], src0.w = temp[1] CMP temp[1].x, src0.0__, src0.1__, src0.w__ 86: src0.xyz = temp[5], src1.xyz = temp[1], src2.xyz = temp[7] CMP temp[1].x, src0.x__, src1.x__, -src2.x__ 87: src0.xyz = temp[1], src0.w = temp[8], src1.xyz = temp[8] CMP temp[1].x, src0.x__, src0.0__, -src0.w__ 88: src0.xyz = temp[6], src0.w = temp[6], src1.xyz = temp[1], src2.xyz = temp[9] CMP temp[1].x, src0.w__, src1.x__, -src2.x__ 89: src0.xyz = temp[10], src0.w = temp[10], src1.xyz = temp[1], src1.w = temp[11], src2.xyz = temp[11] CMP temp[1].x, src0.w__, src1.x__, -src1.w__ 90: src0.xyz = temp[1], src1.xyz = temp[13] CMP temp[1].x, src0.x__, src0.0__, -src1.x__ 91: src0.xyz = temp[12], src0.w = temp[14], src1.xyz = temp[1], src2.xyz = temp[14] CMP temp[1].x, src0.x__, src1.x__, -src0.w__ 92: src0.xyz = temp[15], src1.xyz = temp[1] MAD temp[1].x, src0.x__, src1.x__, src0.000 MAD temp[3].w, src1.x, src0.1, -src0.0 93: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[16], src1.w = temp[16], src2.xyz = temp[1] CMP temp[0].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[0].w, src0.w, src1.w, -src2.x 94: src0.xyz = temp[3], src0.w = temp[3] CMP temp[1].x, src0.1__, src0.0__, -|src0.w__| 95: src0.xyz = temp[4], src1.xyz = temp[1] MAD temp[1].x, src0.x__, src1.x__, src0.000 96: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[2], src1.w = temp[2], src2.xyz = temp[1] CMP temp[0].xyz, src0.xyz, src1.xyz, -src2.xxx CMP temp[0].w, src0.w, src1.w, -src2.x 97: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 r300compiler error: r300_fragprog_emit.c::emit_alu(): Too many ALU instructions r300 FP: Compiler Error: r300_fragprog_emit.c::emit_alu(): Too many ALU instructions Using a dummy shader instead. r300: Initial fragment program FRAG DCL OUT[0], COLOR IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: MOV OUT[0], IMM[0].xxxy 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 pc=7************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: 0.0 1.0 0.0 op: 00050a94 w: 1.0 1.0 0.0 op: 00040891 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL IN[2], GENERIC[1], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL SAMP[1] DCL CONST[0] DCL TEMP[0..2] 0: TEX TEMP[0], IN[1], SAMP[0], 2D 1: MOV TEMP[1], TEMP[0] 2: TEX TEMP[2], IN[2], SAMP[1], 2D 3: LRP TEMP[1], CONST[0].wwww, TEMP[1], TEMP[2] 4: MUL TEMP[1], TEMP[1], IN[0] 5: MOV OUT[0], TEMP[1] 6: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'transform loops' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'emulate branches' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: LRP temp[1], const[0].wwww, temp[1], temp[2]; 4: MUL temp[1], temp[1], input[0]; 5: MOV output[0], temp[1]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: TEX temp[0], input[1], 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2], 2D[1]; 3: ADD temp[3], temp[1], -temp[2]; 4: MAD temp[1], const[0].wwww, temp[3], temp[2]; 5: MUL temp[1], temp[1], input[0]; 6: MOV output[0], temp[1]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2].xy__, 2D[1]; 3: ADD temp[3], temp[1], -temp[2]; 4: MAD temp[1], const[0].wwww, temp[3], temp[2]; 5: MUL temp[1], temp[1], input[0]; 6: MOV output[0], temp[1]; Fragment Program: after 'emulate loops' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: MOV temp[1], temp[0]; 2: TEX temp[2], input[2].xy__, 2D[1]; 3: ADD temp[3], temp[1], -temp[2]; 4: MAD temp[1], const[0].wwww, temp[3], temp[2]; 5: MUL temp[1], temp[1], input[0]; 6: MOV output[0], temp[1]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: TEX temp[2], input[2].xy__, 2D[1]; 2: MAD temp[1], const[0].wwww, (temp[0] - temp[2]), temp[2]; 3: MUL temp[1], temp[1], input[0]; 4: MOV output[0], temp[1]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: TEX temp[2], input[2].xy__, 2D[1]; 2: MAD temp[1], const[0].wwww, (temp[0] - temp[2]), temp[2]; 3: MUL temp[1], temp[1], input[0]; 4: MOV output[0], temp[1]; Fragment Program: after 'dead constants' # Radeon Compiler Program 0: TEX temp[0], input[1].xy__, 2D[0]; 1: TEX temp[2], input[2].xy__, 2D[1]; 2: MAD temp[1], const[0].wwww, (temp[0] - temp[2]), temp[2]; 3: MUL temp[1], temp[1], input[0]; 4: MOV output[0], temp[1]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: TEX temp[3], input[1].xy__, 2D[0]; 1: TEX temp[4], input[2].xy__, 2D[1]; 2: MAD temp[5], const[0].wwww, (temp[3] - temp[4]), temp[4]; 3: MUL temp[6], temp[5], input[0]; 4: MOV output[0], temp[6]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: TEX temp[3], input[1].xy__, 2D[0]; 1: TEX temp[4], input[2].xy__, 2D[1]; 2: src0.xyz = temp[4], src0.w = temp[4], src1.xyz = temp[3], src1.w = temp[3], src2.w = const[0], srcp.xyz = (src1 - src0), srcp.w = (src1 - src0) MAD temp[5].xyz, src2.www, srcp.xyz, src0.xyz MAD temp[5].w, src2.w, srcp.w, src0.w 3: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = input[0], src1.w = input[0] MAD temp[6].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[6].w, src0.w, src1.w, src0.0 4: src0.xyz = temp[6], src0.w = temp[6] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'pair scheduling' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[3], input[1].xy__, 2D[0]; 2: TEX temp[4], input[2].xy__, 2D[1]; 3: src0.xyz = temp[4], src0.w = temp[4], src1.xyz = temp[3], src1.w = temp[3], src2.w = const[0], srcp.xyz = (src1 - src0), srcp.w = (src1 - src0) MAD temp[5].xyz, src2.www, srcp.xyz, src0.xyz MAD temp[5].w, src2.w, srcp.w, src0.w 4: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = input[0], src1.w = input[0] MAD temp[6].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[6].w, src0.w, src1.w, src0.0 5: src0.xyz = temp[6], src0.w = temp[6] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'register allocation' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[1], temp[1].xy__, 2D[0]; 2: TEX temp[2], temp[2].xy__, 2D[1]; 3: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = temp[1], src1.w = temp[1], src2.w = const[0], srcp.xyz = (src1 - src0), srcp.w = (src1 - src0) MAD temp[1].xyz, src2.www, srcp.xyz, src0.xyz MAD temp[1].w, src2.w, srcp.w, src0.w 4: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[0], src1.w = temp[0] MAD temp[0].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[0].w, src0.w, src1.w, src0.0 5: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=8************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 2, tex_end: 1 (code_addr: 00420080) TEX: TEX t1, t1, texture[0] (00008041) TEX t2, t2, texture[1] (00008882) 0: xyz: t2 t1 t0 sub-> t1.xyz (03840042) w: t2 t1 c0 sub-> t1.w (00860042) xyz: c0.www srcp.xyz t2.xyz op: 0020078e w: c0.w srcp.w t2.w op: 0022478b 1: xyz: t1 t0 t0 bias-> t0.xyz (03800001) w: t1 t0 t0 bias-> t0.w (00800001) xyz: t1.xyz t0.xyz 0.0 op: 00050200 w: t1.w t0.w 0.0 op: 00040509 2: xyz: t0 t0 t0 bias-> o0.xyz (1c000000) w: t0 t0 t0 bias-> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889