(process:2717): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 get_contentWindow@chrome://global/content/bindings/browser.xml:428:54 get_outerWindowID@chrome://global/content/bindings/browser.xml:412:11 tabbrowser_XBL_Constructor@chrome://browser/content/tabbrowser.xml:3334:13 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 Webaccounts extension loaded WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 get_contentWindow@chrome://global/content/bindings/browser.xml:428:54 get_securityUI@chrome://global/content/bindings/browser.xml:674:17 browser_XBL_Constructor@chrome://global/content/bindings/browser.xml:798:17 SelfSupportBackendInternal._makeHiddenBrowser/<@resource:///modules/SelfSupportBackend.jsm:192:7 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 TabsProgressListener.onStateChange@chrome://browser/content/browser.js:14928:9 _callProgressListeners@chrome://browser/content/tabbrowser.xml:558:24 mTabProgressListener/<._callProgressListeners@chrome://browser/content/tabbrowser.xml:602:22 mTabProgressListener/<.onStateChange@chrome://browser/content/tabbrowser.xml:758:1 start/makeIFrames@https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html:736:5 start@https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html:739:17 onload@https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html:1:1 ATTENTION: default value of option force_s3tc_enable overridden by environment. r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], COLOR DCL CONST[0..3] DCL TEMP[0] 0: MUL TEMP[0], IN[0].xxxx, CONST[0] 1: MAD TEMP[0], IN[0].yyyy, CONST[1], TEMP[0] 2: MAD TEMP[0], IN[0].zzzz, CONST[2], TEMP[0] 3: MAD OUT[0], IN[0].wwww, CONST[3], TEMP[0] 4: MOV_SAT OUT[1], IN[1] 5: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00000001 reg: 0i swiz: X/ X/ X/ X src1: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src2: 0x01248002 reg: 0c swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00492001 reg: 0i swiz: Y/ Y/ Y/ Y src1: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00924001 reg: 0i swiz: Z/ Z/ Z/ Z src1: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00db6001 reg: 0i swiz: W/ W/ W/ W src1: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x01f02203 dst: 1o op: VE_ADD src0: 0x00d10021 reg: 1i swiz: X/ Y/ Z/ W src1: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 5: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 6: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 radeon: Acquired access to Hyper-Z. radeon: Acquired access to AA optimizations. WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts). pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14 pbs<@resource://unity/observer.js:38:71 Observer.prototype.observe@resource://unity/observer.js:77:24 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], COLOR DCL CONST[0..3] DCL TEMP[0] 0: MUL TEMP[0], IN[0].xxxx, CONST[0] 1: MAD TEMP[0], IN[0].yyyy, CONST[1], TEMP[0] 2: MAD TEMP[0], IN[0].zzzz, CONST[2], TEMP[0] 3: MAD OUT[0], IN[0].wwww, CONST[3], TEMP[0] 4: MOV_SAT OUT[1], IN[1] 5: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[1], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[1]; 6: MOV output[2], temp[1]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], input[0].xxxx, const[0]; 1: MAD temp[0], input[0].yyyy, const[1], temp[0]; 2: MAD temp[0], input[0].zzzz, const[2], temp[0]; 3: MAD temp[0], input[0].wwww, const[3], temp[0]; 4: MOV_SAT output[1], input[1]; 5: MOV output[0], temp[0]; 6: MOV output[2], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00000001 reg: 0i swiz: X/ X/ X/ X src1: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src2: 0x01248002 reg: 0c swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00492001 reg: 0i swiz: Y/ Y/ Y/ Y src1: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00924001 reg: 0i swiz: Z/ Z/ Z/ Z src1: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00db6001 reg: 0i swiz: W/ W/ W/ W src1: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x01f02203 dst: 1o op: VE_ADD src0: 0x00d10021 reg: 1i swiz: X/ Y/ Z/ W src1: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 5: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 6: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], GENERIC[0] 0: MOV OUT[0], IN[0] 1: MOV OUT[1], IN[1] 2: END Vertex Program: before compilation # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[1], input[1]; 2: MOV output[0], temp[0]; 3: MOV output[2], temp[0]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[1], input[1]; 2: MOV output[0], temp[0]; 3: MOV output[2], temp[0]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[1], input[1]; 2: MOV output[0], temp[0]; 3: MOV output[2], temp[0]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MOV temp[0], input[0]; 1: MOV output[1], input[1]; 2: MOV output[0], temp[0]; 3: MOV output[2], temp[0]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV output[1], input[1]; 1: MOV output[0], input[0]; 2: MOV output[2], input[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MOV output[1], input[1]; 1: MOV output[0], input[0]; 2: MOV output[2], input[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MOV output[1], input[1]; 1: MOV output[0], input[0]; 2: MOV output[2], input[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MOV output[1], input[1]; 1: MOV output[0], input[0]; 2: MOV output[2], input[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MOV output[1], input[1]; 1: MOV output[0], input[0]; 2: MOV output[2], input[0]; Final vertex program code: 0: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x00d10021 reg: 1i swiz: X/ Y/ Z/ W src1: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 2: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[0], CONSTANT 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 'unroll loops' # 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 'transform IF' # 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 'register rename' # 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 'inline literals' # 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 '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 'dead sources' # 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 = 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..3], LOCAL IMM[0] FLT32 { 16.0000, 0.0000, 0.3827, 1.0000} IMM[1] FLT32 { 0.7071, 2.0000, 0.9239, 3.0000} IMM[2] FLT32 { 4.0000, 5.0000, 6.0000, 7.0000} IMM[3] FLT32 { 8.0000, -0.3827, 9.0000, -0.7071} IMM[4] FLT32 { 10.0000, -0.9239, 11.0000, -1.0000} IMM[5] FLT32 { 12.0000, -0.9239, 13.0000, 14.0000} IMM[6] FLT32 { 15.0000, 0.5000, 0.0000, 0.0000} 0: MUL TEMP[0].x, IMM[0].xxxx, IN[0].xxxx 1: FLR TEMP[1].x, TEMP[0].xxxx 2: TRUNC TEMP[1].x, TEMP[1].xxxx 3: FLR TEMP[2].x, TEMP[0].xxxx 4: ADD TEMP[0].x, TEMP[0].xxxx, -TEMP[2].xxxx 5: MOV TEMP[2].x, IMM[0].yyyy 6: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[0].yyyy 7: IF TEMP[3].xxxx :0 8: MUL TEMP[2].x, IMM[0].zzzz, TEMP[0].xxxx 9: ELSE :0 10: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[0].wwww 11: IF TEMP[3].xxxx :0 12: LRP TEMP[2].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[0].zzzz 13: ELSE :0 14: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[1].yyyy 15: IF TEMP[3].xxxx :0 16: LRP TEMP[2].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[1].xxxx 17: ELSE :0 18: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[1].wwww 19: IF TEMP[3].xxxx :0 20: LRP TEMP[2].x, TEMP[0].xxxx, IMM[0].wwww, IMM[1].zzzz 21: ELSE :0 22: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[2].xxxx 23: IF TEMP[3].xxxx :0 24: LRP TEMP[2].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[0].wwww 25: ELSE :0 26: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[2].yyyy 27: IF TEMP[3].xxxx :0 28: LRP TEMP[2].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[1].zzzz 29: ELSE :0 30: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[2].zzzz 31: IF TEMP[3].xxxx :0 32: LRP TEMP[2].x, TEMP[0].xxxx, IMM[0].zzzz, IMM[1].xxxx 33: ELSE :0 34: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[2].wwww 35: IF TEMP[3].xxxx :0 36: ADD TEMP[3].x, IMM[0].wwww, -TEMP[0].xxxx 37: MUL TEMP[2].x, IMM[0].zzzz, TEMP[3].xxxx 38: ELSE :0 39: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[3].xxxx 40: IF TEMP[3].xxxx :0 41: MUL TEMP[2].x, IMM[3].yyyy, TEMP[0].xxxx 42: ELSE :0 43: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[3].zzzz 44: IF TEMP[3].xxxx :0 45: LRP TEMP[2].x, TEMP[0].xxxx, IMM[3].wwww, IMM[3].yyyy 46: ELSE :0 47: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[4].xxxx 48: IF TEMP[3].xxxx :0 49: LRP TEMP[2].x, TEMP[0].xxxx, IMM[4].yyyy, IMM[3].wwww 50: ELSE :0 51: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[4].zzzz 52: IF TEMP[3].xxxx :0 53: LRP TEMP[2].x, TEMP[0].xxxx, IMM[4].wwww, IMM[4].yyyy 54: ELSE :0 55: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[5].xxxx 56: IF TEMP[3].xxxx :0 57: LRP TEMP[2].x, TEMP[0].xxxx, IMM[5].yyyy, IMM[4].wwww 58: ELSE :0 59: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[5].zzzz 60: IF TEMP[3].xxxx :0 61: LRP TEMP[2].x, TEMP[0].xxxx, IMM[3].wwww, IMM[5].yyyy 62: ELSE :0 63: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[5].wwww 64: IF TEMP[3].xxxx :0 65: LRP TEMP[2].x, TEMP[0].xxxx, IMM[3].yyyy, IMM[3].wwww 66: ELSE :0 67: SEQ TEMP[3].x, TEMP[1].xxxx, IMM[6].xxxx 68: IF TEMP[3].xxxx :0 69: ADD TEMP[0].x, IMM[0].wwww, -TEMP[0].xxxx 70: MUL TEMP[2].x, IMM[3].yyyy, TEMP[0].xxxx 71: ELSE :0 72: SEQ TEMP[0].x, TEMP[1].xxxx, IMM[0].xxxx 73: IF TEMP[0].xxxx :0 74: MOV TEMP[2].x, IMM[0].yyyy 75: ENDIF 76: ENDIF 77: ENDIF 78: ENDIF 79: ENDIF 80: ENDIF 81: ENDIF 82: ENDIF 83: ENDIF 84: ENDIF 85: ENDIF 86: ENDIF 87: ENDIF 88: ENDIF 89: ENDIF 90: ENDIF 91: ENDIF 92: MOV TEMP[0].yzw, IMM[0].yyyw 93: MAD TEMP[0].x, IMM[6].yyyy, TEMP[2].xxxx, IMM[6].yyyy 94: MOV OUT[0], TEMP[0] 95: END Fragment Program: before compilation # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SEQ temp[3].x, temp[1].xxxx, const[0].yyyy; 7: IF temp[3].xxxx; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SEQ temp[3].x, temp[1].xxxx, const[0].wwww; 11: IF temp[3].xxxx; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SEQ temp[3].x, temp[1].xxxx, const[1].yyyy; 15: IF temp[3].xxxx; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SEQ temp[3].x, temp[1].xxxx, const[1].wwww; 19: IF temp[3].xxxx; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SEQ temp[3].x, temp[1].xxxx, const[2].xxxx; 23: IF temp[3].xxxx; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SEQ temp[3].x, temp[1].xxxx, const[2].yyyy; 27: IF temp[3].xxxx; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SEQ temp[3].x, temp[1].xxxx, const[2].zzzz; 31: IF temp[3].xxxx; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SEQ temp[3].x, temp[1].xxxx, const[2].wwww; 35: IF temp[3].xxxx; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SEQ temp[3].x, temp[1].xxxx, const[3].xxxx; 40: IF temp[3].xxxx; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SEQ temp[3].x, temp[1].xxxx, const[3].zzzz; 44: IF temp[3].xxxx; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SEQ temp[3].x, temp[1].xxxx, const[4].xxxx; 48: IF temp[3].xxxx; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SEQ temp[3].x, temp[1].xxxx, const[4].zzzz; 52: IF temp[3].xxxx; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SEQ temp[3].x, temp[1].xxxx, const[5].xxxx; 56: IF temp[3].xxxx; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SEQ temp[3].x, temp[1].xxxx, const[5].zzzz; 60: IF temp[3].xxxx; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SEQ temp[3].x, temp[1].xxxx, const[5].wwww; 64: IF temp[3].xxxx; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SEQ temp[3].x, temp[1].xxxx, const[6].xxxx; 68: IF temp[3].xxxx; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SEQ temp[0].x, temp[1].xxxx, const[0].xxxx; 73: IF temp[0].xxxx; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SEQ temp[3].x, temp[1].xxxx, const[0].yyyy; 7: IF temp[3].xxxx; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SEQ temp[3].x, temp[1].xxxx, const[0].wwww; 11: IF temp[3].xxxx; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SEQ temp[3].x, temp[1].xxxx, const[1].yyyy; 15: IF temp[3].xxxx; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SEQ temp[3].x, temp[1].xxxx, const[1].wwww; 19: IF temp[3].xxxx; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SEQ temp[3].x, temp[1].xxxx, const[2].xxxx; 23: IF temp[3].xxxx; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SEQ temp[3].x, temp[1].xxxx, const[2].yyyy; 27: IF temp[3].xxxx; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SEQ temp[3].x, temp[1].xxxx, const[2].zzzz; 31: IF temp[3].xxxx; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SEQ temp[3].x, temp[1].xxxx, const[2].wwww; 35: IF temp[3].xxxx; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SEQ temp[3].x, temp[1].xxxx, const[3].xxxx; 40: IF temp[3].xxxx; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SEQ temp[3].x, temp[1].xxxx, const[3].zzzz; 44: IF temp[3].xxxx; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SEQ temp[3].x, temp[1].xxxx, const[4].xxxx; 48: IF temp[3].xxxx; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SEQ temp[3].x, temp[1].xxxx, const[4].zzzz; 52: IF temp[3].xxxx; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SEQ temp[3].x, temp[1].xxxx, const[5].xxxx; 56: IF temp[3].xxxx; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SEQ temp[3].x, temp[1].xxxx, const[5].zzzz; 60: IF temp[3].xxxx; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SEQ temp[3].x, temp[1].xxxx, const[5].wwww; 64: IF temp[3].xxxx; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SEQ temp[3].x, temp[1].xxxx, const[6].xxxx; 68: IF temp[3].xxxx; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SEQ temp[0].x, temp[1].xxxx, const[0].xxxx; 73: IF temp[0].xxxx; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SEQ temp[3].x, temp[1].xxxx, const[0].yyyy; 7: IF temp[3].xxxx; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SEQ temp[3].x, temp[1].xxxx, const[0].wwww; 11: IF temp[3].xxxx; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SEQ temp[3].x, temp[1].xxxx, const[1].yyyy; 15: IF temp[3].xxxx; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SEQ temp[3].x, temp[1].xxxx, const[1].wwww; 19: IF temp[3].xxxx; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SEQ temp[3].x, temp[1].xxxx, const[2].xxxx; 23: IF temp[3].xxxx; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SEQ temp[3].x, temp[1].xxxx, const[2].yyyy; 27: IF temp[3].xxxx; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SEQ temp[3].x, temp[1].xxxx, const[2].zzzz; 31: IF temp[3].xxxx; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SEQ temp[3].x, temp[1].xxxx, const[2].wwww; 35: IF temp[3].xxxx; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SEQ temp[3].x, temp[1].xxxx, const[3].xxxx; 40: IF temp[3].xxxx; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SEQ temp[3].x, temp[1].xxxx, const[3].zzzz; 44: IF temp[3].xxxx; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SEQ temp[3].x, temp[1].xxxx, const[4].xxxx; 48: IF temp[3].xxxx; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SEQ temp[3].x, temp[1].xxxx, const[4].zzzz; 52: IF temp[3].xxxx; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SEQ temp[3].x, temp[1].xxxx, const[5].xxxx; 56: IF temp[3].xxxx; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SEQ temp[3].x, temp[1].xxxx, const[5].zzzz; 60: IF temp[3].xxxx; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SEQ temp[3].x, temp[1].xxxx, const[5].wwww; 64: IF temp[3].xxxx; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SEQ temp[3].x, temp[1].xxxx, const[6].xxxx; 68: IF temp[3].xxxx; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SEQ temp[0].x, temp[1].xxxx, const[0].xxxx; 73: IF temp[0].xxxx; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SEQ temp[3].x, temp[1].xxxx, const[0].yyyy; 7: IF temp[3].xxxx; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SEQ temp[3].x, temp[1].xxxx, const[0].wwww; 11: IF temp[3].xxxx; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SEQ temp[3].x, temp[1].xxxx, const[1].yyyy; 15: IF temp[3].xxxx; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SEQ temp[3].x, temp[1].xxxx, const[1].wwww; 19: IF temp[3].xxxx; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SEQ temp[3].x, temp[1].xxxx, const[2].xxxx; 23: IF temp[3].xxxx; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SEQ temp[3].x, temp[1].xxxx, const[2].yyyy; 27: IF temp[3].xxxx; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SEQ temp[3].x, temp[1].xxxx, const[2].zzzz; 31: IF temp[3].xxxx; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SEQ temp[3].x, temp[1].xxxx, const[2].wwww; 35: IF temp[3].xxxx; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SEQ temp[3].x, temp[1].xxxx, const[3].xxxx; 40: IF temp[3].xxxx; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SEQ temp[3].x, temp[1].xxxx, const[3].zzzz; 44: IF temp[3].xxxx; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SEQ temp[3].x, temp[1].xxxx, const[4].xxxx; 48: IF temp[3].xxxx; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SEQ temp[3].x, temp[1].xxxx, const[4].zzzz; 52: IF temp[3].xxxx; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SEQ temp[3].x, temp[1].xxxx, const[5].xxxx; 56: IF temp[3].xxxx; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SEQ temp[3].x, temp[1].xxxx, const[5].zzzz; 60: IF temp[3].xxxx; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SEQ temp[3].x, temp[1].xxxx, const[5].wwww; 64: IF temp[3].xxxx; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SEQ temp[3].x, temp[1].xxxx, const[6].xxxx; 68: IF temp[3].xxxx; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SEQ temp[0].x, temp[1].xxxx, const[0].xxxx; 73: IF temp[0].xxxx; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SEQ temp[3].x, temp[1].xxxx, const[0].yyyy; 7: IF temp[3].xxxx; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SEQ temp[3].x, temp[1].xxxx, const[0].wwww; 11: IF temp[3].xxxx; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SEQ temp[3].x, temp[1].xxxx, const[1].yyyy; 15: IF temp[3].xxxx; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SEQ temp[3].x, temp[1].xxxx, const[1].wwww; 19: IF temp[3].xxxx; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SEQ temp[3].x, temp[1].xxxx, const[2].xxxx; 23: IF temp[3].xxxx; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SEQ temp[3].x, temp[1].xxxx, const[2].yyyy; 27: IF temp[3].xxxx; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SEQ temp[3].x, temp[1].xxxx, const[2].zzzz; 31: IF temp[3].xxxx; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SEQ temp[3].x, temp[1].xxxx, const[2].wwww; 35: IF temp[3].xxxx; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SEQ temp[3].x, temp[1].xxxx, const[3].xxxx; 40: IF temp[3].xxxx; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SEQ temp[3].x, temp[1].xxxx, const[3].zzzz; 44: IF temp[3].xxxx; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SEQ temp[3].x, temp[1].xxxx, const[4].xxxx; 48: IF temp[3].xxxx; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SEQ temp[3].x, temp[1].xxxx, const[4].zzzz; 52: IF temp[3].xxxx; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SEQ temp[3].x, temp[1].xxxx, const[5].xxxx; 56: IF temp[3].xxxx; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SEQ temp[3].x, temp[1].xxxx, const[5].zzzz; 60: IF temp[3].xxxx; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SEQ temp[3].x, temp[1].xxxx, const[5].wwww; 64: IF temp[3].xxxx; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SEQ temp[3].x, temp[1].xxxx, const[6].xxxx; 68: IF temp[3].xxxx; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SEQ temp[0].x, temp[1].xxxx, const[0].xxxx; 73: IF temp[0].xxxx; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].xxxx; 4: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 5: MOV temp[2].x, const[0].yyyy; 6: SUB none., temp[1].xxxx, const[0].yyyy; [aluresult = (x == 0)] 7: IF aluresult.x___; 8: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 9: ELSE; 10: SUB none., temp[1].xxxx, const[0].wwww; [aluresult = (x == 0)] 11: IF aluresult.x___; 12: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 13: ELSE; 14: SUB none., temp[1].xxxx, const[1].yyyy; [aluresult = (x == 0)] 15: IF aluresult.x___; 16: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 17: ELSE; 18: SUB none., temp[1].xxxx, const[1].wwww; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: LRP temp[2].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 21: ELSE; 22: SUB none., temp[1].xxxx, const[2].xxxx; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: LRP temp[2].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 25: ELSE; 26: SUB none., temp[1].xxxx, const[2].yyyy; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: LRP temp[2].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 29: ELSE; 30: SUB none., temp[1].xxxx, const[2].zzzz; [aluresult = (x == 0)] 31: IF aluresult.x___; 32: LRP temp[2].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 33: ELSE; 34: SUB none., temp[1].xxxx, const[2].wwww; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 37: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 38: ELSE; 39: SUB none., temp[1].xxxx, const[3].xxxx; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 42: ELSE; 43: SUB none., temp[1].xxxx, const[3].zzzz; [aluresult = (x == 0)] 44: IF aluresult.x___; 45: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 46: ELSE; 47: SUB none., temp[1].xxxx, const[4].xxxx; [aluresult = (x == 0)] 48: IF aluresult.x___; 49: LRP temp[2].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 50: ELSE; 51: SUB none., temp[1].xxxx, const[4].zzzz; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: LRP temp[2].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 54: ELSE; 55: SUB none., temp[1].xxxx, const[5].xxxx; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: LRP temp[2].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 58: ELSE; 59: SUB none., temp[1].xxxx, const[5].zzzz; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: LRP temp[2].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 62: ELSE; 63: SUB none., temp[1].xxxx, const[5].wwww; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: LRP temp[2].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 66: ELSE; 67: SUB none., temp[1].xxxx, const[6].xxxx; [aluresult = (x == 0)] 68: IF aluresult.x___; 69: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 70: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 71: ELSE; 72: SUB none., temp[1].xxxx, const[0].xxxx; [aluresult = (x == 0)] 73: IF aluresult.x___; 74: MOV temp[2].x, const[0].yyyy; 75: ENDIF; 76: ENDIF; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: MOV temp[0].yzw, const[0].yyyw; 93: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 94: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0].x, const[0].xxxx, input[0].xxxx; 1: FRC temp[1].x, temp[0].xxxx; 2: ADD temp[1].x, temp[0].xxxx, -temp[1]; 3: FRC temp[4].x, |temp[1].xxxx|; 4: ADD temp[4].x, |temp[1].xxxx|, -temp[4]; 5: CMP temp[1].x, temp[1].xxxx, -temp[4], temp[4]; 6: FRC temp[2].x, temp[0].xxxx; 7: ADD temp[2].x, temp[0].xxxx, -temp[2]; 8: ADD temp[0].x, temp[0].xxxx, -temp[2].xxxx; 9: MOV temp[2].x, const[0].yyyy; 10: ADD none., temp[1].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 11: IF aluresult.x___; 12: MUL temp[2].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: ADD none., temp[1].xxxx, -const[0].wwww; [aluresult = (x == 0)] 15: IF aluresult.x___; 16: ADD temp[2].x, const[1].xxxx, -const[0].zzzz; 17: MAD temp[2].x, temp[0].xxxx, temp[2], const[0].zzzz; 18: ELSE; 19: ADD none., temp[1].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[2].x, const[1].zzzz, -const[1].xxxx; 22: MAD temp[2].x, temp[0].xxxx, temp[2], const[1].xxxx; 23: ELSE; 24: ADD none., temp[1].xxxx, -const[1].wwww; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[2].x, const[0].wwww, -const[1].zzzz; 27: MAD temp[2].x, temp[0].xxxx, temp[2], const[1].zzzz; 28: ELSE; 29: ADD none., temp[1].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[2].x, const[1].zzzz, -const[0].wwww; 32: MAD temp[2].x, temp[0].xxxx, temp[2], const[0].wwww; 33: ELSE; 34: ADD none., temp[1].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[2].x, const[1].xxxx, -const[1].zzzz; 37: MAD temp[2].x, temp[0].xxxx, temp[2], const[1].zzzz; 38: ELSE; 39: ADD none., temp[1].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[2].x, const[0].zzzz, -const[1].xxxx; 42: MAD temp[2].x, temp[0].xxxx, temp[2], const[1].xxxx; 43: ELSE; 44: ADD none., temp[1].xxxx, -const[2].wwww; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[3].x, const[0].wwww, -temp[0].xxxx; 47: MUL temp[2].x, const[0].zzzz, temp[3].xxxx; 48: ELSE; 49: ADD none., temp[1].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 52: ELSE; 53: ADD none., temp[1].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 54: IF aluresult.x___; 55: ADD temp[2].x, const[3].wwww, -const[3].yyyy; 56: MAD temp[2].x, temp[0].xxxx, temp[2], const[3].yyyy; 57: ELSE; 58: ADD none., temp[1].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[2].x, const[4].yyyy, -const[3].wwww; 61: MAD temp[2].x, temp[0].xxxx, temp[2], const[3].wwww; 62: ELSE; 63: ADD none., temp[1].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[2].x, const[4].wwww, -const[4].yyyy; 66: MAD temp[2].x, temp[0].xxxx, temp[2], const[4].yyyy; 67: ELSE; 68: ADD none., temp[1].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[2].x, const[5].yyyy, -const[4].wwww; 71: MAD temp[2].x, temp[0].xxxx, temp[2], const[4].wwww; 72: ELSE; 73: ADD none., temp[1].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[2].x, const[3].wwww, -const[5].yyyy; 76: MAD temp[2].x, temp[0].xxxx, temp[2], const[5].yyyy; 77: ELSE; 78: ADD none., temp[1].xxxx, -const[5].wwww; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[2].x, const[3].yyyy, -const[3].wwww; 81: MAD temp[2].x, temp[0].xxxx, temp[2], const[3].wwww; 82: ELSE; 83: ADD none., temp[1].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[0].x, const[0].wwww, -temp[0].xxxx; 86: MUL temp[2].x, const[3].yyyy, temp[0].xxxx; 87: ELSE; 88: ADD none., temp[1].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MOV temp[2].x, const[0].yyyy; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: MOV temp[0].yzw, const[0].yyyw; 109: MAD temp[0].x, const[6].yyyy, temp[2].xxxx, const[6].yyyy; 110: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0].x, const[0].x___, input[0].x___; 1: FRC temp[1].x, temp[0].x___; 2: ADD temp[1].x, temp[0].x___, -temp[1].x___; 3: FRC temp[4].x, |temp[1].x___|; 4: ADD temp[4].x, |temp[1].x___|, -temp[4].x___; 5: CMP temp[1].x, temp[1].x___, -temp[4].x___, temp[4].x___; 6: FRC temp[2].x, temp[0].x___; 7: ADD temp[2].x, temp[0].x___, -temp[2].x___; 8: ADD temp[0].x, temp[0].x___, -temp[2].x___; 9: MOV temp[2].x, const[0].y___; 10: ADD none., temp[1].x___, -const[0].y___; [aluresult = (x == 0)] 11: IF aluresult.x___; 12: MUL temp[2].x, const[0].z___, temp[0].x___; 13: ELSE; 14: ADD none., temp[1].x___, -const[0].w___; [aluresult = (x == 0)] 15: IF aluresult.x___; 16: ADD temp[2].x, const[1].x___, -const[0].z___; 17: MAD temp[2].x, temp[0].x___, temp[2].x___, const[0].z___; 18: ELSE; 19: ADD none., temp[1].x___, -const[1].y___; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[2].x, const[1].z___, -const[1].x___; 22: MAD temp[2].x, temp[0].x___, temp[2].x___, const[1].x___; 23: ELSE; 24: ADD none., temp[1].x___, -const[1].w___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[2].x, const[0].w___, -const[1].z___; 27: MAD temp[2].x, temp[0].x___, temp[2].x___, const[1].z___; 28: ELSE; 29: ADD none., temp[1].x___, -const[2].x___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[2].x, const[1].z___, -const[0].w___; 32: MAD temp[2].x, temp[0].x___, temp[2].x___, const[0].w___; 33: ELSE; 34: ADD none., temp[1].x___, -const[2].y___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[2].x, const[1].x___, -const[1].z___; 37: MAD temp[2].x, temp[0].x___, temp[2].x___, const[1].z___; 38: ELSE; 39: ADD none., temp[1].x___, -const[2].z___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[2].x, const[0].z___, -const[1].x___; 42: MAD temp[2].x, temp[0].x___, temp[2].x___, const[1].x___; 43: ELSE; 44: ADD none., temp[1].x___, -const[2].w___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[3].x, const[0].w___, -temp[0].x___; 47: MUL temp[2].x, const[0].z___, temp[3].x___; 48: ELSE; 49: ADD none., temp[1].x___, -const[3].x___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: MUL temp[2].x, const[3].y___, temp[0].x___; 52: ELSE; 53: ADD none., temp[1].x___, -const[3].z___; [aluresult = (x == 0)] 54: IF aluresult.x___; 55: ADD temp[2].x, const[3].w___, -const[3].y___; 56: MAD temp[2].x, temp[0].x___, temp[2].x___, const[3].y___; 57: ELSE; 58: ADD none., temp[1].x___, -const[4].x___; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[2].x, const[4].y___, -const[3].w___; 61: MAD temp[2].x, temp[0].x___, temp[2].x___, const[3].w___; 62: ELSE; 63: ADD none., temp[1].x___, -const[4].z___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[2].x, const[4].w___, -const[4].y___; 66: MAD temp[2].x, temp[0].x___, temp[2].x___, const[4].y___; 67: ELSE; 68: ADD none., temp[1].x___, -const[5].x___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[2].x, const[5].y___, -const[4].w___; 71: MAD temp[2].x, temp[0].x___, temp[2].x___, const[4].w___; 72: ELSE; 73: ADD none., temp[1].x___, -const[5].z___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[2].x, const[3].w___, -const[5].y___; 76: MAD temp[2].x, temp[0].x___, temp[2].x___, const[5].y___; 77: ELSE; 78: ADD none., temp[1].x___, -const[5].w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[2].x, const[3].y___, -const[3].w___; 81: MAD temp[2].x, temp[0].x___, temp[2].x___, const[3].w___; 82: ELSE; 83: ADD none., temp[1].x___, -const[6].x___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[0].x, const[0].w___, -temp[0].x___; 86: MUL temp[2].x, const[3].y___, temp[0].x___; 87: ELSE; 88: ADD none., temp[1].x___, -const[0].x___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MOV temp[2].x, const[0].y___; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: MOV temp[0].yzw, const[0]._yyw; 109: MAD temp[0].x, const[6].y___, temp[2].x___, const[6].y___; 110: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MUL temp[5].x, const[0].x___, input[0].x___; 1: FRC temp[6].x, temp[5].x___; 2: ADD temp[7].x, temp[5].x___, -temp[6].x___; 3: FRC temp[8].x, |temp[7].x___|; 4: ADD temp[9].x, |temp[7].x___|, -temp[8].x___; 5: CMP temp[10].x, temp[7].x___, -temp[9].x___, temp[9].x___; 6: FRC temp[11].x, temp[5].x___; 7: ADD temp[12].x, temp[5].x___, -temp[11].x___; 8: ADD temp[13].x, temp[5].x___, -temp[12].x___; 9: MOV temp[14].x, const[0].y___; 10: ADD none., temp[10].x___, -const[0].y___; [aluresult = (x == 0)] 11: IF aluresult.x___; 12: MUL temp[14].x, const[0].z___, temp[13].x___; 13: ELSE; 14: ADD none., temp[10].x___, -const[0].w___; [aluresult = (x == 0)] 15: IF aluresult.x___; 16: ADD temp[15].x, const[1].x___, -const[0].z___; 17: MAD temp[14].x, temp[13].x___, temp[15].x___, const[0].z___; 18: ELSE; 19: ADD none., temp[10].x___, -const[1].y___; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[16].x, const[1].z___, -const[1].x___; 22: MAD temp[14].x, temp[13].x___, temp[16].x___, const[1].x___; 23: ELSE; 24: ADD none., temp[10].x___, -const[1].w___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[17].x, const[0].w___, -const[1].z___; 27: MAD temp[14].x, temp[13].x___, temp[17].x___, const[1].z___; 28: ELSE; 29: ADD none., temp[10].x___, -const[2].x___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[18].x, const[1].z___, -const[0].w___; 32: MAD temp[14].x, temp[13].x___, temp[18].x___, const[0].w___; 33: ELSE; 34: ADD none., temp[10].x___, -const[2].y___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[19].x, const[1].x___, -const[1].z___; 37: MAD temp[14].x, temp[13].x___, temp[19].x___, const[1].z___; 38: ELSE; 39: ADD none., temp[10].x___, -const[2].z___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[20].x, const[0].z___, -const[1].x___; 42: MAD temp[14].x, temp[13].x___, temp[20].x___, const[1].x___; 43: ELSE; 44: ADD none., temp[10].x___, -const[2].w___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[21].x, const[0].w___, -temp[13].x___; 47: MUL temp[14].x, const[0].z___, temp[21].x___; 48: ELSE; 49: ADD none., temp[10].x___, -const[3].x___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: MUL temp[14].x, const[3].y___, temp[13].x___; 52: ELSE; 53: ADD none., temp[10].x___, -const[3].z___; [aluresult = (x == 0)] 54: IF aluresult.x___; 55: ADD temp[22].x, const[3].w___, -const[3].y___; 56: MAD temp[14].x, temp[13].x___, temp[22].x___, const[3].y___; 57: ELSE; 58: ADD none., temp[10].x___, -const[4].x___; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[23].x, const[4].y___, -const[3].w___; 61: MAD temp[14].x, temp[13].x___, temp[23].x___, const[3].w___; 62: ELSE; 63: ADD none., temp[10].x___, -const[4].z___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[24].x, const[4].w___, -const[4].y___; 66: MAD temp[14].x, temp[13].x___, temp[24].x___, const[4].y___; 67: ELSE; 68: ADD none., temp[10].x___, -const[5].x___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[25].x, const[5].y___, -const[4].w___; 71: MAD temp[14].x, temp[13].x___, temp[25].x___, const[4].w___; 72: ELSE; 73: ADD none., temp[10].x___, -const[5].z___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[26].x, const[3].w___, -const[5].y___; 76: MAD temp[14].x, temp[13].x___, temp[26].x___, const[5].y___; 77: ELSE; 78: ADD none., temp[10].x___, -const[5].w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[27].x, const[3].y___, -const[3].w___; 81: MAD temp[14].x, temp[13].x___, temp[27].x___, const[3].w___; 82: ELSE; 83: ADD none., temp[10].x___, -const[6].x___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[28].x, const[0].w___, -temp[13].x___; 86: MUL temp[14].x, const[3].y___, temp[28].x___; 87: ELSE; 88: ADD none., temp[10].x___, -const[0].x___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MOV temp[14].x, const[0].y___; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: MOV temp[29].yzw, const[0]._yyw; 109: MAD temp[29].x, const[6].y___, temp[14].x___, const[6].y___; 110: MOV output[0], temp[29]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[5].x, const[0].x___, input[0].x___; 1: FRC temp[6].x, temp[5].x___; 2: FRC temp[8].x, |(temp[5] - temp[6]).x___|; 3: ADD temp[9].x, |(temp[5] - temp[6]).x___|, -temp[8].x___; 4: CMP temp[10].x, (temp[5] - temp[6]).x___, -temp[9].x___, temp[9].x___; 5: FRC temp[11].x, temp[5].x___; 6: ADD temp[13].x, temp[5].x___, -(temp[5] - temp[11]).x___; 7: MOV temp[14].x, none.0___; 8: MOV none., temp[10].x___; [aluresult = (x == 0)] 9: IF aluresult.x___; 10: MUL temp[14].x, const[0].z___, temp[13].x___; 11: ELSE; 12: ADD none., temp[10].x___, -none.1___; [aluresult = (x == 0)] 13: IF aluresult.x___; 14: ADD temp[15].x, const[1].x___, -const[0].z___; 15: MAD temp[14].x, temp[13].x___, temp[15].x___, const[0].z___; 16: ELSE; 17: ADD none., temp[10].x___, -const[1].y___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[16].x, const[1].z___, -const[1].x___; 20: MAD temp[14].x, temp[13].x___, temp[16].x___, const[1].x___; 21: ELSE; 22: ADD none., temp[10].x___, -const[1].w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: MAD temp[14].x, temp[13].x___, (1 - const[1]).z___, const[1].z___; 25: ELSE; 26: ADD none., temp[10].x___, -const[2].x___; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: ADD temp[18].x, const[1].z___, -none.1___; 29: MAD temp[14].x, temp[13].x___, temp[18].x___, none.1___; 30: ELSE; 31: ADD none., temp[10].x___, -const[2].y___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[19].x, const[1].x___, -const[1].z___; 34: MAD temp[14].x, temp[13].x___, temp[19].x___, const[1].z___; 35: ELSE; 36: ADD none., temp[10].x___, -const[2].z___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[20].x, const[0].z___, -const[1].x___; 39: MAD temp[14].x, temp[13].x___, temp[20].x___, const[1].x___; 40: ELSE; 41: ADD none., temp[10].x___, -const[2].w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: MUL temp[14].x, const[0].z___, (1 - temp[13]).x___; 44: ELSE; 45: ADD none., temp[10].x___, -const[3].x___; [aluresult = (x == 0)] 46: IF aluresult.x___; 47: MUL temp[14].x, const[3].y___, temp[13].x___; 48: ELSE; 49: ADD none., temp[10].x___, -const[3].z___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[22].x, const[3].w___, -const[3].y___; 52: MAD temp[14].x, temp[13].x___, temp[22].x___, const[3].y___; 53: ELSE; 54: ADD none., temp[10].x___, -const[4].x___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[23].x, const[4].y___, -const[3].w___; 57: MAD temp[14].x, temp[13].x___, temp[23].x___, const[3].w___; 58: ELSE; 59: ADD none., temp[10].x___, -const[4].z___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MAD temp[14].x, temp[13].x___, (1 - const[4]).y___, const[4].y___; 62: ELSE; 63: ADD none., temp[10].x___, -const[5].x___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[25].x, const[5].y___, none.1-_-_-_; 66: MAD temp[14].x, temp[13].x___, temp[25].x___, none.-1___; 67: ELSE; 68: ADD none., temp[10].x___, -const[5].z___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[26].x, const[3].w___, -const[5].y___; 71: MAD temp[14].x, temp[13].x___, temp[26].x___, const[5].y___; 72: ELSE; 73: ADD none., temp[10].x___, -const[5].w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[27].x, const[3].y___, -const[3].w___; 76: MAD temp[14].x, temp[13].x___, temp[27].x___, const[3].w___; 77: ELSE; 78: ADD none., temp[10].x___, -const[6].x___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: MUL temp[14].x, const[3].y___, (1 - temp[13]).x___; 81: ELSE; 82: ADD none., temp[10].x___, -const[0].x___; [aluresult = (x == 0)] 83: IF aluresult.x___; 84: MOV temp[14].x, none.0___; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: MOV temp[29].yzw, none._001; 103: MAD temp[29].x, none.H___, temp[14].x___, none.H___; 104: MOV output[0], temp[29]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MUL temp[5].x, 16.000000 (0x58).w___, input[0].x___; 1: FRC temp[6].x, temp[5].x___; 2: FRC temp[8].x, |(temp[5] - temp[6]).x___|; 3: ADD temp[9].x, |(temp[5] - temp[6]).x___|, -temp[8].x___; 4: CMP temp[10].x, (temp[5] - temp[6]).x___, -temp[9].x___, temp[9].x___; 5: FRC temp[11].x, temp[5].x___; 6: ADD temp[13].x, temp[5].x___, -(temp[5] - temp[11]).x___; 7: MOV temp[14].x, none.0___; 8: MOV none., temp[10].x___; [aluresult = (x == 0)] 9: IF aluresult.x___; 10: MUL temp[14].x, const[0].z___, temp[13].x___; 11: ELSE; 12: ADD none., temp[10].x___, -none.1___; [aluresult = (x == 0)] 13: IF aluresult.x___; 14: ADD temp[15].x, const[1].x___, -const[0].z___; 15: MAD temp[14].x, temp[13].x___, temp[15].x___, const[0].z___; 16: ELSE; 17: ADD none., temp[10].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[16].x, const[1].z___, -const[1].x___; 20: MAD temp[14].x, temp[13].x___, temp[16].x___, const[1].x___; 21: ELSE; 22: ADD none., temp[10].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: MAD temp[14].x, temp[13].x___, (1 - const[1]).z___, const[1].z___; 25: ELSE; 26: ADD none., temp[10].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: ADD temp[18].x, const[1].z___, -none.1___; 29: MAD temp[14].x, temp[13].x___, temp[18].x___, none.1___; 30: ELSE; 31: ADD none., temp[10].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[19].x, const[1].x___, -const[1].z___; 34: MAD temp[14].x, temp[13].x___, temp[19].x___, const[1].z___; 35: ELSE; 36: ADD none., temp[10].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[20].x, const[0].z___, -const[1].x___; 39: MAD temp[14].x, temp[13].x___, temp[20].x___, const[1].x___; 40: ELSE; 41: ADD none., temp[10].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: MUL temp[14].x, const[0].z___, (1 - temp[13]).x___; 44: ELSE; 45: ADD none., temp[10].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 46: IF aluresult.x___; 47: MUL temp[14].x, const[3].y___, temp[13].x___; 48: ELSE; 49: ADD none., temp[10].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[22].x, const[3].w___, -const[3].y___; 52: MAD temp[14].x, temp[13].x___, temp[22].x___, const[3].y___; 53: ELSE; 54: ADD none., temp[10].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[23].x, const[4].y___, -const[3].w___; 57: MAD temp[14].x, temp[13].x___, temp[23].x___, const[3].w___; 58: ELSE; 59: ADD none., temp[10].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MAD temp[14].x, temp[13].x___, (1 - const[4]).y___, const[4].y___; 62: ELSE; 63: ADD none., temp[10].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[25].x, const[5].y___, none.1-_-_-_; 66: MAD temp[14].x, temp[13].x___, temp[25].x___, none.-1___; 67: ELSE; 68: ADD none., temp[10].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[26].x, const[3].w___, -const[5].y___; 71: MAD temp[14].x, temp[13].x___, temp[26].x___, const[5].y___; 72: ELSE; 73: ADD none., temp[10].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[27].x, const[3].y___, -const[3].w___; 76: MAD temp[14].x, temp[13].x___, temp[27].x___, const[3].w___; 77: ELSE; 78: ADD none., temp[10].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: MUL temp[14].x, const[3].y___, (1 - temp[13]).x___; 81: ELSE; 82: ADD none., temp[10].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 83: IF aluresult.x___; 84: MOV temp[14].x, none.0___; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: MOV temp[29].yzw, none._001; 103: MAD temp[29].x, none.H___, temp[14].x___, none.H___; 104: MOV output[0], temp[29]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 4.0000 5.0000 6.0000 7.0000 } CONST[3] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[4] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[5] = { 12.0000 -0.9239 13.0000 14.0000 } CONST[6] = { 15.0000 0.5000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MUL temp[5].x, 16.000000 (0x58).w___, input[0].x___; 1: FRC temp[6].x, temp[5].x___; 2: FRC temp[8].x, |(temp[5] - temp[6]).x___|; 3: ADD temp[9].x, |(temp[5] - temp[6]).x___|, -temp[8].x___; 4: CMP temp[10].x, (temp[5] - temp[6]).x___, -temp[9].x___, temp[9].x___; 5: FRC temp[11].x, temp[5].x___; 6: ADD temp[13].x, temp[5].x___, -(temp[5] - temp[11]).x___; 7: MOV temp[14].x, none.0___; 8: MOV none., temp[10].x___; [aluresult = (x == 0)] 9: IF aluresult.x___; 10: MUL temp[14].x, const[0].z___, temp[13].x___; 11: ELSE; 12: ADD none., temp[10].x___, -none.1___; [aluresult = (x == 0)] 13: IF aluresult.x___; 14: ADD temp[15].x, const[1].x___, -const[0].z___; 15: MAD temp[14].x, temp[13].x___, temp[15].x___, const[0].z___; 16: ELSE; 17: ADD none., temp[10].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[16].x, const[1].z___, -const[1].x___; 20: MAD temp[14].x, temp[13].x___, temp[16].x___, const[1].x___; 21: ELSE; 22: ADD none., temp[10].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: MAD temp[14].x, temp[13].x___, (1 - const[1]).z___, const[1].z___; 25: ELSE; 26: ADD none., temp[10].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: ADD temp[18].x, const[1].z___, -none.1___; 29: MAD temp[14].x, temp[13].x___, temp[18].x___, none.1___; 30: ELSE; 31: ADD none., temp[10].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[19].x, const[1].x___, -const[1].z___; 34: MAD temp[14].x, temp[13].x___, temp[19].x___, const[1].z___; 35: ELSE; 36: ADD none., temp[10].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[20].x, const[0].z___, -const[1].x___; 39: MAD temp[14].x, temp[13].x___, temp[20].x___, const[1].x___; 40: ELSE; 41: ADD none., temp[10].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: MUL temp[14].x, const[0].z___, (1 - temp[13]).x___; 44: ELSE; 45: ADD none., temp[10].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 46: IF aluresult.x___; 47: MUL temp[14].x, const[3].y___, temp[13].x___; 48: ELSE; 49: ADD none., temp[10].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[22].x, const[3].w___, -const[3].y___; 52: MAD temp[14].x, temp[13].x___, temp[22].x___, const[3].y___; 53: ELSE; 54: ADD none., temp[10].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[23].x, const[4].y___, -const[3].w___; 57: MAD temp[14].x, temp[13].x___, temp[23].x___, const[3].w___; 58: ELSE; 59: ADD none., temp[10].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MAD temp[14].x, temp[13].x___, (1 - const[4]).y___, const[4].y___; 62: ELSE; 63: ADD none., temp[10].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[25].x, const[5].y___, none.1-_-_-_; 66: MAD temp[14].x, temp[13].x___, temp[25].x___, none.-1___; 67: ELSE; 68: ADD none., temp[10].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[26].x, const[3].w___, -const[5].y___; 71: MAD temp[14].x, temp[13].x___, temp[26].x___, const[5].y___; 72: ELSE; 73: ADD none., temp[10].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[27].x, const[3].y___, -const[3].w___; 76: MAD temp[14].x, temp[13].x___, temp[27].x___, const[3].w___; 77: ELSE; 78: ADD none., temp[10].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: MUL temp[14].x, const[3].y___, (1 - temp[13]).x___; 81: ELSE; 82: ADD none., temp[10].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 83: IF aluresult.x___; 84: MOV temp[14].x, none.0___; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: MOV temp[29].yzw, none._001; 103: MAD temp[29].x, none.H___, temp[14].x___, none.H___; 104: MOV output[0], temp[29]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[3] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[4] = { 12.0000 -0.9239 13.0000 14.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[5].x, 16.000000 (0x58).w___, input[0].x___; 1: FRC temp[6].x, temp[5].x___; 2: FRC temp[8].x, |(temp[5] - temp[6]).x___|; 3: ADD temp[9].x, |(temp[5] - temp[6]).x___|, -temp[8].x___; 4: CMP temp[10].x, (temp[5] - temp[6]).x___, -temp[9].x___, temp[9].x___; 5: FRC temp[11].x, temp[5].x___; 6: ADD temp[13].x, temp[5].x___, -(temp[5] - temp[11]).x___; 7: MOV temp[14].x, none.0___; 8: MOV none., temp[10].x___; [aluresult = (x == 0)] 9: IF aluresult.x___; 10: MUL temp[14].x, const[0].z___, temp[13].x___; 11: ELSE; 12: ADD none., temp[10].x___, -none.1___; [aluresult = (x == 0)] 13: IF aluresult.x___; 14: ADD temp[15].x, const[1].x___, -const[0].z___; 15: MAD temp[14].x, temp[13].x___, temp[15].x___, const[0].z___; 16: ELSE; 17: ADD none., temp[10].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[16].x, const[1].z___, -const[1].x___; 20: MAD temp[14].x, temp[13].x___, temp[16].x___, const[1].x___; 21: ELSE; 22: ADD none., temp[10].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: MAD temp[14].x, temp[13].x___, (1 - const[1]).z___, const[1].z___; 25: ELSE; 26: ADD none., temp[10].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: ADD temp[18].x, const[1].z___, -none.1___; 29: MAD temp[14].x, temp[13].x___, temp[18].x___, none.1___; 30: ELSE; 31: ADD none., temp[10].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[19].x, const[1].x___, -const[1].z___; 34: MAD temp[14].x, temp[13].x___, temp[19].x___, const[1].z___; 35: ELSE; 36: ADD none., temp[10].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[20].x, const[0].z___, -const[1].x___; 39: MAD temp[14].x, temp[13].x___, temp[20].x___, const[1].x___; 40: ELSE; 41: ADD none., temp[10].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: MUL temp[14].x, const[0].z___, (1 - temp[13]).x___; 44: ELSE; 45: ADD none., temp[10].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 46: IF aluresult.x___; 47: MUL temp[14].x, const[2].y___, temp[13].x___; 48: ELSE; 49: ADD none., temp[10].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[22].x, const[2].w___, -const[2].y___; 52: MAD temp[14].x, temp[13].x___, temp[22].x___, const[2].y___; 53: ELSE; 54: ADD none., temp[10].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[23].x, const[3].y___, -const[2].w___; 57: MAD temp[14].x, temp[13].x___, temp[23].x___, const[2].w___; 58: ELSE; 59: ADD none., temp[10].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MAD temp[14].x, temp[13].x___, (1 - const[3]).y___, const[3].y___; 62: ELSE; 63: ADD none., temp[10].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[25].x, const[4].y___, none.1-_-_-_; 66: MAD temp[14].x, temp[13].x___, temp[25].x___, none.-1___; 67: ELSE; 68: ADD none., temp[10].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[26].x, const[2].w___, -const[4].y___; 71: MAD temp[14].x, temp[13].x___, temp[26].x___, const[4].y___; 72: ELSE; 73: ADD none., temp[10].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[27].x, const[2].y___, -const[2].w___; 76: MAD temp[14].x, temp[13].x___, temp[27].x___, const[2].w___; 77: ELSE; 78: ADD none., temp[10].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: MUL temp[14].x, const[2].y___, (1 - temp[13]).x___; 81: ELSE; 82: ADD none., temp[10].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 83: IF aluresult.x___; 84: MOV temp[14].x, none.0___; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: MOV temp[29].yzw, none._001; 103: MAD temp[29].x, none.H___, temp[14].x___, none.H___; 104: MOV output[0], temp[29]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[5].x, src0.w__, src0.x__, src0.000 1: src0.xyz = temp[5] FRC temp[6].x, src0.x__ 2: src0.xyz = temp[6], src1.xyz = temp[5], srcp.xyz = (src1 - src0) FRC temp[8].x, |srcp.x__| 3: src0.xyz = temp[6], src1.xyz = temp[5], src2.xyz = temp[8], srcp.xyz = (src1 - src0) MAD temp[9].x, |srcp.x__|, src0.111, -src2.x__ 4: src0.xyz = temp[6], src1.xyz = temp[5], src2.xyz = temp[9], srcp.xyz = (src1 - src0) CMP temp[10].x, src2.x__, -src2.x__, srcp.x__ 5: src0.xyz = temp[5] FRC temp[11].x, src0.x__ 6: src0.xyz = temp[11], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[13].x, src1.x__, src0.111, -srcp.x__ 7: MAD temp[14].x, src0.0__, src0.111, src0.000 8: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 9: IF aluresult.x___; 10: src0.xyz = const[0], src1.xyz = temp[13] MAD temp[14].x, src0.z__, src1.x__, src0.000 11: ELSE; 12: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 13: IF aluresult.x___; 14: src0.xyz = const[1], src1.xyz = const[0] MAD temp[15].x, src0.x__, src0.111, -src1.z__ 15: src0.xyz = temp[13], src1.xyz = temp[15], src2.xyz = const[0] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 16: ELSE; 17: src0.xyz = temp[10], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 18: IF aluresult.x___; 19: src0.xyz = const[1] MAD temp[16].x, src0.z__, src0.111, -src0.x__ 20: src0.xyz = temp[13], src1.xyz = temp[16], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 21: ELSE; 22: src0.xyz = temp[10], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 23: IF aluresult.x___; 24: src0.xyz = const[1], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.z__, src0.z__ 25: ELSE; 26: src0.xyz = temp[10], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 27: IF aluresult.x___; 28: src0.xyz = const[1] MAD temp[18].x, src0.z__, src0.111, -src0.1__ 29: src0.xyz = temp[13], src1.xyz = temp[18] MAD temp[14].x, src0.x__, src1.x__, src0.1__ 30: ELSE; 31: src0.xyz = temp[10], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 32: IF aluresult.x___; 33: src0.xyz = const[1] MAD temp[19].x, src0.x__, src0.111, -src0.z__ 34: src0.xyz = temp[13], src1.xyz = temp[19], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 35: ELSE; 36: src0.xyz = temp[10], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 37: IF aluresult.x___; 38: src0.xyz = const[0], src1.xyz = const[1] MAD temp[20].x, src0.z__, src0.111, -src1.x__ 39: src0.xyz = temp[13], src1.xyz = temp[20], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 40: ELSE; 41: src0.xyz = temp[10], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 42: IF aluresult.x___; 43: src0.xyz = temp[13], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[14].x, src1.z__, srcp.x__, src0.000 44: ELSE; 45: src0.xyz = temp[10], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 46: IF aluresult.x___; 47: src0.xyz = const[2], src1.xyz = temp[13] MAD temp[14].x, src0.y__, src1.x__, src0.000 48: ELSE; 49: src0.xyz = temp[10], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 50: IF aluresult.x___; 51: src0.xyz = const[2], src0.w = const[2] MAD temp[22].x, src0.w__, src0.111, -src0.y__ 52: src0.xyz = temp[13], src1.xyz = temp[22], src2.xyz = const[2] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 53: ELSE; 54: src0.xyz = temp[10], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 55: IF aluresult.x___; 56: src0.xyz = const[3], src0.w = const[2] MAD temp[23].x, src0.y__, src0.111, -src0.w__ 57: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[23] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 58: ELSE; 59: src0.xyz = temp[10], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 60: IF aluresult.x___; 61: src0.xyz = const[3], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.y__, src0.y__ 62: ELSE; 63: src0.xyz = temp[10], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 64: IF aluresult.x___; 65: src0.xyz = const[4] MAD temp[25].x, src0.y__, src0.111, src0.1__ 66: src0.xyz = temp[13], src1.xyz = temp[25] MAD temp[14].x, src0.x__, src1.x__, -src0.1__ 67: ELSE; 68: src0.xyz = temp[10], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 69: IF aluresult.x___; 70: src0.xyz = const[4], src0.w = const[2] MAD temp[26].x, src0.w__, src0.111, -src0.y__ 71: src0.xyz = temp[13], src1.xyz = temp[26], src2.xyz = const[4] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 72: ELSE; 73: src0.xyz = temp[10], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 74: IF aluresult.x___; 75: src0.xyz = const[2], src0.w = const[2] MAD temp[27].x, src0.y__, src0.111, -src0.w__ 76: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[27] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 77: ELSE; 78: src0.xyz = temp[10], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 79: IF aluresult.x___; 80: src0.xyz = temp[13], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[14].x, src1.y__, srcp.x__, src0.000 81: ELSE; 82: src0.xyz = temp[10], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 83: IF aluresult.x___; 84: MAD temp[14].x, src0.0__, src0.111, src0.000 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: MAD temp[29].yz, src0._00, src0.111, src0.000 MAD temp[29].w, src0.1, src0.1, src0.0 103: src0.xyz = temp[14] MAD temp[29].x, src0.H__, src0.x__, src0.H__ 104: src0.xyz = temp[29], src0.w = temp[29] 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 = 16.000000 (0x58) MAD temp[5].x, src0.w__, src0.x__, src0.000 1: src0.xyz = temp[5] FRC temp[11].x, src0.x__ 2: src0.xyz = temp[11], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[13].x, src1.x__, src0.111, -srcp.x__ 3: src0.xyz = temp[5] FRC temp[6].x, src0.x__ 4: src0.xyz = temp[6], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[14].x, src0.0__, src0.111, src0.000 FRC temp[8].w, |srcp.x| 5: src0.xyz = temp[6], src0.w = temp[8], src1.xyz = temp[5], src2.xyz = temp[8], srcp.xyz = (src1 - src0) MAD temp[9].x, |srcp.x__|, src0.111, -src0.w__ 6: src0.xyz = temp[6], src1.xyz = temp[5], src2.xyz = temp[9], srcp.xyz = (src1 - src0) CMP temp[10].x, src2.x__, -src2.x__, srcp.x__ 7: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[13] MAD temp[14].x, src0.z__, src1.x__, src0.000 10: ELSE; 11: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[15].x, src0.x__, src0.111, -src1.z__ 14: src0.xyz = temp[13], src1.xyz = temp[15], src2.xyz = const[0] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 15: ELSE; 16: src0.xyz = temp[10], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[16].x, src0.z__, src0.111, -src0.x__ 19: src0.xyz = temp[13], src1.xyz = temp[16], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 20: ELSE; 21: src0.xyz = temp[10], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.z__, src0.z__ 24: ELSE; 25: src0.xyz = temp[10], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[18].x, src0.z__, src0.111, -src0.1__ 28: src0.xyz = temp[13], src1.xyz = temp[18] MAD temp[14].x, src0.x__, src1.x__, src0.1__ 29: ELSE; 30: src0.xyz = temp[10], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[19].x, src0.x__, src0.111, -src0.z__ 33: src0.xyz = temp[13], src1.xyz = temp[19], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 34: ELSE; 35: src0.xyz = temp[10], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[20].x, src0.z__, src0.111, -src1.x__ 38: src0.xyz = temp[13], src1.xyz = temp[20], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 39: ELSE; 40: src0.xyz = temp[10], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[13], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[14].x, src1.z__, srcp.x__, src0.000 43: ELSE; 44: src0.xyz = temp[10], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[13] MAD temp[14].x, src0.y__, src1.x__, src0.000 47: ELSE; 48: src0.xyz = temp[10], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[22].x, src0.w__, src0.111, -src0.y__ 51: src0.xyz = temp[13], src1.xyz = temp[22], src2.xyz = const[2] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 52: ELSE; 53: src0.xyz = temp[10], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[23].x, src0.y__, src0.111, -src0.w__ 56: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[23] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 57: ELSE; 58: src0.xyz = temp[10], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.y__, src0.y__ 61: ELSE; 62: src0.xyz = temp[10], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[25].x, src0.y__, src0.111, src0.1__ 65: src0.xyz = temp[13], src1.xyz = temp[25] MAD temp[14].x, src0.x__, src1.x__, -src0.1__ 66: ELSE; 67: src0.xyz = temp[10], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[26].x, src0.w__, src0.111, -src0.y__ 70: src0.xyz = temp[13], src1.xyz = temp[26], src2.xyz = const[4] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 71: ELSE; 72: src0.xyz = temp[10], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[27].x, src0.y__, src0.111, -src0.w__ 75: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[27] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 76: ELSE; 77: src0.xyz = temp[10], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[13], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[14].x, src1.y__, srcp.x__, src0.000 80: ELSE; 81: src0.xyz = temp[10], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[14].x, src0.0__, src0.111, src0.000 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.xyz = temp[14] MAD temp[29].x, src0.H__, src0.x__, src0.H__ 102: MAD temp[29].yz, src0._00, src0.111, src0.000 MAD temp[29].w, src0.1, src0.1, src0.0 103: src0.xyz = temp[29], src0.w = temp[29] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'dead sources' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[5].x, src0.w__, src0.x__, src0.000 1: src0.xyz = temp[5] FRC temp[11].x, src0.x__ 2: src0.xyz = temp[11], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[13].x, src1.x__, src0.111, -srcp.x__ 3: src0.xyz = temp[5] FRC temp[6].x, src0.x__ 4: src0.xyz = temp[6], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[14].x, src0.0__, src0.111, src0.000 FRC temp[8].w, |srcp.x| 5: src0.xyz = temp[6], src0.w = temp[8], src1.xyz = temp[5], srcp.xyz = (src1 - src0) MAD temp[9].x, |srcp.x__|, src0.111, -src0.w__ 6: src0.xyz = temp[6], src1.xyz = temp[5], src2.xyz = temp[9], srcp.xyz = (src1 - src0) CMP temp[10].x, src2.x__, -src2.x__, srcp.x__ 7: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[13] MAD temp[14].x, src0.z__, src1.x__, src0.000 10: ELSE; 11: src0.xyz = temp[10] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[15].x, src0.x__, src0.111, -src1.z__ 14: src0.xyz = temp[13], src1.xyz = temp[15], src2.xyz = const[0] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 15: ELSE; 16: src0.xyz = temp[10], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[16].x, src0.z__, src0.111, -src0.x__ 19: src0.xyz = temp[13], src1.xyz = temp[16], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 20: ELSE; 21: src0.xyz = temp[10], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.z__, src0.z__ 24: ELSE; 25: src0.xyz = temp[10], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[18].x, src0.z__, src0.111, -src0.1__ 28: src0.xyz = temp[13], src1.xyz = temp[18] MAD temp[14].x, src0.x__, src1.x__, src0.1__ 29: ELSE; 30: src0.xyz = temp[10], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[19].x, src0.x__, src0.111, -src0.z__ 33: src0.xyz = temp[13], src1.xyz = temp[19], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.z__ 34: ELSE; 35: src0.xyz = temp[10], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[20].x, src0.z__, src0.111, -src1.x__ 38: src0.xyz = temp[13], src1.xyz = temp[20], src2.xyz = const[1] MAD temp[14].x, src0.x__, src1.x__, src2.x__ 39: ELSE; 40: src0.xyz = temp[10], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[13], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[14].x, src1.z__, srcp.x__, src0.000 43: ELSE; 44: src0.xyz = temp[10], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[13] MAD temp[14].x, src0.y__, src1.x__, src0.000 47: ELSE; 48: src0.xyz = temp[10], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[22].x, src0.w__, src0.111, -src0.y__ 51: src0.xyz = temp[13], src1.xyz = temp[22], src2.xyz = const[2] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 52: ELSE; 53: src0.xyz = temp[10], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[23].x, src0.y__, src0.111, -src0.w__ 56: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[23] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 57: ELSE; 58: src0.xyz = temp[10], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[13], srcp.xyz = (1 - src0) MAD temp[14].x, src1.x__, srcp.y__, src0.y__ 61: ELSE; 62: src0.xyz = temp[10], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[25].x, src0.y__, src0.111, src0.1__ 65: src0.xyz = temp[13], src1.xyz = temp[25] MAD temp[14].x, src0.x__, src1.x__, -src0.1__ 66: ELSE; 67: src0.xyz = temp[10], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[26].x, src0.w__, src0.111, -src0.y__ 70: src0.xyz = temp[13], src1.xyz = temp[26], src2.xyz = const[4] MAD temp[14].x, src0.x__, src1.x__, src2.y__ 71: ELSE; 72: src0.xyz = temp[10], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[27].x, src0.y__, src0.111, -src0.w__ 75: src0.xyz = temp[13], src0.w = const[2], src1.xyz = temp[27] MAD temp[14].x, src0.x__, src1.x__, src0.w__ 76: ELSE; 77: src0.xyz = temp[10], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[13], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[14].x, src1.y__, srcp.x__, src0.000 80: ELSE; 81: src0.xyz = temp[10], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[14].x, src0.0__, src0.111, src0.000 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.xyz = temp[14] MAD temp[29].x, src0.H__, src0.x__, src0.H__ 102: MAD temp[29].yz, src0._00, src0.111, src0.000 MAD temp[29].w, src0.1, src0.1, src0.0 103: src0.xyz = temp[29], src0.w = temp[29] 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 = input[0], src0.w = 16.000000 (0x58) MAD temp[0].x, src0.w__, src0.x__, src0.0__ 1: src0.xyz = temp[0] FRC temp[1].x, src0.x__ 2: src0.xyz = temp[1], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[1].x, src1.x__, src0.1__, -srcp.x__ 3: src0.xyz = temp[0] FRC temp[2].x, src0.x__ 4: src0.xyz = temp[2], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[0].y, src0._0_, src0._1_, src0._0_ FRC temp[0].w, |srcp.x| 5: src0.xyz = temp[2], src0.w = temp[0], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[0].z, |srcp.__x|, src0.__1, -src0.__w 6: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = temp[0], srcp.xyz = (src1 - src0) CMP temp[0].x, src2.z__, -src1.z__, srcp.x__ 7: src0.xyz = temp[0] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[1] MAD temp[0].y, src0._z_, src1._x_, src0._0_ 10: ELSE; 11: src0.xyz = temp[0] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].z, src0.__x, src0.__1, -src1.__z 14: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[0].y, src0._x_, src1._z_, src2._z_ 15: ELSE; 16: src0.xyz = temp[0], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[0].z, src0.__z, src0.__1, -src0.__x 19: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._x_, src1._z_, src2._x_ 20: ELSE; 21: src0.xyz = temp[0], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[1], srcp.xyz = (1 - src0) MAD temp[0].y, src1._x_, srcp._z_, src0._z_ 24: ELSE; 25: src0.xyz = temp[0], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[0].z, src0.__z, src0.__1, -src0.__1 28: src0.xyz = temp[1], src1.xyz = temp[0] MAD temp[0].y, src0._x_, src1._z_, src0._1_ 29: ELSE; 30: src0.xyz = temp[0], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[0].z, src0.__x, src0.__1, -src0.__z 33: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._x_, src1._z_, src2._z_ 34: ELSE; 35: src0.xyz = temp[0], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].z, src0.__z, src0.__1, -src1.__x 38: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._x_, src1._z_, src2._x_ 39: ELSE; 40: src0.xyz = temp[0], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[1], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[0].y, src1._z_, srcp._x_, src0._0_ 43: ELSE; 44: src0.xyz = temp[0], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[1] MAD temp[0].y, src0._y_, src1._x_, src0._0_ 47: ELSE; 48: src0.xyz = temp[0], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[0].z, src0.__w, src0.__1, -src0.__y 51: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[0].y, src0._x_, src1._z_, src2._y_ 52: ELSE; 53: src0.xyz = temp[0], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[0].z, src0.__y, src0.__1, -src0.__w 56: src0.xyz = temp[1], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].y, src0._x_, src1._z_, src0._w_ 57: ELSE; 58: src0.xyz = temp[0], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[1], srcp.xyz = (1 - src0) MAD temp[0].y, src1._x_, srcp._y_, src0._y_ 61: ELSE; 62: src0.xyz = temp[0], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[0].z, src0.__y, src0.__1, src0.__1 65: src0.xyz = temp[1], src1.xyz = temp[0] MAD temp[0].y, src0._x_, src1._z_, -src0._1_ 66: ELSE; 67: src0.xyz = temp[0], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[0].z, src0.__w, src0.__1, -src0.__y 70: src0.xyz = temp[1], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[0].y, src0._x_, src1._z_, src2._y_ 71: ELSE; 72: src0.xyz = temp[0], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[0].z, src0.__y, src0.__1, -src0.__w 75: src0.xyz = temp[1], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].y, src0._x_, src1._z_, src0._w_ 76: ELSE; 77: src0.xyz = temp[0], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[1], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[0].y, src1._y_, srcp._x_, src0._0_ 80: ELSE; 81: src0.xyz = temp[0], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[0].y, src0._0_, src0._1_, src0._0_ 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.xyz = temp[0] MAD temp[0].x, src0.H__, src0.y__, src0.H__ 102: MAD temp[0].yz, src0._00, src0.111, src0.000 MAD temp[0].w, src0.1, src0.1, src0.0 103: 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 1 0:CMN_INST 0x00000a00:ALU NOP wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000019:FRC dest:1 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 2 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x48000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930481:rgb_A_src:1 R/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c83010:MAD dest:1 rgb_C_src:3 R/0/0 1 alp_C_src:0 R 0 3 0:CMN_INST 0x00000a00:ALU NOP wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000029:FRC dest:2 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 4 0:CMN_INST 0x00005000:ALU wmask: AG omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00043007:FRC dest:0 alp_A_src:3 R 2 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 5 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d21093:rgb_A_src:3 0/0/R 2 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00b90000:MAD dest:0 rgb_C_src:0 0/0/A 1 alp_C_src:0 R 0 6 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x40000002:Addr0: 2t, Addr1: 0t, Addr2: 0t, srcp:1 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0191248a:rgb_A_src:2 B/0/0 0 rgb_B_src:1 B/0/0 1 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00483008:CMP dest:0 rgb_C_src:3 R/0/0 0 alp_C_src:0 R 0 7 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 8 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 11 IGN_UNC 3:FC_ADDR 0x000b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 11, JMP_GLBL: 0 9 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000500:Addr0: 0c, Addr1: 1t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00822450:rgb_A_src:0 0/B/0 0 rgb_B_src:1 0/R/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 10 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 11 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98030:MAD dest:3 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 12 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 16 IGN_UNC 3:FC_ADDR 0x00100000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 16, JMP_GLBL: 0 13 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00a91000:MAD dest:0 rgb_C_src:1 0/0/B 1 alp_C_src:0 R 0 14 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10000001:Addr0: 1t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00452000:MAD dest:0 rgb_C_src:2 0/B/0 0 alp_C_src:0 R 0 15 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 16 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c0:Addr0: 192t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 17 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 21 IGN_UNC 3:FC_ADDR 0x00150000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 21, JMP_GLBL: 0 18 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20290:rgb_A_src:0 0/0/B 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00890000:MAD dest:0 rgb_C_src:0 0/0/R 1 alp_C_src:0 R 0 19 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100001:Addr0: 1t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00412000:MAD dest:0 rgb_C_src:2 0/R/0 0 alp_C_src:0 R 0 20 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 21 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c4:Addr0: 196t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 22 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 25 IGN_UNC 3:FC_ADDR 0x00190000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 25, JMP_GLBL: 0 23 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8000501:Addr0: 1c, Addr1: 1t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a6411:rgb_A_src:1 0/R/0 0 rgb_B_src:3 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00450000:MAD dest:0 rgb_C_src:0 0/B/0 0 alp_C_src:0 R 0 24 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 25 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c8:Addr0: 200t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 26 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 30 IGN_UNC 3:FC_ADDR 0x001e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 30, JMP_GLBL: 0 27 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20290:rgb_A_src:0 0/0/B 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00e90000:MAD dest:0 rgb_C_src:0 0/0/1 1 alp_C_src:0 R 0 28 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004d0000:MAD dest:0 rgb_C_src:0 0/1/0 0 alp_C_src:0 R 0 29 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 30 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ca:Addr0: 202t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 31 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 35 IGN_UNC 3:FC_ADDR 0x00230000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 35, JMP_GLBL: 0 32 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00a90000:MAD dest:0 rgb_C_src:0 0/0/B 1 alp_C_src:0 R 0 33 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100001:Addr0: 1t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00452000:MAD dest:0 rgb_C_src:2 0/B/0 0 alp_C_src:0 R 0 34 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 35 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200cc:Addr0: 204t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 36 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 40 IGN_UNC 3:FC_ADDR 0x00280000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 40, JMP_GLBL: 0 37 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20290:rgb_A_src:0 0/0/B 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00891000:MAD dest:0 rgb_C_src:1 0/0/R 1 alp_C_src:0 R 0 38 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100001:Addr0: 1t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00412000:MAD dest:0 rgb_C_src:2 0/R/0 0 alp_C_src:0 R 0 39 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 40 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ce:Addr0: 206t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 41 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 44 IGN_UNC 3:FC_ADDR 0x002c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 44, JMP_GLBL: 0 42 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8040001:Addr0: 1t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00826451:rgb_A_src:1 0/B/0 0 rgb_B_src:3 0/R/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 43 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 44 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d0:Addr0: 208t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 45 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 48 IGN_UNC 3:FC_ADDR 0x00300000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 48, JMP_GLBL: 0 46 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000502:Addr0: 2c, Addr1: 1t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00822430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/R/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 47 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 48 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d1:Addr0: 209t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 49 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 53 IGN_UNC 3:FC_ADDR 0x00350000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 53, JMP_GLBL: 0 50 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20390:rgb_A_src:0 0/0/A 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00990000:MAD dest:0 rgb_C_src:0 0/0/G 1 alp_C_src:0 R 0 51 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10200001:Addr0: 1t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00432000:MAD dest:0 rgb_C_src:2 0/G/0 0 alp_C_src:0 R 0 52 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 53 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d2:Addr0: 210t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 54 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 58 IGN_UNC 3:FC_ADDR 0x003a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 58, JMP_GLBL: 0 55 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20190:rgb_A_src:0 0/0/G 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00b90000:MAD dest:0 rgb_C_src:0 0/0/A 1 alp_C_src:0 R 0 56 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00470000:MAD dest:0 rgb_C_src:0 0/A/0 0 alp_C_src:0 R 0 57 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 58 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d3:Addr0: 211t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 59 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 62 IGN_UNC 3:FC_ADDR 0x003e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 62, JMP_GLBL: 0 60 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8000503:Addr0: 3c, Addr1: 1t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00866411:rgb_A_src:1 0/R/0 0 rgb_B_src:3 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00430000:MAD dest:0 rgb_C_src:0 0/G/0 0 alp_C_src:0 R 0 61 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 62 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d4:Addr0: 212t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 63 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 67 IGN_UNC 3:FC_ADDR 0x00430000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 67, JMP_GLBL: 0 64 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20190:rgb_A_src:0 0/0/G 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00690000:MAD dest:0 rgb_C_src:0 0/0/1 0 alp_C_src:0 R 0 65 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00cd0000:MAD dest:0 rgb_C_src:0 0/1/0 1 alp_C_src:0 R 0 66 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 89 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 67 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d5:Addr0: 213t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 68 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 72 IGN_UNC 3:FC_ADDR 0x00480000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 72, JMP_GLBL: 0 69 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20390:rgb_A_src:0 0/0/A 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00990000:MAD dest:0 rgb_C_src:0 0/0/G 1 alp_C_src:0 R 0 70 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10400001:Addr0: 1t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00432000:MAD dest:0 rgb_C_src:2 0/G/0 0 alp_C_src:0 R 0 71 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 88 3:FC_ADDR 0x00580000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 88, JMP_GLBL: 0 72 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d6:Addr0: 214t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 73 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 77 IGN_UNC 3:FC_ADDR 0x004d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 77, JMP_GLBL: 0 74 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00d20190:rgb_A_src:0 0/0/G 0 rgb_B_src:0 0/0/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00b90000:MAD dest:0 rgb_C_src:0 0/0/A 1 alp_C_src:0 R 0 75 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a2410:rgb_A_src:0 0/R/0 0 rgb_B_src:1 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00470000:MAD dest:0 rgb_C_src:0 0/A/0 0 alp_C_src:0 R 0 76 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 87 3:FC_ADDR 0x00570000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 87, JMP_GLBL: 0 77 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d7:Addr0: 215t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c030:MAD dest:3 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 78 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 81 IGN_UNC 3:FC_ADDR 0x00510000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 81, JMP_GLBL: 0 79 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8040801:Addr0: 1t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00826431:rgb_A_src:1 0/G/0 0 rgb_B_src:3 0/R/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 80 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 86 3:FC_ADDR 0x00560000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 86, JMP_GLBL: 0 81 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 82 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 85 IGN_UNC 3:FC_ADDR 0x00550000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 85, JMP_GLBL: 0 83 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 84 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 85 3:FC_ADDR 0x00550000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 85, JMP_GLBL: 0 85 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 86 3:FC_ADDR 0x00560000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 86, JMP_GLBL: 0 86 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 87 3:FC_ADDR 0x00570000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 87, JMP_GLBL: 0 87 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 88 3:FC_ADDR 0x00580000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 88, JMP_GLBL: 0 88 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 89 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 89 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 90 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 91 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 92 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 93 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 94 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 95 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 96 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 97 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 98 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 99 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 100 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 101 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00908494:rgb_A_src:0 H/0/0 0 rgb_B_src:0 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00494000:MAD dest:0 rgb_C_src:0 H/0/0 0 alp_C_src:0 R 0 102 0:CMN_INST 0x00007000:ALU wmask: AGB omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 103 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 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 'unroll loops' # 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 'transform IF' # 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 'register rename' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: TEX temp[0], input[0].xy__, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after 'dead constants' # 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] SEM_WAIT SEM_ACQUIRE; 2: src0.xyz = temp[0], src0.w = temp[0] SEM_WAIT MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'dead sources' # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[0], input[0].xy__, 2D[0] SEM_WAIT SEM_ACQUIRE; 2: src0.xyz = temp[0], src0.w = temp[0] SEM_WAIT 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], input[0].xy__, 2D[0] SEM_WAIT SEM_ACQUIRE; 2: src0.xyz = temp[0], src0.w = temp[0] SEM_WAIT MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 R500 Fragment Program: -------- 0 0:CMN_INST 0x00007807:TEX TEX_WAIT wmask: ARGB omask: NONE 1:TEX_INST: 0x02400000: id: 0 op:LD, ACQ, SCALED 2:TEX_ADDR: 0xe400f400: src: 0 R/G/A/A dst: 0 R/G/B/A 3:TEX_DXDY: 0x00000000 1 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..1], LOCAL IMM[0] FLT32 { 0.0000, 1.0000, 0.5000, 6.2832} 0: MOV TEMP[0].yzw, IMM[0].xxxy 1: MUL TEMP[1].x, IMM[0].wwww, IN[0].xxxx 2: SIN TEMP[1].x, TEMP[1].xxxx 3: MAD TEMP[0].x, IMM[0].zzzz, TEMP[1].xxxx, IMM[0].zzzz 4: MOV OUT[0], TEMP[0] 5: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: SIN temp[1].x, temp[1].xxxx; 3: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 4: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0].xxxy; 1: MUL temp[1].x, const[0].wwww, input[0].xxxx; 2: MUL temp[2].w, temp[1].xxxx, const[1].xxxx; 3: FRC temp[2].w, temp[2]; 4: SIN temp[1].x, temp[2].wwww; 5: MAD temp[0].x, const[0].zzzz, temp[1].xxxx, const[0].zzzz; 6: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV temp[0].yzw, const[0]._xxy; 1: MUL temp[1].x, const[0].w___, input[0].x___; 2: MUL temp[2].w, temp[1].___x, const[1].___x; 3: FRC temp[2].w, temp[2].___w; 4: SIN temp[1].x, temp[2].w___; 5: MAD temp[0].x, const[0].z___, temp[1].x___, const[0].z___; 6: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV temp[3].yzw, const[0]._xxy; 1: MUL temp[4].x, const[0].w___, input[0].x___; 2: MUL temp[5].w, temp[4].___x, const[1].___x; 3: FRC temp[6].w, temp[5].___w; 4: SIN temp[7].x, temp[6].w___; 5: MAD temp[3].x, const[0].z___, temp[7].x___, const[0].z___; 6: MOV output[0], temp[3]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV temp[3].yzw, none._001; 1: MUL temp[4].x, const[0].w___, input[0].x___; 2: MUL temp[5].w, temp[4].___x, const[1].___x; 3: FRC temp[6].w, temp[5].___w; 4: SIN temp[7].x, temp[6].w___; 5: MAD temp[3].x, none.H___, temp[7].x___, none.H___; 6: MOV output[0], temp[3]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MOV temp[3].yzw, none._001; 1: MUL temp[4].x, const[0].w___, input[0].x___; 2: MUL temp[5].w, temp[4].___x, const[1].___x; 3: FRC temp[6].w, temp[5].___w; 4: SIN temp[7].x, temp[6].w___; 5: MAD temp[3].x, none.H___, temp[7].x___, none.H___; 6: MOV output[0], temp[3]; CONST[0] = { 0.0000 1.0000 0.5000 6.2832 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV temp[3].yzw, none._001; 1: MUL temp[4].x, const[0].w___, input[0].x___; 2: MUL temp[5].w, temp[4].___x, const[1].___x; 3: FRC temp[6].w, temp[5].___w; 4: SIN temp[7].x, temp[6].w___; 5: MAD temp[3].x, none.H___, temp[7].x___, none.H___; 6: MOV output[0], temp[3]; CONST[0] = { 0.0000 1.0000 0.5000 6.2832 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV temp[3].yzw, none._001; 1: MUL temp[4].x, const[0].w___, input[0].x___; 2: MUL temp[5].w, temp[4].___x, const[1].___x; 3: FRC temp[6].w, temp[5].___w; 4: SIN temp[7].x, temp[6].w___; 5: MAD temp[3].x, none.H___, temp[7].x___, none.H___; 6: MOV output[0], temp[3]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: MAD temp[3].yz, src0._00, src0.111, src0.000 MAD temp[3].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[4].x, src0.w__, src0.x__, src0.000 2: src0.xyz = temp[4], src1.xyz = const[1] MAD temp[5].w, src0.x, src1.x, src0.0 3: src0.w = temp[5] FRC temp[6].w, src0.w 4: src0.w = temp[6] REPL_ALPHA temp[7].x SIN, src0.w 5: src0.xyz = temp[7] MAD temp[3].x, src0.H__, src0.x__, src0.H__ 6: 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: MAD temp[3].yz, src0._00, src0.111, src0.000 MAD temp[3].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[4].x, src0.w__, src0.x__, src0.000 2: src0.xyz = temp[4], src1.xyz = const[1] MAD temp[5].w, src0.x, src1.x, src0.0 3: src0.w = temp[5] FRC temp[6].w, src0.w 4: src0.w = temp[6] REPL_ALPHA temp[7].x SIN, src0.w 5: src0.xyz = temp[7] MAD temp[3].x, src0.H__, src0.x__, src0.H__ 6: 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 'dead sources' # Radeon Compiler Program 0: MAD temp[3].yz, src0._00, src0.111, src0.000 MAD temp[3].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[4].x, src0.w__, src0.x__, src0.000 2: src0.xyz = temp[4], src1.xyz = const[1] MAD temp[5].w, src0.x, src1.x, src0.0 3: src0.w = temp[5] FRC temp[6].w, src0.w 4: src0.w = temp[6] REPL_ALPHA temp[7].x SIN, src0.w 5: src0.xyz = temp[7] MAD temp[3].x, src0.H__, src0.x__, src0.H__ 6: 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: MAD temp[1].yz, src0._00, src0.111, src0.000 MAD temp[0].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[0].x, src0.w__, src0.x__, src0.0__ 2: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[1].w, src0.x, src1.x, src0.0 3: src0.w = temp[1] FRC temp[1].w, src0.w 4: src0.w = temp[1] REPL_ALPHA temp[0].x SIN, src0.w 5: src0.xyz = temp[0] MAD temp[1].x, src0.H__, src0.x__, src0.H__ 6: src0.xyz = temp[1], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 R500 Fragment Program: -------- 0 0:CMN_INST 0x00007000:ALU wmask: AGB omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 1 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020100:Addr0: 0c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 2 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00080010:MAD dest:1 alp_A_src:0 R 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 3 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 4 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 5 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00900494:rgb_A_src:0 H/0/0 0 rgb_B_src:0 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00494010:MAD dest:1 rgb_C_src:0 H/0/0 0 alp_C_src:0 R 0 6 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..4], LOCAL IMM[0] FLT32 { 16.0000, 0.0000, 0.3827, 1.0000} IMM[1] FLT32 { 0.7071, 2.0000, 0.9239, 3.0000} IMM[2] FLT32 { 4.0000, 5.0000, 6.0000, 7.0000} IMM[3] FLT32 { 8.0000, -0.3827, 9.0000, -0.7071} IMM[4] FLT32 { 10.0000, -0.9239, 11.0000, -1.0000} IMM[5] FLT32 { 12.0000, -0.9239, 13.0000, 14.0000} IMM[6] FLT32 { 15.0000, 0.5000, 0.0000, 0.0000} 0: MUL TEMP[0].xy, IMM[0].xxxx, IN[0].xyyy 1: FLR TEMP[1].x, TEMP[0].xxxx 2: TRUNC TEMP[1].x, TEMP[1].xxxx 3: FLR TEMP[2].x, TEMP[0].yyyy 4: TRUNC TEMP[2].x, TEMP[2].xxxx 5: FLR TEMP[3].xy, TEMP[0].xyyy 6: ADD TEMP[0].xy, TEMP[0].xyyy, -TEMP[3].xyyy 7: MOV TEMP[3].xy, IMM[0].yyyy 8: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[0].yyyy 9: IF TEMP[4].xxxx :0 10: MUL TEMP[3].x, IMM[0].zzzz, TEMP[0].xxxx 11: ELSE :0 12: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[0].wwww 13: IF TEMP[4].xxxx :0 14: LRP TEMP[3].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[0].zzzz 15: ELSE :0 16: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[1].yyyy 17: IF TEMP[4].xxxx :0 18: LRP TEMP[3].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[1].xxxx 19: ELSE :0 20: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[1].wwww 21: IF TEMP[4].xxxx :0 22: LRP TEMP[3].x, TEMP[0].xxxx, IMM[0].wwww, IMM[1].zzzz 23: ELSE :0 24: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[2].xxxx 25: IF TEMP[4].xxxx :0 26: LRP TEMP[3].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[0].wwww 27: ELSE :0 28: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[2].yyyy 29: IF TEMP[4].xxxx :0 30: LRP TEMP[3].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[1].zzzz 31: ELSE :0 32: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[2].zzzz 33: IF TEMP[4].xxxx :0 34: LRP TEMP[3].x, TEMP[0].xxxx, IMM[0].zzzz, IMM[1].xxxx 35: ELSE :0 36: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[2].wwww 37: IF TEMP[4].xxxx :0 38: ADD TEMP[4].x, IMM[0].wwww, -TEMP[0].xxxx 39: MUL TEMP[3].x, IMM[0].zzzz, TEMP[4].xxxx 40: ELSE :0 41: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[3].xxxx 42: IF TEMP[4].xxxx :0 43: MUL TEMP[3].x, IMM[3].yyyy, TEMP[0].xxxx 44: ELSE :0 45: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[3].zzzz 46: IF TEMP[4].xxxx :0 47: LRP TEMP[3].x, TEMP[0].xxxx, IMM[3].wwww, IMM[3].yyyy 48: ELSE :0 49: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[4].xxxx 50: IF TEMP[4].xxxx :0 51: LRP TEMP[3].x, TEMP[0].xxxx, IMM[4].yyyy, IMM[3].wwww 52: ELSE :0 53: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[4].zzzz 54: IF TEMP[4].xxxx :0 55: LRP TEMP[3].x, TEMP[0].xxxx, IMM[4].wwww, IMM[4].yyyy 56: ELSE :0 57: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[5].xxxx 58: IF TEMP[4].xxxx :0 59: LRP TEMP[3].x, TEMP[0].xxxx, IMM[5].yyyy, IMM[4].wwww 60: ELSE :0 61: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[5].zzzz 62: IF TEMP[4].xxxx :0 63: LRP TEMP[3].x, TEMP[0].xxxx, IMM[3].wwww, IMM[5].yyyy 64: ELSE :0 65: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[5].wwww 66: IF TEMP[4].xxxx :0 67: LRP TEMP[3].x, TEMP[0].xxxx, IMM[3].yyyy, IMM[3].wwww 68: ELSE :0 69: SEQ TEMP[4].x, TEMP[1].xxxx, IMM[6].xxxx 70: IF TEMP[4].xxxx :0 71: ADD TEMP[4].x, IMM[0].wwww, -TEMP[0].xxxx 72: MUL TEMP[3].x, IMM[3].yyyy, TEMP[4].xxxx 73: ELSE :0 74: SEQ TEMP[1].x, TEMP[1].xxxx, IMM[0].xxxx 75: IF TEMP[1].xxxx :0 76: MOV TEMP[3].x, IMM[0].yyyy 77: ENDIF 78: ENDIF 79: ENDIF 80: ENDIF 81: ENDIF 82: ENDIF 83: ENDIF 84: ENDIF 85: ENDIF 86: ENDIF 87: ENDIF 88: ENDIF 89: ENDIF 90: ENDIF 91: ENDIF 92: ENDIF 93: ENDIF 94: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[0].yyyy 95: IF TEMP[1].xxxx :0 96: MUL TEMP[1].x, IMM[0].zzzz, TEMP[0].yyyy 97: MOV TEMP[3].y, TEMP[1].xxxx 98: ELSE :0 99: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[0].wwww 100: IF TEMP[1].xxxx :0 101: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].xxxx, IMM[0].zzzz 102: MOV TEMP[3].y, TEMP[1].xxxx 103: ELSE :0 104: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[1].yyyy 105: IF TEMP[1].xxxx :0 106: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].zzzz, IMM[1].xxxx 107: MOV TEMP[3].y, TEMP[1].xxxx 108: ELSE :0 109: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[1].wwww 110: IF TEMP[1].xxxx :0 111: LRP TEMP[1].x, TEMP[0].yyyy, IMM[0].wwww, IMM[1].zzzz 112: MOV TEMP[3].y, TEMP[1].xxxx 113: ELSE :0 114: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].xxxx 115: IF TEMP[1].xxxx :0 116: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].zzzz, IMM[0].wwww 117: MOV TEMP[3].y, TEMP[1].xxxx 118: ELSE :0 119: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].yyyy 120: IF TEMP[1].xxxx :0 121: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].xxxx, IMM[1].zzzz 122: MOV TEMP[3].y, TEMP[1].xxxx 123: ELSE :0 124: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].zzzz 125: IF TEMP[1].xxxx :0 126: LRP TEMP[1].x, TEMP[0].yyyy, IMM[0].zzzz, IMM[1].xxxx 127: MOV TEMP[3].y, TEMP[1].xxxx 128: ELSE :0 129: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].wwww 130: IF TEMP[1].xxxx :0 131: ADD TEMP[1].x, IMM[0].wwww, -TEMP[0].yyyy 132: MUL TEMP[1].x, IMM[0].zzzz, TEMP[1].xxxx 133: MOV TEMP[3].y, TEMP[1].xxxx 134: ELSE :0 135: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[3].xxxx 136: IF TEMP[1].xxxx :0 137: MUL TEMP[1].x, IMM[3].yyyy, TEMP[0].yyyy 138: MOV TEMP[3].y, TEMP[1].xxxx 139: ELSE :0 140: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[3].zzzz 141: IF TEMP[1].xxxx :0 142: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].wwww, IMM[3].yyyy 143: MOV TEMP[3].y, TEMP[1].xxxx 144: ELSE :0 145: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[4].xxxx 146: IF TEMP[1].xxxx :0 147: LRP TEMP[1].x, TEMP[0].yyyy, IMM[4].yyyy, IMM[3].wwww 148: MOV TEMP[3].y, TEMP[1].xxxx 149: ELSE :0 150: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[4].zzzz 151: IF TEMP[1].xxxx :0 152: LRP TEMP[1].x, TEMP[0].yyyy, IMM[4].wwww, IMM[4].yyyy 153: MOV TEMP[3].y, TEMP[1].xxxx 154: ELSE :0 155: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].xxxx 156: IF TEMP[1].xxxx :0 157: LRP TEMP[1].x, TEMP[0].yyyy, IMM[5].yyyy, IMM[4].wwww 158: MOV TEMP[3].y, TEMP[1].xxxx 159: ELSE :0 160: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].zzzz 161: IF TEMP[1].xxxx :0 162: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].wwww, IMM[5].yyyy 163: MOV TEMP[3].y, TEMP[1].xxxx 164: ELSE :0 165: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].wwww 166: IF TEMP[1].xxxx :0 167: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].yyyy, IMM[3].wwww 168: MOV TEMP[3].y, TEMP[1].xxxx 169: ELSE :0 170: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[6].xxxx 171: IF TEMP[1].xxxx :0 172: ADD TEMP[0].x, IMM[0].wwww, -TEMP[0].yyyy 173: MUL TEMP[0].x, IMM[3].yyyy, TEMP[0].xxxx 174: MOV TEMP[3].y, TEMP[0].xxxx 175: ELSE :0 176: SEQ TEMP[0].x, TEMP[2].xxxx, IMM[0].xxxx 177: IF TEMP[0].xxxx :0 178: MOV TEMP[3].y, IMM[0].yyyy 179: ENDIF 180: ENDIF 181: ENDIF 182: ENDIF 183: ENDIF 184: ENDIF 185: ENDIF 186: ENDIF 187: ENDIF 188: ENDIF 189: ENDIF 190: ENDIF 191: ENDIF 192: ENDIF 193: ENDIF 194: ENDIF 195: ENDIF 196: MOV TEMP[0].zw, IMM[0].wwyw 197: MAD TEMP[0].xy, IMM[6].yyyy, TEMP[3].xyyy, IMM[6].yyyy 198: MOV OUT[0], TEMP[0] 199: END Fragment Program: before compilation # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SEQ temp[4].x, temp[1].xxxx, const[0].yyyy; 9: IF temp[4].xxxx; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SEQ temp[4].x, temp[1].xxxx, const[0].wwww; 13: IF temp[4].xxxx; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SEQ temp[4].x, temp[1].xxxx, const[1].yyyy; 17: IF temp[4].xxxx; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SEQ temp[4].x, temp[1].xxxx, const[1].wwww; 21: IF temp[4].xxxx; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SEQ temp[4].x, temp[1].xxxx, const[2].xxxx; 25: IF temp[4].xxxx; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SEQ temp[4].x, temp[1].xxxx, const[2].yyyy; 29: IF temp[4].xxxx; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SEQ temp[4].x, temp[1].xxxx, const[2].zzzz; 33: IF temp[4].xxxx; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SEQ temp[4].x, temp[1].xxxx, const[2].wwww; 37: IF temp[4].xxxx; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SEQ temp[4].x, temp[1].xxxx, const[3].xxxx; 42: IF temp[4].xxxx; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SEQ temp[4].x, temp[1].xxxx, const[3].zzzz; 46: IF temp[4].xxxx; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SEQ temp[4].x, temp[1].xxxx, const[4].xxxx; 50: IF temp[4].xxxx; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SEQ temp[4].x, temp[1].xxxx, const[4].zzzz; 54: IF temp[4].xxxx; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SEQ temp[4].x, temp[1].xxxx, const[5].xxxx; 58: IF temp[4].xxxx; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SEQ temp[4].x, temp[1].xxxx, const[5].zzzz; 62: IF temp[4].xxxx; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SEQ temp[4].x, temp[1].xxxx, const[5].wwww; 66: IF temp[4].xxxx; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SEQ temp[4].x, temp[1].xxxx, const[6].xxxx; 70: IF temp[4].xxxx; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 75: IF temp[1].xxxx; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 95: IF temp[1].xxxx; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 100: IF temp[1].xxxx; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 105: IF temp[1].xxxx; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 110: IF temp[1].xxxx; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 115: IF temp[1].xxxx; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 120: IF temp[1].xxxx; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 125: IF temp[1].xxxx; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 130: IF temp[1].xxxx; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 136: IF temp[1].xxxx; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 141: IF temp[1].xxxx; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 146: IF temp[1].xxxx; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 151: IF temp[1].xxxx; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 156: IF temp[1].xxxx; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 161: IF temp[1].xxxx; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 166: IF temp[1].xxxx; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 171: IF temp[1].xxxx; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SEQ temp[0].x, temp[2].xxxx, const[0].xxxx; 177: IF temp[0].xxxx; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SEQ temp[4].x, temp[1].xxxx, const[0].yyyy; 9: IF temp[4].xxxx; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SEQ temp[4].x, temp[1].xxxx, const[0].wwww; 13: IF temp[4].xxxx; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SEQ temp[4].x, temp[1].xxxx, const[1].yyyy; 17: IF temp[4].xxxx; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SEQ temp[4].x, temp[1].xxxx, const[1].wwww; 21: IF temp[4].xxxx; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SEQ temp[4].x, temp[1].xxxx, const[2].xxxx; 25: IF temp[4].xxxx; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SEQ temp[4].x, temp[1].xxxx, const[2].yyyy; 29: IF temp[4].xxxx; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SEQ temp[4].x, temp[1].xxxx, const[2].zzzz; 33: IF temp[4].xxxx; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SEQ temp[4].x, temp[1].xxxx, const[2].wwww; 37: IF temp[4].xxxx; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SEQ temp[4].x, temp[1].xxxx, const[3].xxxx; 42: IF temp[4].xxxx; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SEQ temp[4].x, temp[1].xxxx, const[3].zzzz; 46: IF temp[4].xxxx; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SEQ temp[4].x, temp[1].xxxx, const[4].xxxx; 50: IF temp[4].xxxx; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SEQ temp[4].x, temp[1].xxxx, const[4].zzzz; 54: IF temp[4].xxxx; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SEQ temp[4].x, temp[1].xxxx, const[5].xxxx; 58: IF temp[4].xxxx; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SEQ temp[4].x, temp[1].xxxx, const[5].zzzz; 62: IF temp[4].xxxx; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SEQ temp[4].x, temp[1].xxxx, const[5].wwww; 66: IF temp[4].xxxx; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SEQ temp[4].x, temp[1].xxxx, const[6].xxxx; 70: IF temp[4].xxxx; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 75: IF temp[1].xxxx; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 95: IF temp[1].xxxx; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 100: IF temp[1].xxxx; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 105: IF temp[1].xxxx; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 110: IF temp[1].xxxx; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 115: IF temp[1].xxxx; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 120: IF temp[1].xxxx; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 125: IF temp[1].xxxx; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 130: IF temp[1].xxxx; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 136: IF temp[1].xxxx; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 141: IF temp[1].xxxx; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 146: IF temp[1].xxxx; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 151: IF temp[1].xxxx; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 156: IF temp[1].xxxx; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 161: IF temp[1].xxxx; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 166: IF temp[1].xxxx; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 171: IF temp[1].xxxx; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SEQ temp[0].x, temp[2].xxxx, const[0].xxxx; 177: IF temp[0].xxxx; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SEQ temp[4].x, temp[1].xxxx, const[0].yyyy; 9: IF temp[4].xxxx; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SEQ temp[4].x, temp[1].xxxx, const[0].wwww; 13: IF temp[4].xxxx; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SEQ temp[4].x, temp[1].xxxx, const[1].yyyy; 17: IF temp[4].xxxx; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SEQ temp[4].x, temp[1].xxxx, const[1].wwww; 21: IF temp[4].xxxx; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SEQ temp[4].x, temp[1].xxxx, const[2].xxxx; 25: IF temp[4].xxxx; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SEQ temp[4].x, temp[1].xxxx, const[2].yyyy; 29: IF temp[4].xxxx; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SEQ temp[4].x, temp[1].xxxx, const[2].zzzz; 33: IF temp[4].xxxx; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SEQ temp[4].x, temp[1].xxxx, const[2].wwww; 37: IF temp[4].xxxx; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SEQ temp[4].x, temp[1].xxxx, const[3].xxxx; 42: IF temp[4].xxxx; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SEQ temp[4].x, temp[1].xxxx, const[3].zzzz; 46: IF temp[4].xxxx; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SEQ temp[4].x, temp[1].xxxx, const[4].xxxx; 50: IF temp[4].xxxx; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SEQ temp[4].x, temp[1].xxxx, const[4].zzzz; 54: IF temp[4].xxxx; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SEQ temp[4].x, temp[1].xxxx, const[5].xxxx; 58: IF temp[4].xxxx; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SEQ temp[4].x, temp[1].xxxx, const[5].zzzz; 62: IF temp[4].xxxx; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SEQ temp[4].x, temp[1].xxxx, const[5].wwww; 66: IF temp[4].xxxx; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SEQ temp[4].x, temp[1].xxxx, const[6].xxxx; 70: IF temp[4].xxxx; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 75: IF temp[1].xxxx; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 95: IF temp[1].xxxx; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 100: IF temp[1].xxxx; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 105: IF temp[1].xxxx; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 110: IF temp[1].xxxx; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 115: IF temp[1].xxxx; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 120: IF temp[1].xxxx; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 125: IF temp[1].xxxx; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 130: IF temp[1].xxxx; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 136: IF temp[1].xxxx; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 141: IF temp[1].xxxx; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 146: IF temp[1].xxxx; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 151: IF temp[1].xxxx; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 156: IF temp[1].xxxx; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 161: IF temp[1].xxxx; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 166: IF temp[1].xxxx; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 171: IF temp[1].xxxx; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SEQ temp[0].x, temp[2].xxxx, const[0].xxxx; 177: IF temp[0].xxxx; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SEQ temp[4].x, temp[1].xxxx, const[0].yyyy; 9: IF temp[4].xxxx; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SEQ temp[4].x, temp[1].xxxx, const[0].wwww; 13: IF temp[4].xxxx; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SEQ temp[4].x, temp[1].xxxx, const[1].yyyy; 17: IF temp[4].xxxx; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SEQ temp[4].x, temp[1].xxxx, const[1].wwww; 21: IF temp[4].xxxx; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SEQ temp[4].x, temp[1].xxxx, const[2].xxxx; 25: IF temp[4].xxxx; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SEQ temp[4].x, temp[1].xxxx, const[2].yyyy; 29: IF temp[4].xxxx; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SEQ temp[4].x, temp[1].xxxx, const[2].zzzz; 33: IF temp[4].xxxx; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SEQ temp[4].x, temp[1].xxxx, const[2].wwww; 37: IF temp[4].xxxx; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SEQ temp[4].x, temp[1].xxxx, const[3].xxxx; 42: IF temp[4].xxxx; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SEQ temp[4].x, temp[1].xxxx, const[3].zzzz; 46: IF temp[4].xxxx; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SEQ temp[4].x, temp[1].xxxx, const[4].xxxx; 50: IF temp[4].xxxx; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SEQ temp[4].x, temp[1].xxxx, const[4].zzzz; 54: IF temp[4].xxxx; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SEQ temp[4].x, temp[1].xxxx, const[5].xxxx; 58: IF temp[4].xxxx; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SEQ temp[4].x, temp[1].xxxx, const[5].zzzz; 62: IF temp[4].xxxx; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SEQ temp[4].x, temp[1].xxxx, const[5].wwww; 66: IF temp[4].xxxx; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SEQ temp[4].x, temp[1].xxxx, const[6].xxxx; 70: IF temp[4].xxxx; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 75: IF temp[1].xxxx; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 95: IF temp[1].xxxx; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 100: IF temp[1].xxxx; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 105: IF temp[1].xxxx; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 110: IF temp[1].xxxx; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 115: IF temp[1].xxxx; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 120: IF temp[1].xxxx; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 125: IF temp[1].xxxx; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 130: IF temp[1].xxxx; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 136: IF temp[1].xxxx; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 141: IF temp[1].xxxx; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 146: IF temp[1].xxxx; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 151: IF temp[1].xxxx; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 156: IF temp[1].xxxx; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 161: IF temp[1].xxxx; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 166: IF temp[1].xxxx; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 171: IF temp[1].xxxx; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SEQ temp[0].x, temp[2].xxxx, const[0].xxxx; 177: IF temp[0].xxxx; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SEQ temp[4].x, temp[1].xxxx, const[0].yyyy; 9: IF temp[4].xxxx; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SEQ temp[4].x, temp[1].xxxx, const[0].wwww; 13: IF temp[4].xxxx; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SEQ temp[4].x, temp[1].xxxx, const[1].yyyy; 17: IF temp[4].xxxx; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SEQ temp[4].x, temp[1].xxxx, const[1].wwww; 21: IF temp[4].xxxx; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SEQ temp[4].x, temp[1].xxxx, const[2].xxxx; 25: IF temp[4].xxxx; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SEQ temp[4].x, temp[1].xxxx, const[2].yyyy; 29: IF temp[4].xxxx; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SEQ temp[4].x, temp[1].xxxx, const[2].zzzz; 33: IF temp[4].xxxx; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SEQ temp[4].x, temp[1].xxxx, const[2].wwww; 37: IF temp[4].xxxx; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SEQ temp[4].x, temp[1].xxxx, const[3].xxxx; 42: IF temp[4].xxxx; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SEQ temp[4].x, temp[1].xxxx, const[3].zzzz; 46: IF temp[4].xxxx; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SEQ temp[4].x, temp[1].xxxx, const[4].xxxx; 50: IF temp[4].xxxx; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SEQ temp[4].x, temp[1].xxxx, const[4].zzzz; 54: IF temp[4].xxxx; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SEQ temp[4].x, temp[1].xxxx, const[5].xxxx; 58: IF temp[4].xxxx; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SEQ temp[4].x, temp[1].xxxx, const[5].zzzz; 62: IF temp[4].xxxx; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SEQ temp[4].x, temp[1].xxxx, const[5].wwww; 66: IF temp[4].xxxx; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SEQ temp[4].x, temp[1].xxxx, const[6].xxxx; 70: IF temp[4].xxxx; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 75: IF temp[1].xxxx; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 95: IF temp[1].xxxx; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 100: IF temp[1].xxxx; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 105: IF temp[1].xxxx; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 110: IF temp[1].xxxx; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 115: IF temp[1].xxxx; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 120: IF temp[1].xxxx; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 125: IF temp[1].xxxx; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 130: IF temp[1].xxxx; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 136: IF temp[1].xxxx; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 141: IF temp[1].xxxx; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 146: IF temp[1].xxxx; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 151: IF temp[1].xxxx; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 156: IF temp[1].xxxx; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 161: IF temp[1].xxxx; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 166: IF temp[1].xxxx; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 171: IF temp[1].xxxx; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SEQ temp[0].x, temp[2].xxxx, const[0].xxxx; 177: IF temp[0].xxxx; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].xy, temp[0].xyyy; 6: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 7: MOV temp[3].xy, const[0].yyyy; 8: SUB none., temp[1].xxxx, const[0].yyyy; [aluresult = (x == 0)] 9: IF aluresult.x___; 10: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 11: ELSE; 12: SUB none., temp[1].xxxx, const[0].wwww; [aluresult = (x == 0)] 13: IF aluresult.x___; 14: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 15: ELSE; 16: SUB none., temp[1].xxxx, const[1].yyyy; [aluresult = (x == 0)] 17: IF aluresult.x___; 18: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 19: ELSE; 20: SUB none., temp[1].xxxx, const[1].wwww; [aluresult = (x == 0)] 21: IF aluresult.x___; 22: LRP temp[3].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 23: ELSE; 24: SUB none., temp[1].xxxx, const[2].xxxx; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: LRP temp[3].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 27: ELSE; 28: SUB none., temp[1].xxxx, const[2].yyyy; [aluresult = (x == 0)] 29: IF aluresult.x___; 30: LRP temp[3].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 31: ELSE; 32: SUB none., temp[1].xxxx, const[2].zzzz; [aluresult = (x == 0)] 33: IF aluresult.x___; 34: LRP temp[3].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 35: ELSE; 36: SUB none., temp[1].xxxx, const[2].wwww; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 39: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 40: ELSE; 41: SUB none., temp[1].xxxx, const[3].xxxx; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 44: ELSE; 45: SUB none., temp[1].xxxx, const[3].zzzz; [aluresult = (x == 0)] 46: IF aluresult.x___; 47: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 48: ELSE; 49: SUB none., temp[1].xxxx, const[4].xxxx; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: LRP temp[3].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 52: ELSE; 53: SUB none., temp[1].xxxx, const[4].zzzz; [aluresult = (x == 0)] 54: IF aluresult.x___; 55: LRP temp[3].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 56: ELSE; 57: SUB none., temp[1].xxxx, const[5].xxxx; [aluresult = (x == 0)] 58: IF aluresult.x___; 59: LRP temp[3].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 60: ELSE; 61: SUB none., temp[1].xxxx, const[5].zzzz; [aluresult = (x == 0)] 62: IF aluresult.x___; 63: LRP temp[3].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 64: ELSE; 65: SUB none., temp[1].xxxx, const[5].wwww; [aluresult = (x == 0)] 66: IF aluresult.x___; 67: LRP temp[3].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 68: ELSE; 69: SUB none., temp[1].xxxx, const[6].xxxx; [aluresult = (x == 0)] 70: IF aluresult.x___; 71: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 72: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 73: ELSE; 74: SUB none., temp[1].xxxx, const[0].xxxx; [aluresult = (x == 0)] 75: IF aluresult.x___; 76: MOV temp[3].x, const[0].yyyy; 77: ENDIF; 78: ENDIF; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: SUB none., temp[2].xxxx, const[0].yyyy; [aluresult = (x == 0)] 95: IF aluresult.x___; 96: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 97: MOV temp[3].y, temp[1].xxxx; 98: ELSE; 99: SUB none., temp[2].xxxx, const[0].wwww; [aluresult = (x == 0)] 100: IF aluresult.x___; 101: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 102: MOV temp[3].y, temp[1].xxxx; 103: ELSE; 104: SUB none., temp[2].xxxx, const[1].yyyy; [aluresult = (x == 0)] 105: IF aluresult.x___; 106: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 107: MOV temp[3].y, temp[1].xxxx; 108: ELSE; 109: SUB none., temp[2].xxxx, const[1].wwww; [aluresult = (x == 0)] 110: IF aluresult.x___; 111: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 112: MOV temp[3].y, temp[1].xxxx; 113: ELSE; 114: SUB none., temp[2].xxxx, const[2].xxxx; [aluresult = (x == 0)] 115: IF aluresult.x___; 116: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 117: MOV temp[3].y, temp[1].xxxx; 118: ELSE; 119: SUB none., temp[2].xxxx, const[2].yyyy; [aluresult = (x == 0)] 120: IF aluresult.x___; 121: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: SUB none., temp[2].xxxx, const[2].zzzz; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 127: MOV temp[3].y, temp[1].xxxx; 128: ELSE; 129: SUB none., temp[2].xxxx, const[2].wwww; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 132: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 133: MOV temp[3].y, temp[1].xxxx; 134: ELSE; 135: SUB none., temp[2].xxxx, const[3].xxxx; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 138: MOV temp[3].y, temp[1].xxxx; 139: ELSE; 140: SUB none., temp[2].xxxx, const[3].zzzz; [aluresult = (x == 0)] 141: IF aluresult.x___; 142: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 143: MOV temp[3].y, temp[1].xxxx; 144: ELSE; 145: SUB none., temp[2].xxxx, const[4].xxxx; [aluresult = (x == 0)] 146: IF aluresult.x___; 147: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 148: MOV temp[3].y, temp[1].xxxx; 149: ELSE; 150: SUB none., temp[2].xxxx, const[4].zzzz; [aluresult = (x == 0)] 151: IF aluresult.x___; 152: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 153: MOV temp[3].y, temp[1].xxxx; 154: ELSE; 155: SUB none., temp[2].xxxx, const[5].xxxx; [aluresult = (x == 0)] 156: IF aluresult.x___; 157: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: SUB none., temp[2].xxxx, const[5].zzzz; [aluresult = (x == 0)] 161: IF aluresult.x___; 162: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: SUB none., temp[2].xxxx, const[5].wwww; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 168: MOV temp[3].y, temp[1].xxxx; 169: ELSE; 170: SUB none., temp[2].xxxx, const[6].xxxx; [aluresult = (x == 0)] 171: IF aluresult.x___; 172: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 173: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 174: MOV temp[3].y, temp[0].xxxx; 175: ELSE; 176: SUB none., temp[2].xxxx, const[0].xxxx; [aluresult = (x == 0)] 177: IF aluresult.x___; 178: MOV temp[3].y, const[0].yyyy; 179: ENDIF; 180: ENDIF; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: MOV temp[0].zw, const[0].wwyw; 197: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 198: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xxxx, input[0].xyyy; 1: FRC temp[1].x, temp[0].xxxx; 2: ADD temp[1].x, temp[0].xxxx, -temp[1]; 3: FRC temp[5].x, |temp[1].xxxx|; 4: ADD temp[5].x, |temp[1].xxxx|, -temp[5]; 5: CMP temp[1].x, temp[1].xxxx, -temp[5], temp[5]; 6: FRC temp[2].x, temp[0].yyyy; 7: ADD temp[2].x, temp[0].yyyy, -temp[2]; 8: FRC temp[6].x, |temp[2].xxxx|; 9: ADD temp[6].x, |temp[2].xxxx|, -temp[6]; 10: CMP temp[2].x, temp[2].xxxx, -temp[6], temp[6]; 11: FRC temp[3].xy, temp[0].xyyy; 12: ADD temp[3].xy, temp[0].xyyy, -temp[3]; 13: ADD temp[0].xy, temp[0].xyyy, -temp[3].xyyy; 14: MOV temp[3].xy, const[0].yyyy; 15: ADD none., temp[1].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 16: IF aluresult.x___; 17: MUL temp[3].x, const[0].zzzz, temp[0].xxxx; 18: ELSE; 19: ADD none., temp[1].xxxx, -const[0].wwww; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[3].x, const[1].xxxx, -const[0].zzzz; 22: MAD temp[3].x, temp[0].xxxx, temp[3], const[0].zzzz; 23: ELSE; 24: ADD none., temp[1].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[3].x, const[1].zzzz, -const[1].xxxx; 27: MAD temp[3].x, temp[0].xxxx, temp[3], const[1].xxxx; 28: ELSE; 29: ADD none., temp[1].xxxx, -const[1].wwww; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[3].x, const[0].wwww, -const[1].zzzz; 32: MAD temp[3].x, temp[0].xxxx, temp[3], const[1].zzzz; 33: ELSE; 34: ADD none., temp[1].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[3].x, const[1].zzzz, -const[0].wwww; 37: MAD temp[3].x, temp[0].xxxx, temp[3], const[0].wwww; 38: ELSE; 39: ADD none., temp[1].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[3].x, const[1].xxxx, -const[1].zzzz; 42: MAD temp[3].x, temp[0].xxxx, temp[3], const[1].zzzz; 43: ELSE; 44: ADD none., temp[1].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[3].x, const[0].zzzz, -const[1].xxxx; 47: MAD temp[3].x, temp[0].xxxx, temp[3], const[1].xxxx; 48: ELSE; 49: ADD none., temp[1].xxxx, -const[2].wwww; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 52: MUL temp[3].x, const[0].zzzz, temp[4].xxxx; 53: ELSE; 54: ADD none., temp[1].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: MUL temp[3].x, const[3].yyyy, temp[0].xxxx; 57: ELSE; 58: ADD none., temp[1].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[3].x, const[3].wwww, -const[3].yyyy; 61: MAD temp[3].x, temp[0].xxxx, temp[3], const[3].yyyy; 62: ELSE; 63: ADD none., temp[1].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[3].x, const[4].yyyy, -const[3].wwww; 66: MAD temp[3].x, temp[0].xxxx, temp[3], const[3].wwww; 67: ELSE; 68: ADD none., temp[1].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[3].x, const[4].wwww, -const[4].yyyy; 71: MAD temp[3].x, temp[0].xxxx, temp[3], const[4].yyyy; 72: ELSE; 73: ADD none., temp[1].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[3].x, const[5].yyyy, -const[4].wwww; 76: MAD temp[3].x, temp[0].xxxx, temp[3], const[4].wwww; 77: ELSE; 78: ADD none., temp[1].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[3].x, const[3].wwww, -const[5].yyyy; 81: MAD temp[3].x, temp[0].xxxx, temp[3], const[5].yyyy; 82: ELSE; 83: ADD none., temp[1].xxxx, -const[5].wwww; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[3].x, const[3].yyyy, -const[3].wwww; 86: MAD temp[3].x, temp[0].xxxx, temp[3], const[3].wwww; 87: ELSE; 88: ADD none., temp[1].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[4].x, const[0].wwww, -temp[0].xxxx; 91: MUL temp[3].x, const[3].yyyy, temp[4].xxxx; 92: ELSE; 93: ADD none., temp[1].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: MOV temp[3].x, const[0].yyyy; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ADD none., temp[2].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 114: IF aluresult.x___; 115: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 116: MOV temp[3].y, temp[1].xxxx; 117: ELSE; 118: ADD none., temp[2].xxxx, -const[0].wwww; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[1].x, const[1].xxxx, -const[0].zzzz; 121: MAD temp[1].x, temp[0].yyyy, temp[1], const[0].zzzz; 122: MOV temp[3].y, temp[1].xxxx; 123: ELSE; 124: ADD none., temp[2].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: ADD temp[1].x, const[1].zzzz, -const[1].xxxx; 127: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].xxxx; 128: MOV temp[3].y, temp[1].xxxx; 129: ELSE; 130: ADD none., temp[2].xxxx, -const[1].wwww; [aluresult = (x == 0)] 131: IF aluresult.x___; 132: ADD temp[1].x, const[0].wwww, -const[1].zzzz; 133: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].zzzz; 134: MOV temp[3].y, temp[1].xxxx; 135: ELSE; 136: ADD none., temp[2].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 137: IF aluresult.x___; 138: ADD temp[1].x, const[1].zzzz, -const[0].wwww; 139: MAD temp[1].x, temp[0].yyyy, temp[1], const[0].wwww; 140: MOV temp[3].y, temp[1].xxxx; 141: ELSE; 142: ADD none., temp[2].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 143: IF aluresult.x___; 144: ADD temp[1].x, const[1].xxxx, -const[1].zzzz; 145: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].zzzz; 146: MOV temp[3].y, temp[1].xxxx; 147: ELSE; 148: ADD none., temp[2].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 149: IF aluresult.x___; 150: ADD temp[1].x, const[0].zzzz, -const[1].xxxx; 151: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].xxxx; 152: MOV temp[3].y, temp[1].xxxx; 153: ELSE; 154: ADD none., temp[2].xxxx, -const[2].wwww; [aluresult = (x == 0)] 155: IF aluresult.x___; 156: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 157: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 158: MOV temp[3].y, temp[1].xxxx; 159: ELSE; 160: ADD none., temp[2].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 161: IF aluresult.x___; 162: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 163: MOV temp[3].y, temp[1].xxxx; 164: ELSE; 165: ADD none., temp[2].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: ADD temp[1].x, const[3].wwww, -const[3].yyyy; 168: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].yyyy; 169: MOV temp[3].y, temp[1].xxxx; 170: ELSE; 171: ADD none., temp[2].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 172: IF aluresult.x___; 173: ADD temp[1].x, const[4].yyyy, -const[3].wwww; 174: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].wwww; 175: MOV temp[3].y, temp[1].xxxx; 176: ELSE; 177: ADD none., temp[2].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 178: IF aluresult.x___; 179: ADD temp[1].x, const[4].wwww, -const[4].yyyy; 180: MAD temp[1].x, temp[0].yyyy, temp[1], const[4].yyyy; 181: MOV temp[3].y, temp[1].xxxx; 182: ELSE; 183: ADD none., temp[2].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 184: IF aluresult.x___; 185: ADD temp[1].x, const[5].yyyy, -const[4].wwww; 186: MAD temp[1].x, temp[0].yyyy, temp[1], const[4].wwww; 187: MOV temp[3].y, temp[1].xxxx; 188: ELSE; 189: ADD none., temp[2].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 190: IF aluresult.x___; 191: ADD temp[1].x, const[3].wwww, -const[5].yyyy; 192: MAD temp[1].x, temp[0].yyyy, temp[1], const[5].yyyy; 193: MOV temp[3].y, temp[1].xxxx; 194: ELSE; 195: ADD none., temp[2].xxxx, -const[5].wwww; [aluresult = (x == 0)] 196: IF aluresult.x___; 197: ADD temp[1].x, const[3].yyyy, -const[3].wwww; 198: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].wwww; 199: MOV temp[3].y, temp[1].xxxx; 200: ELSE; 201: ADD none., temp[2].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 202: IF aluresult.x___; 203: ADD temp[0].x, const[0].wwww, -temp[0].yyyy; 204: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 205: MOV temp[3].y, temp[0].xxxx; 206: ELSE; 207: ADD none., temp[2].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 208: IF aluresult.x___; 209: MOV temp[3].y, const[0].yyyy; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: MOV temp[0].zw, const[0].wwyw; 228: MAD temp[0].xy, const[6].yyyy, temp[3].xyyy, const[6].yyyy; 229: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xx__, input[0].xy__; 1: FRC temp[1].x, temp[0].x___; 2: ADD temp[1].x, temp[0].x___, -temp[1].x___; 3: FRC temp[5].x, |temp[1].x___|; 4: ADD temp[5].x, |temp[1].x___|, -temp[5].x___; 5: CMP temp[1].x, temp[1].x___, -temp[5].x___, temp[5].x___; 6: FRC temp[2].x, temp[0].y___; 7: ADD temp[2].x, temp[0].y___, -temp[2].x___; 8: FRC temp[6].x, |temp[2].x___|; 9: ADD temp[6].x, |temp[2].x___|, -temp[6].x___; 10: CMP temp[2].x, temp[2].x___, -temp[6].x___, temp[6].x___; 11: FRC temp[3].xy, temp[0].xy__; 12: ADD temp[3].xy, temp[0].xy__, -temp[3].xy__; 13: ADD temp[0].xy, temp[0].xy__, -temp[3].xy__; 14: MOV temp[3].xy, const[0].yy__; 15: ADD none., temp[1].x___, -const[0].y___; [aluresult = (x == 0)] 16: IF aluresult.x___; 17: MUL temp[3].x, const[0].z___, temp[0].x___; 18: ELSE; 19: ADD none., temp[1].x___, -const[0].w___; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[3].x, const[1].x___, -const[0].z___; 22: MAD temp[3].x, temp[0].x___, temp[3].x___, const[0].z___; 23: ELSE; 24: ADD none., temp[1].x___, -const[1].y___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[3].x, const[1].z___, -const[1].x___; 27: MAD temp[3].x, temp[0].x___, temp[3].x___, const[1].x___; 28: ELSE; 29: ADD none., temp[1].x___, -const[1].w___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[3].x, const[0].w___, -const[1].z___; 32: MAD temp[3].x, temp[0].x___, temp[3].x___, const[1].z___; 33: ELSE; 34: ADD none., temp[1].x___, -const[2].x___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[3].x, const[1].z___, -const[0].w___; 37: MAD temp[3].x, temp[0].x___, temp[3].x___, const[0].w___; 38: ELSE; 39: ADD none., temp[1].x___, -const[2].y___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[3].x, const[1].x___, -const[1].z___; 42: MAD temp[3].x, temp[0].x___, temp[3].x___, const[1].z___; 43: ELSE; 44: ADD none., temp[1].x___, -const[2].z___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[3].x, const[0].z___, -const[1].x___; 47: MAD temp[3].x, temp[0].x___, temp[3].x___, const[1].x___; 48: ELSE; 49: ADD none., temp[1].x___, -const[2].w___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[4].x, const[0].w___, -temp[0].x___; 52: MUL temp[3].x, const[0].z___, temp[4].x___; 53: ELSE; 54: ADD none., temp[1].x___, -const[3].x___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: MUL temp[3].x, const[3].y___, temp[0].x___; 57: ELSE; 58: ADD none., temp[1].x___, -const[3].z___; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[3].x, const[3].w___, -const[3].y___; 61: MAD temp[3].x, temp[0].x___, temp[3].x___, const[3].y___; 62: ELSE; 63: ADD none., temp[1].x___, -const[4].x___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[3].x, const[4].y___, -const[3].w___; 66: MAD temp[3].x, temp[0].x___, temp[3].x___, const[3].w___; 67: ELSE; 68: ADD none., temp[1].x___, -const[4].z___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[3].x, const[4].w___, -const[4].y___; 71: MAD temp[3].x, temp[0].x___, temp[3].x___, const[4].y___; 72: ELSE; 73: ADD none., temp[1].x___, -const[5].x___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[3].x, const[5].y___, -const[4].w___; 76: MAD temp[3].x, temp[0].x___, temp[3].x___, const[4].w___; 77: ELSE; 78: ADD none., temp[1].x___, -const[5].z___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[3].x, const[3].w___, -const[5].y___; 81: MAD temp[3].x, temp[0].x___, temp[3].x___, const[5].y___; 82: ELSE; 83: ADD none., temp[1].x___, -const[5].w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[3].x, const[3].y___, -const[3].w___; 86: MAD temp[3].x, temp[0].x___, temp[3].x___, const[3].w___; 87: ELSE; 88: ADD none., temp[1].x___, -const[6].x___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[4].x, const[0].w___, -temp[0].x___; 91: MUL temp[3].x, const[3].y___, temp[4].x___; 92: ELSE; 93: ADD none., temp[1].x___, -const[0].x___; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: MOV temp[3].x, const[0].y___; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ADD none., temp[2].x___, -const[0].y___; [aluresult = (x == 0)] 114: IF aluresult.x___; 115: MUL temp[1].x, const[0].z___, temp[0].y___; 116: MOV temp[3].y, temp[1]._x__; 117: ELSE; 118: ADD none., temp[2].x___, -const[0].w___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[1].x, const[1].x___, -const[0].z___; 121: MAD temp[1].x, temp[0].y___, temp[1].x___, const[0].z___; 122: MOV temp[3].y, temp[1]._x__; 123: ELSE; 124: ADD none., temp[2].x___, -const[1].y___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: ADD temp[1].x, const[1].z___, -const[1].x___; 127: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].x___; 128: MOV temp[3].y, temp[1]._x__; 129: ELSE; 130: ADD none., temp[2].x___, -const[1].w___; [aluresult = (x == 0)] 131: IF aluresult.x___; 132: ADD temp[1].x, const[0].w___, -const[1].z___; 133: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].z___; 134: MOV temp[3].y, temp[1]._x__; 135: ELSE; 136: ADD none., temp[2].x___, -const[2].x___; [aluresult = (x == 0)] 137: IF aluresult.x___; 138: ADD temp[1].x, const[1].z___, -const[0].w___; 139: MAD temp[1].x, temp[0].y___, temp[1].x___, const[0].w___; 140: MOV temp[3].y, temp[1]._x__; 141: ELSE; 142: ADD none., temp[2].x___, -const[2].y___; [aluresult = (x == 0)] 143: IF aluresult.x___; 144: ADD temp[1].x, const[1].x___, -const[1].z___; 145: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].z___; 146: MOV temp[3].y, temp[1]._x__; 147: ELSE; 148: ADD none., temp[2].x___, -const[2].z___; [aluresult = (x == 0)] 149: IF aluresult.x___; 150: ADD temp[1].x, const[0].z___, -const[1].x___; 151: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].x___; 152: MOV temp[3].y, temp[1]._x__; 153: ELSE; 154: ADD none., temp[2].x___, -const[2].w___; [aluresult = (x == 0)] 155: IF aluresult.x___; 156: ADD temp[1].x, const[0].w___, -temp[0].y___; 157: MUL temp[1].x, const[0].z___, temp[1].x___; 158: MOV temp[3].y, temp[1]._x__; 159: ELSE; 160: ADD none., temp[2].x___, -const[3].x___; [aluresult = (x == 0)] 161: IF aluresult.x___; 162: MUL temp[1].x, const[3].y___, temp[0].y___; 163: MOV temp[3].y, temp[1]._x__; 164: ELSE; 165: ADD none., temp[2].x___, -const[3].z___; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: ADD temp[1].x, const[3].w___, -const[3].y___; 168: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].y___; 169: MOV temp[3].y, temp[1]._x__; 170: ELSE; 171: ADD none., temp[2].x___, -const[4].x___; [aluresult = (x == 0)] 172: IF aluresult.x___; 173: ADD temp[1].x, const[4].y___, -const[3].w___; 174: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].w___; 175: MOV temp[3].y, temp[1]._x__; 176: ELSE; 177: ADD none., temp[2].x___, -const[4].z___; [aluresult = (x == 0)] 178: IF aluresult.x___; 179: ADD temp[1].x, const[4].w___, -const[4].y___; 180: MAD temp[1].x, temp[0].y___, temp[1].x___, const[4].y___; 181: MOV temp[3].y, temp[1]._x__; 182: ELSE; 183: ADD none., temp[2].x___, -const[5].x___; [aluresult = (x == 0)] 184: IF aluresult.x___; 185: ADD temp[1].x, const[5].y___, -const[4].w___; 186: MAD temp[1].x, temp[0].y___, temp[1].x___, const[4].w___; 187: MOV temp[3].y, temp[1]._x__; 188: ELSE; 189: ADD none., temp[2].x___, -const[5].z___; [aluresult = (x == 0)] 190: IF aluresult.x___; 191: ADD temp[1].x, const[3].w___, -const[5].y___; 192: MAD temp[1].x, temp[0].y___, temp[1].x___, const[5].y___; 193: MOV temp[3].y, temp[1]._x__; 194: ELSE; 195: ADD none., temp[2].x___, -const[5].w___; [aluresult = (x == 0)] 196: IF aluresult.x___; 197: ADD temp[1].x, const[3].y___, -const[3].w___; 198: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].w___; 199: MOV temp[3].y, temp[1]._x__; 200: ELSE; 201: ADD none., temp[2].x___, -const[6].x___; [aluresult = (x == 0)] 202: IF aluresult.x___; 203: ADD temp[0].x, const[0].w___, -temp[0].y___; 204: MUL temp[0].x, const[3].y___, temp[0].x___; 205: MOV temp[3].y, temp[0]._x__; 206: ELSE; 207: ADD none., temp[2].x___, -const[0].x___; [aluresult = (x == 0)] 208: IF aluresult.x___; 209: MOV temp[3].y, const[0]._y__; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: MOV temp[0].zw, const[0].__yw; 228: MAD temp[0].xy, const[6].yy__, temp[3].xy__, const[6].yy__; 229: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MUL temp[7].xy, const[0].xx__, input[0].xy__; 1: FRC temp[8].x, temp[7].x___; 2: ADD temp[9].x, temp[7].x___, -temp[8].x___; 3: FRC temp[10].x, |temp[9].x___|; 4: ADD temp[11].x, |temp[9].x___|, -temp[10].x___; 5: CMP temp[12].x, temp[9].x___, -temp[11].x___, temp[11].x___; 6: FRC temp[13].x, temp[7].y___; 7: ADD temp[14].x, temp[7].y___, -temp[13].x___; 8: FRC temp[15].x, |temp[14].x___|; 9: ADD temp[16].x, |temp[14].x___|, -temp[15].x___; 10: CMP temp[17].x, temp[14].x___, -temp[16].x___, temp[16].x___; 11: FRC temp[18].xy, temp[7].xy__; 12: ADD temp[19].xy, temp[7].xy__, -temp[18].xy__; 13: ADD temp[20].xy, temp[7].xy__, -temp[19].xy__; 14: MOV temp[21].xy, const[0].yy__; 15: ADD none., temp[12].x___, -const[0].y___; [aluresult = (x == 0)] 16: IF aluresult.x___; 17: MUL temp[21].x, const[0].z___, temp[20].x___; 18: ELSE; 19: ADD none., temp[12].x___, -const[0].w___; [aluresult = (x == 0)] 20: IF aluresult.x___; 21: ADD temp[22].x, const[1].x___, -const[0].z___; 22: MAD temp[21].x, temp[20].x___, temp[22].x___, const[0].z___; 23: ELSE; 24: ADD none., temp[12].x___, -const[1].y___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[23].x, const[1].z___, -const[1].x___; 27: MAD temp[21].x, temp[20].x___, temp[23].x___, const[1].x___; 28: ELSE; 29: ADD none., temp[12].x___, -const[1].w___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[24].x, const[0].w___, -const[1].z___; 32: MAD temp[21].x, temp[20].x___, temp[24].x___, const[1].z___; 33: ELSE; 34: ADD none., temp[12].x___, -const[2].x___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[25].x, const[1].z___, -const[0].w___; 37: MAD temp[21].x, temp[20].x___, temp[25].x___, const[0].w___; 38: ELSE; 39: ADD none., temp[12].x___, -const[2].y___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[26].x, const[1].x___, -const[1].z___; 42: MAD temp[21].x, temp[20].x___, temp[26].x___, const[1].z___; 43: ELSE; 44: ADD none., temp[12].x___, -const[2].z___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[27].x, const[0].z___, -const[1].x___; 47: MAD temp[21].x, temp[20].x___, temp[27].x___, const[1].x___; 48: ELSE; 49: ADD none., temp[12].x___, -const[2].w___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[28].x, const[0].w___, -temp[20].x___; 52: MUL temp[21].x, const[0].z___, temp[28].x___; 53: ELSE; 54: ADD none., temp[12].x___, -const[3].x___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: MUL temp[21].x, const[3].y___, temp[20].x___; 57: ELSE; 58: ADD none., temp[12].x___, -const[3].z___; [aluresult = (x == 0)] 59: IF aluresult.x___; 60: ADD temp[29].x, const[3].w___, -const[3].y___; 61: MAD temp[21].x, temp[20].x___, temp[29].x___, const[3].y___; 62: ELSE; 63: ADD none., temp[12].x___, -const[4].x___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[30].x, const[4].y___, -const[3].w___; 66: MAD temp[21].x, temp[20].x___, temp[30].x___, const[3].w___; 67: ELSE; 68: ADD none., temp[12].x___, -const[4].z___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[31].x, const[4].w___, -const[4].y___; 71: MAD temp[21].x, temp[20].x___, temp[31].x___, const[4].y___; 72: ELSE; 73: ADD none., temp[12].x___, -const[5].x___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[32].x, const[5].y___, -const[4].w___; 76: MAD temp[21].x, temp[20].x___, temp[32].x___, const[4].w___; 77: ELSE; 78: ADD none., temp[12].x___, -const[5].z___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[33].x, const[3].w___, -const[5].y___; 81: MAD temp[21].x, temp[20].x___, temp[33].x___, const[5].y___; 82: ELSE; 83: ADD none., temp[12].x___, -const[5].w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[34].x, const[3].y___, -const[3].w___; 86: MAD temp[21].x, temp[20].x___, temp[34].x___, const[3].w___; 87: ELSE; 88: ADD none., temp[12].x___, -const[6].x___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[35].x, const[0].w___, -temp[20].x___; 91: MUL temp[21].x, const[3].y___, temp[35].x___; 92: ELSE; 93: ADD none., temp[12].x___, -const[0].x___; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: MOV temp[21].x, const[0].y___; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ADD none., temp[17].x___, -const[0].y___; [aluresult = (x == 0)] 114: IF aluresult.x___; 115: MUL temp[36].x, const[0].z___, temp[20].y___; 116: MOV temp[21].y, temp[36]._x__; 117: ELSE; 118: ADD none., temp[17].x___, -const[0].w___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[37].x, const[1].x___, -const[0].z___; 121: MAD temp[38].x, temp[20].y___, temp[37].x___, const[0].z___; 122: MOV temp[21].y, temp[38]._x__; 123: ELSE; 124: ADD none., temp[17].x___, -const[1].y___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: ADD temp[39].x, const[1].z___, -const[1].x___; 127: MAD temp[40].x, temp[20].y___, temp[39].x___, const[1].x___; 128: MOV temp[21].y, temp[40]._x__; 129: ELSE; 130: ADD none., temp[17].x___, -const[1].w___; [aluresult = (x == 0)] 131: IF aluresult.x___; 132: ADD temp[41].x, const[0].w___, -const[1].z___; 133: MAD temp[42].x, temp[20].y___, temp[41].x___, const[1].z___; 134: MOV temp[21].y, temp[42]._x__; 135: ELSE; 136: ADD none., temp[17].x___, -const[2].x___; [aluresult = (x == 0)] 137: IF aluresult.x___; 138: ADD temp[43].x, const[1].z___, -const[0].w___; 139: MAD temp[44].x, temp[20].y___, temp[43].x___, const[0].w___; 140: MOV temp[21].y, temp[44]._x__; 141: ELSE; 142: ADD none., temp[17].x___, -const[2].y___; [aluresult = (x == 0)] 143: IF aluresult.x___; 144: ADD temp[45].x, const[1].x___, -const[1].z___; 145: MAD temp[46].x, temp[20].y___, temp[45].x___, const[1].z___; 146: MOV temp[21].y, temp[46]._x__; 147: ELSE; 148: ADD none., temp[17].x___, -const[2].z___; [aluresult = (x == 0)] 149: IF aluresult.x___; 150: ADD temp[47].x, const[0].z___, -const[1].x___; 151: MAD temp[48].x, temp[20].y___, temp[47].x___, const[1].x___; 152: MOV temp[21].y, temp[48]._x__; 153: ELSE; 154: ADD none., temp[17].x___, -const[2].w___; [aluresult = (x == 0)] 155: IF aluresult.x___; 156: ADD temp[49].x, const[0].w___, -temp[20].y___; 157: MUL temp[50].x, const[0].z___, temp[49].x___; 158: MOV temp[21].y, temp[50]._x__; 159: ELSE; 160: ADD none., temp[17].x___, -const[3].x___; [aluresult = (x == 0)] 161: IF aluresult.x___; 162: MUL temp[51].x, const[3].y___, temp[20].y___; 163: MOV temp[21].y, temp[51]._x__; 164: ELSE; 165: ADD none., temp[17].x___, -const[3].z___; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: ADD temp[52].x, const[3].w___, -const[3].y___; 168: MAD temp[53].x, temp[20].y___, temp[52].x___, const[3].y___; 169: MOV temp[21].y, temp[53]._x__; 170: ELSE; 171: ADD none., temp[17].x___, -const[4].x___; [aluresult = (x == 0)] 172: IF aluresult.x___; 173: ADD temp[54].x, const[4].y___, -const[3].w___; 174: MAD temp[55].x, temp[20].y___, temp[54].x___, const[3].w___; 175: MOV temp[21].y, temp[55]._x__; 176: ELSE; 177: ADD none., temp[17].x___, -const[4].z___; [aluresult = (x == 0)] 178: IF aluresult.x___; 179: ADD temp[56].x, const[4].w___, -const[4].y___; 180: MAD temp[57].x, temp[20].y___, temp[56].x___, const[4].y___; 181: MOV temp[21].y, temp[57]._x__; 182: ELSE; 183: ADD none., temp[17].x___, -const[5].x___; [aluresult = (x == 0)] 184: IF aluresult.x___; 185: ADD temp[58].x, const[5].y___, -const[4].w___; 186: MAD temp[59].x, temp[20].y___, temp[58].x___, const[4].w___; 187: MOV temp[21].y, temp[59]._x__; 188: ELSE; 189: ADD none., temp[17].x___, -const[5].z___; [aluresult = (x == 0)] 190: IF aluresult.x___; 191: ADD temp[60].x, const[3].w___, -const[5].y___; 192: MAD temp[61].x, temp[20].y___, temp[60].x___, const[5].y___; 193: MOV temp[21].y, temp[61]._x__; 194: ELSE; 195: ADD none., temp[17].x___, -const[5].w___; [aluresult = (x == 0)] 196: IF aluresult.x___; 197: ADD temp[62].x, const[3].y___, -const[3].w___; 198: MAD temp[63].x, temp[20].y___, temp[62].x___, const[3].w___; 199: MOV temp[21].y, temp[63]._x__; 200: ELSE; 201: ADD none., temp[17].x___, -const[6].x___; [aluresult = (x == 0)] 202: IF aluresult.x___; 203: ADD temp[64].x, const[0].w___, -temp[20].y___; 204: MUL temp[65].x, const[3].y___, temp[64].x___; 205: MOV temp[21].y, temp[65]._x__; 206: ELSE; 207: ADD none., temp[17].x___, -const[0].x___; [aluresult = (x == 0)] 208: IF aluresult.x___; 209: MOV temp[21].y, const[0]._y__; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: MOV temp[66].zw, const[0].__yw; 228: MAD temp[66].xy, const[6].yy__, temp[21].xy__, const[6].yy__; 229: MOV output[0], temp[66]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[7].xy, const[0].xx__, input[0].xy__; 1: FRC temp[8].x, temp[7].x___; 2: FRC temp[10].x, |(temp[7] - temp[8]).x___|; 3: ADD temp[11].x, |(temp[7] - temp[8]).x___|, -temp[10].x___; 4: CMP temp[12].x, (temp[7] - temp[8]).x___, -temp[11].x___, temp[11].x___; 5: FRC temp[13].x, temp[7].y___; 6: ADD temp[14].x, temp[7].y___, -temp[13].x___; 7: FRC temp[15].x, |temp[14].x___|; 8: ADD temp[16].x, |temp[14].x___|, -temp[15].x___; 9: CMP temp[17].x, temp[14].x___, -temp[16].x___, temp[16].x___; 10: FRC temp[18].xy, temp[7].xy__; 11: ADD temp[20].xy, temp[7].xy__, -(temp[7] - temp[18]).xy__; 12: MOV temp[21].xy, none.00__; 13: MOV none., temp[12].x___; [aluresult = (x == 0)] 14: IF aluresult.x___; 15: MUL temp[21].x, const[0].z___, temp[20].x___; 16: ELSE; 17: ADD none., temp[12].x___, -none.1___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[22].x, const[1].x___, -const[0].z___; 20: MAD temp[21].x, temp[20].x___, temp[22].x___, const[0].z___; 21: ELSE; 22: ADD none., temp[12].x___, -const[1].y___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[23].x, const[1].z___, -const[1].x___; 25: MAD temp[21].x, temp[20].x___, temp[23].x___, const[1].x___; 26: ELSE; 27: ADD none., temp[12].x___, -const[1].w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: MAD temp[21].x, temp[20].x___, (1 - const[1]).z___, const[1].z___; 30: ELSE; 31: ADD none., temp[12].x___, -const[2].x___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[25].x, const[1].z___, -none.1___; 34: MAD temp[21].x, temp[20].x___, temp[25].x___, none.1___; 35: ELSE; 36: ADD none., temp[12].x___, -const[2].y___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[26].x, const[1].x___, -const[1].z___; 39: MAD temp[21].x, temp[20].x___, temp[26].x___, const[1].z___; 40: ELSE; 41: ADD none., temp[12].x___, -const[2].z___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[27].x, const[0].z___, -const[1].x___; 44: MAD temp[21].x, temp[20].x___, temp[27].x___, const[1].x___; 45: ELSE; 46: ADD none., temp[12].x___, -const[2].w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: MUL temp[21].x, const[0].z___, (1 - temp[20]).x___; 49: ELSE; 50: ADD none., temp[12].x___, -const[3].x___; [aluresult = (x == 0)] 51: IF aluresult.x___; 52: MUL temp[21].x, const[3].y___, temp[20].x___; 53: ELSE; 54: ADD none., temp[12].x___, -const[3].z___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[29].x, const[3].w___, -const[3].y___; 57: MAD temp[21].x, temp[20].x___, temp[29].x___, const[3].y___; 58: ELSE; 59: ADD none., temp[12].x___, -const[4].x___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[30].x, const[4].y___, -const[3].w___; 62: MAD temp[21].x, temp[20].x___, temp[30].x___, const[3].w___; 63: ELSE; 64: ADD none., temp[12].x___, -const[4].z___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: MAD temp[21].x, temp[20].x___, (1 - const[4]).y___, const[4].y___; 67: ELSE; 68: ADD none., temp[12].x___, -const[5].x___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[32].x, const[5].y___, none.1-_-_-_; 71: MAD temp[21].x, temp[20].x___, temp[32].x___, none.-1___; 72: ELSE; 73: ADD none., temp[12].x___, -const[5].z___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[33].x, const[3].w___, -const[5].y___; 76: MAD temp[21].x, temp[20].x___, temp[33].x___, const[5].y___; 77: ELSE; 78: ADD none., temp[12].x___, -const[5].w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[34].x, const[3].y___, -const[3].w___; 81: MAD temp[21].x, temp[20].x___, temp[34].x___, const[3].w___; 82: ELSE; 83: ADD none., temp[12].x___, -const[6].x___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: MUL temp[21].x, const[3].y___, (1 - temp[20]).x___; 86: ELSE; 87: ADD none., temp[12].x___, -const[0].x___; [aluresult = (x == 0)] 88: IF aluresult.x___; 89: MOV temp[21].x, none.0___; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: MOV none., temp[17].x___; [aluresult = (x == 0)] 108: IF aluresult.x___; 109: MUL temp[36].x, const[0].z___, temp[20].y___; 110: MOV temp[21].y, temp[36]._x__; 111: ELSE; 112: ADD none., temp[17].x___, -none.1___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: ADD temp[37].x, const[1].x___, -const[0].z___; 115: MAD temp[38].x, temp[20].y___, temp[37].x___, const[0].z___; 116: MOV temp[21].y, temp[38]._x__; 117: ELSE; 118: ADD none., temp[17].x___, -const[1].y___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[39].x, const[1].z___, -const[1].x___; 121: MAD temp[40].x, temp[20].y___, temp[39].x___, const[1].x___; 122: MOV temp[21].y, temp[40]._x__; 123: ELSE; 124: ADD none., temp[17].x___, -const[1].w___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: MAD temp[42].x, temp[20].y___, (1 - const[1]).z___, const[1].z___; 127: MOV temp[21].y, temp[42]._x__; 128: ELSE; 129: ADD none., temp[17].x___, -const[2].x___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[43].x, const[1].z___, -none.1___; 132: MAD temp[44].x, temp[20].y___, temp[43].x___, none.1___; 133: MOV temp[21].y, temp[44]._x__; 134: ELSE; 135: ADD none., temp[17].x___, -const[2].y___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[45].x, const[1].x___, -const[1].z___; 138: MAD temp[46].x, temp[20].y___, temp[45].x___, const[1].z___; 139: MOV temp[21].y, temp[46]._x__; 140: ELSE; 141: ADD none., temp[17].x___, -const[2].z___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[47].x, const[0].z___, -const[1].x___; 144: MAD temp[48].x, temp[20].y___, temp[47].x___, const[1].x___; 145: MOV temp[21].y, temp[48]._x__; 146: ELSE; 147: ADD none., temp[17].x___, -const[2].w___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: MUL temp[50].x, const[0].z___, (1 - temp[20]).y___; 150: MOV temp[21].y, temp[50]._x__; 151: ELSE; 152: ADD none., temp[17].x___, -const[3].x___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[51].x, const[3].y___, temp[20].y___; 155: MOV temp[21].y, temp[51]._x__; 156: ELSE; 157: ADD none., temp[17].x___, -const[3].z___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: ADD temp[52].x, const[3].w___, -const[3].y___; 160: MAD temp[53].x, temp[20].y___, temp[52].x___, const[3].y___; 161: MOV temp[21].y, temp[53]._x__; 162: ELSE; 163: ADD none., temp[17].x___, -const[4].x___; [aluresult = (x == 0)] 164: IF aluresult.x___; 165: ADD temp[54].x, const[4].y___, -const[3].w___; 166: MAD temp[55].x, temp[20].y___, temp[54].x___, const[3].w___; 167: MOV temp[21].y, temp[55]._x__; 168: ELSE; 169: ADD none., temp[17].x___, -const[4].z___; [aluresult = (x == 0)] 170: IF aluresult.x___; 171: MAD temp[57].x, temp[20].y___, (1 - const[4]).y___, const[4].y___; 172: MOV temp[21].y, temp[57]._x__; 173: ELSE; 174: ADD none., temp[17].x___, -const[5].x___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: ADD temp[58].x, const[5].y___, none.1-_-_-_; 177: MAD temp[59].x, temp[20].y___, temp[58].x___, none.-1___; 178: MOV temp[21].y, temp[59]._x__; 179: ELSE; 180: ADD none., temp[17].x___, -const[5].z___; [aluresult = (x == 0)] 181: IF aluresult.x___; 182: ADD temp[60].x, const[3].w___, -const[5].y___; 183: MAD temp[61].x, temp[20].y___, temp[60].x___, const[5].y___; 184: MOV temp[21].y, temp[61]._x__; 185: ELSE; 186: ADD none., temp[17].x___, -const[5].w___; [aluresult = (x == 0)] 187: IF aluresult.x___; 188: ADD temp[62].x, const[3].y___, -const[3].w___; 189: MAD temp[63].x, temp[20].y___, temp[62].x___, const[3].w___; 190: MOV temp[21].y, temp[63]._x__; 191: ELSE; 192: ADD none., temp[17].x___, -const[6].x___; [aluresult = (x == 0)] 193: IF aluresult.x___; 194: MUL temp[65].x, const[3].y___, (1 - temp[20]).y___; 195: MOV temp[21].y, temp[65]._x__; 196: ELSE; 197: ADD none., temp[17].x___, -const[0].x___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MOV temp[21].y, none._0__; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: MOV temp[66].zw, none.__01; 218: MAD temp[66].xy, none.HH__, temp[21].xy__, none.HH__; 219: MOV output[0], temp[66]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MUL temp[7].xy, 16.000000 (0x58).ww__, input[0].xy__; 1: FRC temp[8].x, temp[7].x___; 2: FRC temp[10].x, |(temp[7] - temp[8]).x___|; 3: ADD temp[11].x, |(temp[7] - temp[8]).x___|, -temp[10].x___; 4: CMP temp[12].x, (temp[7] - temp[8]).x___, -temp[11].x___, temp[11].x___; 5: FRC temp[13].x, temp[7].y___; 6: ADD temp[14].x, temp[7].y___, -temp[13].x___; 7: FRC temp[15].x, |temp[14].x___|; 8: ADD temp[16].x, |temp[14].x___|, -temp[15].x___; 9: CMP temp[17].x, temp[14].x___, -temp[16].x___, temp[16].x___; 10: FRC temp[18].xy, temp[7].xy__; 11: ADD temp[20].xy, temp[7].xy__, -(temp[7] - temp[18]).xy__; 12: MOV temp[21].xy, none.00__; 13: MOV none., temp[12].x___; [aluresult = (x == 0)] 14: IF aluresult.x___; 15: MUL temp[21].x, const[0].z___, temp[20].x___; 16: ELSE; 17: ADD none., temp[12].x___, -none.1___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[22].x, const[1].x___, -const[0].z___; 20: MAD temp[21].x, temp[20].x___, temp[22].x___, const[0].z___; 21: ELSE; 22: ADD none., temp[12].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[23].x, const[1].z___, -const[1].x___; 25: MAD temp[21].x, temp[20].x___, temp[23].x___, const[1].x___; 26: ELSE; 27: ADD none., temp[12].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: MAD temp[21].x, temp[20].x___, (1 - const[1]).z___, const[1].z___; 30: ELSE; 31: ADD none., temp[12].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[25].x, const[1].z___, -none.1___; 34: MAD temp[21].x, temp[20].x___, temp[25].x___, none.1___; 35: ELSE; 36: ADD none., temp[12].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[26].x, const[1].x___, -const[1].z___; 39: MAD temp[21].x, temp[20].x___, temp[26].x___, const[1].z___; 40: ELSE; 41: ADD none., temp[12].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[27].x, const[0].z___, -const[1].x___; 44: MAD temp[21].x, temp[20].x___, temp[27].x___, const[1].x___; 45: ELSE; 46: ADD none., temp[12].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: MUL temp[21].x, const[0].z___, (1 - temp[20]).x___; 49: ELSE; 50: ADD none., temp[12].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 51: IF aluresult.x___; 52: MUL temp[21].x, const[3].y___, temp[20].x___; 53: ELSE; 54: ADD none., temp[12].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[29].x, const[3].w___, -const[3].y___; 57: MAD temp[21].x, temp[20].x___, temp[29].x___, const[3].y___; 58: ELSE; 59: ADD none., temp[12].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[30].x, const[4].y___, -const[3].w___; 62: MAD temp[21].x, temp[20].x___, temp[30].x___, const[3].w___; 63: ELSE; 64: ADD none., temp[12].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: MAD temp[21].x, temp[20].x___, (1 - const[4]).y___, const[4].y___; 67: ELSE; 68: ADD none., temp[12].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[32].x, const[5].y___, none.1-_-_-_; 71: MAD temp[21].x, temp[20].x___, temp[32].x___, none.-1___; 72: ELSE; 73: ADD none., temp[12].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[33].x, const[3].w___, -const[5].y___; 76: MAD temp[21].x, temp[20].x___, temp[33].x___, const[5].y___; 77: ELSE; 78: ADD none., temp[12].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[34].x, const[3].y___, -const[3].w___; 81: MAD temp[21].x, temp[20].x___, temp[34].x___, const[3].w___; 82: ELSE; 83: ADD none., temp[12].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: MUL temp[21].x, const[3].y___, (1 - temp[20]).x___; 86: ELSE; 87: ADD none., temp[12].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 88: IF aluresult.x___; 89: MOV temp[21].x, none.0___; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: MOV none., temp[17].x___; [aluresult = (x == 0)] 108: IF aluresult.x___; 109: MUL temp[36].x, const[0].z___, temp[20].y___; 110: MOV temp[21].y, temp[36]._x__; 111: ELSE; 112: ADD none., temp[17].x___, -none.1___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: ADD temp[37].x, const[1].x___, -const[0].z___; 115: MAD temp[38].x, temp[20].y___, temp[37].x___, const[0].z___; 116: MOV temp[21].y, temp[38]._x__; 117: ELSE; 118: ADD none., temp[17].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[39].x, const[1].z___, -const[1].x___; 121: MAD temp[40].x, temp[20].y___, temp[39].x___, const[1].x___; 122: MOV temp[21].y, temp[40]._x__; 123: ELSE; 124: ADD none., temp[17].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: MAD temp[42].x, temp[20].y___, (1 - const[1]).z___, const[1].z___; 127: MOV temp[21].y, temp[42]._x__; 128: ELSE; 129: ADD none., temp[17].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[43].x, const[1].z___, -none.1___; 132: MAD temp[44].x, temp[20].y___, temp[43].x___, none.1___; 133: MOV temp[21].y, temp[44]._x__; 134: ELSE; 135: ADD none., temp[17].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[45].x, const[1].x___, -const[1].z___; 138: MAD temp[46].x, temp[20].y___, temp[45].x___, const[1].z___; 139: MOV temp[21].y, temp[46]._x__; 140: ELSE; 141: ADD none., temp[17].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[47].x, const[0].z___, -const[1].x___; 144: MAD temp[48].x, temp[20].y___, temp[47].x___, const[1].x___; 145: MOV temp[21].y, temp[48]._x__; 146: ELSE; 147: ADD none., temp[17].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: MUL temp[50].x, const[0].z___, (1 - temp[20]).y___; 150: MOV temp[21].y, temp[50]._x__; 151: ELSE; 152: ADD none., temp[17].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[51].x, const[3].y___, temp[20].y___; 155: MOV temp[21].y, temp[51]._x__; 156: ELSE; 157: ADD none., temp[17].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: ADD temp[52].x, const[3].w___, -const[3].y___; 160: MAD temp[53].x, temp[20].y___, temp[52].x___, const[3].y___; 161: MOV temp[21].y, temp[53]._x__; 162: ELSE; 163: ADD none., temp[17].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 164: IF aluresult.x___; 165: ADD temp[54].x, const[4].y___, -const[3].w___; 166: MAD temp[55].x, temp[20].y___, temp[54].x___, const[3].w___; 167: MOV temp[21].y, temp[55]._x__; 168: ELSE; 169: ADD none., temp[17].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 170: IF aluresult.x___; 171: MAD temp[57].x, temp[20].y___, (1 - const[4]).y___, const[4].y___; 172: MOV temp[21].y, temp[57]._x__; 173: ELSE; 174: ADD none., temp[17].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: ADD temp[58].x, const[5].y___, none.1-_-_-_; 177: MAD temp[59].x, temp[20].y___, temp[58].x___, none.-1___; 178: MOV temp[21].y, temp[59]._x__; 179: ELSE; 180: ADD none., temp[17].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 181: IF aluresult.x___; 182: ADD temp[60].x, const[3].w___, -const[5].y___; 183: MAD temp[61].x, temp[20].y___, temp[60].x___, const[5].y___; 184: MOV temp[21].y, temp[61]._x__; 185: ELSE; 186: ADD none., temp[17].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 187: IF aluresult.x___; 188: ADD temp[62].x, const[3].y___, -const[3].w___; 189: MAD temp[63].x, temp[20].y___, temp[62].x___, const[3].w___; 190: MOV temp[21].y, temp[63]._x__; 191: ELSE; 192: ADD none., temp[17].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 193: IF aluresult.x___; 194: MUL temp[65].x, const[3].y___, (1 - temp[20]).y___; 195: MOV temp[21].y, temp[65]._x__; 196: ELSE; 197: ADD none., temp[17].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MOV temp[21].y, none._0__; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: MOV temp[66].zw, none.__01; 218: MAD temp[66].xy, none.HH__, temp[21].xy__, none.HH__; 219: MOV output[0], temp[66]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 4.0000 5.0000 6.0000 7.0000 } CONST[3] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[4] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[5] = { 12.0000 -0.9239 13.0000 14.0000 } CONST[6] = { 15.0000 0.5000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MUL temp[7].xy, 16.000000 (0x58).ww__, input[0].xy__; 1: FRC temp[8].x, temp[7].x___; 2: FRC temp[10].x, |(temp[7] - temp[8]).x___|; 3: ADD temp[11].x, |(temp[7] - temp[8]).x___|, -temp[10].x___; 4: CMP temp[12].x, (temp[7] - temp[8]).x___, -temp[11].x___, temp[11].x___; 5: FRC temp[13].x, temp[7].y___; 6: ADD temp[14].x, temp[7].y___, -temp[13].x___; 7: FRC temp[15].x, |temp[14].x___|; 8: ADD temp[16].x, |temp[14].x___|, -temp[15].x___; 9: CMP temp[17].x, temp[14].x___, -temp[16].x___, temp[16].x___; 10: FRC temp[18].xy, temp[7].xy__; 11: ADD temp[20].xy, temp[7].xy__, -(temp[7] - temp[18]).xy__; 12: MOV temp[21].xy, none.00__; 13: MOV none., temp[12].x___; [aluresult = (x == 0)] 14: IF aluresult.x___; 15: MUL temp[21].x, const[0].z___, temp[20].x___; 16: ELSE; 17: ADD none., temp[12].x___, -none.1___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[22].x, const[1].x___, -const[0].z___; 20: MAD temp[21].x, temp[20].x___, temp[22].x___, const[0].z___; 21: ELSE; 22: ADD none., temp[12].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[23].x, const[1].z___, -const[1].x___; 25: MAD temp[21].x, temp[20].x___, temp[23].x___, const[1].x___; 26: ELSE; 27: ADD none., temp[12].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: MAD temp[21].x, temp[20].x___, (1 - const[1]).z___, const[1].z___; 30: ELSE; 31: ADD none., temp[12].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[25].x, const[1].z___, -none.1___; 34: MAD temp[21].x, temp[20].x___, temp[25].x___, none.1___; 35: ELSE; 36: ADD none., temp[12].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[26].x, const[1].x___, -const[1].z___; 39: MAD temp[21].x, temp[20].x___, temp[26].x___, const[1].z___; 40: ELSE; 41: ADD none., temp[12].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[27].x, const[0].z___, -const[1].x___; 44: MAD temp[21].x, temp[20].x___, temp[27].x___, const[1].x___; 45: ELSE; 46: ADD none., temp[12].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: MUL temp[21].x, const[0].z___, (1 - temp[20]).x___; 49: ELSE; 50: ADD none., temp[12].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 51: IF aluresult.x___; 52: MUL temp[21].x, const[3].y___, temp[20].x___; 53: ELSE; 54: ADD none., temp[12].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[29].x, const[3].w___, -const[3].y___; 57: MAD temp[21].x, temp[20].x___, temp[29].x___, const[3].y___; 58: ELSE; 59: ADD none., temp[12].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[30].x, const[4].y___, -const[3].w___; 62: MAD temp[21].x, temp[20].x___, temp[30].x___, const[3].w___; 63: ELSE; 64: ADD none., temp[12].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: MAD temp[21].x, temp[20].x___, (1 - const[4]).y___, const[4].y___; 67: ELSE; 68: ADD none., temp[12].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[32].x, const[5].y___, none.1-_-_-_; 71: MAD temp[21].x, temp[20].x___, temp[32].x___, none.-1___; 72: ELSE; 73: ADD none., temp[12].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[33].x, const[3].w___, -const[5].y___; 76: MAD temp[21].x, temp[20].x___, temp[33].x___, const[5].y___; 77: ELSE; 78: ADD none., temp[12].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[34].x, const[3].y___, -const[3].w___; 81: MAD temp[21].x, temp[20].x___, temp[34].x___, const[3].w___; 82: ELSE; 83: ADD none., temp[12].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: MUL temp[21].x, const[3].y___, (1 - temp[20]).x___; 86: ELSE; 87: ADD none., temp[12].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 88: IF aluresult.x___; 89: MOV temp[21].x, none.0___; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: MOV none., temp[17].x___; [aluresult = (x == 0)] 108: IF aluresult.x___; 109: MUL temp[36].x, const[0].z___, temp[20].y___; 110: MOV temp[21].y, temp[36]._x__; 111: ELSE; 112: ADD none., temp[17].x___, -none.1___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: ADD temp[37].x, const[1].x___, -const[0].z___; 115: MAD temp[38].x, temp[20].y___, temp[37].x___, const[0].z___; 116: MOV temp[21].y, temp[38]._x__; 117: ELSE; 118: ADD none., temp[17].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[39].x, const[1].z___, -const[1].x___; 121: MAD temp[40].x, temp[20].y___, temp[39].x___, const[1].x___; 122: MOV temp[21].y, temp[40]._x__; 123: ELSE; 124: ADD none., temp[17].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: MAD temp[42].x, temp[20].y___, (1 - const[1]).z___, const[1].z___; 127: MOV temp[21].y, temp[42]._x__; 128: ELSE; 129: ADD none., temp[17].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[43].x, const[1].z___, -none.1___; 132: MAD temp[44].x, temp[20].y___, temp[43].x___, none.1___; 133: MOV temp[21].y, temp[44]._x__; 134: ELSE; 135: ADD none., temp[17].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[45].x, const[1].x___, -const[1].z___; 138: MAD temp[46].x, temp[20].y___, temp[45].x___, const[1].z___; 139: MOV temp[21].y, temp[46]._x__; 140: ELSE; 141: ADD none., temp[17].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[47].x, const[0].z___, -const[1].x___; 144: MAD temp[48].x, temp[20].y___, temp[47].x___, const[1].x___; 145: MOV temp[21].y, temp[48]._x__; 146: ELSE; 147: ADD none., temp[17].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: MUL temp[50].x, const[0].z___, (1 - temp[20]).y___; 150: MOV temp[21].y, temp[50]._x__; 151: ELSE; 152: ADD none., temp[17].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[51].x, const[3].y___, temp[20].y___; 155: MOV temp[21].y, temp[51]._x__; 156: ELSE; 157: ADD none., temp[17].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: ADD temp[52].x, const[3].w___, -const[3].y___; 160: MAD temp[53].x, temp[20].y___, temp[52].x___, const[3].y___; 161: MOV temp[21].y, temp[53]._x__; 162: ELSE; 163: ADD none., temp[17].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 164: IF aluresult.x___; 165: ADD temp[54].x, const[4].y___, -const[3].w___; 166: MAD temp[55].x, temp[20].y___, temp[54].x___, const[3].w___; 167: MOV temp[21].y, temp[55]._x__; 168: ELSE; 169: ADD none., temp[17].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 170: IF aluresult.x___; 171: MAD temp[57].x, temp[20].y___, (1 - const[4]).y___, const[4].y___; 172: MOV temp[21].y, temp[57]._x__; 173: ELSE; 174: ADD none., temp[17].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: ADD temp[58].x, const[5].y___, none.1-_-_-_; 177: MAD temp[59].x, temp[20].y___, temp[58].x___, none.-1___; 178: MOV temp[21].y, temp[59]._x__; 179: ELSE; 180: ADD none., temp[17].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 181: IF aluresult.x___; 182: ADD temp[60].x, const[3].w___, -const[5].y___; 183: MAD temp[61].x, temp[20].y___, temp[60].x___, const[5].y___; 184: MOV temp[21].y, temp[61]._x__; 185: ELSE; 186: ADD none., temp[17].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 187: IF aluresult.x___; 188: ADD temp[62].x, const[3].y___, -const[3].w___; 189: MAD temp[63].x, temp[20].y___, temp[62].x___, const[3].w___; 190: MOV temp[21].y, temp[63]._x__; 191: ELSE; 192: ADD none., temp[17].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 193: IF aluresult.x___; 194: MUL temp[65].x, const[3].y___, (1 - temp[20]).y___; 195: MOV temp[21].y, temp[65]._x__; 196: ELSE; 197: ADD none., temp[17].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MOV temp[21].y, none._0__; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: MOV temp[66].zw, none.__01; 218: MAD temp[66].xy, none.HH__, temp[21].xy__, none.HH__; 219: MOV output[0], temp[66]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[3] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[4] = { 12.0000 -0.9239 13.0000 14.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[7].xy, 16.000000 (0x58).ww__, input[0].xy__; 1: FRC temp[8].x, temp[7].x___; 2: FRC temp[10].x, |(temp[7] - temp[8]).x___|; 3: ADD temp[11].x, |(temp[7] - temp[8]).x___|, -temp[10].x___; 4: CMP temp[12].x, (temp[7] - temp[8]).x___, -temp[11].x___, temp[11].x___; 5: FRC temp[13].x, temp[7].y___; 6: ADD temp[14].x, temp[7].y___, -temp[13].x___; 7: FRC temp[15].x, |temp[14].x___|; 8: ADD temp[16].x, |temp[14].x___|, -temp[15].x___; 9: CMP temp[17].x, temp[14].x___, -temp[16].x___, temp[16].x___; 10: FRC temp[18].xy, temp[7].xy__; 11: ADD temp[20].xy, temp[7].xy__, -(temp[7] - temp[18]).xy__; 12: MOV temp[21].xy, none.00__; 13: MOV none., temp[12].x___; [aluresult = (x == 0)] 14: IF aluresult.x___; 15: MUL temp[21].x, const[0].z___, temp[20].x___; 16: ELSE; 17: ADD none., temp[12].x___, -none.1___; [aluresult = (x == 0)] 18: IF aluresult.x___; 19: ADD temp[22].x, const[1].x___, -const[0].z___; 20: MAD temp[21].x, temp[20].x___, temp[22].x___, const[0].z___; 21: ELSE; 22: ADD none., temp[12].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[23].x, const[1].z___, -const[1].x___; 25: MAD temp[21].x, temp[20].x___, temp[23].x___, const[1].x___; 26: ELSE; 27: ADD none., temp[12].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: MAD temp[21].x, temp[20].x___, (1 - const[1]).z___, const[1].z___; 30: ELSE; 31: ADD none., temp[12].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 32: IF aluresult.x___; 33: ADD temp[25].x, const[1].z___, -none.1___; 34: MAD temp[21].x, temp[20].x___, temp[25].x___, none.1___; 35: ELSE; 36: ADD none., temp[12].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[26].x, const[1].x___, -const[1].z___; 39: MAD temp[21].x, temp[20].x___, temp[26].x___, const[1].z___; 40: ELSE; 41: ADD none., temp[12].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[27].x, const[0].z___, -const[1].x___; 44: MAD temp[21].x, temp[20].x___, temp[27].x___, const[1].x___; 45: ELSE; 46: ADD none., temp[12].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: MUL temp[21].x, const[0].z___, (1 - temp[20]).x___; 49: ELSE; 50: ADD none., temp[12].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 51: IF aluresult.x___; 52: MUL temp[21].x, const[2].y___, temp[20].x___; 53: ELSE; 54: ADD none., temp[12].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[29].x, const[2].w___, -const[2].y___; 57: MAD temp[21].x, temp[20].x___, temp[29].x___, const[2].y___; 58: ELSE; 59: ADD none., temp[12].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[30].x, const[3].y___, -const[2].w___; 62: MAD temp[21].x, temp[20].x___, temp[30].x___, const[2].w___; 63: ELSE; 64: ADD none., temp[12].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: MAD temp[21].x, temp[20].x___, (1 - const[3]).y___, const[3].y___; 67: ELSE; 68: ADD none., temp[12].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[32].x, const[4].y___, none.1-_-_-_; 71: MAD temp[21].x, temp[20].x___, temp[32].x___, none.-1___; 72: ELSE; 73: ADD none., temp[12].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[33].x, const[2].w___, -const[4].y___; 76: MAD temp[21].x, temp[20].x___, temp[33].x___, const[4].y___; 77: ELSE; 78: ADD none., temp[12].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[34].x, const[2].y___, -const[2].w___; 81: MAD temp[21].x, temp[20].x___, temp[34].x___, const[2].w___; 82: ELSE; 83: ADD none., temp[12].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: MUL temp[21].x, const[2].y___, (1 - temp[20]).x___; 86: ELSE; 87: ADD none., temp[12].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 88: IF aluresult.x___; 89: MOV temp[21].x, none.0___; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: MOV none., temp[17].x___; [aluresult = (x == 0)] 108: IF aluresult.x___; 109: MUL temp[36].x, const[0].z___, temp[20].y___; 110: MOV temp[21].y, temp[36]._x__; 111: ELSE; 112: ADD none., temp[17].x___, -none.1___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: ADD temp[37].x, const[1].x___, -const[0].z___; 115: MAD temp[38].x, temp[20].y___, temp[37].x___, const[0].z___; 116: MOV temp[21].y, temp[38]._x__; 117: ELSE; 118: ADD none., temp[17].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: ADD temp[39].x, const[1].z___, -const[1].x___; 121: MAD temp[40].x, temp[20].y___, temp[39].x___, const[1].x___; 122: MOV temp[21].y, temp[40]._x__; 123: ELSE; 124: ADD none., temp[17].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 125: IF aluresult.x___; 126: MAD temp[42].x, temp[20].y___, (1 - const[1]).z___, const[1].z___; 127: MOV temp[21].y, temp[42]._x__; 128: ELSE; 129: ADD none., temp[17].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[43].x, const[1].z___, -none.1___; 132: MAD temp[44].x, temp[20].y___, temp[43].x___, none.1___; 133: MOV temp[21].y, temp[44]._x__; 134: ELSE; 135: ADD none., temp[17].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[45].x, const[1].x___, -const[1].z___; 138: MAD temp[46].x, temp[20].y___, temp[45].x___, const[1].z___; 139: MOV temp[21].y, temp[46]._x__; 140: ELSE; 141: ADD none., temp[17].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[47].x, const[0].z___, -const[1].x___; 144: MAD temp[48].x, temp[20].y___, temp[47].x___, const[1].x___; 145: MOV temp[21].y, temp[48]._x__; 146: ELSE; 147: ADD none., temp[17].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: MUL temp[50].x, const[0].z___, (1 - temp[20]).y___; 150: MOV temp[21].y, temp[50]._x__; 151: ELSE; 152: ADD none., temp[17].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[51].x, const[2].y___, temp[20].y___; 155: MOV temp[21].y, temp[51]._x__; 156: ELSE; 157: ADD none., temp[17].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: ADD temp[52].x, const[2].w___, -const[2].y___; 160: MAD temp[53].x, temp[20].y___, temp[52].x___, const[2].y___; 161: MOV temp[21].y, temp[53]._x__; 162: ELSE; 163: ADD none., temp[17].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 164: IF aluresult.x___; 165: ADD temp[54].x, const[3].y___, -const[2].w___; 166: MAD temp[55].x, temp[20].y___, temp[54].x___, const[2].w___; 167: MOV temp[21].y, temp[55]._x__; 168: ELSE; 169: ADD none., temp[17].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 170: IF aluresult.x___; 171: MAD temp[57].x, temp[20].y___, (1 - const[3]).y___, const[3].y___; 172: MOV temp[21].y, temp[57]._x__; 173: ELSE; 174: ADD none., temp[17].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: ADD temp[58].x, const[4].y___, none.1-_-_-_; 177: MAD temp[59].x, temp[20].y___, temp[58].x___, none.-1___; 178: MOV temp[21].y, temp[59]._x__; 179: ELSE; 180: ADD none., temp[17].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 181: IF aluresult.x___; 182: ADD temp[60].x, const[2].w___, -const[4].y___; 183: MAD temp[61].x, temp[20].y___, temp[60].x___, const[4].y___; 184: MOV temp[21].y, temp[61]._x__; 185: ELSE; 186: ADD none., temp[17].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 187: IF aluresult.x___; 188: ADD temp[62].x, const[2].y___, -const[2].w___; 189: MAD temp[63].x, temp[20].y___, temp[62].x___, const[2].w___; 190: MOV temp[21].y, temp[63]._x__; 191: ELSE; 192: ADD none., temp[17].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 193: IF aluresult.x___; 194: MUL temp[65].x, const[2].y___, (1 - temp[20]).y___; 195: MOV temp[21].y, temp[65]._x__; 196: ELSE; 197: ADD none., temp[17].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MOV temp[21].y, none._0__; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: MOV temp[66].zw, none.__01; 218: MAD temp[66].xy, none.HH__, temp[21].xy__, none.HH__; 219: MOV output[0], temp[66]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[7].xy, src0.ww_, src0.xy_, src0.000 1: src0.xyz = temp[7] FRC temp[8].x, src0.x__ 2: src0.xyz = temp[8], src1.xyz = temp[7], srcp.xyz = (src1 - src0) FRC temp[10].x, |srcp.x__| 3: src0.xyz = temp[8], src1.xyz = temp[7], src2.xyz = temp[10], srcp.xyz = (src1 - src0) MAD temp[11].x, |srcp.x__|, src0.111, -src2.x__ 4: src0.xyz = temp[8], src1.xyz = temp[7], src2.xyz = temp[11], srcp.xyz = (src1 - src0) CMP temp[12].x, src2.x__, -src2.x__, srcp.x__ 5: src0.xyz = temp[7] FRC temp[13].x, src0.y__ 6: src0.xyz = temp[7], src1.xyz = temp[13] MAD temp[14].x, src0.y__, src0.111, -src1.x__ 7: src0.xyz = temp[14] FRC temp[15].x, |src0.x__| 8: src0.xyz = temp[14], src1.xyz = temp[15] MAD temp[16].x, |src0.x__|, src0.111, -src1.x__ 9: src0.xyz = temp[16], src1.xyz = temp[14] CMP temp[17].x, src0.x__, -src0.x__, src1.x__ 10: src0.xyz = temp[7] FRC temp[18].xy, src0.xy_ 11: src0.xyz = temp[18], src1.xyz = temp[7], srcp.xyz = (src1 - src0) MAD temp[20].xy, src1.xy_, src0.111, -srcp.xy_ 12: MAD temp[21].xy, src0.00_, src0.111, src0.000 13: src0.xyz = temp[12] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 14: IF aluresult.x___; 15: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[21].x, src0.z__, src1.x__, src0.000 16: ELSE; 17: src0.xyz = temp[12] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 18: IF aluresult.x___; 19: src0.xyz = const[1], src1.xyz = const[0] MAD temp[22].x, src0.x__, src0.111, -src1.z__ 20: src0.xyz = temp[20], src1.xyz = temp[22], src2.xyz = const[0] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 21: ELSE; 22: src0.xyz = temp[12], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 23: IF aluresult.x___; 24: src0.xyz = const[1] MAD temp[23].x, src0.z__, src0.111, -src0.x__ 25: src0.xyz = temp[20], src1.xyz = temp[23], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 26: ELSE; 27: src0.xyz = temp[12], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 28: IF aluresult.x___; 29: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.z__, src0.z__ 30: ELSE; 31: src0.xyz = temp[12], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 32: IF aluresult.x___; 33: src0.xyz = const[1] MAD temp[25].x, src0.z__, src0.111, -src0.1__ 34: src0.xyz = temp[20], src1.xyz = temp[25] MAD temp[21].x, src0.x__, src1.x__, src0.1__ 35: ELSE; 36: src0.xyz = temp[12], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 37: IF aluresult.x___; 38: src0.xyz = const[1] MAD temp[26].x, src0.x__, src0.111, -src0.z__ 39: src0.xyz = temp[20], src1.xyz = temp[26], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 40: ELSE; 41: src0.xyz = temp[12], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 42: IF aluresult.x___; 43: src0.xyz = const[0], src1.xyz = const[1] MAD temp[27].x, src0.z__, src0.111, -src1.x__ 44: src0.xyz = temp[20], src1.xyz = temp[27], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 45: ELSE; 46: src0.xyz = temp[12], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 47: IF aluresult.x___; 48: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[21].x, src1.z__, srcp.x__, src0.000 49: ELSE; 50: src0.xyz = temp[12], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 51: IF aluresult.x___; 52: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[21].x, src0.y__, src1.x__, src0.000 53: ELSE; 54: src0.xyz = temp[12], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 55: IF aluresult.x___; 56: src0.xyz = const[2], src0.w = const[2] MAD temp[29].x, src0.w__, src0.111, -src0.y__ 57: src0.xyz = temp[20], src1.xyz = temp[29], src2.xyz = const[2] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 58: ELSE; 59: src0.xyz = temp[12], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 60: IF aluresult.x___; 61: src0.xyz = const[3], src0.w = const[2] MAD temp[30].x, src0.y__, src0.111, -src0.w__ 62: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[30] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 63: ELSE; 64: src0.xyz = temp[12], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 65: IF aluresult.x___; 66: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.y__, src0.y__ 67: ELSE; 68: src0.xyz = temp[12], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 69: IF aluresult.x___; 70: src0.xyz = const[4] MAD temp[32].x, src0.y__, src0.111, src0.1__ 71: src0.xyz = temp[20], src1.xyz = temp[32] MAD temp[21].x, src0.x__, src1.x__, -src0.1__ 72: ELSE; 73: src0.xyz = temp[12], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 74: IF aluresult.x___; 75: src0.xyz = const[4], src0.w = const[2] MAD temp[33].x, src0.w__, src0.111, -src0.y__ 76: src0.xyz = temp[20], src1.xyz = temp[33], src2.xyz = const[4] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 77: ELSE; 78: src0.xyz = temp[12], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 79: IF aluresult.x___; 80: src0.xyz = const[2], src0.w = const[2] MAD temp[34].x, src0.y__, src0.111, -src0.w__ 81: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[34] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 82: ELSE; 83: src0.xyz = temp[12], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 84: IF aluresult.x___; 85: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[21].x, src1.y__, srcp.x__, src0.000 86: ELSE; 87: src0.xyz = temp[12], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 88: IF aluresult.x___; 89: MAD temp[21].x, src0.0__, src0.111, src0.000 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: src0.xyz = temp[17] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 108: IF aluresult.x___; 109: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[36].x, src0.z__, src1.y__, src0.000 110: src0.xyz = temp[36] MAD temp[21].y, src0._x_, src0.111, src0.000 111: ELSE; 112: src0.xyz = temp[17] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 113: IF aluresult.x___; 114: src0.xyz = const[1], src1.xyz = const[0] MAD temp[37].x, src0.x__, src0.111, -src1.z__ 115: src0.xyz = temp[20], src1.xyz = temp[37], src2.xyz = const[0] MAD temp[38].x, src0.y__, src1.x__, src2.z__ 116: src0.xyz = temp[38] MAD temp[21].y, src0._x_, src0.111, src0.000 117: ELSE; 118: src0.xyz = temp[17], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 119: IF aluresult.x___; 120: src0.xyz = const[1] MAD temp[39].x, src0.z__, src0.111, -src0.x__ 121: src0.xyz = temp[20], src1.xyz = temp[39], src2.xyz = const[1] MAD temp[40].x, src0.y__, src1.x__, src2.x__ 122: src0.xyz = temp[40] MAD temp[21].y, src0._x_, src0.111, src0.000 123: ELSE; 124: src0.xyz = temp[17], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 125: IF aluresult.x___; 126: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[42].x, src1.y__, srcp.z__, src0.z__ 127: src0.xyz = temp[42] MAD temp[21].y, src0._x_, src0.111, src0.000 128: ELSE; 129: src0.xyz = temp[17], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 130: IF aluresult.x___; 131: src0.xyz = const[1] MAD temp[43].x, src0.z__, src0.111, -src0.1__ 132: src0.xyz = temp[20], src1.xyz = temp[43] MAD temp[44].x, src0.y__, src1.x__, src0.1__ 133: src0.xyz = temp[44] MAD temp[21].y, src0._x_, src0.111, src0.000 134: ELSE; 135: src0.xyz = temp[17], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 136: IF aluresult.x___; 137: src0.xyz = const[1] MAD temp[45].x, src0.x__, src0.111, -src0.z__ 138: src0.xyz = temp[20], src1.xyz = temp[45], src2.xyz = const[1] MAD temp[46].x, src0.y__, src1.x__, src2.z__ 139: src0.xyz = temp[46] MAD temp[21].y, src0._x_, src0.111, src0.000 140: ELSE; 141: src0.xyz = temp[17], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 142: IF aluresult.x___; 143: src0.xyz = const[0], src1.xyz = const[1] MAD temp[47].x, src0.z__, src0.111, -src1.x__ 144: src0.xyz = temp[20], src1.xyz = temp[47], src2.xyz = const[1] MAD temp[48].x, src0.y__, src1.x__, src2.x__ 145: src0.xyz = temp[48] MAD temp[21].y, src0._x_, src0.111, src0.000 146: ELSE; 147: src0.xyz = temp[17], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 148: IF aluresult.x___; 149: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[50].x, src1.z__, srcp.y__, src0.000 150: src0.xyz = temp[50] MAD temp[21].y, src0._x_, src0.111, src0.000 151: ELSE; 152: src0.xyz = temp[17], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 153: IF aluresult.x___; 154: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[51].x, src0.y__, src1.y__, src0.000 155: src0.xyz = temp[51] MAD temp[21].y, src0._x_, src0.111, src0.000 156: ELSE; 157: src0.xyz = temp[17], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 158: IF aluresult.x___; 159: src0.xyz = const[2], src0.w = const[2] MAD temp[52].x, src0.w__, src0.111, -src0.y__ 160: src0.xyz = temp[20], src1.xyz = temp[52], src2.xyz = const[2] MAD temp[53].x, src0.y__, src1.x__, src2.y__ 161: src0.xyz = temp[53] MAD temp[21].y, src0._x_, src0.111, src0.000 162: ELSE; 163: src0.xyz = temp[17], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 164: IF aluresult.x___; 165: src0.xyz = const[3], src0.w = const[2] MAD temp[54].x, src0.y__, src0.111, -src0.w__ 166: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[54] MAD temp[55].x, src0.y__, src1.x__, src0.w__ 167: src0.xyz = temp[55] MAD temp[21].y, src0._x_, src0.111, src0.000 168: ELSE; 169: src0.xyz = temp[17], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 170: IF aluresult.x___; 171: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[57].x, src1.y__, srcp.y__, src0.y__ 172: src0.xyz = temp[57] MAD temp[21].y, src0._x_, src0.111, src0.000 173: ELSE; 174: src0.xyz = temp[17], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 175: IF aluresult.x___; 176: src0.xyz = const[4] MAD temp[58].x, src0.y__, src0.111, src0.1__ 177: src0.xyz = temp[20], src1.xyz = temp[58] MAD temp[59].x, src0.y__, src1.x__, -src0.1__ 178: src0.xyz = temp[59] MAD temp[21].y, src0._x_, src0.111, src0.000 179: ELSE; 180: src0.xyz = temp[17], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 181: IF aluresult.x___; 182: src0.xyz = const[4], src0.w = const[2] MAD temp[60].x, src0.w__, src0.111, -src0.y__ 183: src0.xyz = temp[20], src1.xyz = temp[60], src2.xyz = const[4] MAD temp[61].x, src0.y__, src1.x__, src2.y__ 184: src0.xyz = temp[61] MAD temp[21].y, src0._x_, src0.111, src0.000 185: ELSE; 186: src0.xyz = temp[17], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 187: IF aluresult.x___; 188: src0.xyz = const[2], src0.w = const[2] MAD temp[62].x, src0.y__, src0.111, -src0.w__ 189: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[62] MAD temp[63].x, src0.y__, src1.x__, src0.w__ 190: src0.xyz = temp[63] MAD temp[21].y, src0._x_, src0.111, src0.000 191: ELSE; 192: src0.xyz = temp[17], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 193: IF aluresult.x___; 194: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[65].x, src1.y__, srcp.y__, src0.000 195: src0.xyz = temp[65] MAD temp[21].y, src0._x_, src0.111, src0.000 196: ELSE; 197: src0.xyz = temp[17], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 198: IF aluresult.x___; 199: MAD temp[21].y, src0._0_, src0.111, src0.000 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: MAD temp[66].z, src0.__0, src0.111, src0.000 MAD temp[66].w, src0.1, src0.1, src0.0 218: src0.xyz = temp[21] MAD temp[66].xy, src0.HH_, src0.xy_, src0.HH_ 219: src0.xyz = temp[66], src0.w = temp[66] 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 = 16.000000 (0x58) MAD temp[7].xy, src0.ww_, src0.xy_, src0.000 1: src0.xyz = temp[7] MAD temp[21].xy, src0.00_, src0.111, src0.000 FRC temp[13].w, src0.y 2: src0.xyz = temp[7], src0.w = temp[13] FRC temp[8].x, src0.x__ MAD temp[14].w, src0.y, src0.1, -src0.w 3: src0.xyz = temp[8], src1.xyz = temp[7], srcp.xyz = (src1 - src0) FRC temp[18].xy, src1.xy_ FRC temp[10].w, |srcp.x| 4: src0.xyz = temp[18], src0.w = temp[14], src1.xyz = temp[7], srcp.xyz = (src1 - src0) MAD temp[20].xy, src1.xy_, src0.111, -srcp.xy_ FRC temp[15].w, |src0.w| 5: src0.xyz = temp[8], src0.w = temp[10], src1.xyz = temp[7], src2.xyz = temp[10], srcp.xyz = (src1 - src0) MAD temp[11].w, |srcp.x|, src0.1, -src0.w 6: src0.xyz = temp[8], src0.w = temp[11], src1.xyz = temp[7], src1.w = temp[14], src2.xyz = temp[11], src2.w = temp[15], srcp.xyz = (src1 - src0) CMP temp[12].x, src0.w__, -src0.w__, srcp.x__ MAD temp[16].w, |src1.w|, src0.1, -src2.w 7: src0.xyz = temp[12], src0.w = temp[16], src1.w = temp[14] MAD aluresult, src0.x__, src0.111, src0.000 CMP temp[17].w, src0.w, -src0.w, src1.w [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[21].x, src0.z__, src1.x__, src0.000 10: ELSE; 11: src0.xyz = temp[12] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[22].x, src0.x__, src0.111, -src1.z__ 14: src0.xyz = temp[20], src1.xyz = temp[22], src2.xyz = const[0] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 15: ELSE; 16: src0.xyz = temp[12], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[23].x, src0.z__, src0.111, -src0.x__ 19: src0.xyz = temp[20], src1.xyz = temp[23], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 20: ELSE; 21: src0.xyz = temp[12], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.z__, src0.z__ 24: ELSE; 25: src0.xyz = temp[12], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[25].x, src0.z__, src0.111, -src0.1__ 28: src0.xyz = temp[20], src1.xyz = temp[25] MAD temp[21].x, src0.x__, src1.x__, src0.1__ 29: ELSE; 30: src0.xyz = temp[12], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[26].x, src0.x__, src0.111, -src0.z__ 33: src0.xyz = temp[20], src1.xyz = temp[26], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 34: ELSE; 35: src0.xyz = temp[12], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[27].x, src0.z__, src0.111, -src1.x__ 38: src0.xyz = temp[20], src1.xyz = temp[27], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 39: ELSE; 40: src0.xyz = temp[12], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[21].x, src1.z__, srcp.x__, src0.000 43: ELSE; 44: src0.xyz = temp[12], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[21].x, src0.y__, src1.x__, src0.000 47: ELSE; 48: src0.xyz = temp[12], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[29].x, src0.w__, src0.111, -src0.y__ 51: src0.xyz = temp[20], src1.xyz = temp[29], src2.xyz = const[2] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 52: ELSE; 53: src0.xyz = temp[12], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[30].x, src0.y__, src0.111, -src0.w__ 56: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[30] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 57: ELSE; 58: src0.xyz = temp[12], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.y__, src0.y__ 61: ELSE; 62: src0.xyz = temp[12], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[32].x, src0.y__, src0.111, src0.1__ 65: src0.xyz = temp[20], src1.xyz = temp[32] MAD temp[21].x, src0.x__, src1.x__, -src0.1__ 66: ELSE; 67: src0.xyz = temp[12], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[33].x, src0.w__, src0.111, -src0.y__ 70: src0.xyz = temp[20], src1.xyz = temp[33], src2.xyz = const[4] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 71: ELSE; 72: src0.xyz = temp[12], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[34].x, src0.y__, src0.111, -src0.w__ 75: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[34] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 76: ELSE; 77: src0.xyz = temp[12], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[21].x, src1.y__, srcp.x__, src0.000 80: ELSE; 81: src0.xyz = temp[12], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[21].x, src0.0__, src0.111, src0.000 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.xyz = temp[17], src0.w = temp[17] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 102: IF aluresult.x___; 103: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[36].x, src0.z__, src1.y__, src0.000 104: src0.xyz = temp[36] MAD temp[21].y, src0._x_, src0.111, src0.000 105: ELSE; 106: src0.xyz = temp[17], src0.w = temp[17] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 107: IF aluresult.x___; 108: src0.xyz = const[1], src1.xyz = const[0] MAD temp[37].x, src0.x__, src0.111, -src1.z__ 109: src0.xyz = temp[20], src1.xyz = temp[37], src2.xyz = const[0] MAD temp[38].x, src0.y__, src1.x__, src2.z__ 110: src0.xyz = temp[38] MAD temp[21].y, src0._x_, src0.111, src0.000 111: ELSE; 112: src0.xyz = temp[17], src0.w = 2.000000 (0x40), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 113: IF aluresult.x___; 114: src0.xyz = const[1] MAD temp[39].x, src0.z__, src0.111, -src0.x__ 115: src0.xyz = temp[20], src1.xyz = temp[39], src2.xyz = const[1] MAD temp[40].x, src0.y__, src1.x__, src2.x__ 116: src0.xyz = temp[40] MAD temp[21].y, src0._x_, src0.111, src0.000 117: ELSE; 118: src0.xyz = temp[17], src0.w = 3.000000 (0x44), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 119: IF aluresult.x___; 120: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[42].x, src1.y__, srcp.z__, src0.z__ 121: src0.xyz = temp[42] MAD temp[21].y, src0._x_, src0.111, src0.000 122: ELSE; 123: src0.xyz = temp[17], src0.w = 4.000000 (0x48), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 124: IF aluresult.x___; 125: src0.xyz = const[1] MAD temp[43].x, src0.z__, src0.111, -src0.1__ 126: src0.xyz = temp[20], src1.xyz = temp[43] MAD temp[44].x, src0.y__, src1.x__, src0.1__ 127: src0.xyz = temp[44] MAD temp[21].y, src0._x_, src0.111, src0.000 128: ELSE; 129: src0.xyz = temp[17], src0.w = 5.000000 (0x4a), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 130: IF aluresult.x___; 131: src0.xyz = const[1] MAD temp[45].x, src0.x__, src0.111, -src0.z__ 132: src0.xyz = temp[20], src1.xyz = temp[45], src2.xyz = const[1] MAD temp[46].x, src0.y__, src1.x__, src2.z__ 133: src0.xyz = temp[46] MAD temp[21].y, src0._x_, src0.111, src0.000 134: ELSE; 135: src0.xyz = temp[17], src0.w = 6.000000 (0x4c), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 136: IF aluresult.x___; 137: src0.xyz = const[0], src1.xyz = const[1] MAD temp[47].x, src0.z__, src0.111, -src1.x__ 138: src0.xyz = temp[20], src1.xyz = temp[47], src2.xyz = const[1] MAD temp[48].x, src0.y__, src1.x__, src2.x__ 139: src0.xyz = temp[48] MAD temp[21].y, src0._x_, src0.111, src0.000 140: ELSE; 141: src0.xyz = temp[17], src0.w = 7.000000 (0x4e), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 142: IF aluresult.x___; 143: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[50].x, src1.z__, srcp.y__, src0.000 144: src0.xyz = temp[50] MAD temp[21].y, src0._x_, src0.111, src0.000 145: ELSE; 146: src0.xyz = temp[17], src0.w = 8.000000 (0x50), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 147: IF aluresult.x___; 148: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[51].x, src0.y__, src1.y__, src0.000 149: src0.xyz = temp[51] MAD temp[21].y, src0._x_, src0.111, src0.000 150: ELSE; 151: src0.xyz = temp[17], src0.w = 9.000000 (0x51), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 152: IF aluresult.x___; 153: src0.xyz = const[2], src0.w = const[2] MAD temp[52].x, src0.w__, src0.111, -src0.y__ 154: src0.xyz = temp[20], src1.xyz = temp[52], src2.xyz = const[2] MAD temp[53].x, src0.y__, src1.x__, src2.y__ 155: src0.xyz = temp[53] MAD temp[21].y, src0._x_, src0.111, src0.000 156: ELSE; 157: src0.xyz = temp[17], src0.w = 10.000000 (0x52), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 158: IF aluresult.x___; 159: src0.xyz = const[3], src0.w = const[2] MAD temp[54].x, src0.y__, src0.111, -src0.w__ 160: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[54] MAD temp[55].x, src0.y__, src1.x__, src0.w__ 161: src0.xyz = temp[55] MAD temp[21].y, src0._x_, src0.111, src0.000 162: ELSE; 163: src0.xyz = temp[17], src0.w = 11.000000 (0x53), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 164: IF aluresult.x___; 165: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[57].x, src1.y__, srcp.y__, src0.y__ 166: src0.xyz = temp[57] MAD temp[21].y, src0._x_, src0.111, src0.000 167: ELSE; 168: src0.xyz = temp[17], src0.w = 12.000000 (0x54), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 169: IF aluresult.x___; 170: src0.xyz = const[4] MAD temp[58].x, src0.y__, src0.111, src0.1__ 171: src0.xyz = temp[20], src1.xyz = temp[58] MAD temp[59].x, src0.y__, src1.x__, -src0.1__ 172: src0.xyz = temp[59] MAD temp[21].y, src0._x_, src0.111, src0.000 173: ELSE; 174: src0.xyz = temp[17], src0.w = 13.000000 (0x55), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 175: IF aluresult.x___; 176: src0.xyz = const[4], src0.w = const[2] MAD temp[60].x, src0.w__, src0.111, -src0.y__ 177: src0.xyz = temp[20], src1.xyz = temp[60], src2.xyz = const[4] MAD temp[61].x, src0.y__, src1.x__, src2.y__ 178: src0.xyz = temp[61] MAD temp[21].y, src0._x_, src0.111, src0.000 179: ELSE; 180: src0.xyz = temp[17], src0.w = 14.000000 (0x56), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 181: IF aluresult.x___; 182: src0.xyz = const[2], src0.w = const[2] MAD temp[62].x, src0.y__, src0.111, -src0.w__ 183: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[62] MAD temp[63].x, src0.y__, src1.x__, src0.w__ 184: src0.xyz = temp[63] MAD temp[21].y, src0._x_, src0.111, src0.000 185: ELSE; 186: src0.xyz = temp[17], src0.w = 15.000000 (0x57), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 187: IF aluresult.x___; 188: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[65].x, src1.y__, srcp.y__, src0.000 189: src0.xyz = temp[65] MAD temp[21].y, src0._x_, src0.111, src0.000 190: ELSE; 191: src0.xyz = temp[17], src0.w = 16.000000 (0x58), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 192: IF aluresult.x___; 193: MAD temp[21].y, src0._0_, src0.111, src0.000 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: src0.xyz = temp[21] MAD temp[66].xy, src0.HH_, src0.xy_, src0.HH_ 212: MAD temp[66].z, src0.__0, src0.111, src0.000 MAD temp[66].w, src0.1, src0.1, src0.0 213: src0.xyz = temp[66], src0.w = temp[66] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'dead sources' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[7].xy, src0.ww_, src0.xy_, src0.000 1: src0.xyz = temp[7] MAD temp[21].xy, src0.00_, src0.111, src0.000 FRC temp[13].w, src0.y 2: src0.xyz = temp[7], src0.w = temp[13] FRC temp[8].x, src0.x__ MAD temp[14].w, src0.y, src0.1, -src0.w 3: src0.xyz = temp[8], src1.xyz = temp[7], srcp.xyz = (src1 - src0) FRC temp[18].xy, src1.xy_ FRC temp[10].w, |srcp.x| 4: src0.xyz = temp[18], src0.w = temp[14], src1.xyz = temp[7], srcp.xyz = (src1 - src0) MAD temp[20].xy, src1.xy_, src0.111, -srcp.xy_ FRC temp[15].w, |src0.w| 5: src0.xyz = temp[8], src0.w = temp[10], src1.xyz = temp[7], srcp.xyz = (src1 - src0) MAD temp[11].w, |srcp.x|, src0.1, -src0.w 6: src0.xyz = temp[8], src0.w = temp[11], src1.xyz = temp[7], src1.w = temp[14], src2.w = temp[15], srcp.xyz = (src1 - src0) CMP temp[12].x, src0.w__, -src0.w__, srcp.x__ MAD temp[16].w, |src1.w|, src0.1, -src2.w 7: src0.xyz = temp[12], src0.w = temp[16], src1.w = temp[14] MAD aluresult, src0.x__, src0.111, src0.000 CMP temp[17].w, src0.w, -src0.w, src1.w [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[21].x, src0.z__, src1.x__, src0.000 10: ELSE; 11: src0.xyz = temp[12] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[22].x, src0.x__, src0.111, -src1.z__ 14: src0.xyz = temp[20], src1.xyz = temp[22], src2.xyz = const[0] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 15: ELSE; 16: src0.xyz = temp[12], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[23].x, src0.z__, src0.111, -src0.x__ 19: src0.xyz = temp[20], src1.xyz = temp[23], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 20: ELSE; 21: src0.xyz = temp[12], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.z__, src0.z__ 24: ELSE; 25: src0.xyz = temp[12], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[25].x, src0.z__, src0.111, -src0.1__ 28: src0.xyz = temp[20], src1.xyz = temp[25] MAD temp[21].x, src0.x__, src1.x__, src0.1__ 29: ELSE; 30: src0.xyz = temp[12], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[26].x, src0.x__, src0.111, -src0.z__ 33: src0.xyz = temp[20], src1.xyz = temp[26], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.z__ 34: ELSE; 35: src0.xyz = temp[12], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[27].x, src0.z__, src0.111, -src1.x__ 38: src0.xyz = temp[20], src1.xyz = temp[27], src2.xyz = const[1] MAD temp[21].x, src0.x__, src1.x__, src2.x__ 39: ELSE; 40: src0.xyz = temp[12], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[21].x, src1.z__, srcp.x__, src0.000 43: ELSE; 44: src0.xyz = temp[12], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[21].x, src0.y__, src1.x__, src0.000 47: ELSE; 48: src0.xyz = temp[12], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[29].x, src0.w__, src0.111, -src0.y__ 51: src0.xyz = temp[20], src1.xyz = temp[29], src2.xyz = const[2] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 52: ELSE; 53: src0.xyz = temp[12], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[30].x, src0.y__, src0.111, -src0.w__ 56: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[30] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 57: ELSE; 58: src0.xyz = temp[12], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[21].x, src1.x__, srcp.y__, src0.y__ 61: ELSE; 62: src0.xyz = temp[12], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[32].x, src0.y__, src0.111, src0.1__ 65: src0.xyz = temp[20], src1.xyz = temp[32] MAD temp[21].x, src0.x__, src1.x__, -src0.1__ 66: ELSE; 67: src0.xyz = temp[12], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[33].x, src0.w__, src0.111, -src0.y__ 70: src0.xyz = temp[20], src1.xyz = temp[33], src2.xyz = const[4] MAD temp[21].x, src0.x__, src1.x__, src2.y__ 71: ELSE; 72: src0.xyz = temp[12], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[34].x, src0.y__, src0.111, -src0.w__ 75: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[34] MAD temp[21].x, src0.x__, src1.x__, src0.w__ 76: ELSE; 77: src0.xyz = temp[12], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[21].x, src1.y__, srcp.x__, src0.000 80: ELSE; 81: src0.xyz = temp[12], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[21].x, src0.0__, src0.111, src0.000 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.w = temp[17] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 102: IF aluresult.x___; 103: src0.xyz = const[0], src1.xyz = temp[20] MAD temp[36].x, src0.z__, src1.y__, src0.000 104: src0.xyz = temp[36] MAD temp[21].y, src0._x_, src0.111, src0.000 105: ELSE; 106: src0.w = temp[17] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 107: IF aluresult.x___; 108: src0.xyz = const[1], src1.xyz = const[0] MAD temp[37].x, src0.x__, src0.111, -src1.z__ 109: src0.xyz = temp[20], src1.xyz = temp[37], src2.xyz = const[0] MAD temp[38].x, src0.y__, src1.x__, src2.z__ 110: src0.xyz = temp[38] MAD temp[21].y, src0._x_, src0.111, src0.000 111: ELSE; 112: src0.w = 2.000000 (0x40), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 113: IF aluresult.x___; 114: src0.xyz = const[1] MAD temp[39].x, src0.z__, src0.111, -src0.x__ 115: src0.xyz = temp[20], src1.xyz = temp[39], src2.xyz = const[1] MAD temp[40].x, src0.y__, src1.x__, src2.x__ 116: src0.xyz = temp[40] MAD temp[21].y, src0._x_, src0.111, src0.000 117: ELSE; 118: src0.w = 3.000000 (0x44), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 119: IF aluresult.x___; 120: src0.xyz = const[1], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[42].x, src1.y__, srcp.z__, src0.z__ 121: src0.xyz = temp[42] MAD temp[21].y, src0._x_, src0.111, src0.000 122: ELSE; 123: src0.w = 4.000000 (0x48), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 124: IF aluresult.x___; 125: src0.xyz = const[1] MAD temp[43].x, src0.z__, src0.111, -src0.1__ 126: src0.xyz = temp[20], src1.xyz = temp[43] MAD temp[44].x, src0.y__, src1.x__, src0.1__ 127: src0.xyz = temp[44] MAD temp[21].y, src0._x_, src0.111, src0.000 128: ELSE; 129: src0.w = 5.000000 (0x4a), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 130: IF aluresult.x___; 131: src0.xyz = const[1] MAD temp[45].x, src0.x__, src0.111, -src0.z__ 132: src0.xyz = temp[20], src1.xyz = temp[45], src2.xyz = const[1] MAD temp[46].x, src0.y__, src1.x__, src2.z__ 133: src0.xyz = temp[46] MAD temp[21].y, src0._x_, src0.111, src0.000 134: ELSE; 135: src0.w = 6.000000 (0x4c), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 136: IF aluresult.x___; 137: src0.xyz = const[0], src1.xyz = const[1] MAD temp[47].x, src0.z__, src0.111, -src1.x__ 138: src0.xyz = temp[20], src1.xyz = temp[47], src2.xyz = const[1] MAD temp[48].x, src0.y__, src1.x__, src2.x__ 139: src0.xyz = temp[48] MAD temp[21].y, src0._x_, src0.111, src0.000 140: ELSE; 141: src0.w = 7.000000 (0x4e), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 142: IF aluresult.x___; 143: src0.xyz = temp[20], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[50].x, src1.z__, srcp.y__, src0.000 144: src0.xyz = temp[50] MAD temp[21].y, src0._x_, src0.111, src0.000 145: ELSE; 146: src0.w = 8.000000 (0x50), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 147: IF aluresult.x___; 148: src0.xyz = const[2], src1.xyz = temp[20] MAD temp[51].x, src0.y__, src1.y__, src0.000 149: src0.xyz = temp[51] MAD temp[21].y, src0._x_, src0.111, src0.000 150: ELSE; 151: src0.w = 9.000000 (0x51), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 152: IF aluresult.x___; 153: src0.xyz = const[2], src0.w = const[2] MAD temp[52].x, src0.w__, src0.111, -src0.y__ 154: src0.xyz = temp[20], src1.xyz = temp[52], src2.xyz = const[2] MAD temp[53].x, src0.y__, src1.x__, src2.y__ 155: src0.xyz = temp[53] MAD temp[21].y, src0._x_, src0.111, src0.000 156: ELSE; 157: src0.w = 10.000000 (0x52), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 158: IF aluresult.x___; 159: src0.xyz = const[3], src0.w = const[2] MAD temp[54].x, src0.y__, src0.111, -src0.w__ 160: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[54] MAD temp[55].x, src0.y__, src1.x__, src0.w__ 161: src0.xyz = temp[55] MAD temp[21].y, src0._x_, src0.111, src0.000 162: ELSE; 163: src0.w = 11.000000 (0x53), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 164: IF aluresult.x___; 165: src0.xyz = const[3], src1.xyz = temp[20], srcp.xyz = (1 - src0) MAD temp[57].x, src1.y__, srcp.y__, src0.y__ 166: src0.xyz = temp[57] MAD temp[21].y, src0._x_, src0.111, src0.000 167: ELSE; 168: src0.w = 12.000000 (0x54), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 169: IF aluresult.x___; 170: src0.xyz = const[4] MAD temp[58].x, src0.y__, src0.111, src0.1__ 171: src0.xyz = temp[20], src1.xyz = temp[58] MAD temp[59].x, src0.y__, src1.x__, -src0.1__ 172: src0.xyz = temp[59] MAD temp[21].y, src0._x_, src0.111, src0.000 173: ELSE; 174: src0.w = 13.000000 (0x55), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 175: IF aluresult.x___; 176: src0.xyz = const[4], src0.w = const[2] MAD temp[60].x, src0.w__, src0.111, -src0.y__ 177: src0.xyz = temp[20], src1.xyz = temp[60], src2.xyz = const[4] MAD temp[61].x, src0.y__, src1.x__, src2.y__ 178: src0.xyz = temp[61] MAD temp[21].y, src0._x_, src0.111, src0.000 179: ELSE; 180: src0.w = 14.000000 (0x56), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 181: IF aluresult.x___; 182: src0.xyz = const[2], src0.w = const[2] MAD temp[62].x, src0.y__, src0.111, -src0.w__ 183: src0.xyz = temp[20], src0.w = const[2], src1.xyz = temp[62] MAD temp[63].x, src0.y__, src1.x__, src0.w__ 184: src0.xyz = temp[63] MAD temp[21].y, src0._x_, src0.111, src0.000 185: ELSE; 186: src0.w = 15.000000 (0x57), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 187: IF aluresult.x___; 188: src0.xyz = temp[20], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[65].x, src1.y__, srcp.y__, src0.000 189: src0.xyz = temp[65] MAD temp[21].y, src0._x_, src0.111, src0.000 190: ELSE; 191: src0.w = 16.000000 (0x58), src1.w = temp[17] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 192: IF aluresult.x___; 193: MAD temp[21].y, src0._0_, src0.111, src0.000 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: src0.xyz = temp[21] MAD temp[66].xy, src0.HH_, src0.xy_, src0.HH_ 212: MAD temp[66].z, src0.__0, src0.111, src0.000 MAD temp[66].w, src0.1, src0.1, src0.0 213: src0.xyz = temp[66], src0.w = temp[66] 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 = input[0], src0.w = 16.000000 (0x58) MAD temp[0].xy, src0.ww_, src0.xy_, src0.00_ 1: src0.xyz = temp[0] MAD temp[1].xy, src0.00_, src0.11_, src0.00_ FRC temp[0].w, src0.y 2: src0.xyz = temp[0], src0.w = temp[0] FRC temp[2].x, src0.x__ MAD temp[0].w, src0.y, src0.1, -src0.w 3: src0.xyz = temp[2], src1.xyz = temp[0], srcp.xyz = (src1 - src0) FRC temp[3].xy, src1.xy_ FRC temp[1].w, |srcp.x| 4: src0.xyz = temp[3], src0.w = temp[0], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[3].xy, src1.xy_, src0.11_, -srcp.xy_ FRC temp[2].w, |src0.w| 5: src0.xyz = temp[2], src0.w = temp[1], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[1].w, |srcp.x|, src0.1, -src0.w 6: src0.xyz = temp[2], src0.w = temp[1], src1.xyz = temp[0], src1.w = temp[0], src2.w = temp[2], srcp.xyz = (src1 - src0) CMP temp[0].x, src0.w__, -src0.w__, srcp.x__ MAD temp[1].w, |src1.w|, src0.1, -src2.w 7: src0.xyz = temp[0], src0.w = temp[1], src1.w = temp[0] MAD aluresult, src0.x__, src0.111, src0.000 CMP temp[0].w, src0.w, -src0.w, src1.w [aluresult = (result == 0)] 8: IF aluresult.x___; 9: src0.xyz = const[0], src1.xyz = temp[3] MAD temp[1].x, src0.z__, src1.x__, src0.00_ 10: ELSE; 11: src0.xyz = temp[0] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 12: IF aluresult.x___; 13: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].y, src0._x_, src0._1_, -src1._z_ 14: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[1].x, src0.x__, src1.y__, src2.z__ 15: ELSE; 16: src0.xyz = temp[0], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 17: IF aluresult.x___; 18: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._x_ 19: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[1].x, src0.x__, src1.y__, src2.x__ 20: ELSE; 21: src0.xyz = temp[0], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 22: IF aluresult.x___; 23: src0.xyz = const[1], src1.xyz = temp[3], srcp.xyz = (1 - src0) MAD temp[1].x, src1.x__, srcp.z__, src0.z__ 24: ELSE; 25: src0.xyz = temp[0], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._1_ 28: src0.xyz = temp[3], src1.xyz = temp[0] MAD temp[1].x, src0.x__, src1.y__, src0.1__ 29: ELSE; 30: src0.xyz = temp[0], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 31: IF aluresult.x___; 32: src0.xyz = const[1] MAD temp[0].y, src0._x_, src0._1_, -src0._z_ 33: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[1].x, src0.x__, src1.y__, src2.z__ 34: ELSE; 35: src0.xyz = temp[0], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 36: IF aluresult.x___; 37: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src1._x_ 38: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[1].x, src0.x__, src1.y__, src2.x__ 39: ELSE; 40: src0.xyz = temp[0], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 41: IF aluresult.x___; 42: src0.xyz = temp[3], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[1].x, src1.z__, srcp.x__, src0.00_ 43: ELSE; 44: src0.xyz = temp[0], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = const[2], src1.xyz = temp[3] MAD temp[1].x, src0.y__, src1.x__, src0.00_ 47: ELSE; 48: src0.xyz = temp[0], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 51: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[1].x, src0.x__, src1.y__, src2.y__ 52: ELSE; 53: src0.xyz = temp[0], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 54: IF aluresult.x___; 55: src0.xyz = const[3], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 56: src0.xyz = temp[3], src0.w = const[2], src1.xyz = temp[0] MAD temp[1].x, src0.x__, src1.y__, src0.w__ 57: ELSE; 58: src0.xyz = temp[0], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 59: IF aluresult.x___; 60: src0.xyz = const[3], src1.xyz = temp[3], srcp.xyz = (1 - src0) MAD temp[1].x, src1.x__, srcp.y__, src0.y__ 61: ELSE; 62: src0.xyz = temp[0], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[4] MAD temp[0].y, src0._y_, src0._1_, src0._1_ 65: src0.xyz = temp[3], src1.xyz = temp[0] MAD temp[1].x, src0.x__, src1.y__, -src0.1__ 66: ELSE; 67: src0.xyz = temp[0], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 68: IF aluresult.x___; 69: src0.xyz = const[4], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 70: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[1].x, src0.x__, src1.y__, src2.y__ 71: ELSE; 72: src0.xyz = temp[0], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 73: IF aluresult.x___; 74: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 75: src0.xyz = temp[3], src0.w = const[2], src1.xyz = temp[0] MAD temp[1].x, src0.x__, src1.y__, src0.w__ 76: ELSE; 77: src0.xyz = temp[0], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 78: IF aluresult.x___; 79: src0.xyz = temp[3], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[1].x, src1.y__, srcp.x__, src0.00_ 80: ELSE; 81: src0.xyz = temp[0], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: MAD temp[1].x, src0.0__, src0.11_, src0.00_ 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: src0.w = temp[0] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 102: IF aluresult.x___; 103: src0.xyz = const[0], src1.xyz = temp[3] MAD temp[0].x, src0.z__, src1.y__, src0.0__ 104: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 105: ELSE; 106: src0.w = temp[0] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 107: IF aluresult.x___; 108: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].x, src0.x__, src0.1__, -src1.z__ 109: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[0].x, src0.y__, src1.x__, src2.z__ 110: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 111: ELSE; 112: src0.w = 2.000000 (0x40), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 113: IF aluresult.x___; 114: src0.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src0.x__ 115: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.y__, src1.x__, src2.x__ 116: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 117: ELSE; 118: src0.w = 3.000000 (0x44), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 119: IF aluresult.x___; 120: src0.xyz = const[1], src1.xyz = temp[3], srcp.xyz = (1 - src0) MAD temp[0].x, src1.y__, srcp.z__, src0.z__ 121: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 122: ELSE; 123: src0.w = 4.000000 (0x48), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 124: IF aluresult.x___; 125: src0.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src0.1__ 126: src0.xyz = temp[3], src1.xyz = temp[0] MAD temp[0].x, src0.y__, src1.x__, src0.1__ 127: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 128: ELSE; 129: src0.w = 5.000000 (0x4a), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 130: IF aluresult.x___; 131: src0.xyz = const[1] MAD temp[0].x, src0.x__, src0.1__, -src0.z__ 132: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.y__, src1.x__, src2.z__ 133: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 134: ELSE; 135: src0.w = 6.000000 (0x4c), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 136: IF aluresult.x___; 137: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src1.x__ 138: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.y__, src1.x__, src2.x__ 139: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 140: ELSE; 141: src0.w = 7.000000 (0x4e), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 142: IF aluresult.x___; 143: src0.xyz = temp[3], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[0].x, src1.z__, srcp.y__, src0.0__ 144: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 145: ELSE; 146: src0.w = 8.000000 (0x50), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 147: IF aluresult.x___; 148: src0.xyz = const[2], src1.xyz = temp[3] MAD temp[0].x, src0.y__, src1.y__, src0.0__ 149: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 150: ELSE; 151: src0.w = 9.000000 (0x51), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 152: IF aluresult.x___; 153: src0.xyz = const[2], src0.w = const[2] MAD temp[0].x, src0.w__, src0.1__, -src0.y__ 154: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[0].x, src0.y__, src1.x__, src2.y__ 155: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 156: ELSE; 157: src0.w = 10.000000 (0x52), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 158: IF aluresult.x___; 159: src0.xyz = const[3], src0.w = const[2] MAD temp[0].x, src0.y__, src0.1__, -src0.w__ 160: src0.xyz = temp[3], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].x, src0.y__, src1.x__, src0.w__ 161: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 162: ELSE; 163: src0.w = 11.000000 (0x53), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 164: IF aluresult.x___; 165: src0.xyz = const[3], src1.xyz = temp[3], srcp.xyz = (1 - src0) MAD temp[0].x, src1.y__, srcp.y__, src0.y__ 166: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 167: ELSE; 168: src0.w = 12.000000 (0x54), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 169: IF aluresult.x___; 170: src0.xyz = const[4] MAD temp[0].x, src0.y__, src0.1__, src0.1__ 171: src0.xyz = temp[3], src1.xyz = temp[0] MAD temp[0].x, src0.y__, src1.x__, -src0.1__ 172: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 173: ELSE; 174: src0.w = 13.000000 (0x55), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 175: IF aluresult.x___; 176: src0.xyz = const[4], src0.w = const[2] MAD temp[0].x, src0.w__, src0.1__, -src0.y__ 177: src0.xyz = temp[3], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[0].x, src0.y__, src1.x__, src2.y__ 178: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 179: ELSE; 180: src0.w = 14.000000 (0x56), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 181: IF aluresult.x___; 182: src0.xyz = const[2], src0.w = const[2] MAD temp[0].x, src0.y__, src0.1__, -src0.w__ 183: src0.xyz = temp[3], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].x, src0.y__, src1.x__, src0.w__ 184: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 185: ELSE; 186: src0.w = 15.000000 (0x57), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 187: IF aluresult.x___; 188: src0.xyz = temp[3], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[0].x, src1.y__, srcp.y__, src0.0__ 189: src0.xyz = temp[0] MAD temp[1].y, src0._x_, src0.11_, src0.00_ 190: ELSE; 191: src0.w = 16.000000 (0x58), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 192: IF aluresult.x___; 193: MAD temp[1].y, src0._0_, src0.11_, src0.00_ 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: src0.xyz = temp[1] MAD temp[0].xy, src0.HH_, src0.xy_, src0.HH_ 212: MAD temp[0].z, src0.__0, src0.111, src0.000 MAD temp[0].w, src0.1, src0.1, src0.0 213: 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00001800:ALU wmask: RG omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0084046c:rgb_A_src:0 A/A/0 0 rgb_B_src:0 R/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 1 0:CMN_INST 0x00005800:ALU wmask: ARG omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00004007:FRC dest:0 alp_A_src:0 G 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 2 0:CMN_INST 0x00004a00:ALU NOP wmask: AR omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00c04000:MAD dest:0 alp_A_src:0 G 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x58000029:FRC dest:2 rgb_C_src:0 R/R/R 0 alp_C_src:0 A 1 3 0:CMN_INST 0x00005a00:ALU NOP wmask: ARG omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000421:rgb_A_src:1 R/G/0 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00043017:FRC dest:1 alp_A_src:3 R 2 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000039:FRC dest:3 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 4 0:CMN_INST 0x00005800:ALU wmask: ARG omask: NONE 1:RGB_ADDR 0x48000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0421:rgb_A_src:1 R/G/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x0004c027:FRC dest:2 alp_A_src:0 A 2 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c23030:MAD dest:3 rgb_C_src:3 R/G/0 1 alp_C_src:0 R 0 5 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00c43010:MAD dest:1 alp_A_src:3 R 2 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x58000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 A 1 6 0:CMN_INST 0x00004800:ALU wmask: AR omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x00200001:Addr0: 1t, Addr1: 0t, Addr2: 2t, srcp:0 3 RGB_INST: 0x0191848c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 A/0/0 1 targ: 0 4 ALPHA_INST:0x00c4d010:MAD dest:1 alp_A_src:1 A 2 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x5c483008:CMP dest:0 rgb_C_src:3 R/0/0 0 alp_C_src:2 A 1 7 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x0160c006:CMP dest:0 alp_A_src:0 A 0 alp_B_src:0 A 1 targ 0 w:0 5 RGBA_INST: 0x1a490040:MAD dest:4 rgb_C_src:0 0/0/0 0 alp_C_src:1 A 0 8 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 11 IGN_UNC 3:FC_ADDR 0x000b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 11, JMP_GLBL: 0 9 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000d00:Addr0: 0c, Addr1: 3t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 10 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 11 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98040:MAD dest:4 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 12 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 16 IGN_UNC 3:FC_ADDR 0x00100000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 16, JMP_GLBL: 0 13 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c51000:MAD dest:0 rgb_C_src:1 0/B/0 1 alp_C_src:0 R 0 14 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10000003:Addr0: 3t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a010:MAD dest:1 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 15 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 16 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c0:Addr0: 192t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 17 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 21 IGN_UNC 3:FC_ADDR 0x00150000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 21, JMP_GLBL: 0 18 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c10000:MAD dest:0 rgb_C_src:0 0/R/0 1 alp_C_src:0 R 0 19 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482010:MAD dest:1 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 20 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 21 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c4:Addr0: 196t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 22 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 25 IGN_UNC 3:FC_ADDR 0x00190000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 25, JMP_GLBL: 0 23 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000d01:Addr0: 1c, Addr1: 3t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916481:rgb_A_src:1 R/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00488010:MAD dest:1 rgb_C_src:0 B/0/0 0 alp_C_src:0 R 0 24 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 25 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c8:Addr0: 200t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 26 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 30 IGN_UNC 3:FC_ADDR 0x001e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 30, JMP_GLBL: 0 27 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00cd0000:MAD dest:0 rgb_C_src:0 0/1/0 1 alp_C_src:0 R 0 28 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498010:MAD dest:1 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 29 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 30 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ca:Addr0: 202t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 31 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 35 IGN_UNC 3:FC_ADDR 0x00230000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 35, JMP_GLBL: 0 32 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c50000:MAD dest:0 rgb_C_src:0 0/B/0 1 alp_C_src:0 R 0 33 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a010:MAD dest:1 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 34 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 35 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200cc:Addr0: 204t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 36 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 40 IGN_UNC 3:FC_ADDR 0x00280000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 40, JMP_GLBL: 0 37 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c11000:MAD dest:0 rgb_C_src:1 0/R/0 1 alp_C_src:0 R 0 38 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482010:MAD dest:1 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 39 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 40 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ce:Addr0: 206t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 41 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 44 IGN_UNC 3:FC_ADDR 0x002c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 44, JMP_GLBL: 0 42 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040003:Addr0: 3t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00906489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 43 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 44 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d0:Addr0: 208t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 45 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 48 IGN_UNC 3:FC_ADDR 0x00300000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 48, JMP_GLBL: 0 46 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000d02:Addr0: 2c, Addr1: 3t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 47 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 48 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d1:Addr0: 209t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 49 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 53 IGN_UNC 3:FC_ADDR 0x00350000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 53, JMP_GLBL: 0 50 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 51 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10200003:Addr0: 3t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486010:MAD dest:1 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 52 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 53 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d2:Addr0: 210t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 54 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 58 IGN_UNC 3:FC_ADDR 0x003a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 58, JMP_GLBL: 0 55 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 56 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c010:MAD dest:1 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 57 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 58 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d3:Addr0: 211t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 59 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 62 IGN_UNC 3:FC_ADDR 0x003e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 62, JMP_GLBL: 0 60 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000d03:Addr0: 3c, Addr1: 3t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e481:rgb_A_src:1 R/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00484010:MAD dest:1 rgb_C_src:0 G/0/0 0 alp_C_src:0 R 0 61 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 62 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d4:Addr0: 212t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 63 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 67 IGN_UNC 3:FC_ADDR 0x00430000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 67, JMP_GLBL: 0 64 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004d0000:MAD dest:0 rgb_C_src:0 0/1/0 0 alp_C_src:0 R 0 65 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98010:MAD dest:1 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 66 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 89 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 67 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d5:Addr0: 213t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 68 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 72 IGN_UNC 3:FC_ADDR 0x00480000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 72, JMP_GLBL: 0 69 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 70 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10400003:Addr0: 3t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486010:MAD dest:1 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 71 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 88 3:FC_ADDR 0x00580000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 88, JMP_GLBL: 0 72 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d6:Addr0: 214t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 73 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 77 IGN_UNC 3:FC_ADDR 0x004d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 77, JMP_GLBL: 0 74 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 75 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c010:MAD dest:1 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 76 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 87 3:FC_ADDR 0x00570000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 87, JMP_GLBL: 0 77 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d7:Addr0: 215t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c040:MAD dest:4 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 78 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 81 IGN_UNC 3:FC_ADDR 0x00510000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 81, JMP_GLBL: 0 79 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040803:Addr0: 3t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00906485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 80 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 86 3:FC_ADDR 0x00560000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 86, JMP_GLBL: 0 81 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 82 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 85 IGN_UNC 3:FC_ADDR 0x00550000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 85, JMP_GLBL: 0 83 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 84 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 85 3:FC_ADDR 0x00550000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 85, JMP_GLBL: 0 85 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 86 3:FC_ADDR 0x00560000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 86, JMP_GLBL: 0 86 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 87 3:FC_ADDR 0x00570000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 87, JMP_GLBL: 0 87 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 88 3:FC_ADDR 0x00580000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 88, JMP_GLBL: 0 88 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 89 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 89 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 90 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 91 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 92 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 93 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 94 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 95 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 96 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 97 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 98 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 99 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 100 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 101 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 102 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 106 IGN_UNC 3:FC_ADDR 0x006a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 106, JMP_GLBL: 0 103 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000d00:Addr0: 0c, Addr1: 3t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 104 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 105 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 211 3:FC_ADDR 0x00d30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 211, JMP_GLBL: 0 106 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98010:MAD dest:1 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 107 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 112 IGN_UNC 3:FC_ADDR 0x00700000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 112, JMP_GLBL: 0 108 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c89000:MAD dest:0 rgb_C_src:1 B/0/0 1 alp_C_src:0 R 0 109 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10000003:Addr0: 3t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a000:MAD dest:0 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 110 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 111 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 210 3:FC_ADDR 0x00d20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 210, JMP_GLBL: 0 112 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c0:Addr0: 192t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 113 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 118 IGN_UNC 3:FC_ADDR 0x00760000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 118, JMP_GLBL: 0 114 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c80000:MAD dest:0 rgb_C_src:0 R/0/0 1 alp_C_src:0 R 0 115 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482000:MAD dest:0 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 116 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 117 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 209 3:FC_ADDR 0x00d10000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 209, JMP_GLBL: 0 118 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c4:Addr0: 196t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 119 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 123 IGN_UNC 3:FC_ADDR 0x007b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 123, JMP_GLBL: 0 120 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000d01:Addr0: 1c, Addr1: 3t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00488000:MAD dest:0 rgb_C_src:0 B/0/0 0 alp_C_src:0 R 0 121 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 122 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 208 3:FC_ADDR 0x00d00000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 208, JMP_GLBL: 0 123 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c8:Addr0: 200t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 124 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 129 IGN_UNC 3:FC_ADDR 0x00810000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 129, JMP_GLBL: 0 125 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98000:MAD dest:0 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 126 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498000:MAD dest:0 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 127 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 128 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 207 3:FC_ADDR 0x00cf0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 207, JMP_GLBL: 0 129 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000ca:Addr0: 202t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 130 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 135 IGN_UNC 3:FC_ADDR 0x00870000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 135, JMP_GLBL: 0 131 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c88000:MAD dest:0 rgb_C_src:0 B/0/0 1 alp_C_src:0 R 0 132 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a000:MAD dest:0 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 133 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 134 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 206 3:FC_ADDR 0x00ce0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 206, JMP_GLBL: 0 135 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000cc:Addr0: 204t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 136 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 141 IGN_UNC 3:FC_ADDR 0x008d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 141, JMP_GLBL: 0 137 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c81000:MAD dest:0 rgb_C_src:1 R/0/0 1 alp_C_src:0 R 0 138 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100003:Addr0: 3t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482000:MAD dest:0 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 139 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 140 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 205 3:FC_ADDR 0x00cd0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 205, JMP_GLBL: 0 141 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000ce:Addr0: 206t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 142 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 146 IGN_UNC 3:FC_ADDR 0x00920000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 146, JMP_GLBL: 0 143 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040003:Addr0: 3t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 144 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 145 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 204 3:FC_ADDR 0x00cc0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 204, JMP_GLBL: 0 146 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d0:Addr0: 208t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 147 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 151 IGN_UNC 3:FC_ADDR 0x00970000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 151, JMP_GLBL: 0 148 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000d02:Addr0: 2c, Addr1: 3t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 149 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 150 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 203 3:FC_ADDR 0x00cb0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 203, JMP_GLBL: 0 151 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d1:Addr0: 209t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 152 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 157 IGN_UNC 3:FC_ADDR 0x009d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 157, JMP_GLBL: 0 153 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0093048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c84000:MAD dest:0 rgb_C_src:0 G/0/0 1 alp_C_src:0 R 0 154 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10200003:Addr0: 3t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486000:MAD dest:0 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 155 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 156 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 202 3:FC_ADDR 0x00ca0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 202, JMP_GLBL: 0 157 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d2:Addr0: 210t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 158 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 163 IGN_UNC 3:FC_ADDR 0x00a30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 163, JMP_GLBL: 0 159 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 160 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c000:MAD dest:0 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 161 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 162 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 201 3:FC_ADDR 0x00c90000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 201, JMP_GLBL: 0 163 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d3:Addr0: 211t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 164 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 168 IGN_UNC 3:FC_ADDR 0x00a80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 168, JMP_GLBL: 0 165 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000d03:Addr0: 3c, Addr1: 3t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00484000:MAD dest:0 rgb_C_src:0 G/0/0 0 alp_C_src:0 R 0 166 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 167 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 200 3:FC_ADDR 0x00c80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 200, JMP_GLBL: 0 168 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d4:Addr0: 212t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 169 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 174 IGN_UNC 3:FC_ADDR 0x00ae0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 174, JMP_GLBL: 0 170 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498000:MAD dest:0 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 171 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98000:MAD dest:0 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 172 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 173 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 199 3:FC_ADDR 0x00c70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 199, JMP_GLBL: 0 174 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d5:Addr0: 213t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 175 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 180 IGN_UNC 3:FC_ADDR 0x00b40000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 180, JMP_GLBL: 0 176 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0093048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c84000:MAD dest:0 rgb_C_src:0 G/0/0 1 alp_C_src:0 R 0 177 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10400003:Addr0: 3t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486000:MAD dest:0 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 178 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 179 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 198 3:FC_ADDR 0x00c60000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 198, JMP_GLBL: 0 180 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d6:Addr0: 214t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 181 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 186 IGN_UNC 3:FC_ADDR 0x00ba0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 186, JMP_GLBL: 0 182 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 183 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000003:Addr0: 3t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c000:MAD dest:0 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 184 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 185 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 197 3:FC_ADDR 0x00c50000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 197, JMP_GLBL: 0 186 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d7:Addr0: 215t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 187 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 191 IGN_UNC 3:FC_ADDR 0x00bf0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 191, JMP_GLBL: 0 188 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040803:Addr0: 3t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 189 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 190 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 196 3:FC_ADDR 0x00c40000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 196, JMP_GLBL: 0 191 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d8:Addr0: 216t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 192 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 195 IGN_UNC 3:FC_ADDR 0x00c30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 195, JMP_GLBL: 0 193 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009b0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 194 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 195 3:FC_ADDR 0x00c30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 195, JMP_GLBL: 0 195 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 196 3:FC_ADDR 0x00c40000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 196, JMP_GLBL: 0 196 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 197 3:FC_ADDR 0x00c50000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 197, JMP_GLBL: 0 197 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 198 3:FC_ADDR 0x00c60000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 198, JMP_GLBL: 0 198 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 199 3:FC_ADDR 0x00c70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 199, JMP_GLBL: 0 199 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 200 3:FC_ADDR 0x00c80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 200, JMP_GLBL: 0 200 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 201 3:FC_ADDR 0x00c90000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 201, JMP_GLBL: 0 201 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 202 3:FC_ADDR 0x00ca0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 202, JMP_GLBL: 0 202 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 203 3:FC_ADDR 0x00cb0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 203, JMP_GLBL: 0 203 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 204 3:FC_ADDR 0x00cc0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 204, JMP_GLBL: 0 204 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 205 3:FC_ADDR 0x00cd0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 205, JMP_GLBL: 0 205 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 206 3:FC_ADDR 0x00ce0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 206, JMP_GLBL: 0 206 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 207 3:FC_ADDR 0x00cf0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 207, JMP_GLBL: 0 207 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 208 3:FC_ADDR 0x00d00000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 208, JMP_GLBL: 0 208 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 209 3:FC_ADDR 0x00d10000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 209, JMP_GLBL: 0 209 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 210 3:FC_ADDR 0x00d20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 210, JMP_GLBL: 0 210 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 211 3:FC_ADDR 0x00d30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 211, JMP_GLBL: 0 211 0:CMN_INST 0x00001800:ALU wmask: RG omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008404b4:rgb_A_src:0 H/H/0 0 rgb_B_src:0 R/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004b4000:MAD dest:0 rgb_C_src:0 H/H/0 0 alp_C_src:0 R 0 212 0:CMN_INST 0x00006000:ALU wmask: AB omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 213 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..2], LOCAL IMM[0] FLT32 { 0.0000, 1.0000, 0.5000, 6.2832} 0: MOV TEMP[0].zw, IMM[0].yyxy 1: MUL TEMP[1].xy, IMM[0].wwww, IN[0].xyyy 2: SIN TEMP[2].x, TEMP[1].xxxx 3: SIN TEMP[2].y, TEMP[1].yyyy 4: MAD TEMP[0].xy, IMM[0].zzzz, TEMP[2].xyyy, IMM[0].zzzz 5: MOV OUT[0], TEMP[0] 6: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 5: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].yyxy; 1: MUL temp[1].xy, const[0].wwww, input[0].xyyy; 2: MUL temp[3].w, temp[1].xxxx, const[1].xxxx; 3: FRC temp[3].w, temp[3]; 4: SIN temp[2].x, temp[3].wwww; 5: MUL temp[4].w, temp[1].yyyy, const[1].xxxx; 6: FRC temp[4].w, temp[4]; 7: SIN temp[2].y, temp[4].wwww; 8: MAD temp[0].xy, const[0].zzzz, temp[2].xyyy, const[0].zzzz; 9: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV temp[0].zw, const[0].__xy; 1: MUL temp[1].xy, const[0].ww__, input[0].xy__; 2: MUL temp[3].w, temp[1].___x, const[1].___x; 3: FRC temp[3].w, temp[3].___w; 4: SIN temp[2].x, temp[3].w___; 5: MUL temp[4].w, temp[1].___y, const[1].___x; 6: FRC temp[4].w, temp[4].___w; 7: SIN temp[2].y, temp[4]._w__; 8: MAD temp[0].xy, const[0].zz__, temp[2].xy__, const[0].zz__; 9: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV temp[5].zw, const[0].__xy; 1: MUL temp[6].xy, const[0].ww__, input[0].xy__; 2: MUL temp[7].w, temp[6].___x, const[1].___x; 3: FRC temp[8].w, temp[7].___w; 4: SIN temp[9].x, temp[8].w___; 5: MUL temp[10].w, temp[6].___y, const[1].___x; 6: FRC temp[11].w, temp[10].___w; 7: SIN temp[9].y, temp[11]._w__; 8: MAD temp[5].xy, const[0].zz__, temp[9].xy__, const[0].zz__; 9: MOV output[0], temp[5]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV temp[5].zw, none.__01; 1: MUL temp[6].xy, const[0].ww__, input[0].xy__; 2: MUL temp[7].w, temp[6].___x, const[1].___x; 3: FRC temp[8].w, temp[7].___w; 4: SIN temp[9].x, temp[8].w___; 5: MUL temp[10].w, temp[6].___y, const[1].___x; 6: FRC temp[11].w, temp[10].___w; 7: SIN temp[9].y, temp[11]._w__; 8: MAD temp[5].xy, none.HH__, temp[9].xy__, none.HH__; 9: MOV output[0], temp[5]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MOV temp[5].zw, none.__01; 1: MUL temp[6].xy, const[0].ww__, input[0].xy__; 2: MUL temp[7].w, temp[6].___x, const[1].___x; 3: FRC temp[8].w, temp[7].___w; 4: SIN temp[9].x, temp[8].w___; 5: MUL temp[10].w, temp[6].___y, const[1].___x; 6: FRC temp[11].w, temp[10].___w; 7: SIN temp[9].y, temp[11]._w__; 8: MAD temp[5].xy, none.HH__, temp[9].xy__, none.HH__; 9: MOV output[0], temp[5]; CONST[0] = { 0.0000 1.0000 0.5000 6.2832 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV temp[5].zw, none.__01; 1: MUL temp[6].xy, const[0].ww__, input[0].xy__; 2: MUL temp[7].w, temp[6].___x, const[1].___x; 3: FRC temp[8].w, temp[7].___w; 4: SIN temp[9].x, temp[8].w___; 5: MUL temp[10].w, temp[6].___y, const[1].___x; 6: FRC temp[11].w, temp[10].___w; 7: SIN temp[9].y, temp[11]._w__; 8: MAD temp[5].xy, none.HH__, temp[9].xy__, none.HH__; 9: MOV output[0], temp[5]; CONST[0] = { 0.0000 1.0000 0.5000 6.2832 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV temp[5].zw, none.__01; 1: MUL temp[6].xy, const[0].ww__, input[0].xy__; 2: MUL temp[7].w, temp[6].___x, const[1].___x; 3: FRC temp[8].w, temp[7].___w; 4: SIN temp[9].x, temp[8].w___; 5: MUL temp[10].w, temp[6].___y, const[1].___x; 6: FRC temp[11].w, temp[10].___w; 7: SIN temp[9].y, temp[11]._w__; 8: MAD temp[5].xy, none.HH__, temp[9].xy__, none.HH__; 9: MOV output[0], temp[5]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: MAD temp[5].z, src0.__0, src0.111, src0.000 MAD temp[5].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[6].xy, src0.ww_, src0.xy_, src0.000 2: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[7].w, src0.x, src1.x, src0.0 3: src0.w = temp[7] FRC temp[8].w, src0.w 4: src0.w = temp[8] REPL_ALPHA temp[9].x SIN, src0.w 5: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[10].w, src0.y, src1.x, src0.0 6: src0.w = temp[10] FRC temp[11].w, src0.w 7: src0.w = temp[11] REPL_ALPHA temp[9].y SIN, src0.w 8: src0.xyz = temp[9] MAD temp[5].xy, src0.HH_, src0.xy_, src0.HH_ 9: src0.xyz = temp[5], src0.w = temp[5] 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: MAD temp[5].z, src0.__0, src0.111, src0.000 MAD temp[5].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[6].xy, src0.ww_, src0.xy_, src0.000 2: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[10].w, src0.y, src1.x, src0.0 3: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[7].w, src0.x, src1.x, src0.0 4: src0.w = temp[10] FRC temp[11].w, src0.w 5: src0.w = temp[11] REPL_ALPHA temp[9].y SIN, src0.w 6: src0.w = temp[7] FRC temp[8].w, src0.w 7: src0.w = temp[8] REPL_ALPHA temp[9].x SIN, src0.w 8: src0.xyz = temp[9] MAD temp[5].xy, src0.HH_, src0.xy_, src0.HH_ 9: src0.xyz = temp[5], src0.w = temp[5] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'dead sources' # Radeon Compiler Program 0: MAD temp[5].z, src0.__0, src0.111, src0.000 MAD temp[5].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[6].xy, src0.ww_, src0.xy_, src0.000 2: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[10].w, src0.y, src1.x, src0.0 3: src0.xyz = temp[6], src1.xyz = const[1] MAD temp[7].w, src0.x, src1.x, src0.0 4: src0.w = temp[10] FRC temp[11].w, src0.w 5: src0.w = temp[11] REPL_ALPHA temp[9].y SIN, src0.w 6: src0.w = temp[7] FRC temp[8].w, src0.w 7: src0.w = temp[8] REPL_ALPHA temp[9].x SIN, src0.w 8: src0.xyz = temp[9] MAD temp[5].xy, src0.HH_, src0.xy_, src0.HH_ 9: src0.xyz = temp[5], src0.w = temp[5] 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: MAD temp[1].z, src0.__0, src0.111, src0.000 MAD temp[0].w, src0.1, src0.1, src0.0 1: src0.xyz = input[0], src0.w = const[0] MAD temp[0].xy, src0.ww_, src0.xy_, src0.00_ 2: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[1].w, src0.y, src1.x, src0.0 3: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[2].w, src0.x, src1.x, src0.0 4: src0.w = temp[1] FRC temp[1].w, src0.w 5: src0.w = temp[1] REPL_ALPHA temp[0].y SIN, src0.w 6: src0.w = temp[2] FRC temp[1].w, src0.w 7: src0.w = temp[1] REPL_ALPHA temp[0].x SIN, src0.w 8: src0.xyz = temp[0] MAD temp[1].xy, src0.HH_, src0.xy_, src0.HH_ 9: src0.xyz = temp[1], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 R500 Fragment Program: -------- 0 0:CMN_INST 0x00006000:ALU wmask: AB omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 1 0:CMN_INST 0x00001800:ALU wmask: RG omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020100:Addr0: 0c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0084046c:rgb_A_src:0 A/A/0 0 rgb_B_src:0 R/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 2 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00084010:MAD dest:1 alp_A_src:0 G 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 3 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00080020:MAD dest:2 alp_A_src:0 R 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 4 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 5 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 6 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020002:Addr0: 2t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 7 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 8 0:CMN_INST 0x00001800:ALU wmask: RG omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008404b4:rgb_A_src:0 H/H/0 0 rgb_B_src:0 R/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004b4010:MAD dest:1 rgb_C_src:0 H/H/0 0 alp_C_src:0 R 0 9 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..5], LOCAL IMM[0] FLT32 { 16.0000, 0.0000, 0.3827, 1.0000} IMM[1] FLT32 { 0.7071, 2.0000, 0.9239, 3.0000} IMM[2] FLT32 { 4.0000, 5.0000, 6.0000, 7.0000} IMM[3] FLT32 { 8.0000, -0.3827, 9.0000, -0.7071} IMM[4] FLT32 { 10.0000, -0.9239, 11.0000, -1.0000} IMM[5] FLT32 { 12.0000, -0.9239, 13.0000, 14.0000} IMM[6] FLT32 { 15.0000, 0.5000, 0.0000, 0.0000} 0: MUL TEMP[0].xyz, IMM[0].xxxx, IN[0].xyzz 1: FLR TEMP[1].x, TEMP[0].xxxx 2: TRUNC TEMP[1].x, TEMP[1].xxxx 3: FLR TEMP[2].x, TEMP[0].yyyy 4: TRUNC TEMP[2].x, TEMP[2].xxxx 5: FLR TEMP[3].x, TEMP[0].zzzz 6: TRUNC TEMP[3].x, TEMP[3].xxxx 7: FLR TEMP[4].xyz, TEMP[0].xyzz 8: ADD TEMP[0].xyz, TEMP[0].xyzz, -TEMP[4].xyzz 9: MOV TEMP[4].xyz, IMM[0].yyyy 10: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[0].yyyy 11: IF TEMP[5].xxxx :0 12: MUL TEMP[4].x, IMM[0].zzzz, TEMP[0].xxxx 13: ELSE :0 14: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[0].wwww 15: IF TEMP[5].xxxx :0 16: LRP TEMP[4].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[0].zzzz 17: ELSE :0 18: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[1].yyyy 19: IF TEMP[5].xxxx :0 20: LRP TEMP[4].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[1].xxxx 21: ELSE :0 22: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[1].wwww 23: IF TEMP[5].xxxx :0 24: LRP TEMP[4].x, TEMP[0].xxxx, IMM[0].wwww, IMM[1].zzzz 25: ELSE :0 26: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[2].xxxx 27: IF TEMP[5].xxxx :0 28: LRP TEMP[4].x, TEMP[0].xxxx, IMM[1].zzzz, IMM[0].wwww 29: ELSE :0 30: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[2].yyyy 31: IF TEMP[5].xxxx :0 32: LRP TEMP[4].x, TEMP[0].xxxx, IMM[1].xxxx, IMM[1].zzzz 33: ELSE :0 34: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[2].zzzz 35: IF TEMP[5].xxxx :0 36: LRP TEMP[4].x, TEMP[0].xxxx, IMM[0].zzzz, IMM[1].xxxx 37: ELSE :0 38: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[2].wwww 39: IF TEMP[5].xxxx :0 40: ADD TEMP[5].x, IMM[0].wwww, -TEMP[0].xxxx 41: MUL TEMP[4].x, IMM[0].zzzz, TEMP[5].xxxx 42: ELSE :0 43: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[3].xxxx 44: IF TEMP[5].xxxx :0 45: MUL TEMP[4].x, IMM[3].yyyy, TEMP[0].xxxx 46: ELSE :0 47: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[3].zzzz 48: IF TEMP[5].xxxx :0 49: LRP TEMP[4].x, TEMP[0].xxxx, IMM[3].wwww, IMM[3].yyyy 50: ELSE :0 51: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[4].xxxx 52: IF TEMP[5].xxxx :0 53: LRP TEMP[4].x, TEMP[0].xxxx, IMM[4].yyyy, IMM[3].wwww 54: ELSE :0 55: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[4].zzzz 56: IF TEMP[5].xxxx :0 57: LRP TEMP[4].x, TEMP[0].xxxx, IMM[4].wwww, IMM[4].yyyy 58: ELSE :0 59: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[5].xxxx 60: IF TEMP[5].xxxx :0 61: LRP TEMP[4].x, TEMP[0].xxxx, IMM[5].yyyy, IMM[4].wwww 62: ELSE :0 63: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[5].zzzz 64: IF TEMP[5].xxxx :0 65: LRP TEMP[4].x, TEMP[0].xxxx, IMM[3].wwww, IMM[5].yyyy 66: ELSE :0 67: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[5].wwww 68: IF TEMP[5].xxxx :0 69: LRP TEMP[4].x, TEMP[0].xxxx, IMM[3].yyyy, IMM[3].wwww 70: ELSE :0 71: SEQ TEMP[5].x, TEMP[1].xxxx, IMM[6].xxxx 72: IF TEMP[5].xxxx :0 73: ADD TEMP[5].x, IMM[0].wwww, -TEMP[0].xxxx 74: MUL TEMP[4].x, IMM[3].yyyy, TEMP[5].xxxx 75: ELSE :0 76: SEQ TEMP[1].x, TEMP[1].xxxx, IMM[0].xxxx 77: IF TEMP[1].xxxx :0 78: MOV TEMP[4].x, IMM[0].yyyy 79: ENDIF 80: ENDIF 81: ENDIF 82: ENDIF 83: ENDIF 84: ENDIF 85: ENDIF 86: ENDIF 87: ENDIF 88: ENDIF 89: ENDIF 90: ENDIF 91: ENDIF 92: ENDIF 93: ENDIF 94: ENDIF 95: ENDIF 96: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[0].yyyy 97: IF TEMP[1].xxxx :0 98: MUL TEMP[1].x, IMM[0].zzzz, TEMP[0].yyyy 99: MOV TEMP[4].y, TEMP[1].xxxx 100: ELSE :0 101: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[0].wwww 102: IF TEMP[1].xxxx :0 103: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].xxxx, IMM[0].zzzz 104: MOV TEMP[4].y, TEMP[1].xxxx 105: ELSE :0 106: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[1].yyyy 107: IF TEMP[1].xxxx :0 108: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].zzzz, IMM[1].xxxx 109: MOV TEMP[4].y, TEMP[1].xxxx 110: ELSE :0 111: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[1].wwww 112: IF TEMP[1].xxxx :0 113: LRP TEMP[1].x, TEMP[0].yyyy, IMM[0].wwww, IMM[1].zzzz 114: MOV TEMP[4].y, TEMP[1].xxxx 115: ELSE :0 116: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].xxxx 117: IF TEMP[1].xxxx :0 118: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].zzzz, IMM[0].wwww 119: MOV TEMP[4].y, TEMP[1].xxxx 120: ELSE :0 121: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].yyyy 122: IF TEMP[1].xxxx :0 123: LRP TEMP[1].x, TEMP[0].yyyy, IMM[1].xxxx, IMM[1].zzzz 124: MOV TEMP[4].y, TEMP[1].xxxx 125: ELSE :0 126: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].zzzz 127: IF TEMP[1].xxxx :0 128: LRP TEMP[1].x, TEMP[0].yyyy, IMM[0].zzzz, IMM[1].xxxx 129: MOV TEMP[4].y, TEMP[1].xxxx 130: ELSE :0 131: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[2].wwww 132: IF TEMP[1].xxxx :0 133: ADD TEMP[1].x, IMM[0].wwww, -TEMP[0].yyyy 134: MUL TEMP[1].x, IMM[0].zzzz, TEMP[1].xxxx 135: MOV TEMP[4].y, TEMP[1].xxxx 136: ELSE :0 137: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[3].xxxx 138: IF TEMP[1].xxxx :0 139: MUL TEMP[1].x, IMM[3].yyyy, TEMP[0].yyyy 140: MOV TEMP[4].y, TEMP[1].xxxx 141: ELSE :0 142: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[3].zzzz 143: IF TEMP[1].xxxx :0 144: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].wwww, IMM[3].yyyy 145: MOV TEMP[4].y, TEMP[1].xxxx 146: ELSE :0 147: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[4].xxxx 148: IF TEMP[1].xxxx :0 149: LRP TEMP[1].x, TEMP[0].yyyy, IMM[4].yyyy, IMM[3].wwww 150: MOV TEMP[4].y, TEMP[1].xxxx 151: ELSE :0 152: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[4].zzzz 153: IF TEMP[1].xxxx :0 154: LRP TEMP[1].x, TEMP[0].yyyy, IMM[4].wwww, IMM[4].yyyy 155: MOV TEMP[4].y, TEMP[1].xxxx 156: ELSE :0 157: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].xxxx 158: IF TEMP[1].xxxx :0 159: LRP TEMP[1].x, TEMP[0].yyyy, IMM[5].yyyy, IMM[4].wwww 160: MOV TEMP[4].y, TEMP[1].xxxx 161: ELSE :0 162: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].zzzz 163: IF TEMP[1].xxxx :0 164: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].wwww, IMM[5].yyyy 165: MOV TEMP[4].y, TEMP[1].xxxx 166: ELSE :0 167: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[5].wwww 168: IF TEMP[1].xxxx :0 169: LRP TEMP[1].x, TEMP[0].yyyy, IMM[3].yyyy, IMM[3].wwww 170: MOV TEMP[4].y, TEMP[1].xxxx 171: ELSE :0 172: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[6].xxxx 173: IF TEMP[1].xxxx :0 174: ADD TEMP[1].x, IMM[0].wwww, -TEMP[0].yyyy 175: MUL TEMP[1].x, IMM[3].yyyy, TEMP[1].xxxx 176: MOV TEMP[4].y, TEMP[1].xxxx 177: ELSE :0 178: SEQ TEMP[1].x, TEMP[2].xxxx, IMM[0].xxxx 179: IF TEMP[1].xxxx :0 180: MOV TEMP[4].y, IMM[0].yyyy 181: ENDIF 182: ENDIF 183: ENDIF 184: ENDIF 185: ENDIF 186: ENDIF 187: ENDIF 188: ENDIF 189: ENDIF 190: ENDIF 191: ENDIF 192: ENDIF 193: ENDIF 194: ENDIF 195: ENDIF 196: ENDIF 197: ENDIF 198: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[0].yyyy 199: IF TEMP[1].xxxx :0 200: MUL TEMP[1].x, IMM[0].zzzz, TEMP[0].zzzz 201: MOV TEMP[4].z, TEMP[1].xxxx 202: ELSE :0 203: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[0].wwww 204: IF TEMP[1].xxxx :0 205: LRP TEMP[1].x, TEMP[0].zzzz, IMM[1].xxxx, IMM[0].zzzz 206: MOV TEMP[4].z, TEMP[1].xxxx 207: ELSE :0 208: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[1].yyyy 209: IF TEMP[1].xxxx :0 210: LRP TEMP[1].x, TEMP[0].zzzz, IMM[1].zzzz, IMM[1].xxxx 211: MOV TEMP[4].z, TEMP[1].xxxx 212: ELSE :0 213: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[1].wwww 214: IF TEMP[1].xxxx :0 215: LRP TEMP[1].x, TEMP[0].zzzz, IMM[0].wwww, IMM[1].zzzz 216: MOV TEMP[4].z, TEMP[1].xxxx 217: ELSE :0 218: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[2].xxxx 219: IF TEMP[1].xxxx :0 220: LRP TEMP[1].x, TEMP[0].zzzz, IMM[1].zzzz, IMM[0].wwww 221: MOV TEMP[4].z, TEMP[1].xxxx 222: ELSE :0 223: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[2].yyyy 224: IF TEMP[1].xxxx :0 225: LRP TEMP[1].x, TEMP[0].zzzz, IMM[1].xxxx, IMM[1].zzzz 226: MOV TEMP[4].z, TEMP[1].xxxx 227: ELSE :0 228: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[2].zzzz 229: IF TEMP[1].xxxx :0 230: LRP TEMP[1].x, TEMP[0].zzzz, IMM[0].zzzz, IMM[1].xxxx 231: MOV TEMP[4].z, TEMP[1].xxxx 232: ELSE :0 233: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[2].wwww 234: IF TEMP[1].xxxx :0 235: ADD TEMP[1].x, IMM[0].wwww, -TEMP[0].zzzz 236: MUL TEMP[1].x, IMM[0].zzzz, TEMP[1].xxxx 237: MOV TEMP[4].z, TEMP[1].xxxx 238: ELSE :0 239: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[3].xxxx 240: IF TEMP[1].xxxx :0 241: MUL TEMP[1].x, IMM[3].yyyy, TEMP[0].zzzz 242: MOV TEMP[4].z, TEMP[1].xxxx 243: ELSE :0 244: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[3].zzzz 245: IF TEMP[1].xxxx :0 246: LRP TEMP[1].x, TEMP[0].zzzz, IMM[3].wwww, IMM[3].yyyy 247: MOV TEMP[4].z, TEMP[1].xxxx 248: ELSE :0 249: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[4].xxxx 250: IF TEMP[1].xxxx :0 251: LRP TEMP[1].x, TEMP[0].zzzz, IMM[4].yyyy, IMM[3].wwww 252: MOV TEMP[4].z, TEMP[1].xxxx 253: ELSE :0 254: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[4].zzzz 255: IF TEMP[1].xxxx :0 256: LRP TEMP[1].x, TEMP[0].zzzz, IMM[4].wwww, IMM[4].yyyy 257: MOV TEMP[4].z, TEMP[1].xxxx 258: ELSE :0 259: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[5].xxxx 260: IF TEMP[1].xxxx :0 261: LRP TEMP[1].x, TEMP[0].zzzz, IMM[5].yyyy, IMM[4].wwww 262: MOV TEMP[4].z, TEMP[1].xxxx 263: ELSE :0 264: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[5].zzzz 265: IF TEMP[1].xxxx :0 266: LRP TEMP[1].x, TEMP[0].zzzz, IMM[3].wwww, IMM[5].yyyy 267: MOV TEMP[4].z, TEMP[1].xxxx 268: ELSE :0 269: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[5].wwww 270: IF TEMP[1].xxxx :0 271: LRP TEMP[1].x, TEMP[0].zzzz, IMM[3].yyyy, IMM[3].wwww 272: MOV TEMP[4].z, TEMP[1].xxxx 273: ELSE :0 274: SEQ TEMP[1].x, TEMP[3].xxxx, IMM[6].xxxx 275: IF TEMP[1].xxxx :0 276: ADD TEMP[0].x, IMM[0].wwww, -TEMP[0].zzzz 277: MUL TEMP[0].x, IMM[3].yyyy, TEMP[0].xxxx 278: MOV TEMP[4].z, TEMP[0].xxxx 279: ELSE :0 280: SEQ TEMP[0].x, TEMP[3].xxxx, IMM[0].xxxx 281: IF TEMP[0].xxxx :0 282: MOV TEMP[4].z, IMM[0].yyyy 283: ENDIF 284: ENDIF 285: ENDIF 286: ENDIF 287: ENDIF 288: ENDIF 289: ENDIF 290: ENDIF 291: ENDIF 292: ENDIF 293: ENDIF 294: ENDIF 295: ENDIF 296: ENDIF 297: ENDIF 298: ENDIF 299: ENDIF 300: MOV TEMP[0].w, IMM[0].wwww 301: MAD TEMP[0].xyz, IMM[6].yyyy, TEMP[4].xyzz, IMM[6].yyyy 302: MOV OUT[0], TEMP[0] 303: END Fragment Program: before compilation # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SEQ temp[5].x, temp[1].xxxx, const[0].yyyy; 11: IF temp[5].xxxx; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SEQ temp[5].x, temp[1].xxxx, const[0].wwww; 15: IF temp[5].xxxx; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SEQ temp[5].x, temp[1].xxxx, const[1].yyyy; 19: IF temp[5].xxxx; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SEQ temp[5].x, temp[1].xxxx, const[1].wwww; 23: IF temp[5].xxxx; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SEQ temp[5].x, temp[1].xxxx, const[2].xxxx; 27: IF temp[5].xxxx; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SEQ temp[5].x, temp[1].xxxx, const[2].yyyy; 31: IF temp[5].xxxx; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SEQ temp[5].x, temp[1].xxxx, const[2].zzzz; 35: IF temp[5].xxxx; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SEQ temp[5].x, temp[1].xxxx, const[2].wwww; 39: IF temp[5].xxxx; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SEQ temp[5].x, temp[1].xxxx, const[3].xxxx; 44: IF temp[5].xxxx; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SEQ temp[5].x, temp[1].xxxx, const[3].zzzz; 48: IF temp[5].xxxx; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SEQ temp[5].x, temp[1].xxxx, const[4].xxxx; 52: IF temp[5].xxxx; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SEQ temp[5].x, temp[1].xxxx, const[4].zzzz; 56: IF temp[5].xxxx; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SEQ temp[5].x, temp[1].xxxx, const[5].xxxx; 60: IF temp[5].xxxx; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SEQ temp[5].x, temp[1].xxxx, const[5].zzzz; 64: IF temp[5].xxxx; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SEQ temp[5].x, temp[1].xxxx, const[5].wwww; 68: IF temp[5].xxxx; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SEQ temp[5].x, temp[1].xxxx, const[6].xxxx; 72: IF temp[5].xxxx; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 77: IF temp[1].xxxx; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 97: IF temp[1].xxxx; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 102: IF temp[1].xxxx; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 107: IF temp[1].xxxx; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 112: IF temp[1].xxxx; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 117: IF temp[1].xxxx; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 122: IF temp[1].xxxx; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 127: IF temp[1].xxxx; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 132: IF temp[1].xxxx; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 138: IF temp[1].xxxx; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 143: IF temp[1].xxxx; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 148: IF temp[1].xxxx; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 153: IF temp[1].xxxx; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 158: IF temp[1].xxxx; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 163: IF temp[1].xxxx; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 168: IF temp[1].xxxx; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 173: IF temp[1].xxxx; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SEQ temp[1].x, temp[2].xxxx, const[0].xxxx; 179: IF temp[1].xxxx; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SEQ temp[1].x, temp[3].xxxx, const[0].yyyy; 199: IF temp[1].xxxx; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SEQ temp[1].x, temp[3].xxxx, const[0].wwww; 204: IF temp[1].xxxx; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SEQ temp[1].x, temp[3].xxxx, const[1].yyyy; 209: IF temp[1].xxxx; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SEQ temp[1].x, temp[3].xxxx, const[1].wwww; 214: IF temp[1].xxxx; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SEQ temp[1].x, temp[3].xxxx, const[2].xxxx; 219: IF temp[1].xxxx; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SEQ temp[1].x, temp[3].xxxx, const[2].yyyy; 224: IF temp[1].xxxx; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SEQ temp[1].x, temp[3].xxxx, const[2].zzzz; 229: IF temp[1].xxxx; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SEQ temp[1].x, temp[3].xxxx, const[2].wwww; 234: IF temp[1].xxxx; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SEQ temp[1].x, temp[3].xxxx, const[3].xxxx; 240: IF temp[1].xxxx; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SEQ temp[1].x, temp[3].xxxx, const[3].zzzz; 245: IF temp[1].xxxx; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SEQ temp[1].x, temp[3].xxxx, const[4].xxxx; 250: IF temp[1].xxxx; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SEQ temp[1].x, temp[3].xxxx, const[4].zzzz; 255: IF temp[1].xxxx; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SEQ temp[1].x, temp[3].xxxx, const[5].xxxx; 260: IF temp[1].xxxx; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SEQ temp[1].x, temp[3].xxxx, const[5].zzzz; 265: IF temp[1].xxxx; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SEQ temp[1].x, temp[3].xxxx, const[5].wwww; 270: IF temp[1].xxxx; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SEQ temp[1].x, temp[3].xxxx, const[6].xxxx; 275: IF temp[1].xxxx; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SEQ temp[0].x, temp[3].xxxx, const[0].xxxx; 281: IF temp[0].xxxx; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SEQ temp[5].x, temp[1].xxxx, const[0].yyyy; 11: IF temp[5].xxxx; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SEQ temp[5].x, temp[1].xxxx, const[0].wwww; 15: IF temp[5].xxxx; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SEQ temp[5].x, temp[1].xxxx, const[1].yyyy; 19: IF temp[5].xxxx; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SEQ temp[5].x, temp[1].xxxx, const[1].wwww; 23: IF temp[5].xxxx; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SEQ temp[5].x, temp[1].xxxx, const[2].xxxx; 27: IF temp[5].xxxx; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SEQ temp[5].x, temp[1].xxxx, const[2].yyyy; 31: IF temp[5].xxxx; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SEQ temp[5].x, temp[1].xxxx, const[2].zzzz; 35: IF temp[5].xxxx; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SEQ temp[5].x, temp[1].xxxx, const[2].wwww; 39: IF temp[5].xxxx; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SEQ temp[5].x, temp[1].xxxx, const[3].xxxx; 44: IF temp[5].xxxx; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SEQ temp[5].x, temp[1].xxxx, const[3].zzzz; 48: IF temp[5].xxxx; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SEQ temp[5].x, temp[1].xxxx, const[4].xxxx; 52: IF temp[5].xxxx; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SEQ temp[5].x, temp[1].xxxx, const[4].zzzz; 56: IF temp[5].xxxx; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SEQ temp[5].x, temp[1].xxxx, const[5].xxxx; 60: IF temp[5].xxxx; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SEQ temp[5].x, temp[1].xxxx, const[5].zzzz; 64: IF temp[5].xxxx; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SEQ temp[5].x, temp[1].xxxx, const[5].wwww; 68: IF temp[5].xxxx; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SEQ temp[5].x, temp[1].xxxx, const[6].xxxx; 72: IF temp[5].xxxx; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 77: IF temp[1].xxxx; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 97: IF temp[1].xxxx; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 102: IF temp[1].xxxx; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 107: IF temp[1].xxxx; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 112: IF temp[1].xxxx; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 117: IF temp[1].xxxx; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 122: IF temp[1].xxxx; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 127: IF temp[1].xxxx; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 132: IF temp[1].xxxx; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 138: IF temp[1].xxxx; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 143: IF temp[1].xxxx; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 148: IF temp[1].xxxx; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 153: IF temp[1].xxxx; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 158: IF temp[1].xxxx; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 163: IF temp[1].xxxx; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 168: IF temp[1].xxxx; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 173: IF temp[1].xxxx; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SEQ temp[1].x, temp[2].xxxx, const[0].xxxx; 179: IF temp[1].xxxx; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SEQ temp[1].x, temp[3].xxxx, const[0].yyyy; 199: IF temp[1].xxxx; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SEQ temp[1].x, temp[3].xxxx, const[0].wwww; 204: IF temp[1].xxxx; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SEQ temp[1].x, temp[3].xxxx, const[1].yyyy; 209: IF temp[1].xxxx; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SEQ temp[1].x, temp[3].xxxx, const[1].wwww; 214: IF temp[1].xxxx; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SEQ temp[1].x, temp[3].xxxx, const[2].xxxx; 219: IF temp[1].xxxx; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SEQ temp[1].x, temp[3].xxxx, const[2].yyyy; 224: IF temp[1].xxxx; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SEQ temp[1].x, temp[3].xxxx, const[2].zzzz; 229: IF temp[1].xxxx; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SEQ temp[1].x, temp[3].xxxx, const[2].wwww; 234: IF temp[1].xxxx; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SEQ temp[1].x, temp[3].xxxx, const[3].xxxx; 240: IF temp[1].xxxx; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SEQ temp[1].x, temp[3].xxxx, const[3].zzzz; 245: IF temp[1].xxxx; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SEQ temp[1].x, temp[3].xxxx, const[4].xxxx; 250: IF temp[1].xxxx; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SEQ temp[1].x, temp[3].xxxx, const[4].zzzz; 255: IF temp[1].xxxx; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SEQ temp[1].x, temp[3].xxxx, const[5].xxxx; 260: IF temp[1].xxxx; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SEQ temp[1].x, temp[3].xxxx, const[5].zzzz; 265: IF temp[1].xxxx; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SEQ temp[1].x, temp[3].xxxx, const[5].wwww; 270: IF temp[1].xxxx; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SEQ temp[1].x, temp[3].xxxx, const[6].xxxx; 275: IF temp[1].xxxx; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SEQ temp[0].x, temp[3].xxxx, const[0].xxxx; 281: IF temp[0].xxxx; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SEQ temp[5].x, temp[1].xxxx, const[0].yyyy; 11: IF temp[5].xxxx; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SEQ temp[5].x, temp[1].xxxx, const[0].wwww; 15: IF temp[5].xxxx; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SEQ temp[5].x, temp[1].xxxx, const[1].yyyy; 19: IF temp[5].xxxx; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SEQ temp[5].x, temp[1].xxxx, const[1].wwww; 23: IF temp[5].xxxx; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SEQ temp[5].x, temp[1].xxxx, const[2].xxxx; 27: IF temp[5].xxxx; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SEQ temp[5].x, temp[1].xxxx, const[2].yyyy; 31: IF temp[5].xxxx; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SEQ temp[5].x, temp[1].xxxx, const[2].zzzz; 35: IF temp[5].xxxx; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SEQ temp[5].x, temp[1].xxxx, const[2].wwww; 39: IF temp[5].xxxx; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SEQ temp[5].x, temp[1].xxxx, const[3].xxxx; 44: IF temp[5].xxxx; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SEQ temp[5].x, temp[1].xxxx, const[3].zzzz; 48: IF temp[5].xxxx; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SEQ temp[5].x, temp[1].xxxx, const[4].xxxx; 52: IF temp[5].xxxx; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SEQ temp[5].x, temp[1].xxxx, const[4].zzzz; 56: IF temp[5].xxxx; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SEQ temp[5].x, temp[1].xxxx, const[5].xxxx; 60: IF temp[5].xxxx; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SEQ temp[5].x, temp[1].xxxx, const[5].zzzz; 64: IF temp[5].xxxx; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SEQ temp[5].x, temp[1].xxxx, const[5].wwww; 68: IF temp[5].xxxx; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SEQ temp[5].x, temp[1].xxxx, const[6].xxxx; 72: IF temp[5].xxxx; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 77: IF temp[1].xxxx; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 97: IF temp[1].xxxx; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 102: IF temp[1].xxxx; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 107: IF temp[1].xxxx; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 112: IF temp[1].xxxx; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 117: IF temp[1].xxxx; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 122: IF temp[1].xxxx; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 127: IF temp[1].xxxx; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 132: IF temp[1].xxxx; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 138: IF temp[1].xxxx; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 143: IF temp[1].xxxx; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 148: IF temp[1].xxxx; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 153: IF temp[1].xxxx; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 158: IF temp[1].xxxx; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 163: IF temp[1].xxxx; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 168: IF temp[1].xxxx; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 173: IF temp[1].xxxx; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SEQ temp[1].x, temp[2].xxxx, const[0].xxxx; 179: IF temp[1].xxxx; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SEQ temp[1].x, temp[3].xxxx, const[0].yyyy; 199: IF temp[1].xxxx; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SEQ temp[1].x, temp[3].xxxx, const[0].wwww; 204: IF temp[1].xxxx; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SEQ temp[1].x, temp[3].xxxx, const[1].yyyy; 209: IF temp[1].xxxx; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SEQ temp[1].x, temp[3].xxxx, const[1].wwww; 214: IF temp[1].xxxx; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SEQ temp[1].x, temp[3].xxxx, const[2].xxxx; 219: IF temp[1].xxxx; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SEQ temp[1].x, temp[3].xxxx, const[2].yyyy; 224: IF temp[1].xxxx; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SEQ temp[1].x, temp[3].xxxx, const[2].zzzz; 229: IF temp[1].xxxx; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SEQ temp[1].x, temp[3].xxxx, const[2].wwww; 234: IF temp[1].xxxx; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SEQ temp[1].x, temp[3].xxxx, const[3].xxxx; 240: IF temp[1].xxxx; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SEQ temp[1].x, temp[3].xxxx, const[3].zzzz; 245: IF temp[1].xxxx; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SEQ temp[1].x, temp[3].xxxx, const[4].xxxx; 250: IF temp[1].xxxx; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SEQ temp[1].x, temp[3].xxxx, const[4].zzzz; 255: IF temp[1].xxxx; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SEQ temp[1].x, temp[3].xxxx, const[5].xxxx; 260: IF temp[1].xxxx; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SEQ temp[1].x, temp[3].xxxx, const[5].zzzz; 265: IF temp[1].xxxx; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SEQ temp[1].x, temp[3].xxxx, const[5].wwww; 270: IF temp[1].xxxx; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SEQ temp[1].x, temp[3].xxxx, const[6].xxxx; 275: IF temp[1].xxxx; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SEQ temp[0].x, temp[3].xxxx, const[0].xxxx; 281: IF temp[0].xxxx; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SEQ temp[5].x, temp[1].xxxx, const[0].yyyy; 11: IF temp[5].xxxx; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SEQ temp[5].x, temp[1].xxxx, const[0].wwww; 15: IF temp[5].xxxx; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SEQ temp[5].x, temp[1].xxxx, const[1].yyyy; 19: IF temp[5].xxxx; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SEQ temp[5].x, temp[1].xxxx, const[1].wwww; 23: IF temp[5].xxxx; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SEQ temp[5].x, temp[1].xxxx, const[2].xxxx; 27: IF temp[5].xxxx; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SEQ temp[5].x, temp[1].xxxx, const[2].yyyy; 31: IF temp[5].xxxx; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SEQ temp[5].x, temp[1].xxxx, const[2].zzzz; 35: IF temp[5].xxxx; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SEQ temp[5].x, temp[1].xxxx, const[2].wwww; 39: IF temp[5].xxxx; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SEQ temp[5].x, temp[1].xxxx, const[3].xxxx; 44: IF temp[5].xxxx; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SEQ temp[5].x, temp[1].xxxx, const[3].zzzz; 48: IF temp[5].xxxx; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SEQ temp[5].x, temp[1].xxxx, const[4].xxxx; 52: IF temp[5].xxxx; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SEQ temp[5].x, temp[1].xxxx, const[4].zzzz; 56: IF temp[5].xxxx; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SEQ temp[5].x, temp[1].xxxx, const[5].xxxx; 60: IF temp[5].xxxx; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SEQ temp[5].x, temp[1].xxxx, const[5].zzzz; 64: IF temp[5].xxxx; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SEQ temp[5].x, temp[1].xxxx, const[5].wwww; 68: IF temp[5].xxxx; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SEQ temp[5].x, temp[1].xxxx, const[6].xxxx; 72: IF temp[5].xxxx; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 77: IF temp[1].xxxx; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 97: IF temp[1].xxxx; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 102: IF temp[1].xxxx; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 107: IF temp[1].xxxx; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 112: IF temp[1].xxxx; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 117: IF temp[1].xxxx; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 122: IF temp[1].xxxx; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 127: IF temp[1].xxxx; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 132: IF temp[1].xxxx; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 138: IF temp[1].xxxx; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 143: IF temp[1].xxxx; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 148: IF temp[1].xxxx; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 153: IF temp[1].xxxx; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 158: IF temp[1].xxxx; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 163: IF temp[1].xxxx; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 168: IF temp[1].xxxx; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 173: IF temp[1].xxxx; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SEQ temp[1].x, temp[2].xxxx, const[0].xxxx; 179: IF temp[1].xxxx; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SEQ temp[1].x, temp[3].xxxx, const[0].yyyy; 199: IF temp[1].xxxx; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SEQ temp[1].x, temp[3].xxxx, const[0].wwww; 204: IF temp[1].xxxx; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SEQ temp[1].x, temp[3].xxxx, const[1].yyyy; 209: IF temp[1].xxxx; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SEQ temp[1].x, temp[3].xxxx, const[1].wwww; 214: IF temp[1].xxxx; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SEQ temp[1].x, temp[3].xxxx, const[2].xxxx; 219: IF temp[1].xxxx; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SEQ temp[1].x, temp[3].xxxx, const[2].yyyy; 224: IF temp[1].xxxx; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SEQ temp[1].x, temp[3].xxxx, const[2].zzzz; 229: IF temp[1].xxxx; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SEQ temp[1].x, temp[3].xxxx, const[2].wwww; 234: IF temp[1].xxxx; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SEQ temp[1].x, temp[3].xxxx, const[3].xxxx; 240: IF temp[1].xxxx; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SEQ temp[1].x, temp[3].xxxx, const[3].zzzz; 245: IF temp[1].xxxx; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SEQ temp[1].x, temp[3].xxxx, const[4].xxxx; 250: IF temp[1].xxxx; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SEQ temp[1].x, temp[3].xxxx, const[4].zzzz; 255: IF temp[1].xxxx; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SEQ temp[1].x, temp[3].xxxx, const[5].xxxx; 260: IF temp[1].xxxx; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SEQ temp[1].x, temp[3].xxxx, const[5].zzzz; 265: IF temp[1].xxxx; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SEQ temp[1].x, temp[3].xxxx, const[5].wwww; 270: IF temp[1].xxxx; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SEQ temp[1].x, temp[3].xxxx, const[6].xxxx; 275: IF temp[1].xxxx; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SEQ temp[0].x, temp[3].xxxx, const[0].xxxx; 281: IF temp[0].xxxx; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SEQ temp[5].x, temp[1].xxxx, const[0].yyyy; 11: IF temp[5].xxxx; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SEQ temp[5].x, temp[1].xxxx, const[0].wwww; 15: IF temp[5].xxxx; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SEQ temp[5].x, temp[1].xxxx, const[1].yyyy; 19: IF temp[5].xxxx; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SEQ temp[5].x, temp[1].xxxx, const[1].wwww; 23: IF temp[5].xxxx; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SEQ temp[5].x, temp[1].xxxx, const[2].xxxx; 27: IF temp[5].xxxx; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SEQ temp[5].x, temp[1].xxxx, const[2].yyyy; 31: IF temp[5].xxxx; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SEQ temp[5].x, temp[1].xxxx, const[2].zzzz; 35: IF temp[5].xxxx; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SEQ temp[5].x, temp[1].xxxx, const[2].wwww; 39: IF temp[5].xxxx; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SEQ temp[5].x, temp[1].xxxx, const[3].xxxx; 44: IF temp[5].xxxx; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SEQ temp[5].x, temp[1].xxxx, const[3].zzzz; 48: IF temp[5].xxxx; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SEQ temp[5].x, temp[1].xxxx, const[4].xxxx; 52: IF temp[5].xxxx; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SEQ temp[5].x, temp[1].xxxx, const[4].zzzz; 56: IF temp[5].xxxx; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SEQ temp[5].x, temp[1].xxxx, const[5].xxxx; 60: IF temp[5].xxxx; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SEQ temp[5].x, temp[1].xxxx, const[5].zzzz; 64: IF temp[5].xxxx; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SEQ temp[5].x, temp[1].xxxx, const[5].wwww; 68: IF temp[5].xxxx; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SEQ temp[5].x, temp[1].xxxx, const[6].xxxx; 72: IF temp[5].xxxx; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SEQ temp[1].x, temp[1].xxxx, const[0].xxxx; 77: IF temp[1].xxxx; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SEQ temp[1].x, temp[2].xxxx, const[0].yyyy; 97: IF temp[1].xxxx; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SEQ temp[1].x, temp[2].xxxx, const[0].wwww; 102: IF temp[1].xxxx; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SEQ temp[1].x, temp[2].xxxx, const[1].yyyy; 107: IF temp[1].xxxx; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SEQ temp[1].x, temp[2].xxxx, const[1].wwww; 112: IF temp[1].xxxx; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SEQ temp[1].x, temp[2].xxxx, const[2].xxxx; 117: IF temp[1].xxxx; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SEQ temp[1].x, temp[2].xxxx, const[2].yyyy; 122: IF temp[1].xxxx; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SEQ temp[1].x, temp[2].xxxx, const[2].zzzz; 127: IF temp[1].xxxx; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SEQ temp[1].x, temp[2].xxxx, const[2].wwww; 132: IF temp[1].xxxx; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SEQ temp[1].x, temp[2].xxxx, const[3].xxxx; 138: IF temp[1].xxxx; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SEQ temp[1].x, temp[2].xxxx, const[3].zzzz; 143: IF temp[1].xxxx; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SEQ temp[1].x, temp[2].xxxx, const[4].xxxx; 148: IF temp[1].xxxx; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SEQ temp[1].x, temp[2].xxxx, const[4].zzzz; 153: IF temp[1].xxxx; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SEQ temp[1].x, temp[2].xxxx, const[5].xxxx; 158: IF temp[1].xxxx; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SEQ temp[1].x, temp[2].xxxx, const[5].zzzz; 163: IF temp[1].xxxx; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SEQ temp[1].x, temp[2].xxxx, const[5].wwww; 168: IF temp[1].xxxx; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SEQ temp[1].x, temp[2].xxxx, const[6].xxxx; 173: IF temp[1].xxxx; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SEQ temp[1].x, temp[2].xxxx, const[0].xxxx; 179: IF temp[1].xxxx; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SEQ temp[1].x, temp[3].xxxx, const[0].yyyy; 199: IF temp[1].xxxx; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SEQ temp[1].x, temp[3].xxxx, const[0].wwww; 204: IF temp[1].xxxx; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SEQ temp[1].x, temp[3].xxxx, const[1].yyyy; 209: IF temp[1].xxxx; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SEQ temp[1].x, temp[3].xxxx, const[1].wwww; 214: IF temp[1].xxxx; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SEQ temp[1].x, temp[3].xxxx, const[2].xxxx; 219: IF temp[1].xxxx; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SEQ temp[1].x, temp[3].xxxx, const[2].yyyy; 224: IF temp[1].xxxx; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SEQ temp[1].x, temp[3].xxxx, const[2].zzzz; 229: IF temp[1].xxxx; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SEQ temp[1].x, temp[3].xxxx, const[2].wwww; 234: IF temp[1].xxxx; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SEQ temp[1].x, temp[3].xxxx, const[3].xxxx; 240: IF temp[1].xxxx; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SEQ temp[1].x, temp[3].xxxx, const[3].zzzz; 245: IF temp[1].xxxx; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SEQ temp[1].x, temp[3].xxxx, const[4].xxxx; 250: IF temp[1].xxxx; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SEQ temp[1].x, temp[3].xxxx, const[4].zzzz; 255: IF temp[1].xxxx; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SEQ temp[1].x, temp[3].xxxx, const[5].xxxx; 260: IF temp[1].xxxx; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SEQ temp[1].x, temp[3].xxxx, const[5].zzzz; 265: IF temp[1].xxxx; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SEQ temp[1].x, temp[3].xxxx, const[5].wwww; 270: IF temp[1].xxxx; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SEQ temp[1].x, temp[3].xxxx, const[6].xxxx; 275: IF temp[1].xxxx; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SEQ temp[0].x, temp[3].xxxx, const[0].xxxx; 281: IF temp[0].xxxx; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FLR temp[1].x, temp[0].xxxx; 2: TRUNC temp[1].x, temp[1].xxxx; 3: FLR temp[2].x, temp[0].yyyy; 4: TRUNC temp[2].x, temp[2].xxxx; 5: FLR temp[3].x, temp[0].zzzz; 6: TRUNC temp[3].x, temp[3].xxxx; 7: FLR temp[4].xyz, temp[0].xyzz; 8: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 9: MOV temp[4].xyz, const[0].yyyy; 10: SUB none., temp[1].xxxx, const[0].yyyy; [aluresult = (x == 0)] 11: IF aluresult.x___; 12: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 13: ELSE; 14: SUB none., temp[1].xxxx, const[0].wwww; [aluresult = (x == 0)] 15: IF aluresult.x___; 16: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[0].zzzz; 17: ELSE; 18: SUB none., temp[1].xxxx, const[1].yyyy; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[1].xxxx; 21: ELSE; 22: SUB none., temp[1].xxxx, const[1].wwww; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: LRP temp[4].x, temp[0].xxxx, const[0].wwww, const[1].zzzz; 25: ELSE; 26: SUB none., temp[1].xxxx, const[2].xxxx; [aluresult = (x == 0)] 27: IF aluresult.x___; 28: LRP temp[4].x, temp[0].xxxx, const[1].zzzz, const[0].wwww; 29: ELSE; 30: SUB none., temp[1].xxxx, const[2].yyyy; [aluresult = (x == 0)] 31: IF aluresult.x___; 32: LRP temp[4].x, temp[0].xxxx, const[1].xxxx, const[1].zzzz; 33: ELSE; 34: SUB none., temp[1].xxxx, const[2].zzzz; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: LRP temp[4].x, temp[0].xxxx, const[0].zzzz, const[1].xxxx; 37: ELSE; 38: SUB none., temp[1].xxxx, const[2].wwww; [aluresult = (x == 0)] 39: IF aluresult.x___; 40: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 41: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 42: ELSE; 43: SUB none., temp[1].xxxx, const[3].xxxx; [aluresult = (x == 0)] 44: IF aluresult.x___; 45: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 46: ELSE; 47: SUB none., temp[1].xxxx, const[3].zzzz; [aluresult = (x == 0)] 48: IF aluresult.x___; 49: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[3].yyyy; 50: ELSE; 51: SUB none., temp[1].xxxx, const[4].xxxx; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: LRP temp[4].x, temp[0].xxxx, const[4].yyyy, const[3].wwww; 54: ELSE; 55: SUB none., temp[1].xxxx, const[4].zzzz; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: LRP temp[4].x, temp[0].xxxx, const[4].wwww, const[4].yyyy; 58: ELSE; 59: SUB none., temp[1].xxxx, const[5].xxxx; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: LRP temp[4].x, temp[0].xxxx, const[5].yyyy, const[4].wwww; 62: ELSE; 63: SUB none., temp[1].xxxx, const[5].zzzz; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: LRP temp[4].x, temp[0].xxxx, const[3].wwww, const[5].yyyy; 66: ELSE; 67: SUB none., temp[1].xxxx, const[5].wwww; [aluresult = (x == 0)] 68: IF aluresult.x___; 69: LRP temp[4].x, temp[0].xxxx, const[3].yyyy, const[3].wwww; 70: ELSE; 71: SUB none., temp[1].xxxx, const[6].xxxx; [aluresult = (x == 0)] 72: IF aluresult.x___; 73: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 74: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 75: ELSE; 76: SUB none., temp[1].xxxx, const[0].xxxx; [aluresult = (x == 0)] 77: IF aluresult.x___; 78: MOV temp[4].x, const[0].yyyy; 79: ENDIF; 80: ENDIF; 81: ENDIF; 82: ENDIF; 83: ENDIF; 84: ENDIF; 85: ENDIF; 86: ENDIF; 87: ENDIF; 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: SUB none., temp[2].xxxx, const[0].yyyy; [aluresult = (x == 0)] 97: IF aluresult.x___; 98: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 99: MOV temp[4].y, temp[1].xxxx; 100: ELSE; 101: SUB none., temp[2].xxxx, const[0].wwww; [aluresult = (x == 0)] 102: IF aluresult.x___; 103: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[0].zzzz; 104: MOV temp[4].y, temp[1].xxxx; 105: ELSE; 106: SUB none., temp[2].xxxx, const[1].yyyy; [aluresult = (x == 0)] 107: IF aluresult.x___; 108: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[1].xxxx; 109: MOV temp[4].y, temp[1].xxxx; 110: ELSE; 111: SUB none., temp[2].xxxx, const[1].wwww; [aluresult = (x == 0)] 112: IF aluresult.x___; 113: LRP temp[1].x, temp[0].yyyy, const[0].wwww, const[1].zzzz; 114: MOV temp[4].y, temp[1].xxxx; 115: ELSE; 116: SUB none., temp[2].xxxx, const[2].xxxx; [aluresult = (x == 0)] 117: IF aluresult.x___; 118: LRP temp[1].x, temp[0].yyyy, const[1].zzzz, const[0].wwww; 119: MOV temp[4].y, temp[1].xxxx; 120: ELSE; 121: SUB none., temp[2].xxxx, const[2].yyyy; [aluresult = (x == 0)] 122: IF aluresult.x___; 123: LRP temp[1].x, temp[0].yyyy, const[1].xxxx, const[1].zzzz; 124: MOV temp[4].y, temp[1].xxxx; 125: ELSE; 126: SUB none., temp[2].xxxx, const[2].zzzz; [aluresult = (x == 0)] 127: IF aluresult.x___; 128: LRP temp[1].x, temp[0].yyyy, const[0].zzzz, const[1].xxxx; 129: MOV temp[4].y, temp[1].xxxx; 130: ELSE; 131: SUB none., temp[2].xxxx, const[2].wwww; [aluresult = (x == 0)] 132: IF aluresult.x___; 133: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 134: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 135: MOV temp[4].y, temp[1].xxxx; 136: ELSE; 137: SUB none., temp[2].xxxx, const[3].xxxx; [aluresult = (x == 0)] 138: IF aluresult.x___; 139: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 140: MOV temp[4].y, temp[1].xxxx; 141: ELSE; 142: SUB none., temp[2].xxxx, const[3].zzzz; [aluresult = (x == 0)] 143: IF aluresult.x___; 144: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[3].yyyy; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: SUB none., temp[2].xxxx, const[4].xxxx; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: LRP temp[1].x, temp[0].yyyy, const[4].yyyy, const[3].wwww; 150: MOV temp[4].y, temp[1].xxxx; 151: ELSE; 152: SUB none., temp[2].xxxx, const[4].zzzz; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: LRP temp[1].x, temp[0].yyyy, const[4].wwww, const[4].yyyy; 155: MOV temp[4].y, temp[1].xxxx; 156: ELSE; 157: SUB none., temp[2].xxxx, const[5].xxxx; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: LRP temp[1].x, temp[0].yyyy, const[5].yyyy, const[4].wwww; 160: MOV temp[4].y, temp[1].xxxx; 161: ELSE; 162: SUB none., temp[2].xxxx, const[5].zzzz; [aluresult = (x == 0)] 163: IF aluresult.x___; 164: LRP temp[1].x, temp[0].yyyy, const[3].wwww, const[5].yyyy; 165: MOV temp[4].y, temp[1].xxxx; 166: ELSE; 167: SUB none., temp[2].xxxx, const[5].wwww; [aluresult = (x == 0)] 168: IF aluresult.x___; 169: LRP temp[1].x, temp[0].yyyy, const[3].yyyy, const[3].wwww; 170: MOV temp[4].y, temp[1].xxxx; 171: ELSE; 172: SUB none., temp[2].xxxx, const[6].xxxx; [aluresult = (x == 0)] 173: IF aluresult.x___; 174: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 175: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 176: MOV temp[4].y, temp[1].xxxx; 177: ELSE; 178: SUB none., temp[2].xxxx, const[0].xxxx; [aluresult = (x == 0)] 179: IF aluresult.x___; 180: MOV temp[4].y, const[0].yyyy; 181: ENDIF; 182: ENDIF; 183: ENDIF; 184: ENDIF; 185: ENDIF; 186: ENDIF; 187: ENDIF; 188: ENDIF; 189: ENDIF; 190: ENDIF; 191: ENDIF; 192: ENDIF; 193: ENDIF; 194: ENDIF; 195: ENDIF; 196: ENDIF; 197: ENDIF; 198: SUB none., temp[3].xxxx, const[0].yyyy; [aluresult = (x == 0)] 199: IF aluresult.x___; 200: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 201: MOV temp[4].z, temp[1].xxxx; 202: ELSE; 203: SUB none., temp[3].xxxx, const[0].wwww; [aluresult = (x == 0)] 204: IF aluresult.x___; 205: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[0].zzzz; 206: MOV temp[4].z, temp[1].xxxx; 207: ELSE; 208: SUB none., temp[3].xxxx, const[1].yyyy; [aluresult = (x == 0)] 209: IF aluresult.x___; 210: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[1].xxxx; 211: MOV temp[4].z, temp[1].xxxx; 212: ELSE; 213: SUB none., temp[3].xxxx, const[1].wwww; [aluresult = (x == 0)] 214: IF aluresult.x___; 215: LRP temp[1].x, temp[0].zzzz, const[0].wwww, const[1].zzzz; 216: MOV temp[4].z, temp[1].xxxx; 217: ELSE; 218: SUB none., temp[3].xxxx, const[2].xxxx; [aluresult = (x == 0)] 219: IF aluresult.x___; 220: LRP temp[1].x, temp[0].zzzz, const[1].zzzz, const[0].wwww; 221: MOV temp[4].z, temp[1].xxxx; 222: ELSE; 223: SUB none., temp[3].xxxx, const[2].yyyy; [aluresult = (x == 0)] 224: IF aluresult.x___; 225: LRP temp[1].x, temp[0].zzzz, const[1].xxxx, const[1].zzzz; 226: MOV temp[4].z, temp[1].xxxx; 227: ELSE; 228: SUB none., temp[3].xxxx, const[2].zzzz; [aluresult = (x == 0)] 229: IF aluresult.x___; 230: LRP temp[1].x, temp[0].zzzz, const[0].zzzz, const[1].xxxx; 231: MOV temp[4].z, temp[1].xxxx; 232: ELSE; 233: SUB none., temp[3].xxxx, const[2].wwww; [aluresult = (x == 0)] 234: IF aluresult.x___; 235: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 236: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 237: MOV temp[4].z, temp[1].xxxx; 238: ELSE; 239: SUB none., temp[3].xxxx, const[3].xxxx; [aluresult = (x == 0)] 240: IF aluresult.x___; 241: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 242: MOV temp[4].z, temp[1].xxxx; 243: ELSE; 244: SUB none., temp[3].xxxx, const[3].zzzz; [aluresult = (x == 0)] 245: IF aluresult.x___; 246: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[3].yyyy; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: SUB none., temp[3].xxxx, const[4].xxxx; [aluresult = (x == 0)] 250: IF aluresult.x___; 251: LRP temp[1].x, temp[0].zzzz, const[4].yyyy, const[3].wwww; 252: MOV temp[4].z, temp[1].xxxx; 253: ELSE; 254: SUB none., temp[3].xxxx, const[4].zzzz; [aluresult = (x == 0)] 255: IF aluresult.x___; 256: LRP temp[1].x, temp[0].zzzz, const[4].wwww, const[4].yyyy; 257: MOV temp[4].z, temp[1].xxxx; 258: ELSE; 259: SUB none., temp[3].xxxx, const[5].xxxx; [aluresult = (x == 0)] 260: IF aluresult.x___; 261: LRP temp[1].x, temp[0].zzzz, const[5].yyyy, const[4].wwww; 262: MOV temp[4].z, temp[1].xxxx; 263: ELSE; 264: SUB none., temp[3].xxxx, const[5].zzzz; [aluresult = (x == 0)] 265: IF aluresult.x___; 266: LRP temp[1].x, temp[0].zzzz, const[3].wwww, const[5].yyyy; 267: MOV temp[4].z, temp[1].xxxx; 268: ELSE; 269: SUB none., temp[3].xxxx, const[5].wwww; [aluresult = (x == 0)] 270: IF aluresult.x___; 271: LRP temp[1].x, temp[0].zzzz, const[3].yyyy, const[3].wwww; 272: MOV temp[4].z, temp[1].xxxx; 273: ELSE; 274: SUB none., temp[3].xxxx, const[6].xxxx; [aluresult = (x == 0)] 275: IF aluresult.x___; 276: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 277: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 278: MOV temp[4].z, temp[0].xxxx; 279: ELSE; 280: SUB none., temp[3].xxxx, const[0].xxxx; [aluresult = (x == 0)] 281: IF aluresult.x___; 282: MOV temp[4].z, const[0].yyyy; 283: ENDIF; 284: ENDIF; 285: ENDIF; 286: ENDIF; 287: ENDIF; 288: ENDIF; 289: ENDIF; 290: ENDIF; 291: ENDIF; 292: ENDIF; 293: ENDIF; 294: ENDIF; 295: ENDIF; 296: ENDIF; 297: ENDIF; 298: ENDIF; 299: ENDIF; 300: MOV temp[0].w, const[0].wwww; 301: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 302: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxxx, input[0].xyzz; 1: FRC temp[1].x, temp[0].xxxx; 2: ADD temp[1].x, temp[0].xxxx, -temp[1]; 3: FRC temp[6].x, |temp[1].xxxx|; 4: ADD temp[6].x, |temp[1].xxxx|, -temp[6]; 5: CMP temp[1].x, temp[1].xxxx, -temp[6], temp[6]; 6: FRC temp[2].x, temp[0].yyyy; 7: ADD temp[2].x, temp[0].yyyy, -temp[2]; 8: FRC temp[7].x, |temp[2].xxxx|; 9: ADD temp[7].x, |temp[2].xxxx|, -temp[7]; 10: CMP temp[2].x, temp[2].xxxx, -temp[7], temp[7]; 11: FRC temp[3].x, temp[0].zzzz; 12: ADD temp[3].x, temp[0].zzzz, -temp[3]; 13: FRC temp[8].x, |temp[3].xxxx|; 14: ADD temp[8].x, |temp[3].xxxx|, -temp[8]; 15: CMP temp[3].x, temp[3].xxxx, -temp[8], temp[8]; 16: FRC temp[4].xyz, temp[0].xyzz; 17: ADD temp[4].xyz, temp[0].xyzz, -temp[4]; 18: ADD temp[0].xyz, temp[0].xyzz, -temp[4].xyzz; 19: MOV temp[4].xyz, const[0].yyyy; 20: ADD none., temp[1].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 21: IF aluresult.x___; 22: MUL temp[4].x, const[0].zzzz, temp[0].xxxx; 23: ELSE; 24: ADD none., temp[1].xxxx, -const[0].wwww; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[4].x, const[1].xxxx, -const[0].zzzz; 27: MAD temp[4].x, temp[0].xxxx, temp[4], const[0].zzzz; 28: ELSE; 29: ADD none., temp[1].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[4].x, const[1].zzzz, -const[1].xxxx; 32: MAD temp[4].x, temp[0].xxxx, temp[4], const[1].xxxx; 33: ELSE; 34: ADD none., temp[1].xxxx, -const[1].wwww; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[4].x, const[0].wwww, -const[1].zzzz; 37: MAD temp[4].x, temp[0].xxxx, temp[4], const[1].zzzz; 38: ELSE; 39: ADD none., temp[1].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[4].x, const[1].zzzz, -const[0].wwww; 42: MAD temp[4].x, temp[0].xxxx, temp[4], const[0].wwww; 43: ELSE; 44: ADD none., temp[1].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[4].x, const[1].xxxx, -const[1].zzzz; 47: MAD temp[4].x, temp[0].xxxx, temp[4], const[1].zzzz; 48: ELSE; 49: ADD none., temp[1].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[4].x, const[0].zzzz, -const[1].xxxx; 52: MAD temp[4].x, temp[0].xxxx, temp[4], const[1].xxxx; 53: ELSE; 54: ADD none., temp[1].xxxx, -const[2].wwww; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 57: MUL temp[4].x, const[0].zzzz, temp[5].xxxx; 58: ELSE; 59: ADD none., temp[1].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MUL temp[4].x, const[3].yyyy, temp[0].xxxx; 62: ELSE; 63: ADD none., temp[1].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[4].x, const[3].wwww, -const[3].yyyy; 66: MAD temp[4].x, temp[0].xxxx, temp[4], const[3].yyyy; 67: ELSE; 68: ADD none., temp[1].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[4].x, const[4].yyyy, -const[3].wwww; 71: MAD temp[4].x, temp[0].xxxx, temp[4], const[3].wwww; 72: ELSE; 73: ADD none., temp[1].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[4].x, const[4].wwww, -const[4].yyyy; 76: MAD temp[4].x, temp[0].xxxx, temp[4], const[4].yyyy; 77: ELSE; 78: ADD none., temp[1].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[4].x, const[5].yyyy, -const[4].wwww; 81: MAD temp[4].x, temp[0].xxxx, temp[4], const[4].wwww; 82: ELSE; 83: ADD none., temp[1].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[4].x, const[3].wwww, -const[5].yyyy; 86: MAD temp[4].x, temp[0].xxxx, temp[4], const[5].yyyy; 87: ELSE; 88: ADD none., temp[1].xxxx, -const[5].wwww; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[4].x, const[3].yyyy, -const[3].wwww; 91: MAD temp[4].x, temp[0].xxxx, temp[4], const[3].wwww; 92: ELSE; 93: ADD none., temp[1].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: ADD temp[5].x, const[0].wwww, -temp[0].xxxx; 96: MUL temp[4].x, const[3].yyyy, temp[5].xxxx; 97: ELSE; 98: ADD none., temp[1].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 99: IF aluresult.x___; 100: MOV temp[4].x, const[0].yyyy; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ENDIF; 114: ENDIF; 115: ENDIF; 116: ENDIF; 117: ENDIF; 118: ADD none., temp[2].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: MUL temp[1].x, const[0].zzzz, temp[0].yyyy; 121: MOV temp[4].y, temp[1].xxxx; 122: ELSE; 123: ADD none., temp[2].xxxx, -const[0].wwww; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[1].x, const[1].xxxx, -const[0].zzzz; 126: MAD temp[1].x, temp[0].yyyy, temp[1], const[0].zzzz; 127: MOV temp[4].y, temp[1].xxxx; 128: ELSE; 129: ADD none., temp[2].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[1].x, const[1].zzzz, -const[1].xxxx; 132: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].xxxx; 133: MOV temp[4].y, temp[1].xxxx; 134: ELSE; 135: ADD none., temp[2].xxxx, -const[1].wwww; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[1].x, const[0].wwww, -const[1].zzzz; 138: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].zzzz; 139: MOV temp[4].y, temp[1].xxxx; 140: ELSE; 141: ADD none., temp[2].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[1].x, const[1].zzzz, -const[0].wwww; 144: MAD temp[1].x, temp[0].yyyy, temp[1], const[0].wwww; 145: MOV temp[4].y, temp[1].xxxx; 146: ELSE; 147: ADD none., temp[2].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: ADD temp[1].x, const[1].xxxx, -const[1].zzzz; 150: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].zzzz; 151: MOV temp[4].y, temp[1].xxxx; 152: ELSE; 153: ADD none., temp[2].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 154: IF aluresult.x___; 155: ADD temp[1].x, const[0].zzzz, -const[1].xxxx; 156: MAD temp[1].x, temp[0].yyyy, temp[1], const[1].xxxx; 157: MOV temp[4].y, temp[1].xxxx; 158: ELSE; 159: ADD none., temp[2].xxxx, -const[2].wwww; [aluresult = (x == 0)] 160: IF aluresult.x___; 161: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 162: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 163: MOV temp[4].y, temp[1].xxxx; 164: ELSE; 165: ADD none., temp[2].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: MUL temp[1].x, const[3].yyyy, temp[0].yyyy; 168: MOV temp[4].y, temp[1].xxxx; 169: ELSE; 170: ADD none., temp[2].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 171: IF aluresult.x___; 172: ADD temp[1].x, const[3].wwww, -const[3].yyyy; 173: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].yyyy; 174: MOV temp[4].y, temp[1].xxxx; 175: ELSE; 176: ADD none., temp[2].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 177: IF aluresult.x___; 178: ADD temp[1].x, const[4].yyyy, -const[3].wwww; 179: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].wwww; 180: MOV temp[4].y, temp[1].xxxx; 181: ELSE; 182: ADD none., temp[2].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 183: IF aluresult.x___; 184: ADD temp[1].x, const[4].wwww, -const[4].yyyy; 185: MAD temp[1].x, temp[0].yyyy, temp[1], const[4].yyyy; 186: MOV temp[4].y, temp[1].xxxx; 187: ELSE; 188: ADD none., temp[2].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 189: IF aluresult.x___; 190: ADD temp[1].x, const[5].yyyy, -const[4].wwww; 191: MAD temp[1].x, temp[0].yyyy, temp[1], const[4].wwww; 192: MOV temp[4].y, temp[1].xxxx; 193: ELSE; 194: ADD none., temp[2].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 195: IF aluresult.x___; 196: ADD temp[1].x, const[3].wwww, -const[5].yyyy; 197: MAD temp[1].x, temp[0].yyyy, temp[1], const[5].yyyy; 198: MOV temp[4].y, temp[1].xxxx; 199: ELSE; 200: ADD none., temp[2].xxxx, -const[5].wwww; [aluresult = (x == 0)] 201: IF aluresult.x___; 202: ADD temp[1].x, const[3].yyyy, -const[3].wwww; 203: MAD temp[1].x, temp[0].yyyy, temp[1], const[3].wwww; 204: MOV temp[4].y, temp[1].xxxx; 205: ELSE; 206: ADD none., temp[2].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 207: IF aluresult.x___; 208: ADD temp[1].x, const[0].wwww, -temp[0].yyyy; 209: MUL temp[1].x, const[3].yyyy, temp[1].xxxx; 210: MOV temp[4].y, temp[1].xxxx; 211: ELSE; 212: ADD none., temp[2].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 213: IF aluresult.x___; 214: MOV temp[4].y, const[0].yyyy; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: ENDIF; 228: ENDIF; 229: ENDIF; 230: ENDIF; 231: ENDIF; 232: ADD none., temp[3].xxxx, -const[0].yyyy; [aluresult = (x == 0)] 233: IF aluresult.x___; 234: MUL temp[1].x, const[0].zzzz, temp[0].zzzz; 235: MOV temp[4].z, temp[1].xxxx; 236: ELSE; 237: ADD none., temp[3].xxxx, -const[0].wwww; [aluresult = (x == 0)] 238: IF aluresult.x___; 239: ADD temp[1].x, const[1].xxxx, -const[0].zzzz; 240: MAD temp[1].x, temp[0].zzzz, temp[1], const[0].zzzz; 241: MOV temp[4].z, temp[1].xxxx; 242: ELSE; 243: ADD none., temp[3].xxxx, -const[1].yyyy; [aluresult = (x == 0)] 244: IF aluresult.x___; 245: ADD temp[1].x, const[1].zzzz, -const[1].xxxx; 246: MAD temp[1].x, temp[0].zzzz, temp[1], const[1].xxxx; 247: MOV temp[4].z, temp[1].xxxx; 248: ELSE; 249: ADD none., temp[3].xxxx, -const[1].wwww; [aluresult = (x == 0)] 250: IF aluresult.x___; 251: ADD temp[1].x, const[0].wwww, -const[1].zzzz; 252: MAD temp[1].x, temp[0].zzzz, temp[1], const[1].zzzz; 253: MOV temp[4].z, temp[1].xxxx; 254: ELSE; 255: ADD none., temp[3].xxxx, -const[2].xxxx; [aluresult = (x == 0)] 256: IF aluresult.x___; 257: ADD temp[1].x, const[1].zzzz, -const[0].wwww; 258: MAD temp[1].x, temp[0].zzzz, temp[1], const[0].wwww; 259: MOV temp[4].z, temp[1].xxxx; 260: ELSE; 261: ADD none., temp[3].xxxx, -const[2].yyyy; [aluresult = (x == 0)] 262: IF aluresult.x___; 263: ADD temp[1].x, const[1].xxxx, -const[1].zzzz; 264: MAD temp[1].x, temp[0].zzzz, temp[1], const[1].zzzz; 265: MOV temp[4].z, temp[1].xxxx; 266: ELSE; 267: ADD none., temp[3].xxxx, -const[2].zzzz; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: ADD temp[1].x, const[0].zzzz, -const[1].xxxx; 270: MAD temp[1].x, temp[0].zzzz, temp[1], const[1].xxxx; 271: MOV temp[4].z, temp[1].xxxx; 272: ELSE; 273: ADD none., temp[3].xxxx, -const[2].wwww; [aluresult = (x == 0)] 274: IF aluresult.x___; 275: ADD temp[1].x, const[0].wwww, -temp[0].zzzz; 276: MUL temp[1].x, const[0].zzzz, temp[1].xxxx; 277: MOV temp[4].z, temp[1].xxxx; 278: ELSE; 279: ADD none., temp[3].xxxx, -const[3].xxxx; [aluresult = (x == 0)] 280: IF aluresult.x___; 281: MUL temp[1].x, const[3].yyyy, temp[0].zzzz; 282: MOV temp[4].z, temp[1].xxxx; 283: ELSE; 284: ADD none., temp[3].xxxx, -const[3].zzzz; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: ADD temp[1].x, const[3].wwww, -const[3].yyyy; 287: MAD temp[1].x, temp[0].zzzz, temp[1], const[3].yyyy; 288: MOV temp[4].z, temp[1].xxxx; 289: ELSE; 290: ADD none., temp[3].xxxx, -const[4].xxxx; [aluresult = (x == 0)] 291: IF aluresult.x___; 292: ADD temp[1].x, const[4].yyyy, -const[3].wwww; 293: MAD temp[1].x, temp[0].zzzz, temp[1], const[3].wwww; 294: MOV temp[4].z, temp[1].xxxx; 295: ELSE; 296: ADD none., temp[3].xxxx, -const[4].zzzz; [aluresult = (x == 0)] 297: IF aluresult.x___; 298: ADD temp[1].x, const[4].wwww, -const[4].yyyy; 299: MAD temp[1].x, temp[0].zzzz, temp[1], const[4].yyyy; 300: MOV temp[4].z, temp[1].xxxx; 301: ELSE; 302: ADD none., temp[3].xxxx, -const[5].xxxx; [aluresult = (x == 0)] 303: IF aluresult.x___; 304: ADD temp[1].x, const[5].yyyy, -const[4].wwww; 305: MAD temp[1].x, temp[0].zzzz, temp[1], const[4].wwww; 306: MOV temp[4].z, temp[1].xxxx; 307: ELSE; 308: ADD none., temp[3].xxxx, -const[5].zzzz; [aluresult = (x == 0)] 309: IF aluresult.x___; 310: ADD temp[1].x, const[3].wwww, -const[5].yyyy; 311: MAD temp[1].x, temp[0].zzzz, temp[1], const[5].yyyy; 312: MOV temp[4].z, temp[1].xxxx; 313: ELSE; 314: ADD none., temp[3].xxxx, -const[5].wwww; [aluresult = (x == 0)] 315: IF aluresult.x___; 316: ADD temp[1].x, const[3].yyyy, -const[3].wwww; 317: MAD temp[1].x, temp[0].zzzz, temp[1], const[3].wwww; 318: MOV temp[4].z, temp[1].xxxx; 319: ELSE; 320: ADD none., temp[3].xxxx, -const[6].xxxx; [aluresult = (x == 0)] 321: IF aluresult.x___; 322: ADD temp[0].x, const[0].wwww, -temp[0].zzzz; 323: MUL temp[0].x, const[3].yyyy, temp[0].xxxx; 324: MOV temp[4].z, temp[0].xxxx; 325: ELSE; 326: ADD none., temp[3].xxxx, -const[0].xxxx; [aluresult = (x == 0)] 327: IF aluresult.x___; 328: MOV temp[4].z, const[0].yyyy; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: ENDIF; 333: ENDIF; 334: ENDIF; 335: ENDIF; 336: ENDIF; 337: ENDIF; 338: ENDIF; 339: ENDIF; 340: ENDIF; 341: ENDIF; 342: ENDIF; 343: ENDIF; 344: ENDIF; 345: ENDIF; 346: MOV temp[0].w, const[0].wwww; 347: MAD temp[0].xyz, const[6].yyyy, temp[4].xyzz, const[6].yyyy; 348: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0].xyz, const[0].xxx_, input[0].xyz_; 1: FRC temp[1].x, temp[0].x___; 2: ADD temp[1].x, temp[0].x___, -temp[1].x___; 3: FRC temp[6].x, |temp[1].x___|; 4: ADD temp[6].x, |temp[1].x___|, -temp[6].x___; 5: CMP temp[1].x, temp[1].x___, -temp[6].x___, temp[6].x___; 6: FRC temp[2].x, temp[0].y___; 7: ADD temp[2].x, temp[0].y___, -temp[2].x___; 8: FRC temp[7].x, |temp[2].x___|; 9: ADD temp[7].x, |temp[2].x___|, -temp[7].x___; 10: CMP temp[2].x, temp[2].x___, -temp[7].x___, temp[7].x___; 11: FRC temp[3].x, temp[0].z___; 12: ADD temp[3].x, temp[0].z___, -temp[3].x___; 13: FRC temp[8].x, |temp[3].x___|; 14: ADD temp[8].x, |temp[3].x___|, -temp[8].x___; 15: CMP temp[3].x, temp[3].x___, -temp[8].x___, temp[8].x___; 16: FRC temp[4].xyz, temp[0].xyz_; 17: ADD temp[4].xyz, temp[0].xyz_, -temp[4].xyz_; 18: ADD temp[0].xyz, temp[0].xyz_, -temp[4].xyz_; 19: MOV temp[4].xyz, const[0].yyy_; 20: ADD none., temp[1].x___, -const[0].y___; [aluresult = (x == 0)] 21: IF aluresult.x___; 22: MUL temp[4].x, const[0].z___, temp[0].x___; 23: ELSE; 24: ADD none., temp[1].x___, -const[0].w___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[4].x, const[1].x___, -const[0].z___; 27: MAD temp[4].x, temp[0].x___, temp[4].x___, const[0].z___; 28: ELSE; 29: ADD none., temp[1].x___, -const[1].y___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[4].x, const[1].z___, -const[1].x___; 32: MAD temp[4].x, temp[0].x___, temp[4].x___, const[1].x___; 33: ELSE; 34: ADD none., temp[1].x___, -const[1].w___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[4].x, const[0].w___, -const[1].z___; 37: MAD temp[4].x, temp[0].x___, temp[4].x___, const[1].z___; 38: ELSE; 39: ADD none., temp[1].x___, -const[2].x___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[4].x, const[1].z___, -const[0].w___; 42: MAD temp[4].x, temp[0].x___, temp[4].x___, const[0].w___; 43: ELSE; 44: ADD none., temp[1].x___, -const[2].y___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[4].x, const[1].x___, -const[1].z___; 47: MAD temp[4].x, temp[0].x___, temp[4].x___, const[1].z___; 48: ELSE; 49: ADD none., temp[1].x___, -const[2].z___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[4].x, const[0].z___, -const[1].x___; 52: MAD temp[4].x, temp[0].x___, temp[4].x___, const[1].x___; 53: ELSE; 54: ADD none., temp[1].x___, -const[2].w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[5].x, const[0].w___, -temp[0].x___; 57: MUL temp[4].x, const[0].z___, temp[5].x___; 58: ELSE; 59: ADD none., temp[1].x___, -const[3].x___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MUL temp[4].x, const[3].y___, temp[0].x___; 62: ELSE; 63: ADD none., temp[1].x___, -const[3].z___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[4].x, const[3].w___, -const[3].y___; 66: MAD temp[4].x, temp[0].x___, temp[4].x___, const[3].y___; 67: ELSE; 68: ADD none., temp[1].x___, -const[4].x___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[4].x, const[4].y___, -const[3].w___; 71: MAD temp[4].x, temp[0].x___, temp[4].x___, const[3].w___; 72: ELSE; 73: ADD none., temp[1].x___, -const[4].z___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[4].x, const[4].w___, -const[4].y___; 76: MAD temp[4].x, temp[0].x___, temp[4].x___, const[4].y___; 77: ELSE; 78: ADD none., temp[1].x___, -const[5].x___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[4].x, const[5].y___, -const[4].w___; 81: MAD temp[4].x, temp[0].x___, temp[4].x___, const[4].w___; 82: ELSE; 83: ADD none., temp[1].x___, -const[5].z___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[4].x, const[3].w___, -const[5].y___; 86: MAD temp[4].x, temp[0].x___, temp[4].x___, const[5].y___; 87: ELSE; 88: ADD none., temp[1].x___, -const[5].w___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[4].x, const[3].y___, -const[3].w___; 91: MAD temp[4].x, temp[0].x___, temp[4].x___, const[3].w___; 92: ELSE; 93: ADD none., temp[1].x___, -const[6].x___; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: ADD temp[5].x, const[0].w___, -temp[0].x___; 96: MUL temp[4].x, const[3].y___, temp[5].x___; 97: ELSE; 98: ADD none., temp[1].x___, -const[0].x___; [aluresult = (x == 0)] 99: IF aluresult.x___; 100: MOV temp[4].x, const[0].y___; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ENDIF; 114: ENDIF; 115: ENDIF; 116: ENDIF; 117: ENDIF; 118: ADD none., temp[2].x___, -const[0].y___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: MUL temp[1].x, const[0].z___, temp[0].y___; 121: MOV temp[4].y, temp[1]._x__; 122: ELSE; 123: ADD none., temp[2].x___, -const[0].w___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[1].x, const[1].x___, -const[0].z___; 126: MAD temp[1].x, temp[0].y___, temp[1].x___, const[0].z___; 127: MOV temp[4].y, temp[1]._x__; 128: ELSE; 129: ADD none., temp[2].x___, -const[1].y___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[1].x, const[1].z___, -const[1].x___; 132: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].x___; 133: MOV temp[4].y, temp[1]._x__; 134: ELSE; 135: ADD none., temp[2].x___, -const[1].w___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[1].x, const[0].w___, -const[1].z___; 138: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].z___; 139: MOV temp[4].y, temp[1]._x__; 140: ELSE; 141: ADD none., temp[2].x___, -const[2].x___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[1].x, const[1].z___, -const[0].w___; 144: MAD temp[1].x, temp[0].y___, temp[1].x___, const[0].w___; 145: MOV temp[4].y, temp[1]._x__; 146: ELSE; 147: ADD none., temp[2].x___, -const[2].y___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: ADD temp[1].x, const[1].x___, -const[1].z___; 150: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].z___; 151: MOV temp[4].y, temp[1]._x__; 152: ELSE; 153: ADD none., temp[2].x___, -const[2].z___; [aluresult = (x == 0)] 154: IF aluresult.x___; 155: ADD temp[1].x, const[0].z___, -const[1].x___; 156: MAD temp[1].x, temp[0].y___, temp[1].x___, const[1].x___; 157: MOV temp[4].y, temp[1]._x__; 158: ELSE; 159: ADD none., temp[2].x___, -const[2].w___; [aluresult = (x == 0)] 160: IF aluresult.x___; 161: ADD temp[1].x, const[0].w___, -temp[0].y___; 162: MUL temp[1].x, const[0].z___, temp[1].x___; 163: MOV temp[4].y, temp[1]._x__; 164: ELSE; 165: ADD none., temp[2].x___, -const[3].x___; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: MUL temp[1].x, const[3].y___, temp[0].y___; 168: MOV temp[4].y, temp[1]._x__; 169: ELSE; 170: ADD none., temp[2].x___, -const[3].z___; [aluresult = (x == 0)] 171: IF aluresult.x___; 172: ADD temp[1].x, const[3].w___, -const[3].y___; 173: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].y___; 174: MOV temp[4].y, temp[1]._x__; 175: ELSE; 176: ADD none., temp[2].x___, -const[4].x___; [aluresult = (x == 0)] 177: IF aluresult.x___; 178: ADD temp[1].x, const[4].y___, -const[3].w___; 179: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].w___; 180: MOV temp[4].y, temp[1]._x__; 181: ELSE; 182: ADD none., temp[2].x___, -const[4].z___; [aluresult = (x == 0)] 183: IF aluresult.x___; 184: ADD temp[1].x, const[4].w___, -const[4].y___; 185: MAD temp[1].x, temp[0].y___, temp[1].x___, const[4].y___; 186: MOV temp[4].y, temp[1]._x__; 187: ELSE; 188: ADD none., temp[2].x___, -const[5].x___; [aluresult = (x == 0)] 189: IF aluresult.x___; 190: ADD temp[1].x, const[5].y___, -const[4].w___; 191: MAD temp[1].x, temp[0].y___, temp[1].x___, const[4].w___; 192: MOV temp[4].y, temp[1]._x__; 193: ELSE; 194: ADD none., temp[2].x___, -const[5].z___; [aluresult = (x == 0)] 195: IF aluresult.x___; 196: ADD temp[1].x, const[3].w___, -const[5].y___; 197: MAD temp[1].x, temp[0].y___, temp[1].x___, const[5].y___; 198: MOV temp[4].y, temp[1]._x__; 199: ELSE; 200: ADD none., temp[2].x___, -const[5].w___; [aluresult = (x == 0)] 201: IF aluresult.x___; 202: ADD temp[1].x, const[3].y___, -const[3].w___; 203: MAD temp[1].x, temp[0].y___, temp[1].x___, const[3].w___; 204: MOV temp[4].y, temp[1]._x__; 205: ELSE; 206: ADD none., temp[2].x___, -const[6].x___; [aluresult = (x == 0)] 207: IF aluresult.x___; 208: ADD temp[1].x, const[0].w___, -temp[0].y___; 209: MUL temp[1].x, const[3].y___, temp[1].x___; 210: MOV temp[4].y, temp[1]._x__; 211: ELSE; 212: ADD none., temp[2].x___, -const[0].x___; [aluresult = (x == 0)] 213: IF aluresult.x___; 214: MOV temp[4].y, const[0]._y__; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: ENDIF; 228: ENDIF; 229: ENDIF; 230: ENDIF; 231: ENDIF; 232: ADD none., temp[3].x___, -const[0].y___; [aluresult = (x == 0)] 233: IF aluresult.x___; 234: MUL temp[1].x, const[0].z___, temp[0].z___; 235: MOV temp[4].z, temp[1].__x_; 236: ELSE; 237: ADD none., temp[3].x___, -const[0].w___; [aluresult = (x == 0)] 238: IF aluresult.x___; 239: ADD temp[1].x, const[1].x___, -const[0].z___; 240: MAD temp[1].x, temp[0].z___, temp[1].x___, const[0].z___; 241: MOV temp[4].z, temp[1].__x_; 242: ELSE; 243: ADD none., temp[3].x___, -const[1].y___; [aluresult = (x == 0)] 244: IF aluresult.x___; 245: ADD temp[1].x, const[1].z___, -const[1].x___; 246: MAD temp[1].x, temp[0].z___, temp[1].x___, const[1].x___; 247: MOV temp[4].z, temp[1].__x_; 248: ELSE; 249: ADD none., temp[3].x___, -const[1].w___; [aluresult = (x == 0)] 250: IF aluresult.x___; 251: ADD temp[1].x, const[0].w___, -const[1].z___; 252: MAD temp[1].x, temp[0].z___, temp[1].x___, const[1].z___; 253: MOV temp[4].z, temp[1].__x_; 254: ELSE; 255: ADD none., temp[3].x___, -const[2].x___; [aluresult = (x == 0)] 256: IF aluresult.x___; 257: ADD temp[1].x, const[1].z___, -const[0].w___; 258: MAD temp[1].x, temp[0].z___, temp[1].x___, const[0].w___; 259: MOV temp[4].z, temp[1].__x_; 260: ELSE; 261: ADD none., temp[3].x___, -const[2].y___; [aluresult = (x == 0)] 262: IF aluresult.x___; 263: ADD temp[1].x, const[1].x___, -const[1].z___; 264: MAD temp[1].x, temp[0].z___, temp[1].x___, const[1].z___; 265: MOV temp[4].z, temp[1].__x_; 266: ELSE; 267: ADD none., temp[3].x___, -const[2].z___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: ADD temp[1].x, const[0].z___, -const[1].x___; 270: MAD temp[1].x, temp[0].z___, temp[1].x___, const[1].x___; 271: MOV temp[4].z, temp[1].__x_; 272: ELSE; 273: ADD none., temp[3].x___, -const[2].w___; [aluresult = (x == 0)] 274: IF aluresult.x___; 275: ADD temp[1].x, const[0].w___, -temp[0].z___; 276: MUL temp[1].x, const[0].z___, temp[1].x___; 277: MOV temp[4].z, temp[1].__x_; 278: ELSE; 279: ADD none., temp[3].x___, -const[3].x___; [aluresult = (x == 0)] 280: IF aluresult.x___; 281: MUL temp[1].x, const[3].y___, temp[0].z___; 282: MOV temp[4].z, temp[1].__x_; 283: ELSE; 284: ADD none., temp[3].x___, -const[3].z___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: ADD temp[1].x, const[3].w___, -const[3].y___; 287: MAD temp[1].x, temp[0].z___, temp[1].x___, const[3].y___; 288: MOV temp[4].z, temp[1].__x_; 289: ELSE; 290: ADD none., temp[3].x___, -const[4].x___; [aluresult = (x == 0)] 291: IF aluresult.x___; 292: ADD temp[1].x, const[4].y___, -const[3].w___; 293: MAD temp[1].x, temp[0].z___, temp[1].x___, const[3].w___; 294: MOV temp[4].z, temp[1].__x_; 295: ELSE; 296: ADD none., temp[3].x___, -const[4].z___; [aluresult = (x == 0)] 297: IF aluresult.x___; 298: ADD temp[1].x, const[4].w___, -const[4].y___; 299: MAD temp[1].x, temp[0].z___, temp[1].x___, const[4].y___; 300: MOV temp[4].z, temp[1].__x_; 301: ELSE; 302: ADD none., temp[3].x___, -const[5].x___; [aluresult = (x == 0)] 303: IF aluresult.x___; 304: ADD temp[1].x, const[5].y___, -const[4].w___; 305: MAD temp[1].x, temp[0].z___, temp[1].x___, const[4].w___; 306: MOV temp[4].z, temp[1].__x_; 307: ELSE; 308: ADD none., temp[3].x___, -const[5].z___; [aluresult = (x == 0)] 309: IF aluresult.x___; 310: ADD temp[1].x, const[3].w___, -const[5].y___; 311: MAD temp[1].x, temp[0].z___, temp[1].x___, const[5].y___; 312: MOV temp[4].z, temp[1].__x_; 313: ELSE; 314: ADD none., temp[3].x___, -const[5].w___; [aluresult = (x == 0)] 315: IF aluresult.x___; 316: ADD temp[1].x, const[3].y___, -const[3].w___; 317: MAD temp[1].x, temp[0].z___, temp[1].x___, const[3].w___; 318: MOV temp[4].z, temp[1].__x_; 319: ELSE; 320: ADD none., temp[3].x___, -const[6].x___; [aluresult = (x == 0)] 321: IF aluresult.x___; 322: ADD temp[0].x, const[0].w___, -temp[0].z___; 323: MUL temp[0].x, const[3].y___, temp[0].x___; 324: MOV temp[4].z, temp[0].__x_; 325: ELSE; 326: ADD none., temp[3].x___, -const[0].x___; [aluresult = (x == 0)] 327: IF aluresult.x___; 328: MOV temp[4].z, const[0].__y_; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: ENDIF; 333: ENDIF; 334: ENDIF; 335: ENDIF; 336: ENDIF; 337: ENDIF; 338: ENDIF; 339: ENDIF; 340: ENDIF; 341: ENDIF; 342: ENDIF; 343: ENDIF; 344: ENDIF; 345: ENDIF; 346: MOV temp[0].w, const[0].___w; 347: MAD temp[0].xyz, const[6].yyy_, temp[4].xyz_, const[6].yyy_; 348: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MUL temp[9].xyz, const[0].xxx_, input[0].xyz_; 1: FRC temp[10].x, temp[9].x___; 2: ADD temp[11].x, temp[9].x___, -temp[10].x___; 3: FRC temp[12].x, |temp[11].x___|; 4: ADD temp[13].x, |temp[11].x___|, -temp[12].x___; 5: CMP temp[14].x, temp[11].x___, -temp[13].x___, temp[13].x___; 6: FRC temp[15].x, temp[9].y___; 7: ADD temp[16].x, temp[9].y___, -temp[15].x___; 8: FRC temp[17].x, |temp[16].x___|; 9: ADD temp[18].x, |temp[16].x___|, -temp[17].x___; 10: CMP temp[19].x, temp[16].x___, -temp[18].x___, temp[18].x___; 11: FRC temp[20].x, temp[9].z___; 12: ADD temp[21].x, temp[9].z___, -temp[20].x___; 13: FRC temp[22].x, |temp[21].x___|; 14: ADD temp[23].x, |temp[21].x___|, -temp[22].x___; 15: CMP temp[24].x, temp[21].x___, -temp[23].x___, temp[23].x___; 16: FRC temp[25].xyz, temp[9].xyz_; 17: ADD temp[26].xyz, temp[9].xyz_, -temp[25].xyz_; 18: ADD temp[27].xyz, temp[9].xyz_, -temp[26].xyz_; 19: MOV temp[28].xyz, const[0].yyy_; 20: ADD none., temp[14].x___, -const[0].y___; [aluresult = (x == 0)] 21: IF aluresult.x___; 22: MUL temp[28].x, const[0].z___, temp[27].x___; 23: ELSE; 24: ADD none., temp[14].x___, -const[0].w___; [aluresult = (x == 0)] 25: IF aluresult.x___; 26: ADD temp[29].x, const[1].x___, -const[0].z___; 27: MAD temp[28].x, temp[27].x___, temp[29].x___, const[0].z___; 28: ELSE; 29: ADD none., temp[14].x___, -const[1].y___; [aluresult = (x == 0)] 30: IF aluresult.x___; 31: ADD temp[30].x, const[1].z___, -const[1].x___; 32: MAD temp[28].x, temp[27].x___, temp[30].x___, const[1].x___; 33: ELSE; 34: ADD none., temp[14].x___, -const[1].w___; [aluresult = (x == 0)] 35: IF aluresult.x___; 36: ADD temp[31].x, const[0].w___, -const[1].z___; 37: MAD temp[28].x, temp[27].x___, temp[31].x___, const[1].z___; 38: ELSE; 39: ADD none., temp[14].x___, -const[2].x___; [aluresult = (x == 0)] 40: IF aluresult.x___; 41: ADD temp[32].x, const[1].z___, -const[0].w___; 42: MAD temp[28].x, temp[27].x___, temp[32].x___, const[0].w___; 43: ELSE; 44: ADD none., temp[14].x___, -const[2].y___; [aluresult = (x == 0)] 45: IF aluresult.x___; 46: ADD temp[33].x, const[1].x___, -const[1].z___; 47: MAD temp[28].x, temp[27].x___, temp[33].x___, const[1].z___; 48: ELSE; 49: ADD none., temp[14].x___, -const[2].z___; [aluresult = (x == 0)] 50: IF aluresult.x___; 51: ADD temp[34].x, const[0].z___, -const[1].x___; 52: MAD temp[28].x, temp[27].x___, temp[34].x___, const[1].x___; 53: ELSE; 54: ADD none., temp[14].x___, -const[2].w___; [aluresult = (x == 0)] 55: IF aluresult.x___; 56: ADD temp[35].x, const[0].w___, -temp[27].x___; 57: MUL temp[28].x, const[0].z___, temp[35].x___; 58: ELSE; 59: ADD none., temp[14].x___, -const[3].x___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: MUL temp[28].x, const[3].y___, temp[27].x___; 62: ELSE; 63: ADD none., temp[14].x___, -const[3].z___; [aluresult = (x == 0)] 64: IF aluresult.x___; 65: ADD temp[36].x, const[3].w___, -const[3].y___; 66: MAD temp[28].x, temp[27].x___, temp[36].x___, const[3].y___; 67: ELSE; 68: ADD none., temp[14].x___, -const[4].x___; [aluresult = (x == 0)] 69: IF aluresult.x___; 70: ADD temp[37].x, const[4].y___, -const[3].w___; 71: MAD temp[28].x, temp[27].x___, temp[37].x___, const[3].w___; 72: ELSE; 73: ADD none., temp[14].x___, -const[4].z___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[38].x, const[4].w___, -const[4].y___; 76: MAD temp[28].x, temp[27].x___, temp[38].x___, const[4].y___; 77: ELSE; 78: ADD none., temp[14].x___, -const[5].x___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[39].x, const[5].y___, -const[4].w___; 81: MAD temp[28].x, temp[27].x___, temp[39].x___, const[4].w___; 82: ELSE; 83: ADD none., temp[14].x___, -const[5].z___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[40].x, const[3].w___, -const[5].y___; 86: MAD temp[28].x, temp[27].x___, temp[40].x___, const[5].y___; 87: ELSE; 88: ADD none., temp[14].x___, -const[5].w___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: ADD temp[41].x, const[3].y___, -const[3].w___; 91: MAD temp[28].x, temp[27].x___, temp[41].x___, const[3].w___; 92: ELSE; 93: ADD none., temp[14].x___, -const[6].x___; [aluresult = (x == 0)] 94: IF aluresult.x___; 95: ADD temp[42].x, const[0].w___, -temp[27].x___; 96: MUL temp[28].x, const[3].y___, temp[42].x___; 97: ELSE; 98: ADD none., temp[14].x___, -const[0].x___; [aluresult = (x == 0)] 99: IF aluresult.x___; 100: MOV temp[28].x, const[0].y___; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: ENDIF; 113: ENDIF; 114: ENDIF; 115: ENDIF; 116: ENDIF; 117: ENDIF; 118: ADD none., temp[19].x___, -const[0].y___; [aluresult = (x == 0)] 119: IF aluresult.x___; 120: MUL temp[43].x, const[0].z___, temp[27].y___; 121: MOV temp[28].y, temp[43]._x__; 122: ELSE; 123: ADD none., temp[19].x___, -const[0].w___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[44].x, const[1].x___, -const[0].z___; 126: MAD temp[45].x, temp[27].y___, temp[44].x___, const[0].z___; 127: MOV temp[28].y, temp[45]._x__; 128: ELSE; 129: ADD none., temp[19].x___, -const[1].y___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: ADD temp[46].x, const[1].z___, -const[1].x___; 132: MAD temp[47].x, temp[27].y___, temp[46].x___, const[1].x___; 133: MOV temp[28].y, temp[47]._x__; 134: ELSE; 135: ADD none., temp[19].x___, -const[1].w___; [aluresult = (x == 0)] 136: IF aluresult.x___; 137: ADD temp[48].x, const[0].w___, -const[1].z___; 138: MAD temp[49].x, temp[27].y___, temp[48].x___, const[1].z___; 139: MOV temp[28].y, temp[49]._x__; 140: ELSE; 141: ADD none., temp[19].x___, -const[2].x___; [aluresult = (x == 0)] 142: IF aluresult.x___; 143: ADD temp[50].x, const[1].z___, -const[0].w___; 144: MAD temp[51].x, temp[27].y___, temp[50].x___, const[0].w___; 145: MOV temp[28].y, temp[51]._x__; 146: ELSE; 147: ADD none., temp[19].x___, -const[2].y___; [aluresult = (x == 0)] 148: IF aluresult.x___; 149: ADD temp[52].x, const[1].x___, -const[1].z___; 150: MAD temp[53].x, temp[27].y___, temp[52].x___, const[1].z___; 151: MOV temp[28].y, temp[53]._x__; 152: ELSE; 153: ADD none., temp[19].x___, -const[2].z___; [aluresult = (x == 0)] 154: IF aluresult.x___; 155: ADD temp[54].x, const[0].z___, -const[1].x___; 156: MAD temp[55].x, temp[27].y___, temp[54].x___, const[1].x___; 157: MOV temp[28].y, temp[55]._x__; 158: ELSE; 159: ADD none., temp[19].x___, -const[2].w___; [aluresult = (x == 0)] 160: IF aluresult.x___; 161: ADD temp[56].x, const[0].w___, -temp[27].y___; 162: MUL temp[57].x, const[0].z___, temp[56].x___; 163: MOV temp[28].y, temp[57]._x__; 164: ELSE; 165: ADD none., temp[19].x___, -const[3].x___; [aluresult = (x == 0)] 166: IF aluresult.x___; 167: MUL temp[58].x, const[3].y___, temp[27].y___; 168: MOV temp[28].y, temp[58]._x__; 169: ELSE; 170: ADD none., temp[19].x___, -const[3].z___; [aluresult = (x == 0)] 171: IF aluresult.x___; 172: ADD temp[59].x, const[3].w___, -const[3].y___; 173: MAD temp[60].x, temp[27].y___, temp[59].x___, const[3].y___; 174: MOV temp[28].y, temp[60]._x__; 175: ELSE; 176: ADD none., temp[19].x___, -const[4].x___; [aluresult = (x == 0)] 177: IF aluresult.x___; 178: ADD temp[61].x, const[4].y___, -const[3].w___; 179: MAD temp[62].x, temp[27].y___, temp[61].x___, const[3].w___; 180: MOV temp[28].y, temp[62]._x__; 181: ELSE; 182: ADD none., temp[19].x___, -const[4].z___; [aluresult = (x == 0)] 183: IF aluresult.x___; 184: ADD temp[63].x, const[4].w___, -const[4].y___; 185: MAD temp[64].x, temp[27].y___, temp[63].x___, const[4].y___; 186: MOV temp[28].y, temp[64]._x__; 187: ELSE; 188: ADD none., temp[19].x___, -const[5].x___; [aluresult = (x == 0)] 189: IF aluresult.x___; 190: ADD temp[65].x, const[5].y___, -const[4].w___; 191: MAD temp[66].x, temp[27].y___, temp[65].x___, const[4].w___; 192: MOV temp[28].y, temp[66]._x__; 193: ELSE; 194: ADD none., temp[19].x___, -const[5].z___; [aluresult = (x == 0)] 195: IF aluresult.x___; 196: ADD temp[67].x, const[3].w___, -const[5].y___; 197: MAD temp[68].x, temp[27].y___, temp[67].x___, const[5].y___; 198: MOV temp[28].y, temp[68]._x__; 199: ELSE; 200: ADD none., temp[19].x___, -const[5].w___; [aluresult = (x == 0)] 201: IF aluresult.x___; 202: ADD temp[69].x, const[3].y___, -const[3].w___; 203: MAD temp[70].x, temp[27].y___, temp[69].x___, const[3].w___; 204: MOV temp[28].y, temp[70]._x__; 205: ELSE; 206: ADD none., temp[19].x___, -const[6].x___; [aluresult = (x == 0)] 207: IF aluresult.x___; 208: ADD temp[71].x, const[0].w___, -temp[27].y___; 209: MUL temp[72].x, const[3].y___, temp[71].x___; 210: MOV temp[28].y, temp[72]._x__; 211: ELSE; 212: ADD none., temp[19].x___, -const[0].x___; [aluresult = (x == 0)] 213: IF aluresult.x___; 214: MOV temp[28].y, const[0]._y__; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: ENDIF; 223: ENDIF; 224: ENDIF; 225: ENDIF; 226: ENDIF; 227: ENDIF; 228: ENDIF; 229: ENDIF; 230: ENDIF; 231: ENDIF; 232: ADD none., temp[24].x___, -const[0].y___; [aluresult = (x == 0)] 233: IF aluresult.x___; 234: MUL temp[73].x, const[0].z___, temp[27].z___; 235: MOV temp[28].z, temp[73].__x_; 236: ELSE; 237: ADD none., temp[24].x___, -const[0].w___; [aluresult = (x == 0)] 238: IF aluresult.x___; 239: ADD temp[74].x, const[1].x___, -const[0].z___; 240: MAD temp[75].x, temp[27].z___, temp[74].x___, const[0].z___; 241: MOV temp[28].z, temp[75].__x_; 242: ELSE; 243: ADD none., temp[24].x___, -const[1].y___; [aluresult = (x == 0)] 244: IF aluresult.x___; 245: ADD temp[76].x, const[1].z___, -const[1].x___; 246: MAD temp[77].x, temp[27].z___, temp[76].x___, const[1].x___; 247: MOV temp[28].z, temp[77].__x_; 248: ELSE; 249: ADD none., temp[24].x___, -const[1].w___; [aluresult = (x == 0)] 250: IF aluresult.x___; 251: ADD temp[78].x, const[0].w___, -const[1].z___; 252: MAD temp[79].x, temp[27].z___, temp[78].x___, const[1].z___; 253: MOV temp[28].z, temp[79].__x_; 254: ELSE; 255: ADD none., temp[24].x___, -const[2].x___; [aluresult = (x == 0)] 256: IF aluresult.x___; 257: ADD temp[80].x, const[1].z___, -const[0].w___; 258: MAD temp[81].x, temp[27].z___, temp[80].x___, const[0].w___; 259: MOV temp[28].z, temp[81].__x_; 260: ELSE; 261: ADD none., temp[24].x___, -const[2].y___; [aluresult = (x == 0)] 262: IF aluresult.x___; 263: ADD temp[82].x, const[1].x___, -const[1].z___; 264: MAD temp[83].x, temp[27].z___, temp[82].x___, const[1].z___; 265: MOV temp[28].z, temp[83].__x_; 266: ELSE; 267: ADD none., temp[24].x___, -const[2].z___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: ADD temp[84].x, const[0].z___, -const[1].x___; 270: MAD temp[85].x, temp[27].z___, temp[84].x___, const[1].x___; 271: MOV temp[28].z, temp[85].__x_; 272: ELSE; 273: ADD none., temp[24].x___, -const[2].w___; [aluresult = (x == 0)] 274: IF aluresult.x___; 275: ADD temp[86].x, const[0].w___, -temp[27].z___; 276: MUL temp[87].x, const[0].z___, temp[86].x___; 277: MOV temp[28].z, temp[87].__x_; 278: ELSE; 279: ADD none., temp[24].x___, -const[3].x___; [aluresult = (x == 0)] 280: IF aluresult.x___; 281: MUL temp[88].x, const[3].y___, temp[27].z___; 282: MOV temp[28].z, temp[88].__x_; 283: ELSE; 284: ADD none., temp[24].x___, -const[3].z___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: ADD temp[89].x, const[3].w___, -const[3].y___; 287: MAD temp[90].x, temp[27].z___, temp[89].x___, const[3].y___; 288: MOV temp[28].z, temp[90].__x_; 289: ELSE; 290: ADD none., temp[24].x___, -const[4].x___; [aluresult = (x == 0)] 291: IF aluresult.x___; 292: ADD temp[91].x, const[4].y___, -const[3].w___; 293: MAD temp[92].x, temp[27].z___, temp[91].x___, const[3].w___; 294: MOV temp[28].z, temp[92].__x_; 295: ELSE; 296: ADD none., temp[24].x___, -const[4].z___; [aluresult = (x == 0)] 297: IF aluresult.x___; 298: ADD temp[93].x, const[4].w___, -const[4].y___; 299: MAD temp[94].x, temp[27].z___, temp[93].x___, const[4].y___; 300: MOV temp[28].z, temp[94].__x_; 301: ELSE; 302: ADD none., temp[24].x___, -const[5].x___; [aluresult = (x == 0)] 303: IF aluresult.x___; 304: ADD temp[95].x, const[5].y___, -const[4].w___; 305: MAD temp[96].x, temp[27].z___, temp[95].x___, const[4].w___; 306: MOV temp[28].z, temp[96].__x_; 307: ELSE; 308: ADD none., temp[24].x___, -const[5].z___; [aluresult = (x == 0)] 309: IF aluresult.x___; 310: ADD temp[97].x, const[3].w___, -const[5].y___; 311: MAD temp[98].x, temp[27].z___, temp[97].x___, const[5].y___; 312: MOV temp[28].z, temp[98].__x_; 313: ELSE; 314: ADD none., temp[24].x___, -const[5].w___; [aluresult = (x == 0)] 315: IF aluresult.x___; 316: ADD temp[99].x, const[3].y___, -const[3].w___; 317: MAD temp[100].x, temp[27].z___, temp[99].x___, const[3].w___; 318: MOV temp[28].z, temp[100].__x_; 319: ELSE; 320: ADD none., temp[24].x___, -const[6].x___; [aluresult = (x == 0)] 321: IF aluresult.x___; 322: ADD temp[101].x, const[0].w___, -temp[27].z___; 323: MUL temp[102].x, const[3].y___, temp[101].x___; 324: MOV temp[28].z, temp[102].__x_; 325: ELSE; 326: ADD none., temp[24].x___, -const[0].x___; [aluresult = (x == 0)] 327: IF aluresult.x___; 328: MOV temp[28].z, const[0].__y_; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: ENDIF; 333: ENDIF; 334: ENDIF; 335: ENDIF; 336: ENDIF; 337: ENDIF; 338: ENDIF; 339: ENDIF; 340: ENDIF; 341: ENDIF; 342: ENDIF; 343: ENDIF; 344: ENDIF; 345: ENDIF; 346: MOV temp[103].w, const[0].___w; 347: MAD temp[103].xyz, const[6].yyy_, temp[28].xyz_, const[6].yyy_; 348: MOV output[0], temp[103]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[9].xyz, const[0].xxx_, input[0].xyz_; 1: FRC temp[10].x, temp[9].x___; 2: FRC temp[12].x, |(temp[9] - temp[10]).x___|; 3: ADD temp[13].x, |(temp[9] - temp[10]).x___|, -temp[12].x___; 4: CMP temp[14].x, (temp[9] - temp[10]).x___, -temp[13].x___, temp[13].x___; 5: FRC temp[15].x, temp[9].y___; 6: ADD temp[16].x, temp[9].y___, -temp[15].x___; 7: FRC temp[17].x, |temp[16].x___|; 8: ADD temp[18].x, |temp[16].x___|, -temp[17].x___; 9: CMP temp[19].x, temp[16].x___, -temp[18].x___, temp[18].x___; 10: FRC temp[20].x, temp[9].z___; 11: ADD temp[21].x, temp[9].z___, -temp[20].x___; 12: FRC temp[22].x, |temp[21].x___|; 13: ADD temp[23].x, |temp[21].x___|, -temp[22].x___; 14: CMP temp[24].x, temp[21].x___, -temp[23].x___, temp[23].x___; 15: FRC temp[25].xyz, temp[9].xyz_; 16: ADD temp[27].xyz, temp[9].xyz_, -(temp[9] - temp[25]).xyz_; 17: MOV temp[28].xyz, none.000_; 18: MOV none., temp[14].x___; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: MUL temp[28].x, const[0].z___, temp[27].x___; 21: ELSE; 22: ADD none., temp[14].x___, -none.1___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[29].x, const[1].x___, -const[0].z___; 25: MAD temp[28].x, temp[27].x___, temp[29].x___, const[0].z___; 26: ELSE; 27: ADD none., temp[14].x___, -const[1].y___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: ADD temp[30].x, const[1].z___, -const[1].x___; 30: MAD temp[28].x, temp[27].x___, temp[30].x___, const[1].x___; 31: ELSE; 32: ADD none., temp[14].x___, -const[1].w___; [aluresult = (x == 0)] 33: IF aluresult.x___; 34: MAD temp[28].x, temp[27].x___, (1 - const[1]).z___, const[1].z___; 35: ELSE; 36: ADD none., temp[14].x___, -const[2].x___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[32].x, const[1].z___, -none.1___; 39: MAD temp[28].x, temp[27].x___, temp[32].x___, none.1___; 40: ELSE; 41: ADD none., temp[14].x___, -const[2].y___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[33].x, const[1].x___, -const[1].z___; 44: MAD temp[28].x, temp[27].x___, temp[33].x___, const[1].z___; 45: ELSE; 46: ADD none., temp[14].x___, -const[2].z___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: ADD temp[34].x, const[0].z___, -const[1].x___; 49: MAD temp[28].x, temp[27].x___, temp[34].x___, const[1].x___; 50: ELSE; 51: ADD none., temp[14].x___, -const[2].w___; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: MUL temp[28].x, const[0].z___, (1 - temp[27]).x___; 54: ELSE; 55: ADD none., temp[14].x___, -const[3].x___; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: MUL temp[28].x, const[3].y___, temp[27].x___; 58: ELSE; 59: ADD none., temp[14].x___, -const[3].z___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[36].x, const[3].w___, -const[3].y___; 62: MAD temp[28].x, temp[27].x___, temp[36].x___, const[3].y___; 63: ELSE; 64: ADD none., temp[14].x___, -const[4].x___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: ADD temp[37].x, const[4].y___, -const[3].w___; 67: MAD temp[28].x, temp[27].x___, temp[37].x___, const[3].w___; 68: ELSE; 69: ADD none., temp[14].x___, -const[4].z___; [aluresult = (x == 0)] 70: IF aluresult.x___; 71: MAD temp[28].x, temp[27].x___, (1 - const[4]).y___, const[4].y___; 72: ELSE; 73: ADD none., temp[14].x___, -const[5].x___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[39].x, const[5].y___, none.1-_-_-_; 76: MAD temp[28].x, temp[27].x___, temp[39].x___, none.-1___; 77: ELSE; 78: ADD none., temp[14].x___, -const[5].z___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[40].x, const[3].w___, -const[5].y___; 81: MAD temp[28].x, temp[27].x___, temp[40].x___, const[5].y___; 82: ELSE; 83: ADD none., temp[14].x___, -const[5].w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[41].x, const[3].y___, -const[3].w___; 86: MAD temp[28].x, temp[27].x___, temp[41].x___, const[3].w___; 87: ELSE; 88: ADD none., temp[14].x___, -const[6].x___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MUL temp[28].x, const[3].y___, (1 - temp[27]).x___; 91: ELSE; 92: ADD none., temp[14].x___, -const[0].x___; [aluresult = (x == 0)] 93: IF aluresult.x___; 94: MOV temp[28].x, none.0___; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: MOV none., temp[19].x___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: MUL temp[43].x, const[0].z___, temp[27].y___; 115: MOV temp[28].y, temp[43]._x__; 116: ELSE; 117: ADD none., temp[19].x___, -none.1___; [aluresult = (x == 0)] 118: IF aluresult.x___; 119: ADD temp[44].x, const[1].x___, -const[0].z___; 120: MAD temp[45].x, temp[27].y___, temp[44].x___, const[0].z___; 121: MOV temp[28].y, temp[45]._x__; 122: ELSE; 123: ADD none., temp[19].x___, -const[1].y___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[46].x, const[1].z___, -const[1].x___; 126: MAD temp[47].x, temp[27].y___, temp[46].x___, const[1].x___; 127: MOV temp[28].y, temp[47]._x__; 128: ELSE; 129: ADD none., temp[19].x___, -const[1].w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: MAD temp[49].x, temp[27].y___, (1 - const[1]).z___, const[1].z___; 132: MOV temp[28].y, temp[49]._x__; 133: ELSE; 134: ADD none., temp[19].x___, -const[2].x___; [aluresult = (x == 0)] 135: IF aluresult.x___; 136: ADD temp[50].x, const[1].z___, -none.1___; 137: MAD temp[51].x, temp[27].y___, temp[50].x___, none.1___; 138: MOV temp[28].y, temp[51]._x__; 139: ELSE; 140: ADD none., temp[19].x___, -const[2].y___; [aluresult = (x == 0)] 141: IF aluresult.x___; 142: ADD temp[52].x, const[1].x___, -const[1].z___; 143: MAD temp[53].x, temp[27].y___, temp[52].x___, const[1].z___; 144: MOV temp[28].y, temp[53]._x__; 145: ELSE; 146: ADD none., temp[19].x___, -const[2].z___; [aluresult = (x == 0)] 147: IF aluresult.x___; 148: ADD temp[54].x, const[0].z___, -const[1].x___; 149: MAD temp[55].x, temp[27].y___, temp[54].x___, const[1].x___; 150: MOV temp[28].y, temp[55]._x__; 151: ELSE; 152: ADD none., temp[19].x___, -const[2].w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[57].x, const[0].z___, (1 - temp[27]).y___; 155: MOV temp[28].y, temp[57]._x__; 156: ELSE; 157: ADD none., temp[19].x___, -const[3].x___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: MUL temp[58].x, const[3].y___, temp[27].y___; 160: MOV temp[28].y, temp[58]._x__; 161: ELSE; 162: ADD none., temp[19].x___, -const[3].z___; [aluresult = (x == 0)] 163: IF aluresult.x___; 164: ADD temp[59].x, const[3].w___, -const[3].y___; 165: MAD temp[60].x, temp[27].y___, temp[59].x___, const[3].y___; 166: MOV temp[28].y, temp[60]._x__; 167: ELSE; 168: ADD none., temp[19].x___, -const[4].x___; [aluresult = (x == 0)] 169: IF aluresult.x___; 170: ADD temp[61].x, const[4].y___, -const[3].w___; 171: MAD temp[62].x, temp[27].y___, temp[61].x___, const[3].w___; 172: MOV temp[28].y, temp[62]._x__; 173: ELSE; 174: ADD none., temp[19].x___, -const[4].z___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: MAD temp[64].x, temp[27].y___, (1 - const[4]).y___, const[4].y___; 177: MOV temp[28].y, temp[64]._x__; 178: ELSE; 179: ADD none., temp[19].x___, -const[5].x___; [aluresult = (x == 0)] 180: IF aluresult.x___; 181: ADD temp[65].x, const[5].y___, none.1-_-_-_; 182: MAD temp[66].x, temp[27].y___, temp[65].x___, none.-1___; 183: MOV temp[28].y, temp[66]._x__; 184: ELSE; 185: ADD none., temp[19].x___, -const[5].z___; [aluresult = (x == 0)] 186: IF aluresult.x___; 187: ADD temp[67].x, const[3].w___, -const[5].y___; 188: MAD temp[68].x, temp[27].y___, temp[67].x___, const[5].y___; 189: MOV temp[28].y, temp[68]._x__; 190: ELSE; 191: ADD none., temp[19].x___, -const[5].w___; [aluresult = (x == 0)] 192: IF aluresult.x___; 193: ADD temp[69].x, const[3].y___, -const[3].w___; 194: MAD temp[70].x, temp[27].y___, temp[69].x___, const[3].w___; 195: MOV temp[28].y, temp[70]._x__; 196: ELSE; 197: ADD none., temp[19].x___, -const[6].x___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MUL temp[72].x, const[3].y___, (1 - temp[27]).y___; 200: MOV temp[28].y, temp[72]._x__; 201: ELSE; 202: ADD none., temp[19].x___, -const[0].x___; [aluresult = (x == 0)] 203: IF aluresult.x___; 204: MOV temp[28].y, none._0__; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: MOV none., temp[24].x___; [aluresult = (x == 0)] 223: IF aluresult.x___; 224: MUL temp[73].x, const[0].z___, temp[27].z___; 225: MOV temp[28].z, temp[73].__x_; 226: ELSE; 227: ADD none., temp[24].x___, -none.1___; [aluresult = (x == 0)] 228: IF aluresult.x___; 229: ADD temp[74].x, const[1].x___, -const[0].z___; 230: MAD temp[75].x, temp[27].z___, temp[74].x___, const[0].z___; 231: MOV temp[28].z, temp[75].__x_; 232: ELSE; 233: ADD none., temp[24].x___, -const[1].y___; [aluresult = (x == 0)] 234: IF aluresult.x___; 235: ADD temp[76].x, const[1].z___, -const[1].x___; 236: MAD temp[77].x, temp[27].z___, temp[76].x___, const[1].x___; 237: MOV temp[28].z, temp[77].__x_; 238: ELSE; 239: ADD none., temp[24].x___, -const[1].w___; [aluresult = (x == 0)] 240: IF aluresult.x___; 241: MAD temp[79].x, temp[27].z___, (1 - const[1]).z___, const[1].z___; 242: MOV temp[28].z, temp[79].__x_; 243: ELSE; 244: ADD none., temp[24].x___, -const[2].x___; [aluresult = (x == 0)] 245: IF aluresult.x___; 246: ADD temp[80].x, const[1].z___, -none.1___; 247: MAD temp[81].x, temp[27].z___, temp[80].x___, none.1___; 248: MOV temp[28].z, temp[81].__x_; 249: ELSE; 250: ADD none., temp[24].x___, -const[2].y___; [aluresult = (x == 0)] 251: IF aluresult.x___; 252: ADD temp[82].x, const[1].x___, -const[1].z___; 253: MAD temp[83].x, temp[27].z___, temp[82].x___, const[1].z___; 254: MOV temp[28].z, temp[83].__x_; 255: ELSE; 256: ADD none., temp[24].x___, -const[2].z___; [aluresult = (x == 0)] 257: IF aluresult.x___; 258: ADD temp[84].x, const[0].z___, -const[1].x___; 259: MAD temp[85].x, temp[27].z___, temp[84].x___, const[1].x___; 260: MOV temp[28].z, temp[85].__x_; 261: ELSE; 262: ADD none., temp[24].x___, -const[2].w___; [aluresult = (x == 0)] 263: IF aluresult.x___; 264: MUL temp[87].x, const[0].z___, (1 - temp[27]).z___; 265: MOV temp[28].z, temp[87].__x_; 266: ELSE; 267: ADD none., temp[24].x___, -const[3].x___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: MUL temp[88].x, const[3].y___, temp[27].z___; 270: MOV temp[28].z, temp[88].__x_; 271: ELSE; 272: ADD none., temp[24].x___, -const[3].z___; [aluresult = (x == 0)] 273: IF aluresult.x___; 274: ADD temp[89].x, const[3].w___, -const[3].y___; 275: MAD temp[90].x, temp[27].z___, temp[89].x___, const[3].y___; 276: MOV temp[28].z, temp[90].__x_; 277: ELSE; 278: ADD none., temp[24].x___, -const[4].x___; [aluresult = (x == 0)] 279: IF aluresult.x___; 280: ADD temp[91].x, const[4].y___, -const[3].w___; 281: MAD temp[92].x, temp[27].z___, temp[91].x___, const[3].w___; 282: MOV temp[28].z, temp[92].__x_; 283: ELSE; 284: ADD none., temp[24].x___, -const[4].z___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: MAD temp[94].x, temp[27].z___, (1 - const[4]).y___, const[4].y___; 287: MOV temp[28].z, temp[94].__x_; 288: ELSE; 289: ADD none., temp[24].x___, -const[5].x___; [aluresult = (x == 0)] 290: IF aluresult.x___; 291: ADD temp[95].x, const[5].y___, none.1-_-_-_; 292: MAD temp[96].x, temp[27].z___, temp[95].x___, none.-1___; 293: MOV temp[28].z, temp[96].__x_; 294: ELSE; 295: ADD none., temp[24].x___, -const[5].z___; [aluresult = (x == 0)] 296: IF aluresult.x___; 297: ADD temp[97].x, const[3].w___, -const[5].y___; 298: MAD temp[98].x, temp[27].z___, temp[97].x___, const[5].y___; 299: MOV temp[28].z, temp[98].__x_; 300: ELSE; 301: ADD none., temp[24].x___, -const[5].w___; [aluresult = (x == 0)] 302: IF aluresult.x___; 303: ADD temp[99].x, const[3].y___, -const[3].w___; 304: MAD temp[100].x, temp[27].z___, temp[99].x___, const[3].w___; 305: MOV temp[28].z, temp[100].__x_; 306: ELSE; 307: ADD none., temp[24].x___, -const[6].x___; [aluresult = (x == 0)] 308: IF aluresult.x___; 309: MUL temp[102].x, const[3].y___, (1 - temp[27]).z___; 310: MOV temp[28].z, temp[102].__x_; 311: ELSE; 312: ADD none., temp[24].x___, -const[0].x___; [aluresult = (x == 0)] 313: IF aluresult.x___; 314: MOV temp[28].z, none.__0_; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: ENDIF; 326: ENDIF; 327: ENDIF; 328: ENDIF; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: MOV temp[103].w, none.___1; 333: MAD temp[103].xyz, none.HHH_, temp[28].xyz_, none.HHH_; 334: MOV output[0], temp[103]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MUL temp[9].xyz, 16.000000 (0x58).www_, input[0].xyz_; 1: FRC temp[10].x, temp[9].x___; 2: FRC temp[12].x, |(temp[9] - temp[10]).x___|; 3: ADD temp[13].x, |(temp[9] - temp[10]).x___|, -temp[12].x___; 4: CMP temp[14].x, (temp[9] - temp[10]).x___, -temp[13].x___, temp[13].x___; 5: FRC temp[15].x, temp[9].y___; 6: ADD temp[16].x, temp[9].y___, -temp[15].x___; 7: FRC temp[17].x, |temp[16].x___|; 8: ADD temp[18].x, |temp[16].x___|, -temp[17].x___; 9: CMP temp[19].x, temp[16].x___, -temp[18].x___, temp[18].x___; 10: FRC temp[20].x, temp[9].z___; 11: ADD temp[21].x, temp[9].z___, -temp[20].x___; 12: FRC temp[22].x, |temp[21].x___|; 13: ADD temp[23].x, |temp[21].x___|, -temp[22].x___; 14: CMP temp[24].x, temp[21].x___, -temp[23].x___, temp[23].x___; 15: FRC temp[25].xyz, temp[9].xyz_; 16: ADD temp[27].xyz, temp[9].xyz_, -(temp[9] - temp[25]).xyz_; 17: MOV temp[28].xyz, none.000_; 18: MOV none., temp[14].x___; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: MUL temp[28].x, const[0].z___, temp[27].x___; 21: ELSE; 22: ADD none., temp[14].x___, -none.1___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[29].x, const[1].x___, -const[0].z___; 25: MAD temp[28].x, temp[27].x___, temp[29].x___, const[0].z___; 26: ELSE; 27: ADD none., temp[14].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: ADD temp[30].x, const[1].z___, -const[1].x___; 30: MAD temp[28].x, temp[27].x___, temp[30].x___, const[1].x___; 31: ELSE; 32: ADD none., temp[14].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 33: IF aluresult.x___; 34: MAD temp[28].x, temp[27].x___, (1 - const[1]).z___, const[1].z___; 35: ELSE; 36: ADD none., temp[14].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[32].x, const[1].z___, -none.1___; 39: MAD temp[28].x, temp[27].x___, temp[32].x___, none.1___; 40: ELSE; 41: ADD none., temp[14].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[33].x, const[1].x___, -const[1].z___; 44: MAD temp[28].x, temp[27].x___, temp[33].x___, const[1].z___; 45: ELSE; 46: ADD none., temp[14].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: ADD temp[34].x, const[0].z___, -const[1].x___; 49: MAD temp[28].x, temp[27].x___, temp[34].x___, const[1].x___; 50: ELSE; 51: ADD none., temp[14].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: MUL temp[28].x, const[0].z___, (1 - temp[27]).x___; 54: ELSE; 55: ADD none., temp[14].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: MUL temp[28].x, const[3].y___, temp[27].x___; 58: ELSE; 59: ADD none., temp[14].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[36].x, const[3].w___, -const[3].y___; 62: MAD temp[28].x, temp[27].x___, temp[36].x___, const[3].y___; 63: ELSE; 64: ADD none., temp[14].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: ADD temp[37].x, const[4].y___, -const[3].w___; 67: MAD temp[28].x, temp[27].x___, temp[37].x___, const[3].w___; 68: ELSE; 69: ADD none., temp[14].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 70: IF aluresult.x___; 71: MAD temp[28].x, temp[27].x___, (1 - const[4]).y___, const[4].y___; 72: ELSE; 73: ADD none., temp[14].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[39].x, const[5].y___, none.1-_-_-_; 76: MAD temp[28].x, temp[27].x___, temp[39].x___, none.-1___; 77: ELSE; 78: ADD none., temp[14].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[40].x, const[3].w___, -const[5].y___; 81: MAD temp[28].x, temp[27].x___, temp[40].x___, const[5].y___; 82: ELSE; 83: ADD none., temp[14].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[41].x, const[3].y___, -const[3].w___; 86: MAD temp[28].x, temp[27].x___, temp[41].x___, const[3].w___; 87: ELSE; 88: ADD none., temp[14].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MUL temp[28].x, const[3].y___, (1 - temp[27]).x___; 91: ELSE; 92: ADD none., temp[14].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 93: IF aluresult.x___; 94: MOV temp[28].x, none.0___; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: MOV none., temp[19].x___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: MUL temp[43].x, const[0].z___, temp[27].y___; 115: MOV temp[28].y, temp[43]._x__; 116: ELSE; 117: ADD none., temp[19].x___, -none.1___; [aluresult = (x == 0)] 118: IF aluresult.x___; 119: ADD temp[44].x, const[1].x___, -const[0].z___; 120: MAD temp[45].x, temp[27].y___, temp[44].x___, const[0].z___; 121: MOV temp[28].y, temp[45]._x__; 122: ELSE; 123: ADD none., temp[19].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[46].x, const[1].z___, -const[1].x___; 126: MAD temp[47].x, temp[27].y___, temp[46].x___, const[1].x___; 127: MOV temp[28].y, temp[47]._x__; 128: ELSE; 129: ADD none., temp[19].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: MAD temp[49].x, temp[27].y___, (1 - const[1]).z___, const[1].z___; 132: MOV temp[28].y, temp[49]._x__; 133: ELSE; 134: ADD none., temp[19].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 135: IF aluresult.x___; 136: ADD temp[50].x, const[1].z___, -none.1___; 137: MAD temp[51].x, temp[27].y___, temp[50].x___, none.1___; 138: MOV temp[28].y, temp[51]._x__; 139: ELSE; 140: ADD none., temp[19].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 141: IF aluresult.x___; 142: ADD temp[52].x, const[1].x___, -const[1].z___; 143: MAD temp[53].x, temp[27].y___, temp[52].x___, const[1].z___; 144: MOV temp[28].y, temp[53]._x__; 145: ELSE; 146: ADD none., temp[19].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 147: IF aluresult.x___; 148: ADD temp[54].x, const[0].z___, -const[1].x___; 149: MAD temp[55].x, temp[27].y___, temp[54].x___, const[1].x___; 150: MOV temp[28].y, temp[55]._x__; 151: ELSE; 152: ADD none., temp[19].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[57].x, const[0].z___, (1 - temp[27]).y___; 155: MOV temp[28].y, temp[57]._x__; 156: ELSE; 157: ADD none., temp[19].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: MUL temp[58].x, const[3].y___, temp[27].y___; 160: MOV temp[28].y, temp[58]._x__; 161: ELSE; 162: ADD none., temp[19].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 163: IF aluresult.x___; 164: ADD temp[59].x, const[3].w___, -const[3].y___; 165: MAD temp[60].x, temp[27].y___, temp[59].x___, const[3].y___; 166: MOV temp[28].y, temp[60]._x__; 167: ELSE; 168: ADD none., temp[19].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 169: IF aluresult.x___; 170: ADD temp[61].x, const[4].y___, -const[3].w___; 171: MAD temp[62].x, temp[27].y___, temp[61].x___, const[3].w___; 172: MOV temp[28].y, temp[62]._x__; 173: ELSE; 174: ADD none., temp[19].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: MAD temp[64].x, temp[27].y___, (1 - const[4]).y___, const[4].y___; 177: MOV temp[28].y, temp[64]._x__; 178: ELSE; 179: ADD none., temp[19].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 180: IF aluresult.x___; 181: ADD temp[65].x, const[5].y___, none.1-_-_-_; 182: MAD temp[66].x, temp[27].y___, temp[65].x___, none.-1___; 183: MOV temp[28].y, temp[66]._x__; 184: ELSE; 185: ADD none., temp[19].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 186: IF aluresult.x___; 187: ADD temp[67].x, const[3].w___, -const[5].y___; 188: MAD temp[68].x, temp[27].y___, temp[67].x___, const[5].y___; 189: MOV temp[28].y, temp[68]._x__; 190: ELSE; 191: ADD none., temp[19].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 192: IF aluresult.x___; 193: ADD temp[69].x, const[3].y___, -const[3].w___; 194: MAD temp[70].x, temp[27].y___, temp[69].x___, const[3].w___; 195: MOV temp[28].y, temp[70]._x__; 196: ELSE; 197: ADD none., temp[19].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MUL temp[72].x, const[3].y___, (1 - temp[27]).y___; 200: MOV temp[28].y, temp[72]._x__; 201: ELSE; 202: ADD none., temp[19].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 203: IF aluresult.x___; 204: MOV temp[28].y, none._0__; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: MOV none., temp[24].x___; [aluresult = (x == 0)] 223: IF aluresult.x___; 224: MUL temp[73].x, const[0].z___, temp[27].z___; 225: MOV temp[28].z, temp[73].__x_; 226: ELSE; 227: ADD none., temp[24].x___, -none.1___; [aluresult = (x == 0)] 228: IF aluresult.x___; 229: ADD temp[74].x, const[1].x___, -const[0].z___; 230: MAD temp[75].x, temp[27].z___, temp[74].x___, const[0].z___; 231: MOV temp[28].z, temp[75].__x_; 232: ELSE; 233: ADD none., temp[24].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 234: IF aluresult.x___; 235: ADD temp[76].x, const[1].z___, -const[1].x___; 236: MAD temp[77].x, temp[27].z___, temp[76].x___, const[1].x___; 237: MOV temp[28].z, temp[77].__x_; 238: ELSE; 239: ADD none., temp[24].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 240: IF aluresult.x___; 241: MAD temp[79].x, temp[27].z___, (1 - const[1]).z___, const[1].z___; 242: MOV temp[28].z, temp[79].__x_; 243: ELSE; 244: ADD none., temp[24].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 245: IF aluresult.x___; 246: ADD temp[80].x, const[1].z___, -none.1___; 247: MAD temp[81].x, temp[27].z___, temp[80].x___, none.1___; 248: MOV temp[28].z, temp[81].__x_; 249: ELSE; 250: ADD none., temp[24].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 251: IF aluresult.x___; 252: ADD temp[82].x, const[1].x___, -const[1].z___; 253: MAD temp[83].x, temp[27].z___, temp[82].x___, const[1].z___; 254: MOV temp[28].z, temp[83].__x_; 255: ELSE; 256: ADD none., temp[24].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 257: IF aluresult.x___; 258: ADD temp[84].x, const[0].z___, -const[1].x___; 259: MAD temp[85].x, temp[27].z___, temp[84].x___, const[1].x___; 260: MOV temp[28].z, temp[85].__x_; 261: ELSE; 262: ADD none., temp[24].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 263: IF aluresult.x___; 264: MUL temp[87].x, const[0].z___, (1 - temp[27]).z___; 265: MOV temp[28].z, temp[87].__x_; 266: ELSE; 267: ADD none., temp[24].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: MUL temp[88].x, const[3].y___, temp[27].z___; 270: MOV temp[28].z, temp[88].__x_; 271: ELSE; 272: ADD none., temp[24].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 273: IF aluresult.x___; 274: ADD temp[89].x, const[3].w___, -const[3].y___; 275: MAD temp[90].x, temp[27].z___, temp[89].x___, const[3].y___; 276: MOV temp[28].z, temp[90].__x_; 277: ELSE; 278: ADD none., temp[24].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 279: IF aluresult.x___; 280: ADD temp[91].x, const[4].y___, -const[3].w___; 281: MAD temp[92].x, temp[27].z___, temp[91].x___, const[3].w___; 282: MOV temp[28].z, temp[92].__x_; 283: ELSE; 284: ADD none., temp[24].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: MAD temp[94].x, temp[27].z___, (1 - const[4]).y___, const[4].y___; 287: MOV temp[28].z, temp[94].__x_; 288: ELSE; 289: ADD none., temp[24].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 290: IF aluresult.x___; 291: ADD temp[95].x, const[5].y___, none.1-_-_-_; 292: MAD temp[96].x, temp[27].z___, temp[95].x___, none.-1___; 293: MOV temp[28].z, temp[96].__x_; 294: ELSE; 295: ADD none., temp[24].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 296: IF aluresult.x___; 297: ADD temp[97].x, const[3].w___, -const[5].y___; 298: MAD temp[98].x, temp[27].z___, temp[97].x___, const[5].y___; 299: MOV temp[28].z, temp[98].__x_; 300: ELSE; 301: ADD none., temp[24].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 302: IF aluresult.x___; 303: ADD temp[99].x, const[3].y___, -const[3].w___; 304: MAD temp[100].x, temp[27].z___, temp[99].x___, const[3].w___; 305: MOV temp[28].z, temp[100].__x_; 306: ELSE; 307: ADD none., temp[24].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 308: IF aluresult.x___; 309: MUL temp[102].x, const[3].y___, (1 - temp[27]).z___; 310: MOV temp[28].z, temp[102].__x_; 311: ELSE; 312: ADD none., temp[24].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 313: IF aluresult.x___; 314: MOV temp[28].z, none.__0_; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: ENDIF; 326: ENDIF; 327: ENDIF; 328: ENDIF; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: MOV temp[103].w, none.___1; 333: MAD temp[103].xyz, none.HHH_, temp[28].xyz_, none.HHH_; 334: MOV output[0], temp[103]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 4.0000 5.0000 6.0000 7.0000 } CONST[3] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[4] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[5] = { 12.0000 -0.9239 13.0000 14.0000 } CONST[6] = { 15.0000 0.5000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MUL temp[9].xyz, 16.000000 (0x58).www_, input[0].xyz_; 1: FRC temp[10].x, temp[9].x___; 2: FRC temp[12].x, |(temp[9] - temp[10]).x___|; 3: ADD temp[13].x, |(temp[9] - temp[10]).x___|, -temp[12].x___; 4: CMP temp[14].x, (temp[9] - temp[10]).x___, -temp[13].x___, temp[13].x___; 5: FRC temp[15].x, temp[9].y___; 6: ADD temp[16].x, temp[9].y___, -temp[15].x___; 7: FRC temp[17].x, |temp[16].x___|; 8: ADD temp[18].x, |temp[16].x___|, -temp[17].x___; 9: CMP temp[19].x, temp[16].x___, -temp[18].x___, temp[18].x___; 10: FRC temp[20].x, temp[9].z___; 11: ADD temp[21].x, temp[9].z___, -temp[20].x___; 12: FRC temp[22].x, |temp[21].x___|; 13: ADD temp[23].x, |temp[21].x___|, -temp[22].x___; 14: CMP temp[24].x, temp[21].x___, -temp[23].x___, temp[23].x___; 15: FRC temp[25].xyz, temp[9].xyz_; 16: ADD temp[27].xyz, temp[9].xyz_, -(temp[9] - temp[25]).xyz_; 17: MOV temp[28].xyz, none.000_; 18: MOV none., temp[14].x___; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: MUL temp[28].x, const[0].z___, temp[27].x___; 21: ELSE; 22: ADD none., temp[14].x___, -none.1___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[29].x, const[1].x___, -const[0].z___; 25: MAD temp[28].x, temp[27].x___, temp[29].x___, const[0].z___; 26: ELSE; 27: ADD none., temp[14].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: ADD temp[30].x, const[1].z___, -const[1].x___; 30: MAD temp[28].x, temp[27].x___, temp[30].x___, const[1].x___; 31: ELSE; 32: ADD none., temp[14].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 33: IF aluresult.x___; 34: MAD temp[28].x, temp[27].x___, (1 - const[1]).z___, const[1].z___; 35: ELSE; 36: ADD none., temp[14].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[32].x, const[1].z___, -none.1___; 39: MAD temp[28].x, temp[27].x___, temp[32].x___, none.1___; 40: ELSE; 41: ADD none., temp[14].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[33].x, const[1].x___, -const[1].z___; 44: MAD temp[28].x, temp[27].x___, temp[33].x___, const[1].z___; 45: ELSE; 46: ADD none., temp[14].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: ADD temp[34].x, const[0].z___, -const[1].x___; 49: MAD temp[28].x, temp[27].x___, temp[34].x___, const[1].x___; 50: ELSE; 51: ADD none., temp[14].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: MUL temp[28].x, const[0].z___, (1 - temp[27]).x___; 54: ELSE; 55: ADD none., temp[14].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: MUL temp[28].x, const[3].y___, temp[27].x___; 58: ELSE; 59: ADD none., temp[14].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[36].x, const[3].w___, -const[3].y___; 62: MAD temp[28].x, temp[27].x___, temp[36].x___, const[3].y___; 63: ELSE; 64: ADD none., temp[14].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: ADD temp[37].x, const[4].y___, -const[3].w___; 67: MAD temp[28].x, temp[27].x___, temp[37].x___, const[3].w___; 68: ELSE; 69: ADD none., temp[14].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 70: IF aluresult.x___; 71: MAD temp[28].x, temp[27].x___, (1 - const[4]).y___, const[4].y___; 72: ELSE; 73: ADD none., temp[14].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[39].x, const[5].y___, none.1-_-_-_; 76: MAD temp[28].x, temp[27].x___, temp[39].x___, none.-1___; 77: ELSE; 78: ADD none., temp[14].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[40].x, const[3].w___, -const[5].y___; 81: MAD temp[28].x, temp[27].x___, temp[40].x___, const[5].y___; 82: ELSE; 83: ADD none., temp[14].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[41].x, const[3].y___, -const[3].w___; 86: MAD temp[28].x, temp[27].x___, temp[41].x___, const[3].w___; 87: ELSE; 88: ADD none., temp[14].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MUL temp[28].x, const[3].y___, (1 - temp[27]).x___; 91: ELSE; 92: ADD none., temp[14].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 93: IF aluresult.x___; 94: MOV temp[28].x, none.0___; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: MOV none., temp[19].x___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: MUL temp[43].x, const[0].z___, temp[27].y___; 115: MOV temp[28].y, temp[43]._x__; 116: ELSE; 117: ADD none., temp[19].x___, -none.1___; [aluresult = (x == 0)] 118: IF aluresult.x___; 119: ADD temp[44].x, const[1].x___, -const[0].z___; 120: MAD temp[45].x, temp[27].y___, temp[44].x___, const[0].z___; 121: MOV temp[28].y, temp[45]._x__; 122: ELSE; 123: ADD none., temp[19].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[46].x, const[1].z___, -const[1].x___; 126: MAD temp[47].x, temp[27].y___, temp[46].x___, const[1].x___; 127: MOV temp[28].y, temp[47]._x__; 128: ELSE; 129: ADD none., temp[19].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: MAD temp[49].x, temp[27].y___, (1 - const[1]).z___, const[1].z___; 132: MOV temp[28].y, temp[49]._x__; 133: ELSE; 134: ADD none., temp[19].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 135: IF aluresult.x___; 136: ADD temp[50].x, const[1].z___, -none.1___; 137: MAD temp[51].x, temp[27].y___, temp[50].x___, none.1___; 138: MOV temp[28].y, temp[51]._x__; 139: ELSE; 140: ADD none., temp[19].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 141: IF aluresult.x___; 142: ADD temp[52].x, const[1].x___, -const[1].z___; 143: MAD temp[53].x, temp[27].y___, temp[52].x___, const[1].z___; 144: MOV temp[28].y, temp[53]._x__; 145: ELSE; 146: ADD none., temp[19].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 147: IF aluresult.x___; 148: ADD temp[54].x, const[0].z___, -const[1].x___; 149: MAD temp[55].x, temp[27].y___, temp[54].x___, const[1].x___; 150: MOV temp[28].y, temp[55]._x__; 151: ELSE; 152: ADD none., temp[19].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[57].x, const[0].z___, (1 - temp[27]).y___; 155: MOV temp[28].y, temp[57]._x__; 156: ELSE; 157: ADD none., temp[19].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: MUL temp[58].x, const[3].y___, temp[27].y___; 160: MOV temp[28].y, temp[58]._x__; 161: ELSE; 162: ADD none., temp[19].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 163: IF aluresult.x___; 164: ADD temp[59].x, const[3].w___, -const[3].y___; 165: MAD temp[60].x, temp[27].y___, temp[59].x___, const[3].y___; 166: MOV temp[28].y, temp[60]._x__; 167: ELSE; 168: ADD none., temp[19].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 169: IF aluresult.x___; 170: ADD temp[61].x, const[4].y___, -const[3].w___; 171: MAD temp[62].x, temp[27].y___, temp[61].x___, const[3].w___; 172: MOV temp[28].y, temp[62]._x__; 173: ELSE; 174: ADD none., temp[19].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: MAD temp[64].x, temp[27].y___, (1 - const[4]).y___, const[4].y___; 177: MOV temp[28].y, temp[64]._x__; 178: ELSE; 179: ADD none., temp[19].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 180: IF aluresult.x___; 181: ADD temp[65].x, const[5].y___, none.1-_-_-_; 182: MAD temp[66].x, temp[27].y___, temp[65].x___, none.-1___; 183: MOV temp[28].y, temp[66]._x__; 184: ELSE; 185: ADD none., temp[19].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 186: IF aluresult.x___; 187: ADD temp[67].x, const[3].w___, -const[5].y___; 188: MAD temp[68].x, temp[27].y___, temp[67].x___, const[5].y___; 189: MOV temp[28].y, temp[68]._x__; 190: ELSE; 191: ADD none., temp[19].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 192: IF aluresult.x___; 193: ADD temp[69].x, const[3].y___, -const[3].w___; 194: MAD temp[70].x, temp[27].y___, temp[69].x___, const[3].w___; 195: MOV temp[28].y, temp[70]._x__; 196: ELSE; 197: ADD none., temp[19].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MUL temp[72].x, const[3].y___, (1 - temp[27]).y___; 200: MOV temp[28].y, temp[72]._x__; 201: ELSE; 202: ADD none., temp[19].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 203: IF aluresult.x___; 204: MOV temp[28].y, none._0__; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: MOV none., temp[24].x___; [aluresult = (x == 0)] 223: IF aluresult.x___; 224: MUL temp[73].x, const[0].z___, temp[27].z___; 225: MOV temp[28].z, temp[73].__x_; 226: ELSE; 227: ADD none., temp[24].x___, -none.1___; [aluresult = (x == 0)] 228: IF aluresult.x___; 229: ADD temp[74].x, const[1].x___, -const[0].z___; 230: MAD temp[75].x, temp[27].z___, temp[74].x___, const[0].z___; 231: MOV temp[28].z, temp[75].__x_; 232: ELSE; 233: ADD none., temp[24].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 234: IF aluresult.x___; 235: ADD temp[76].x, const[1].z___, -const[1].x___; 236: MAD temp[77].x, temp[27].z___, temp[76].x___, const[1].x___; 237: MOV temp[28].z, temp[77].__x_; 238: ELSE; 239: ADD none., temp[24].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 240: IF aluresult.x___; 241: MAD temp[79].x, temp[27].z___, (1 - const[1]).z___, const[1].z___; 242: MOV temp[28].z, temp[79].__x_; 243: ELSE; 244: ADD none., temp[24].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 245: IF aluresult.x___; 246: ADD temp[80].x, const[1].z___, -none.1___; 247: MAD temp[81].x, temp[27].z___, temp[80].x___, none.1___; 248: MOV temp[28].z, temp[81].__x_; 249: ELSE; 250: ADD none., temp[24].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 251: IF aluresult.x___; 252: ADD temp[82].x, const[1].x___, -const[1].z___; 253: MAD temp[83].x, temp[27].z___, temp[82].x___, const[1].z___; 254: MOV temp[28].z, temp[83].__x_; 255: ELSE; 256: ADD none., temp[24].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 257: IF aluresult.x___; 258: ADD temp[84].x, const[0].z___, -const[1].x___; 259: MAD temp[85].x, temp[27].z___, temp[84].x___, const[1].x___; 260: MOV temp[28].z, temp[85].__x_; 261: ELSE; 262: ADD none., temp[24].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 263: IF aluresult.x___; 264: MUL temp[87].x, const[0].z___, (1 - temp[27]).z___; 265: MOV temp[28].z, temp[87].__x_; 266: ELSE; 267: ADD none., temp[24].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: MUL temp[88].x, const[3].y___, temp[27].z___; 270: MOV temp[28].z, temp[88].__x_; 271: ELSE; 272: ADD none., temp[24].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 273: IF aluresult.x___; 274: ADD temp[89].x, const[3].w___, -const[3].y___; 275: MAD temp[90].x, temp[27].z___, temp[89].x___, const[3].y___; 276: MOV temp[28].z, temp[90].__x_; 277: ELSE; 278: ADD none., temp[24].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 279: IF aluresult.x___; 280: ADD temp[91].x, const[4].y___, -const[3].w___; 281: MAD temp[92].x, temp[27].z___, temp[91].x___, const[3].w___; 282: MOV temp[28].z, temp[92].__x_; 283: ELSE; 284: ADD none., temp[24].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: MAD temp[94].x, temp[27].z___, (1 - const[4]).y___, const[4].y___; 287: MOV temp[28].z, temp[94].__x_; 288: ELSE; 289: ADD none., temp[24].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 290: IF aluresult.x___; 291: ADD temp[95].x, const[5].y___, none.1-_-_-_; 292: MAD temp[96].x, temp[27].z___, temp[95].x___, none.-1___; 293: MOV temp[28].z, temp[96].__x_; 294: ELSE; 295: ADD none., temp[24].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 296: IF aluresult.x___; 297: ADD temp[97].x, const[3].w___, -const[5].y___; 298: MAD temp[98].x, temp[27].z___, temp[97].x___, const[5].y___; 299: MOV temp[28].z, temp[98].__x_; 300: ELSE; 301: ADD none., temp[24].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 302: IF aluresult.x___; 303: ADD temp[99].x, const[3].y___, -const[3].w___; 304: MAD temp[100].x, temp[27].z___, temp[99].x___, const[3].w___; 305: MOV temp[28].z, temp[100].__x_; 306: ELSE; 307: ADD none., temp[24].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 308: IF aluresult.x___; 309: MUL temp[102].x, const[3].y___, (1 - temp[27]).z___; 310: MOV temp[28].z, temp[102].__x_; 311: ELSE; 312: ADD none., temp[24].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 313: IF aluresult.x___; 314: MOV temp[28].z, none.__0_; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: ENDIF; 326: ENDIF; 327: ENDIF; 328: ENDIF; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: MOV temp[103].w, none.___1; 333: MAD temp[103].xyz, none.HHH_, temp[28].xyz_, none.HHH_; 334: MOV output[0], temp[103]; CONST[0] = { 16.0000 0.0000 0.3827 1.0000 } CONST[1] = { 0.7071 2.0000 0.9239 3.0000 } CONST[2] = { 8.0000 -0.3827 9.0000 -0.7071 } CONST[3] = { 10.0000 -0.9239 11.0000 -1.0000 } CONST[4] = { 12.0000 -0.9239 13.0000 14.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[9].xyz, 16.000000 (0x58).www_, input[0].xyz_; 1: FRC temp[10].x, temp[9].x___; 2: FRC temp[12].x, |(temp[9] - temp[10]).x___|; 3: ADD temp[13].x, |(temp[9] - temp[10]).x___|, -temp[12].x___; 4: CMP temp[14].x, (temp[9] - temp[10]).x___, -temp[13].x___, temp[13].x___; 5: FRC temp[15].x, temp[9].y___; 6: ADD temp[16].x, temp[9].y___, -temp[15].x___; 7: FRC temp[17].x, |temp[16].x___|; 8: ADD temp[18].x, |temp[16].x___|, -temp[17].x___; 9: CMP temp[19].x, temp[16].x___, -temp[18].x___, temp[18].x___; 10: FRC temp[20].x, temp[9].z___; 11: ADD temp[21].x, temp[9].z___, -temp[20].x___; 12: FRC temp[22].x, |temp[21].x___|; 13: ADD temp[23].x, |temp[21].x___|, -temp[22].x___; 14: CMP temp[24].x, temp[21].x___, -temp[23].x___, temp[23].x___; 15: FRC temp[25].xyz, temp[9].xyz_; 16: ADD temp[27].xyz, temp[9].xyz_, -(temp[9] - temp[25]).xyz_; 17: MOV temp[28].xyz, none.000_; 18: MOV none., temp[14].x___; [aluresult = (x == 0)] 19: IF aluresult.x___; 20: MUL temp[28].x, const[0].z___, temp[27].x___; 21: ELSE; 22: ADD none., temp[14].x___, -none.1___; [aluresult = (x == 0)] 23: IF aluresult.x___; 24: ADD temp[29].x, const[1].x___, -const[0].z___; 25: MAD temp[28].x, temp[27].x___, temp[29].x___, const[0].z___; 26: ELSE; 27: ADD none., temp[14].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 28: IF aluresult.x___; 29: ADD temp[30].x, const[1].z___, -const[1].x___; 30: MAD temp[28].x, temp[27].x___, temp[30].x___, const[1].x___; 31: ELSE; 32: ADD none., temp[14].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 33: IF aluresult.x___; 34: MAD temp[28].x, temp[27].x___, (1 - const[1]).z___, const[1].z___; 35: ELSE; 36: ADD none., temp[14].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 37: IF aluresult.x___; 38: ADD temp[32].x, const[1].z___, -none.1___; 39: MAD temp[28].x, temp[27].x___, temp[32].x___, none.1___; 40: ELSE; 41: ADD none., temp[14].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 42: IF aluresult.x___; 43: ADD temp[33].x, const[1].x___, -const[1].z___; 44: MAD temp[28].x, temp[27].x___, temp[33].x___, const[1].z___; 45: ELSE; 46: ADD none., temp[14].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 47: IF aluresult.x___; 48: ADD temp[34].x, const[0].z___, -const[1].x___; 49: MAD temp[28].x, temp[27].x___, temp[34].x___, const[1].x___; 50: ELSE; 51: ADD none., temp[14].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 52: IF aluresult.x___; 53: MUL temp[28].x, const[0].z___, (1 - temp[27]).x___; 54: ELSE; 55: ADD none., temp[14].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 56: IF aluresult.x___; 57: MUL temp[28].x, const[2].y___, temp[27].x___; 58: ELSE; 59: ADD none., temp[14].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 60: IF aluresult.x___; 61: ADD temp[36].x, const[2].w___, -const[2].y___; 62: MAD temp[28].x, temp[27].x___, temp[36].x___, const[2].y___; 63: ELSE; 64: ADD none., temp[14].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 65: IF aluresult.x___; 66: ADD temp[37].x, const[3].y___, -const[2].w___; 67: MAD temp[28].x, temp[27].x___, temp[37].x___, const[2].w___; 68: ELSE; 69: ADD none., temp[14].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 70: IF aluresult.x___; 71: MAD temp[28].x, temp[27].x___, (1 - const[3]).y___, const[3].y___; 72: ELSE; 73: ADD none., temp[14].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 74: IF aluresult.x___; 75: ADD temp[39].x, const[4].y___, none.1-_-_-_; 76: MAD temp[28].x, temp[27].x___, temp[39].x___, none.-1___; 77: ELSE; 78: ADD none., temp[14].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 79: IF aluresult.x___; 80: ADD temp[40].x, const[2].w___, -const[4].y___; 81: MAD temp[28].x, temp[27].x___, temp[40].x___, const[4].y___; 82: ELSE; 83: ADD none., temp[14].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 84: IF aluresult.x___; 85: ADD temp[41].x, const[2].y___, -const[2].w___; 86: MAD temp[28].x, temp[27].x___, temp[41].x___, const[2].w___; 87: ELSE; 88: ADD none., temp[14].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 89: IF aluresult.x___; 90: MUL temp[28].x, const[2].y___, (1 - temp[27]).x___; 91: ELSE; 92: ADD none., temp[14].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 93: IF aluresult.x___; 94: MOV temp[28].x, none.0___; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: MOV none., temp[19].x___; [aluresult = (x == 0)] 113: IF aluresult.x___; 114: MUL temp[43].x, const[0].z___, temp[27].y___; 115: MOV temp[28].y, temp[43]._x__; 116: ELSE; 117: ADD none., temp[19].x___, -none.1___; [aluresult = (x == 0)] 118: IF aluresult.x___; 119: ADD temp[44].x, const[1].x___, -const[0].z___; 120: MAD temp[45].x, temp[27].y___, temp[44].x___, const[0].z___; 121: MOV temp[28].y, temp[45]._x__; 122: ELSE; 123: ADD none., temp[19].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 124: IF aluresult.x___; 125: ADD temp[46].x, const[1].z___, -const[1].x___; 126: MAD temp[47].x, temp[27].y___, temp[46].x___, const[1].x___; 127: MOV temp[28].y, temp[47]._x__; 128: ELSE; 129: ADD none., temp[19].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 130: IF aluresult.x___; 131: MAD temp[49].x, temp[27].y___, (1 - const[1]).z___, const[1].z___; 132: MOV temp[28].y, temp[49]._x__; 133: ELSE; 134: ADD none., temp[19].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 135: IF aluresult.x___; 136: ADD temp[50].x, const[1].z___, -none.1___; 137: MAD temp[51].x, temp[27].y___, temp[50].x___, none.1___; 138: MOV temp[28].y, temp[51]._x__; 139: ELSE; 140: ADD none., temp[19].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 141: IF aluresult.x___; 142: ADD temp[52].x, const[1].x___, -const[1].z___; 143: MAD temp[53].x, temp[27].y___, temp[52].x___, const[1].z___; 144: MOV temp[28].y, temp[53]._x__; 145: ELSE; 146: ADD none., temp[19].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 147: IF aluresult.x___; 148: ADD temp[54].x, const[0].z___, -const[1].x___; 149: MAD temp[55].x, temp[27].y___, temp[54].x___, const[1].x___; 150: MOV temp[28].y, temp[55]._x__; 151: ELSE; 152: ADD none., temp[19].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 153: IF aluresult.x___; 154: MUL temp[57].x, const[0].z___, (1 - temp[27]).y___; 155: MOV temp[28].y, temp[57]._x__; 156: ELSE; 157: ADD none., temp[19].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 158: IF aluresult.x___; 159: MUL temp[58].x, const[2].y___, temp[27].y___; 160: MOV temp[28].y, temp[58]._x__; 161: ELSE; 162: ADD none., temp[19].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 163: IF aluresult.x___; 164: ADD temp[59].x, const[2].w___, -const[2].y___; 165: MAD temp[60].x, temp[27].y___, temp[59].x___, const[2].y___; 166: MOV temp[28].y, temp[60]._x__; 167: ELSE; 168: ADD none., temp[19].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 169: IF aluresult.x___; 170: ADD temp[61].x, const[3].y___, -const[2].w___; 171: MAD temp[62].x, temp[27].y___, temp[61].x___, const[2].w___; 172: MOV temp[28].y, temp[62]._x__; 173: ELSE; 174: ADD none., temp[19].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 175: IF aluresult.x___; 176: MAD temp[64].x, temp[27].y___, (1 - const[3]).y___, const[3].y___; 177: MOV temp[28].y, temp[64]._x__; 178: ELSE; 179: ADD none., temp[19].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 180: IF aluresult.x___; 181: ADD temp[65].x, const[4].y___, none.1-_-_-_; 182: MAD temp[66].x, temp[27].y___, temp[65].x___, none.-1___; 183: MOV temp[28].y, temp[66]._x__; 184: ELSE; 185: ADD none., temp[19].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 186: IF aluresult.x___; 187: ADD temp[67].x, const[2].w___, -const[4].y___; 188: MAD temp[68].x, temp[27].y___, temp[67].x___, const[4].y___; 189: MOV temp[28].y, temp[68]._x__; 190: ELSE; 191: ADD none., temp[19].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 192: IF aluresult.x___; 193: ADD temp[69].x, const[2].y___, -const[2].w___; 194: MAD temp[70].x, temp[27].y___, temp[69].x___, const[2].w___; 195: MOV temp[28].y, temp[70]._x__; 196: ELSE; 197: ADD none., temp[19].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 198: IF aluresult.x___; 199: MUL temp[72].x, const[2].y___, (1 - temp[27]).y___; 200: MOV temp[28].y, temp[72]._x__; 201: ELSE; 202: ADD none., temp[19].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 203: IF aluresult.x___; 204: MOV temp[28].y, none._0__; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: MOV none., temp[24].x___; [aluresult = (x == 0)] 223: IF aluresult.x___; 224: MUL temp[73].x, const[0].z___, temp[27].z___; 225: MOV temp[28].z, temp[73].__x_; 226: ELSE; 227: ADD none., temp[24].x___, -none.1___; [aluresult = (x == 0)] 228: IF aluresult.x___; 229: ADD temp[74].x, const[1].x___, -const[0].z___; 230: MAD temp[75].x, temp[27].z___, temp[74].x___, const[0].z___; 231: MOV temp[28].z, temp[75].__x_; 232: ELSE; 233: ADD none., temp[24].x___, -2.000000 (0x40).w___; [aluresult = (x == 0)] 234: IF aluresult.x___; 235: ADD temp[76].x, const[1].z___, -const[1].x___; 236: MAD temp[77].x, temp[27].z___, temp[76].x___, const[1].x___; 237: MOV temp[28].z, temp[77].__x_; 238: ELSE; 239: ADD none., temp[24].x___, -3.000000 (0x44).w___; [aluresult = (x == 0)] 240: IF aluresult.x___; 241: MAD temp[79].x, temp[27].z___, (1 - const[1]).z___, const[1].z___; 242: MOV temp[28].z, temp[79].__x_; 243: ELSE; 244: ADD none., temp[24].x___, -4.000000 (0x48).w___; [aluresult = (x == 0)] 245: IF aluresult.x___; 246: ADD temp[80].x, const[1].z___, -none.1___; 247: MAD temp[81].x, temp[27].z___, temp[80].x___, none.1___; 248: MOV temp[28].z, temp[81].__x_; 249: ELSE; 250: ADD none., temp[24].x___, -5.000000 (0x4a).w___; [aluresult = (x == 0)] 251: IF aluresult.x___; 252: ADD temp[82].x, const[1].x___, -const[1].z___; 253: MAD temp[83].x, temp[27].z___, temp[82].x___, const[1].z___; 254: MOV temp[28].z, temp[83].__x_; 255: ELSE; 256: ADD none., temp[24].x___, -6.000000 (0x4c).w___; [aluresult = (x == 0)] 257: IF aluresult.x___; 258: ADD temp[84].x, const[0].z___, -const[1].x___; 259: MAD temp[85].x, temp[27].z___, temp[84].x___, const[1].x___; 260: MOV temp[28].z, temp[85].__x_; 261: ELSE; 262: ADD none., temp[24].x___, -7.000000 (0x4e).w___; [aluresult = (x == 0)] 263: IF aluresult.x___; 264: MUL temp[87].x, const[0].z___, (1 - temp[27]).z___; 265: MOV temp[28].z, temp[87].__x_; 266: ELSE; 267: ADD none., temp[24].x___, -8.000000 (0x50).w___; [aluresult = (x == 0)] 268: IF aluresult.x___; 269: MUL temp[88].x, const[2].y___, temp[27].z___; 270: MOV temp[28].z, temp[88].__x_; 271: ELSE; 272: ADD none., temp[24].x___, -9.000000 (0x51).w___; [aluresult = (x == 0)] 273: IF aluresult.x___; 274: ADD temp[89].x, const[2].w___, -const[2].y___; 275: MAD temp[90].x, temp[27].z___, temp[89].x___, const[2].y___; 276: MOV temp[28].z, temp[90].__x_; 277: ELSE; 278: ADD none., temp[24].x___, -10.000000 (0x52).w___; [aluresult = (x == 0)] 279: IF aluresult.x___; 280: ADD temp[91].x, const[3].y___, -const[2].w___; 281: MAD temp[92].x, temp[27].z___, temp[91].x___, const[2].w___; 282: MOV temp[28].z, temp[92].__x_; 283: ELSE; 284: ADD none., temp[24].x___, -11.000000 (0x53).w___; [aluresult = (x == 0)] 285: IF aluresult.x___; 286: MAD temp[94].x, temp[27].z___, (1 - const[3]).y___, const[3].y___; 287: MOV temp[28].z, temp[94].__x_; 288: ELSE; 289: ADD none., temp[24].x___, -12.000000 (0x54).w___; [aluresult = (x == 0)] 290: IF aluresult.x___; 291: ADD temp[95].x, const[4].y___, none.1-_-_-_; 292: MAD temp[96].x, temp[27].z___, temp[95].x___, none.-1___; 293: MOV temp[28].z, temp[96].__x_; 294: ELSE; 295: ADD none., temp[24].x___, -13.000000 (0x55).w___; [aluresult = (x == 0)] 296: IF aluresult.x___; 297: ADD temp[97].x, const[2].w___, -const[4].y___; 298: MAD temp[98].x, temp[27].z___, temp[97].x___, const[4].y___; 299: MOV temp[28].z, temp[98].__x_; 300: ELSE; 301: ADD none., temp[24].x___, -14.000000 (0x56).w___; [aluresult = (x == 0)] 302: IF aluresult.x___; 303: ADD temp[99].x, const[2].y___, -const[2].w___; 304: MAD temp[100].x, temp[27].z___, temp[99].x___, const[2].w___; 305: MOV temp[28].z, temp[100].__x_; 306: ELSE; 307: ADD none., temp[24].x___, -15.000000 (0x57).w___; [aluresult = (x == 0)] 308: IF aluresult.x___; 309: MUL temp[102].x, const[2].y___, (1 - temp[27]).z___; 310: MOV temp[28].z, temp[102].__x_; 311: ELSE; 312: ADD none., temp[24].x___, -16.000000 (0x58).w___; [aluresult = (x == 0)] 313: IF aluresult.x___; 314: MOV temp[28].z, none.__0_; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: ENDIF; 326: ENDIF; 327: ENDIF; 328: ENDIF; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: MOV temp[103].w, none.___1; 333: MAD temp[103].xyz, none.HHH_, temp[28].xyz_, none.HHH_; 334: MOV output[0], temp[103]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[9].xyz, src0.www, src0.xyz, src0.000 1: src0.xyz = temp[9] FRC temp[10].x, src0.x__ 2: src0.xyz = temp[10], src1.xyz = temp[9], srcp.xyz = (src1 - src0) FRC temp[12].x, |srcp.x__| 3: src0.xyz = temp[10], src1.xyz = temp[9], src2.xyz = temp[12], srcp.xyz = (src1 - src0) MAD temp[13].x, |srcp.x__|, src0.111, -src2.x__ 4: src0.xyz = temp[10], src1.xyz = temp[9], src2.xyz = temp[13], srcp.xyz = (src1 - src0) CMP temp[14].x, src2.x__, -src2.x__, srcp.x__ 5: src0.xyz = temp[9] FRC temp[15].x, src0.y__ 6: src0.xyz = temp[9], src1.xyz = temp[15] MAD temp[16].x, src0.y__, src0.111, -src1.x__ 7: src0.xyz = temp[16] FRC temp[17].x, |src0.x__| 8: src0.xyz = temp[16], src1.xyz = temp[17] MAD temp[18].x, |src0.x__|, src0.111, -src1.x__ 9: src0.xyz = temp[18], src1.xyz = temp[16] CMP temp[19].x, src0.x__, -src0.x__, src1.x__ 10: src0.xyz = temp[9] FRC temp[20].x, src0.z__ 11: src0.xyz = temp[9], src1.xyz = temp[20] MAD temp[21].x, src0.z__, src0.111, -src1.x__ 12: src0.xyz = temp[21] FRC temp[22].x, |src0.x__| 13: src0.xyz = temp[21], src1.xyz = temp[22] MAD temp[23].x, |src0.x__|, src0.111, -src1.x__ 14: src0.xyz = temp[23], src1.xyz = temp[21] CMP temp[24].x, src0.x__, -src0.x__, src1.x__ 15: src0.xyz = temp[9] FRC temp[25].xyz, src0.xyz 16: src0.xyz = temp[25], src1.xyz = temp[9], srcp.xyz = (src1 - src0) MAD temp[27].xyz, src1.xyz, src0.111, -srcp.xyz 17: MAD temp[28].xyz, src0.000, src0.111, src0.000 18: src0.xyz = temp[14] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 19: IF aluresult.x___; 20: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[28].x, src0.z__, src1.x__, src0.000 21: ELSE; 22: src0.xyz = temp[14] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 23: IF aluresult.x___; 24: src0.xyz = const[1], src1.xyz = const[0] MAD temp[29].x, src0.x__, src0.111, -src1.z__ 25: src0.xyz = temp[27], src1.xyz = temp[29], src2.xyz = const[0] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 26: ELSE; 27: src0.xyz = temp[14], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 28: IF aluresult.x___; 29: src0.xyz = const[1] MAD temp[30].x, src0.z__, src0.111, -src0.x__ 30: src0.xyz = temp[27], src1.xyz = temp[30], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 31: ELSE; 32: src0.xyz = temp[14], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 33: IF aluresult.x___; 34: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.z__, src0.z__ 35: ELSE; 36: src0.xyz = temp[14], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 37: IF aluresult.x___; 38: src0.xyz = const[1] MAD temp[32].x, src0.z__, src0.111, -src0.1__ 39: src0.xyz = temp[27], src1.xyz = temp[32] MAD temp[28].x, src0.x__, src1.x__, src0.1__ 40: ELSE; 41: src0.xyz = temp[14], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 42: IF aluresult.x___; 43: src0.xyz = const[1] MAD temp[33].x, src0.x__, src0.111, -src0.z__ 44: src0.xyz = temp[27], src1.xyz = temp[33], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 45: ELSE; 46: src0.xyz = temp[14], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 47: IF aluresult.x___; 48: src0.xyz = const[0], src1.xyz = const[1] MAD temp[34].x, src0.z__, src0.111, -src1.x__ 49: src0.xyz = temp[27], src1.xyz = temp[34], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 50: ELSE; 51: src0.xyz = temp[14], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 52: IF aluresult.x___; 53: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[28].x, src1.z__, srcp.x__, src0.000 54: ELSE; 55: src0.xyz = temp[14], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 56: IF aluresult.x___; 57: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[28].x, src0.y__, src1.x__, src0.000 58: ELSE; 59: src0.xyz = temp[14], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 60: IF aluresult.x___; 61: src0.xyz = const[2], src0.w = const[2] MAD temp[36].x, src0.w__, src0.111, -src0.y__ 62: src0.xyz = temp[27], src1.xyz = temp[36], src2.xyz = const[2] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 63: ELSE; 64: src0.xyz = temp[14], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 65: IF aluresult.x___; 66: src0.xyz = const[3], src0.w = const[2] MAD temp[37].x, src0.y__, src0.111, -src0.w__ 67: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[37] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 68: ELSE; 69: src0.xyz = temp[14], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 70: IF aluresult.x___; 71: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.y__, src0.y__ 72: ELSE; 73: src0.xyz = temp[14], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 74: IF aluresult.x___; 75: src0.xyz = const[4] MAD temp[39].x, src0.y__, src0.111, src0.1__ 76: src0.xyz = temp[27], src1.xyz = temp[39] MAD temp[28].x, src0.x__, src1.x__, -src0.1__ 77: ELSE; 78: src0.xyz = temp[14], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 79: IF aluresult.x___; 80: src0.xyz = const[4], src0.w = const[2] MAD temp[40].x, src0.w__, src0.111, -src0.y__ 81: src0.xyz = temp[27], src1.xyz = temp[40], src2.xyz = const[4] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 82: ELSE; 83: src0.xyz = temp[14], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 84: IF aluresult.x___; 85: src0.xyz = const[2], src0.w = const[2] MAD temp[41].x, src0.y__, src0.111, -src0.w__ 86: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[41] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 87: ELSE; 88: src0.xyz = temp[14], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 89: IF aluresult.x___; 90: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[28].x, src1.y__, srcp.x__, src0.000 91: ELSE; 92: src0.xyz = temp[14], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 93: IF aluresult.x___; 94: MAD temp[28].x, src0.0__, src0.111, src0.000 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: ENDIF; 106: ENDIF; 107: ENDIF; 108: ENDIF; 109: ENDIF; 110: ENDIF; 111: ENDIF; 112: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 113: IF aluresult.x___; 114: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[43].x, src0.z__, src1.y__, src0.000 115: src0.xyz = temp[43] MAD temp[28].y, src0._x_, src0.111, src0.000 116: ELSE; 117: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 118: IF aluresult.x___; 119: src0.xyz = const[1], src1.xyz = const[0] MAD temp[44].x, src0.x__, src0.111, -src1.z__ 120: src0.xyz = temp[27], src1.xyz = temp[44], src2.xyz = const[0] MAD temp[45].x, src0.y__, src1.x__, src2.z__ 121: src0.xyz = temp[45] MAD temp[28].y, src0._x_, src0.111, src0.000 122: ELSE; 123: src0.xyz = temp[19], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 124: IF aluresult.x___; 125: src0.xyz = const[1] MAD temp[46].x, src0.z__, src0.111, -src0.x__ 126: src0.xyz = temp[27], src1.xyz = temp[46], src2.xyz = const[1] MAD temp[47].x, src0.y__, src1.x__, src2.x__ 127: src0.xyz = temp[47] MAD temp[28].y, src0._x_, src0.111, src0.000 128: ELSE; 129: src0.xyz = temp[19], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 130: IF aluresult.x___; 131: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[49].x, src1.y__, srcp.z__, src0.z__ 132: src0.xyz = temp[49] MAD temp[28].y, src0._x_, src0.111, src0.000 133: ELSE; 134: src0.xyz = temp[19], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 135: IF aluresult.x___; 136: src0.xyz = const[1] MAD temp[50].x, src0.z__, src0.111, -src0.1__ 137: src0.xyz = temp[27], src1.xyz = temp[50] MAD temp[51].x, src0.y__, src1.x__, src0.1__ 138: src0.xyz = temp[51] MAD temp[28].y, src0._x_, src0.111, src0.000 139: ELSE; 140: src0.xyz = temp[19], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 141: IF aluresult.x___; 142: src0.xyz = const[1] MAD temp[52].x, src0.x__, src0.111, -src0.z__ 143: src0.xyz = temp[27], src1.xyz = temp[52], src2.xyz = const[1] MAD temp[53].x, src0.y__, src1.x__, src2.z__ 144: src0.xyz = temp[53] MAD temp[28].y, src0._x_, src0.111, src0.000 145: ELSE; 146: src0.xyz = temp[19], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 147: IF aluresult.x___; 148: src0.xyz = const[0], src1.xyz = const[1] MAD temp[54].x, src0.z__, src0.111, -src1.x__ 149: src0.xyz = temp[27], src1.xyz = temp[54], src2.xyz = const[1] MAD temp[55].x, src0.y__, src1.x__, src2.x__ 150: src0.xyz = temp[55] MAD temp[28].y, src0._x_, src0.111, src0.000 151: ELSE; 152: src0.xyz = temp[19], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 153: IF aluresult.x___; 154: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[57].x, src1.z__, srcp.y__, src0.000 155: src0.xyz = temp[57] MAD temp[28].y, src0._x_, src0.111, src0.000 156: ELSE; 157: src0.xyz = temp[19], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 158: IF aluresult.x___; 159: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[58].x, src0.y__, src1.y__, src0.000 160: src0.xyz = temp[58] MAD temp[28].y, src0._x_, src0.111, src0.000 161: ELSE; 162: src0.xyz = temp[19], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 163: IF aluresult.x___; 164: src0.xyz = const[2], src0.w = const[2] MAD temp[59].x, src0.w__, src0.111, -src0.y__ 165: src0.xyz = temp[27], src1.xyz = temp[59], src2.xyz = const[2] MAD temp[60].x, src0.y__, src1.x__, src2.y__ 166: src0.xyz = temp[60] MAD temp[28].y, src0._x_, src0.111, src0.000 167: ELSE; 168: src0.xyz = temp[19], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 169: IF aluresult.x___; 170: src0.xyz = const[3], src0.w = const[2] MAD temp[61].x, src0.y__, src0.111, -src0.w__ 171: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[61] MAD temp[62].x, src0.y__, src1.x__, src0.w__ 172: src0.xyz = temp[62] MAD temp[28].y, src0._x_, src0.111, src0.000 173: ELSE; 174: src0.xyz = temp[19], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 175: IF aluresult.x___; 176: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[64].x, src1.y__, srcp.y__, src0.y__ 177: src0.xyz = temp[64] MAD temp[28].y, src0._x_, src0.111, src0.000 178: ELSE; 179: src0.xyz = temp[19], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 180: IF aluresult.x___; 181: src0.xyz = const[4] MAD temp[65].x, src0.y__, src0.111, src0.1__ 182: src0.xyz = temp[27], src1.xyz = temp[65] MAD temp[66].x, src0.y__, src1.x__, -src0.1__ 183: src0.xyz = temp[66] MAD temp[28].y, src0._x_, src0.111, src0.000 184: ELSE; 185: src0.xyz = temp[19], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 186: IF aluresult.x___; 187: src0.xyz = const[4], src0.w = const[2] MAD temp[67].x, src0.w__, src0.111, -src0.y__ 188: src0.xyz = temp[27], src1.xyz = temp[67], src2.xyz = const[4] MAD temp[68].x, src0.y__, src1.x__, src2.y__ 189: src0.xyz = temp[68] MAD temp[28].y, src0._x_, src0.111, src0.000 190: ELSE; 191: src0.xyz = temp[19], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 192: IF aluresult.x___; 193: src0.xyz = const[2], src0.w = const[2] MAD temp[69].x, src0.y__, src0.111, -src0.w__ 194: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[69] MAD temp[70].x, src0.y__, src1.x__, src0.w__ 195: src0.xyz = temp[70] MAD temp[28].y, src0._x_, src0.111, src0.000 196: ELSE; 197: src0.xyz = temp[19], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 198: IF aluresult.x___; 199: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[72].x, src1.y__, srcp.y__, src0.000 200: src0.xyz = temp[72] MAD temp[28].y, src0._x_, src0.111, src0.000 201: ELSE; 202: src0.xyz = temp[19], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 203: IF aluresult.x___; 204: MAD temp[28].y, src0._0_, src0.111, src0.000 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: ENDIF; 216: ENDIF; 217: ENDIF; 218: ENDIF; 219: ENDIF; 220: ENDIF; 221: ENDIF; 222: src0.xyz = temp[24] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 223: IF aluresult.x___; 224: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[73].x, src0.z__, src1.z__, src0.000 225: src0.xyz = temp[73] MAD temp[28].z, src0.__x, src0.111, src0.000 226: ELSE; 227: src0.xyz = temp[24] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 228: IF aluresult.x___; 229: src0.xyz = const[1], src1.xyz = const[0] MAD temp[74].x, src0.x__, src0.111, -src1.z__ 230: src0.xyz = temp[27], src1.xyz = temp[74], src2.xyz = const[0] MAD temp[75].x, src0.z__, src1.x__, src2.z__ 231: src0.xyz = temp[75] MAD temp[28].z, src0.__x, src0.111, src0.000 232: ELSE; 233: src0.xyz = temp[24], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 234: IF aluresult.x___; 235: src0.xyz = const[1] MAD temp[76].x, src0.z__, src0.111, -src0.x__ 236: src0.xyz = temp[27], src1.xyz = temp[76], src2.xyz = const[1] MAD temp[77].x, src0.z__, src1.x__, src2.x__ 237: src0.xyz = temp[77] MAD temp[28].z, src0.__x, src0.111, src0.000 238: ELSE; 239: src0.xyz = temp[24], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 240: IF aluresult.x___; 241: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[79].x, src1.z__, srcp.z__, src0.z__ 242: src0.xyz = temp[79] MAD temp[28].z, src0.__x, src0.111, src0.000 243: ELSE; 244: src0.xyz = temp[24], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 245: IF aluresult.x___; 246: src0.xyz = const[1] MAD temp[80].x, src0.z__, src0.111, -src0.1__ 247: src0.xyz = temp[27], src1.xyz = temp[80] MAD temp[81].x, src0.z__, src1.x__, src0.1__ 248: src0.xyz = temp[81] MAD temp[28].z, src0.__x, src0.111, src0.000 249: ELSE; 250: src0.xyz = temp[24], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 251: IF aluresult.x___; 252: src0.xyz = const[1] MAD temp[82].x, src0.x__, src0.111, -src0.z__ 253: src0.xyz = temp[27], src1.xyz = temp[82], src2.xyz = const[1] MAD temp[83].x, src0.z__, src1.x__, src2.z__ 254: src0.xyz = temp[83] MAD temp[28].z, src0.__x, src0.111, src0.000 255: ELSE; 256: src0.xyz = temp[24], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 257: IF aluresult.x___; 258: src0.xyz = const[0], src1.xyz = const[1] MAD temp[84].x, src0.z__, src0.111, -src1.x__ 259: src0.xyz = temp[27], src1.xyz = temp[84], src2.xyz = const[1] MAD temp[85].x, src0.z__, src1.x__, src2.x__ 260: src0.xyz = temp[85] MAD temp[28].z, src0.__x, src0.111, src0.000 261: ELSE; 262: src0.xyz = temp[24], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 263: IF aluresult.x___; 264: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[87].x, src1.z__, srcp.z__, src0.000 265: src0.xyz = temp[87] MAD temp[28].z, src0.__x, src0.111, src0.000 266: ELSE; 267: src0.xyz = temp[24], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 268: IF aluresult.x___; 269: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[88].x, src0.y__, src1.z__, src0.000 270: src0.xyz = temp[88] MAD temp[28].z, src0.__x, src0.111, src0.000 271: ELSE; 272: src0.xyz = temp[24], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 273: IF aluresult.x___; 274: src0.xyz = const[2], src0.w = const[2] MAD temp[89].x, src0.w__, src0.111, -src0.y__ 275: src0.xyz = temp[27], src1.xyz = temp[89], src2.xyz = const[2] MAD temp[90].x, src0.z__, src1.x__, src2.y__ 276: src0.xyz = temp[90] MAD temp[28].z, src0.__x, src0.111, src0.000 277: ELSE; 278: src0.xyz = temp[24], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 279: IF aluresult.x___; 280: src0.xyz = const[3], src0.w = const[2] MAD temp[91].x, src0.y__, src0.111, -src0.w__ 281: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[91] MAD temp[92].x, src0.z__, src1.x__, src0.w__ 282: src0.xyz = temp[92] MAD temp[28].z, src0.__x, src0.111, src0.000 283: ELSE; 284: src0.xyz = temp[24], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 285: IF aluresult.x___; 286: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[94].x, src1.z__, srcp.y__, src0.y__ 287: src0.xyz = temp[94] MAD temp[28].z, src0.__x, src0.111, src0.000 288: ELSE; 289: src0.xyz = temp[24], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 290: IF aluresult.x___; 291: src0.xyz = const[4] MAD temp[95].x, src0.y__, src0.111, src0.1__ 292: src0.xyz = temp[27], src1.xyz = temp[95] MAD temp[96].x, src0.z__, src1.x__, -src0.1__ 293: src0.xyz = temp[96] MAD temp[28].z, src0.__x, src0.111, src0.000 294: ELSE; 295: src0.xyz = temp[24], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 296: IF aluresult.x___; 297: src0.xyz = const[4], src0.w = const[2] MAD temp[97].x, src0.w__, src0.111, -src0.y__ 298: src0.xyz = temp[27], src1.xyz = temp[97], src2.xyz = const[4] MAD temp[98].x, src0.z__, src1.x__, src2.y__ 299: src0.xyz = temp[98] MAD temp[28].z, src0.__x, src0.111, src0.000 300: ELSE; 301: src0.xyz = temp[24], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 302: IF aluresult.x___; 303: src0.xyz = const[2], src0.w = const[2] MAD temp[99].x, src0.y__, src0.111, -src0.w__ 304: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[99] MAD temp[100].x, src0.z__, src1.x__, src0.w__ 305: src0.xyz = temp[100] MAD temp[28].z, src0.__x, src0.111, src0.000 306: ELSE; 307: src0.xyz = temp[24], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 308: IF aluresult.x___; 309: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[102].x, src1.y__, srcp.z__, src0.000 310: src0.xyz = temp[102] MAD temp[28].z, src0.__x, src0.111, src0.000 311: ELSE; 312: src0.xyz = temp[24], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 313: IF aluresult.x___; 314: MAD temp[28].z, src0.__0, src0.111, src0.000 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: ENDIF; 326: ENDIF; 327: ENDIF; 328: ENDIF; 329: ENDIF; 330: ENDIF; 331: ENDIF; 332: MAD temp[103].w, src0.1, src0.1, src0.0 333: src0.xyz = temp[28] MAD temp[103].xyz, src0.HHH, src0.xyz, src0.HHH 334: src0.xyz = temp[103], src0.w = temp[103] 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 = 16.000000 (0x58) MAD temp[9].xyz, src0.www, src0.xyz, src0.000 1: src0.xyz = temp[9] FRC temp[10].x, src0.x__ FRC temp[20].w, src0.z 2: src0.xyz = temp[10], src1.xyz = temp[9], srcp.xyz = (src1 - src0) FRC temp[25].xyz, src1.xyz FRC temp[12].w, |srcp.x| 3: src0.xyz = temp[25], src0.w = temp[20], src1.xyz = temp[9], srcp.xyz = (src1 - src0) MAD temp[27].xyz, src1.xyz, src0.111, -srcp.xyz MAD temp[21].w, src1.z, src0.1, -src0.w 4: src0.xyz = temp[10], src0.w = temp[21], src1.xyz = temp[9], src1.w = temp[12], src2.xyz = temp[21], srcp.xyz = (src1 - src0) FRC temp[22].x, |src0.w__| MAD temp[13].w, |srcp.x|, src0.1, -src1.w 5: src0.xyz = temp[10], src0.w = temp[13], src1.xyz = temp[9], src2.xyz = temp[13], srcp.xyz = (src1 - src0) CMP temp[14].x, src0.w__, -src0.w__, srcp.x__ 6: src0.xyz = temp[14], src0.w = temp[21], src1.xyz = temp[22] MAD aluresult, src0.x__, src0.111, src0.000 MAD temp[23].w, |src0.w|, src0.1, -src1.x [aluresult = (result == 0)] 7: src0.xyz = temp[9] MAD temp[28].xyz, src0.000, src0.111, src0.000 FRC temp[15].w, src0.y 8: src0.xyz = temp[9], src0.w = temp[15], src1.xyz = temp[15], src1.w = temp[23], src2.w = temp[21] MAD temp[16].x, src0.y__, src0.111, -src0.w__ CMP temp[24].w, src1.w, -src1.w, src2.w 9: src0.xyz = temp[16] FRC temp[17].x, |src0.x__| 10: src0.xyz = temp[16], src1.xyz = temp[17] MAD temp[18].x, |src0.x__|, src0.111, -src1.x__ 11: src0.xyz = temp[18], src1.xyz = temp[16] CMP temp[19].x, src0.x__, -src0.x__, src1.x__ 12: IF aluresult.x___; 13: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[28].x, src0.z__, src1.x__, src0.000 14: ELSE; 15: src0.xyz = temp[14] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 16: IF aluresult.x___; 17: src0.xyz = const[1], src1.xyz = const[0] MAD temp[29].x, src0.x__, src0.111, -src1.z__ 18: src0.xyz = temp[27], src1.xyz = temp[29], src2.xyz = const[0] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 19: ELSE; 20: src0.xyz = temp[14], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 21: IF aluresult.x___; 22: src0.xyz = const[1] MAD temp[30].x, src0.z__, src0.111, -src0.x__ 23: src0.xyz = temp[27], src1.xyz = temp[30], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 24: ELSE; 25: src0.xyz = temp[14], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.z__, src0.z__ 28: ELSE; 29: src0.xyz = temp[14], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 30: IF aluresult.x___; 31: src0.xyz = const[1] MAD temp[32].x, src0.z__, src0.111, -src0.1__ 32: src0.xyz = temp[27], src1.xyz = temp[32] MAD temp[28].x, src0.x__, src1.x__, src0.1__ 33: ELSE; 34: src0.xyz = temp[14], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 35: IF aluresult.x___; 36: src0.xyz = const[1] MAD temp[33].x, src0.x__, src0.111, -src0.z__ 37: src0.xyz = temp[27], src1.xyz = temp[33], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 38: ELSE; 39: src0.xyz = temp[14], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 40: IF aluresult.x___; 41: src0.xyz = const[0], src1.xyz = const[1] MAD temp[34].x, src0.z__, src0.111, -src1.x__ 42: src0.xyz = temp[27], src1.xyz = temp[34], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 43: ELSE; 44: src0.xyz = temp[14], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[28].x, src1.z__, srcp.x__, src0.000 47: ELSE; 48: src0.xyz = temp[14], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[28].x, src0.y__, src1.x__, src0.000 51: ELSE; 52: src0.xyz = temp[14], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 53: IF aluresult.x___; 54: src0.xyz = const[2], src0.w = const[2] MAD temp[36].x, src0.w__, src0.111, -src0.y__ 55: src0.xyz = temp[27], src1.xyz = temp[36], src2.xyz = const[2] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 56: ELSE; 57: src0.xyz = temp[14], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 58: IF aluresult.x___; 59: src0.xyz = const[3], src0.w = const[2] MAD temp[37].x, src0.y__, src0.111, -src0.w__ 60: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[37] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 61: ELSE; 62: src0.xyz = temp[14], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.y__, src0.y__ 65: ELSE; 66: src0.xyz = temp[14], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 67: IF aluresult.x___; 68: src0.xyz = const[4] MAD temp[39].x, src0.y__, src0.111, src0.1__ 69: src0.xyz = temp[27], src1.xyz = temp[39] MAD temp[28].x, src0.x__, src1.x__, -src0.1__ 70: ELSE; 71: src0.xyz = temp[14], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 72: IF aluresult.x___; 73: src0.xyz = const[4], src0.w = const[2] MAD temp[40].x, src0.w__, src0.111, -src0.y__ 74: src0.xyz = temp[27], src1.xyz = temp[40], src2.xyz = const[4] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 75: ELSE; 76: src0.xyz = temp[14], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 77: IF aluresult.x___; 78: src0.xyz = const[2], src0.w = const[2] MAD temp[41].x, src0.y__, src0.111, -src0.w__ 79: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[41] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 80: ELSE; 81: src0.xyz = temp[14], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[28].x, src1.y__, srcp.x__, src0.000 84: ELSE; 85: src0.xyz = temp[14], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 86: IF aluresult.x___; 87: MAD temp[28].x, src0.0__, src0.111, src0.000 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 106: IF aluresult.x___; 107: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[43].x, src0.z__, src1.y__, src0.000 108: src0.xyz = temp[43] MAD temp[28].y, src0._x_, src0.111, src0.000 109: ELSE; 110: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 111: IF aluresult.x___; 112: src0.xyz = const[1], src1.xyz = const[0] MAD temp[44].x, src0.x__, src0.111, -src1.z__ 113: src0.xyz = temp[27], src1.xyz = temp[44], src2.xyz = const[0] MAD temp[45].x, src0.y__, src1.x__, src2.z__ 114: src0.xyz = temp[45] MAD temp[28].y, src0._x_, src0.111, src0.000 115: ELSE; 116: src0.xyz = temp[19], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 117: IF aluresult.x___; 118: src0.xyz = const[1] MAD temp[46].x, src0.z__, src0.111, -src0.x__ 119: src0.xyz = temp[27], src1.xyz = temp[46], src2.xyz = const[1] MAD temp[47].x, src0.y__, src1.x__, src2.x__ 120: src0.xyz = temp[47] MAD temp[28].y, src0._x_, src0.111, src0.000 121: ELSE; 122: src0.xyz = temp[19], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 123: IF aluresult.x___; 124: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[49].x, src1.y__, srcp.z__, src0.z__ 125: src0.xyz = temp[49] MAD temp[28].y, src0._x_, src0.111, src0.000 126: ELSE; 127: src0.xyz = temp[19], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 128: IF aluresult.x___; 129: src0.xyz = const[1] MAD temp[50].x, src0.z__, src0.111, -src0.1__ 130: src0.xyz = temp[27], src1.xyz = temp[50] MAD temp[51].x, src0.y__, src1.x__, src0.1__ 131: src0.xyz = temp[51] MAD temp[28].y, src0._x_, src0.111, src0.000 132: ELSE; 133: src0.xyz = temp[19], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 134: IF aluresult.x___; 135: src0.xyz = const[1] MAD temp[52].x, src0.x__, src0.111, -src0.z__ 136: src0.xyz = temp[27], src1.xyz = temp[52], src2.xyz = const[1] MAD temp[53].x, src0.y__, src1.x__, src2.z__ 137: src0.xyz = temp[53] MAD temp[28].y, src0._x_, src0.111, src0.000 138: ELSE; 139: src0.xyz = temp[19], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 140: IF aluresult.x___; 141: src0.xyz = const[0], src1.xyz = const[1] MAD temp[54].x, src0.z__, src0.111, -src1.x__ 142: src0.xyz = temp[27], src1.xyz = temp[54], src2.xyz = const[1] MAD temp[55].x, src0.y__, src1.x__, src2.x__ 143: src0.xyz = temp[55] MAD temp[28].y, src0._x_, src0.111, src0.000 144: ELSE; 145: src0.xyz = temp[19], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 146: IF aluresult.x___; 147: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[57].x, src1.z__, srcp.y__, src0.000 148: src0.xyz = temp[57] MAD temp[28].y, src0._x_, src0.111, src0.000 149: ELSE; 150: src0.xyz = temp[19], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 151: IF aluresult.x___; 152: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[58].x, src0.y__, src1.y__, src0.000 153: src0.xyz = temp[58] MAD temp[28].y, src0._x_, src0.111, src0.000 154: ELSE; 155: src0.xyz = temp[19], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 156: IF aluresult.x___; 157: src0.xyz = const[2], src0.w = const[2] MAD temp[59].x, src0.w__, src0.111, -src0.y__ 158: src0.xyz = temp[27], src1.xyz = temp[59], src2.xyz = const[2] MAD temp[60].x, src0.y__, src1.x__, src2.y__ 159: src0.xyz = temp[60] MAD temp[28].y, src0._x_, src0.111, src0.000 160: ELSE; 161: src0.xyz = temp[19], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 162: IF aluresult.x___; 163: src0.xyz = const[3], src0.w = const[2] MAD temp[61].x, src0.y__, src0.111, -src0.w__ 164: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[61] MAD temp[62].x, src0.y__, src1.x__, src0.w__ 165: src0.xyz = temp[62] MAD temp[28].y, src0._x_, src0.111, src0.000 166: ELSE; 167: src0.xyz = temp[19], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 168: IF aluresult.x___; 169: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[64].x, src1.y__, srcp.y__, src0.y__ 170: src0.xyz = temp[64] MAD temp[28].y, src0._x_, src0.111, src0.000 171: ELSE; 172: src0.xyz = temp[19], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 173: IF aluresult.x___; 174: src0.xyz = const[4] MAD temp[65].x, src0.y__, src0.111, src0.1__ 175: src0.xyz = temp[27], src1.xyz = temp[65] MAD temp[66].x, src0.y__, src1.x__, -src0.1__ 176: src0.xyz = temp[66] MAD temp[28].y, src0._x_, src0.111, src0.000 177: ELSE; 178: src0.xyz = temp[19], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 179: IF aluresult.x___; 180: src0.xyz = const[4], src0.w = const[2] MAD temp[67].x, src0.w__, src0.111, -src0.y__ 181: src0.xyz = temp[27], src1.xyz = temp[67], src2.xyz = const[4] MAD temp[68].x, src0.y__, src1.x__, src2.y__ 182: src0.xyz = temp[68] MAD temp[28].y, src0._x_, src0.111, src0.000 183: ELSE; 184: src0.xyz = temp[19], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 185: IF aluresult.x___; 186: src0.xyz = const[2], src0.w = const[2] MAD temp[69].x, src0.y__, src0.111, -src0.w__ 187: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[69] MAD temp[70].x, src0.y__, src1.x__, src0.w__ 188: src0.xyz = temp[70] MAD temp[28].y, src0._x_, src0.111, src0.000 189: ELSE; 190: src0.xyz = temp[19], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 191: IF aluresult.x___; 192: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[72].x, src1.y__, srcp.y__, src0.000 193: src0.xyz = temp[72] MAD temp[28].y, src0._x_, src0.111, src0.000 194: ELSE; 195: src0.xyz = temp[19], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 196: IF aluresult.x___; 197: MAD temp[28].y, src0._0_, src0.111, src0.000 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: src0.xyz = temp[24], src0.w = temp[24] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 216: IF aluresult.x___; 217: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[73].x, src0.z__, src1.z__, src0.000 218: src0.xyz = temp[73] MAD temp[28].z, src0.__x, src0.111, src0.000 219: ELSE; 220: src0.xyz = temp[24], src0.w = temp[24] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 221: IF aluresult.x___; 222: src0.xyz = const[1], src1.xyz = const[0] MAD temp[74].x, src0.x__, src0.111, -src1.z__ 223: src0.xyz = temp[27], src1.xyz = temp[74], src2.xyz = const[0] MAD temp[75].x, src0.z__, src1.x__, src2.z__ 224: src0.xyz = temp[75] MAD temp[28].z, src0.__x, src0.111, src0.000 225: ELSE; 226: src0.xyz = temp[24], src0.w = 2.000000 (0x40), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 227: IF aluresult.x___; 228: src0.xyz = const[1] MAD temp[76].x, src0.z__, src0.111, -src0.x__ 229: src0.xyz = temp[27], src1.xyz = temp[76], src2.xyz = const[1] MAD temp[77].x, src0.z__, src1.x__, src2.x__ 230: src0.xyz = temp[77] MAD temp[28].z, src0.__x, src0.111, src0.000 231: ELSE; 232: src0.xyz = temp[24], src0.w = 3.000000 (0x44), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 233: IF aluresult.x___; 234: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[79].x, src1.z__, srcp.z__, src0.z__ 235: src0.xyz = temp[79] MAD temp[28].z, src0.__x, src0.111, src0.000 236: ELSE; 237: src0.xyz = temp[24], src0.w = 4.000000 (0x48), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 238: IF aluresult.x___; 239: src0.xyz = const[1] MAD temp[80].x, src0.z__, src0.111, -src0.1__ 240: src0.xyz = temp[27], src1.xyz = temp[80] MAD temp[81].x, src0.z__, src1.x__, src0.1__ 241: src0.xyz = temp[81] MAD temp[28].z, src0.__x, src0.111, src0.000 242: ELSE; 243: src0.xyz = temp[24], src0.w = 5.000000 (0x4a), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 244: IF aluresult.x___; 245: src0.xyz = const[1] MAD temp[82].x, src0.x__, src0.111, -src0.z__ 246: src0.xyz = temp[27], src1.xyz = temp[82], src2.xyz = const[1] MAD temp[83].x, src0.z__, src1.x__, src2.z__ 247: src0.xyz = temp[83] MAD temp[28].z, src0.__x, src0.111, src0.000 248: ELSE; 249: src0.xyz = temp[24], src0.w = 6.000000 (0x4c), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 250: IF aluresult.x___; 251: src0.xyz = const[0], src1.xyz = const[1] MAD temp[84].x, src0.z__, src0.111, -src1.x__ 252: src0.xyz = temp[27], src1.xyz = temp[84], src2.xyz = const[1] MAD temp[85].x, src0.z__, src1.x__, src2.x__ 253: src0.xyz = temp[85] MAD temp[28].z, src0.__x, src0.111, src0.000 254: ELSE; 255: src0.xyz = temp[24], src0.w = 7.000000 (0x4e), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 256: IF aluresult.x___; 257: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[87].x, src1.z__, srcp.z__, src0.000 258: src0.xyz = temp[87] MAD temp[28].z, src0.__x, src0.111, src0.000 259: ELSE; 260: src0.xyz = temp[24], src0.w = 8.000000 (0x50), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 261: IF aluresult.x___; 262: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[88].x, src0.y__, src1.z__, src0.000 263: src0.xyz = temp[88] MAD temp[28].z, src0.__x, src0.111, src0.000 264: ELSE; 265: src0.xyz = temp[24], src0.w = 9.000000 (0x51), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 266: IF aluresult.x___; 267: src0.xyz = const[2], src0.w = const[2] MAD temp[89].x, src0.w__, src0.111, -src0.y__ 268: src0.xyz = temp[27], src1.xyz = temp[89], src2.xyz = const[2] MAD temp[90].x, src0.z__, src1.x__, src2.y__ 269: src0.xyz = temp[90] MAD temp[28].z, src0.__x, src0.111, src0.000 270: ELSE; 271: src0.xyz = temp[24], src0.w = 10.000000 (0x52), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 272: IF aluresult.x___; 273: src0.xyz = const[3], src0.w = const[2] MAD temp[91].x, src0.y__, src0.111, -src0.w__ 274: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[91] MAD temp[92].x, src0.z__, src1.x__, src0.w__ 275: src0.xyz = temp[92] MAD temp[28].z, src0.__x, src0.111, src0.000 276: ELSE; 277: src0.xyz = temp[24], src0.w = 11.000000 (0x53), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 278: IF aluresult.x___; 279: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[94].x, src1.z__, srcp.y__, src0.y__ 280: src0.xyz = temp[94] MAD temp[28].z, src0.__x, src0.111, src0.000 281: ELSE; 282: src0.xyz = temp[24], src0.w = 12.000000 (0x54), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 283: IF aluresult.x___; 284: src0.xyz = const[4] MAD temp[95].x, src0.y__, src0.111, src0.1__ 285: src0.xyz = temp[27], src1.xyz = temp[95] MAD temp[96].x, src0.z__, src1.x__, -src0.1__ 286: src0.xyz = temp[96] MAD temp[28].z, src0.__x, src0.111, src0.000 287: ELSE; 288: src0.xyz = temp[24], src0.w = 13.000000 (0x55), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 289: IF aluresult.x___; 290: src0.xyz = const[4], src0.w = const[2] MAD temp[97].x, src0.w__, src0.111, -src0.y__ 291: src0.xyz = temp[27], src1.xyz = temp[97], src2.xyz = const[4] MAD temp[98].x, src0.z__, src1.x__, src2.y__ 292: src0.xyz = temp[98] MAD temp[28].z, src0.__x, src0.111, src0.000 293: ELSE; 294: src0.xyz = temp[24], src0.w = 14.000000 (0x56), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 295: IF aluresult.x___; 296: src0.xyz = const[2], src0.w = const[2] MAD temp[99].x, src0.y__, src0.111, -src0.w__ 297: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[99] MAD temp[100].x, src0.z__, src1.x__, src0.w__ 298: src0.xyz = temp[100] MAD temp[28].z, src0.__x, src0.111, src0.000 299: ELSE; 300: src0.xyz = temp[24], src0.w = 15.000000 (0x57), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 301: IF aluresult.x___; 302: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[102].x, src1.y__, srcp.z__, src0.000 303: src0.xyz = temp[102] MAD temp[28].z, src0.__x, src0.111, src0.000 304: ELSE; 305: src0.xyz = temp[24], src0.w = 16.000000 (0x58), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 306: IF aluresult.x___; 307: MAD temp[28].z, src0.__0, src0.111, src0.000 308: ENDIF; 309: ENDIF; 310: ENDIF; 311: ENDIF; 312: ENDIF; 313: ENDIF; 314: ENDIF; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: src0.xyz = temp[28] MAD temp[103].xyz, src0.HHH, src0.xyz, src0.HHH MAD temp[103].w, src0.1, src0.1, src0.0 326: src0.xyz = temp[103], src0.w = temp[103] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after 'dead sources' # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = 16.000000 (0x58) MAD temp[9].xyz, src0.www, src0.xyz, src0.000 1: src0.xyz = temp[9] FRC temp[10].x, src0.x__ FRC temp[20].w, src0.z 2: src0.xyz = temp[10], src1.xyz = temp[9], srcp.xyz = (src1 - src0) FRC temp[25].xyz, src1.xyz FRC temp[12].w, |srcp.x| 3: src0.xyz = temp[25], src0.w = temp[20], src1.xyz = temp[9], srcp.xyz = (src1 - src0) MAD temp[27].xyz, src1.xyz, src0.111, -srcp.xyz MAD temp[21].w, src1.z, src0.1, -src0.w 4: src0.xyz = temp[10], src0.w = temp[21], src1.xyz = temp[9], src1.w = temp[12], srcp.xyz = (src1 - src0) FRC temp[22].x, |src0.w__| MAD temp[13].w, |srcp.x|, src0.1, -src1.w 5: src0.xyz = temp[10], src0.w = temp[13], src1.xyz = temp[9], srcp.xyz = (src1 - src0) CMP temp[14].x, src0.w__, -src0.w__, srcp.x__ 6: src0.xyz = temp[14], src0.w = temp[21], src1.xyz = temp[22] MAD aluresult, src0.x__, src0.111, src0.000 MAD temp[23].w, |src0.w|, src0.1, -src1.x [aluresult = (result == 0)] 7: src0.xyz = temp[9] MAD temp[28].xyz, src0.000, src0.111, src0.000 FRC temp[15].w, src0.y 8: src0.xyz = temp[9], src0.w = temp[15], src1.w = temp[23], src2.w = temp[21] MAD temp[16].x, src0.y__, src0.111, -src0.w__ CMP temp[24].w, src1.w, -src1.w, src2.w 9: src0.xyz = temp[16] FRC temp[17].x, |src0.x__| 10: src0.xyz = temp[16], src1.xyz = temp[17] MAD temp[18].x, |src0.x__|, src0.111, -src1.x__ 11: src0.xyz = temp[18], src1.xyz = temp[16] CMP temp[19].x, src0.x__, -src0.x__, src1.x__ 12: IF aluresult.x___; 13: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[28].x, src0.z__, src1.x__, src0.000 14: ELSE; 15: src0.xyz = temp[14] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 16: IF aluresult.x___; 17: src0.xyz = const[1], src1.xyz = const[0] MAD temp[29].x, src0.x__, src0.111, -src1.z__ 18: src0.xyz = temp[27], src1.xyz = temp[29], src2.xyz = const[0] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 19: ELSE; 20: src0.xyz = temp[14], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 21: IF aluresult.x___; 22: src0.xyz = const[1] MAD temp[30].x, src0.z__, src0.111, -src0.x__ 23: src0.xyz = temp[27], src1.xyz = temp[30], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 24: ELSE; 25: src0.xyz = temp[14], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.z__, src0.z__ 28: ELSE; 29: src0.xyz = temp[14], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 30: IF aluresult.x___; 31: src0.xyz = const[1] MAD temp[32].x, src0.z__, src0.111, -src0.1__ 32: src0.xyz = temp[27], src1.xyz = temp[32] MAD temp[28].x, src0.x__, src1.x__, src0.1__ 33: ELSE; 34: src0.xyz = temp[14], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 35: IF aluresult.x___; 36: src0.xyz = const[1] MAD temp[33].x, src0.x__, src0.111, -src0.z__ 37: src0.xyz = temp[27], src1.xyz = temp[33], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.z__ 38: ELSE; 39: src0.xyz = temp[14], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 40: IF aluresult.x___; 41: src0.xyz = const[0], src1.xyz = const[1] MAD temp[34].x, src0.z__, src0.111, -src1.x__ 42: src0.xyz = temp[27], src1.xyz = temp[34], src2.xyz = const[1] MAD temp[28].x, src0.x__, src1.x__, src2.x__ 43: ELSE; 44: src0.xyz = temp[14], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[28].x, src1.z__, srcp.x__, src0.000 47: ELSE; 48: src0.xyz = temp[14], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[28].x, src0.y__, src1.x__, src0.000 51: ELSE; 52: src0.xyz = temp[14], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 53: IF aluresult.x___; 54: src0.xyz = const[2], src0.w = const[2] MAD temp[36].x, src0.w__, src0.111, -src0.y__ 55: src0.xyz = temp[27], src1.xyz = temp[36], src2.xyz = const[2] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 56: ELSE; 57: src0.xyz = temp[14], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 58: IF aluresult.x___; 59: src0.xyz = const[3], src0.w = const[2] MAD temp[37].x, src0.y__, src0.111, -src0.w__ 60: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[37] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 61: ELSE; 62: src0.xyz = temp[14], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[28].x, src1.x__, srcp.y__, src0.y__ 65: ELSE; 66: src0.xyz = temp[14], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 67: IF aluresult.x___; 68: src0.xyz = const[4] MAD temp[39].x, src0.y__, src0.111, src0.1__ 69: src0.xyz = temp[27], src1.xyz = temp[39] MAD temp[28].x, src0.x__, src1.x__, -src0.1__ 70: ELSE; 71: src0.xyz = temp[14], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 72: IF aluresult.x___; 73: src0.xyz = const[4], src0.w = const[2] MAD temp[40].x, src0.w__, src0.111, -src0.y__ 74: src0.xyz = temp[27], src1.xyz = temp[40], src2.xyz = const[4] MAD temp[28].x, src0.x__, src1.x__, src2.y__ 75: ELSE; 76: src0.xyz = temp[14], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 77: IF aluresult.x___; 78: src0.xyz = const[2], src0.w = const[2] MAD temp[41].x, src0.y__, src0.111, -src0.w__ 79: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[41] MAD temp[28].x, src0.x__, src1.x__, src0.w__ 80: ELSE; 81: src0.xyz = temp[14], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[28].x, src1.y__, srcp.x__, src0.000 84: ELSE; 85: src0.xyz = temp[14], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 86: IF aluresult.x___; 87: MAD temp[28].x, src0.0__, src0.111, src0.000 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 106: IF aluresult.x___; 107: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[43].x, src0.z__, src1.y__, src0.000 108: src0.xyz = temp[43] MAD temp[28].y, src0._x_, src0.111, src0.000 109: ELSE; 110: src0.xyz = temp[19] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 111: IF aluresult.x___; 112: src0.xyz = const[1], src1.xyz = const[0] MAD temp[44].x, src0.x__, src0.111, -src1.z__ 113: src0.xyz = temp[27], src1.xyz = temp[44], src2.xyz = const[0] MAD temp[45].x, src0.y__, src1.x__, src2.z__ 114: src0.xyz = temp[45] MAD temp[28].y, src0._x_, src0.111, src0.000 115: ELSE; 116: src0.xyz = temp[19], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 117: IF aluresult.x___; 118: src0.xyz = const[1] MAD temp[46].x, src0.z__, src0.111, -src0.x__ 119: src0.xyz = temp[27], src1.xyz = temp[46], src2.xyz = const[1] MAD temp[47].x, src0.y__, src1.x__, src2.x__ 120: src0.xyz = temp[47] MAD temp[28].y, src0._x_, src0.111, src0.000 121: ELSE; 122: src0.xyz = temp[19], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 123: IF aluresult.x___; 124: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[49].x, src1.y__, srcp.z__, src0.z__ 125: src0.xyz = temp[49] MAD temp[28].y, src0._x_, src0.111, src0.000 126: ELSE; 127: src0.xyz = temp[19], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 128: IF aluresult.x___; 129: src0.xyz = const[1] MAD temp[50].x, src0.z__, src0.111, -src0.1__ 130: src0.xyz = temp[27], src1.xyz = temp[50] MAD temp[51].x, src0.y__, src1.x__, src0.1__ 131: src0.xyz = temp[51] MAD temp[28].y, src0._x_, src0.111, src0.000 132: ELSE; 133: src0.xyz = temp[19], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 134: IF aluresult.x___; 135: src0.xyz = const[1] MAD temp[52].x, src0.x__, src0.111, -src0.z__ 136: src0.xyz = temp[27], src1.xyz = temp[52], src2.xyz = const[1] MAD temp[53].x, src0.y__, src1.x__, src2.z__ 137: src0.xyz = temp[53] MAD temp[28].y, src0._x_, src0.111, src0.000 138: ELSE; 139: src0.xyz = temp[19], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 140: IF aluresult.x___; 141: src0.xyz = const[0], src1.xyz = const[1] MAD temp[54].x, src0.z__, src0.111, -src1.x__ 142: src0.xyz = temp[27], src1.xyz = temp[54], src2.xyz = const[1] MAD temp[55].x, src0.y__, src1.x__, src2.x__ 143: src0.xyz = temp[55] MAD temp[28].y, src0._x_, src0.111, src0.000 144: ELSE; 145: src0.xyz = temp[19], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 146: IF aluresult.x___; 147: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[57].x, src1.z__, srcp.y__, src0.000 148: src0.xyz = temp[57] MAD temp[28].y, src0._x_, src0.111, src0.000 149: ELSE; 150: src0.xyz = temp[19], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 151: IF aluresult.x___; 152: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[58].x, src0.y__, src1.y__, src0.000 153: src0.xyz = temp[58] MAD temp[28].y, src0._x_, src0.111, src0.000 154: ELSE; 155: src0.xyz = temp[19], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 156: IF aluresult.x___; 157: src0.xyz = const[2], src0.w = const[2] MAD temp[59].x, src0.w__, src0.111, -src0.y__ 158: src0.xyz = temp[27], src1.xyz = temp[59], src2.xyz = const[2] MAD temp[60].x, src0.y__, src1.x__, src2.y__ 159: src0.xyz = temp[60] MAD temp[28].y, src0._x_, src0.111, src0.000 160: ELSE; 161: src0.xyz = temp[19], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 162: IF aluresult.x___; 163: src0.xyz = const[3], src0.w = const[2] MAD temp[61].x, src0.y__, src0.111, -src0.w__ 164: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[61] MAD temp[62].x, src0.y__, src1.x__, src0.w__ 165: src0.xyz = temp[62] MAD temp[28].y, src0._x_, src0.111, src0.000 166: ELSE; 167: src0.xyz = temp[19], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 168: IF aluresult.x___; 169: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[64].x, src1.y__, srcp.y__, src0.y__ 170: src0.xyz = temp[64] MAD temp[28].y, src0._x_, src0.111, src0.000 171: ELSE; 172: src0.xyz = temp[19], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 173: IF aluresult.x___; 174: src0.xyz = const[4] MAD temp[65].x, src0.y__, src0.111, src0.1__ 175: src0.xyz = temp[27], src1.xyz = temp[65] MAD temp[66].x, src0.y__, src1.x__, -src0.1__ 176: src0.xyz = temp[66] MAD temp[28].y, src0._x_, src0.111, src0.000 177: ELSE; 178: src0.xyz = temp[19], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 179: IF aluresult.x___; 180: src0.xyz = const[4], src0.w = const[2] MAD temp[67].x, src0.w__, src0.111, -src0.y__ 181: src0.xyz = temp[27], src1.xyz = temp[67], src2.xyz = const[4] MAD temp[68].x, src0.y__, src1.x__, src2.y__ 182: src0.xyz = temp[68] MAD temp[28].y, src0._x_, src0.111, src0.000 183: ELSE; 184: src0.xyz = temp[19], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 185: IF aluresult.x___; 186: src0.xyz = const[2], src0.w = const[2] MAD temp[69].x, src0.y__, src0.111, -src0.w__ 187: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[69] MAD temp[70].x, src0.y__, src1.x__, src0.w__ 188: src0.xyz = temp[70] MAD temp[28].y, src0._x_, src0.111, src0.000 189: ELSE; 190: src0.xyz = temp[19], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 191: IF aluresult.x___; 192: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[72].x, src1.y__, srcp.y__, src0.000 193: src0.xyz = temp[72] MAD temp[28].y, src0._x_, src0.111, src0.000 194: ELSE; 195: src0.xyz = temp[19], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 196: IF aluresult.x___; 197: MAD temp[28].y, src0._0_, src0.111, src0.000 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: src0.w = temp[24] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 216: IF aluresult.x___; 217: src0.xyz = const[0], src1.xyz = temp[27] MAD temp[73].x, src0.z__, src1.z__, src0.000 218: src0.xyz = temp[73] MAD temp[28].z, src0.__x, src0.111, src0.000 219: ELSE; 220: src0.w = temp[24] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 221: IF aluresult.x___; 222: src0.xyz = const[1], src1.xyz = const[0] MAD temp[74].x, src0.x__, src0.111, -src1.z__ 223: src0.xyz = temp[27], src1.xyz = temp[74], src2.xyz = const[0] MAD temp[75].x, src0.z__, src1.x__, src2.z__ 224: src0.xyz = temp[75] MAD temp[28].z, src0.__x, src0.111, src0.000 225: ELSE; 226: src0.w = 2.000000 (0x40), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 227: IF aluresult.x___; 228: src0.xyz = const[1] MAD temp[76].x, src0.z__, src0.111, -src0.x__ 229: src0.xyz = temp[27], src1.xyz = temp[76], src2.xyz = const[1] MAD temp[77].x, src0.z__, src1.x__, src2.x__ 230: src0.xyz = temp[77] MAD temp[28].z, src0.__x, src0.111, src0.000 231: ELSE; 232: src0.w = 3.000000 (0x44), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 233: IF aluresult.x___; 234: src0.xyz = const[1], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[79].x, src1.z__, srcp.z__, src0.z__ 235: src0.xyz = temp[79] MAD temp[28].z, src0.__x, src0.111, src0.000 236: ELSE; 237: src0.w = 4.000000 (0x48), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 238: IF aluresult.x___; 239: src0.xyz = const[1] MAD temp[80].x, src0.z__, src0.111, -src0.1__ 240: src0.xyz = temp[27], src1.xyz = temp[80] MAD temp[81].x, src0.z__, src1.x__, src0.1__ 241: src0.xyz = temp[81] MAD temp[28].z, src0.__x, src0.111, src0.000 242: ELSE; 243: src0.w = 5.000000 (0x4a), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 244: IF aluresult.x___; 245: src0.xyz = const[1] MAD temp[82].x, src0.x__, src0.111, -src0.z__ 246: src0.xyz = temp[27], src1.xyz = temp[82], src2.xyz = const[1] MAD temp[83].x, src0.z__, src1.x__, src2.z__ 247: src0.xyz = temp[83] MAD temp[28].z, src0.__x, src0.111, src0.000 248: ELSE; 249: src0.w = 6.000000 (0x4c), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 250: IF aluresult.x___; 251: src0.xyz = const[0], src1.xyz = const[1] MAD temp[84].x, src0.z__, src0.111, -src1.x__ 252: src0.xyz = temp[27], src1.xyz = temp[84], src2.xyz = const[1] MAD temp[85].x, src0.z__, src1.x__, src2.x__ 253: src0.xyz = temp[85] MAD temp[28].z, src0.__x, src0.111, src0.000 254: ELSE; 255: src0.w = 7.000000 (0x4e), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 256: IF aluresult.x___; 257: src0.xyz = temp[27], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[87].x, src1.z__, srcp.z__, src0.000 258: src0.xyz = temp[87] MAD temp[28].z, src0.__x, src0.111, src0.000 259: ELSE; 260: src0.w = 8.000000 (0x50), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 261: IF aluresult.x___; 262: src0.xyz = const[2], src1.xyz = temp[27] MAD temp[88].x, src0.y__, src1.z__, src0.000 263: src0.xyz = temp[88] MAD temp[28].z, src0.__x, src0.111, src0.000 264: ELSE; 265: src0.w = 9.000000 (0x51), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 266: IF aluresult.x___; 267: src0.xyz = const[2], src0.w = const[2] MAD temp[89].x, src0.w__, src0.111, -src0.y__ 268: src0.xyz = temp[27], src1.xyz = temp[89], src2.xyz = const[2] MAD temp[90].x, src0.z__, src1.x__, src2.y__ 269: src0.xyz = temp[90] MAD temp[28].z, src0.__x, src0.111, src0.000 270: ELSE; 271: src0.w = 10.000000 (0x52), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 272: IF aluresult.x___; 273: src0.xyz = const[3], src0.w = const[2] MAD temp[91].x, src0.y__, src0.111, -src0.w__ 274: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[91] MAD temp[92].x, src0.z__, src1.x__, src0.w__ 275: src0.xyz = temp[92] MAD temp[28].z, src0.__x, src0.111, src0.000 276: ELSE; 277: src0.w = 11.000000 (0x53), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 278: IF aluresult.x___; 279: src0.xyz = const[3], src1.xyz = temp[27], srcp.xyz = (1 - src0) MAD temp[94].x, src1.z__, srcp.y__, src0.y__ 280: src0.xyz = temp[94] MAD temp[28].z, src0.__x, src0.111, src0.000 281: ELSE; 282: src0.w = 12.000000 (0x54), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 283: IF aluresult.x___; 284: src0.xyz = const[4] MAD temp[95].x, src0.y__, src0.111, src0.1__ 285: src0.xyz = temp[27], src1.xyz = temp[95] MAD temp[96].x, src0.z__, src1.x__, -src0.1__ 286: src0.xyz = temp[96] MAD temp[28].z, src0.__x, src0.111, src0.000 287: ELSE; 288: src0.w = 13.000000 (0x55), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 289: IF aluresult.x___; 290: src0.xyz = const[4], src0.w = const[2] MAD temp[97].x, src0.w__, src0.111, -src0.y__ 291: src0.xyz = temp[27], src1.xyz = temp[97], src2.xyz = const[4] MAD temp[98].x, src0.z__, src1.x__, src2.y__ 292: src0.xyz = temp[98] MAD temp[28].z, src0.__x, src0.111, src0.000 293: ELSE; 294: src0.w = 14.000000 (0x56), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 295: IF aluresult.x___; 296: src0.xyz = const[2], src0.w = const[2] MAD temp[99].x, src0.y__, src0.111, -src0.w__ 297: src0.xyz = temp[27], src0.w = const[2], src1.xyz = temp[99] MAD temp[100].x, src0.z__, src1.x__, src0.w__ 298: src0.xyz = temp[100] MAD temp[28].z, src0.__x, src0.111, src0.000 299: ELSE; 300: src0.w = 15.000000 (0x57), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 301: IF aluresult.x___; 302: src0.xyz = temp[27], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[102].x, src1.y__, srcp.z__, src0.000 303: src0.xyz = temp[102] MAD temp[28].z, src0.__x, src0.111, src0.000 304: ELSE; 305: src0.w = 16.000000 (0x58), src1.w = temp[24] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 306: IF aluresult.x___; 307: MAD temp[28].z, src0.__0, src0.111, src0.000 308: ENDIF; 309: ENDIF; 310: ENDIF; 311: ENDIF; 312: ENDIF; 313: ENDIF; 314: ENDIF; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: src0.xyz = temp[28] MAD temp[103].xyz, src0.HHH, src0.xyz, src0.HHH MAD temp[103].w, src0.1, src0.1, src0.0 326: src0.xyz = temp[103], src0.w = temp[103] 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 = input[0], src0.w = 16.000000 (0x58) MAD temp[0].xyz, src0.www, src0.xyz, src0.000 1: src0.xyz = temp[0] FRC temp[1].x, src0.x__ FRC temp[0].w, src0.z 2: src0.xyz = temp[1], src1.xyz = temp[0], srcp.xyz = (src1 - src0) FRC temp[2].xyz, src1.xyz FRC temp[1].w, |srcp.x| 3: src0.xyz = temp[2], src0.w = temp[0], src1.xyz = temp[0], srcp.xyz = (src1 - src0) MAD temp[2].xyz, src1.xyz, src0.111, -srcp.xyz MAD temp[0].w, src1.z, src0.1, -src0.w 4: src0.xyz = temp[1], src0.w = temp[0], src1.xyz = temp[0], src1.w = temp[1], srcp.xyz = (src1 - src0) FRC temp[1].y, |src0._w_| MAD temp[1].w, |srcp.x|, src0.1, -src1.w 5: src0.xyz = temp[1], src0.w = temp[1], src1.xyz = temp[0], srcp.xyz = (src1 - src0) CMP temp[1].x, src0.w__, -src0.w__, srcp.x__ 6: src0.xyz = temp[1], src0.w = temp[0], src1.xyz = temp[1] MAD aluresult, src0.x__, src0.111, src0.000 MAD temp[1].w, |src0.w|, src0.1, -src1.y [aluresult = (result == 0)] 7: src0.xyz = temp[0] MAD temp[3].xyz, src0.000, src0.111, src0.000 FRC temp[2].w, src0.y 8: src0.xyz = temp[0], src0.w = temp[2], src1.w = temp[1], src2.w = temp[0] MAD temp[0].x, src0.y__, src0.1__, -src0.w__ CMP temp[0].w, src1.w, -src1.w, src2.w 9: src0.xyz = temp[0] FRC temp[0].y, |src0._x_| 10: src0.xyz = temp[0], src1.xyz = temp[0] MAD temp[0].y, |src0._x_|, src0._1_, -src1._y_ 11: src0.xyz = temp[0], src1.xyz = temp[0] CMP temp[0].x, src0.y__, -src0.y__, src1.x__ 12: IF aluresult.x___; 13: src0.xyz = const[0], src1.xyz = temp[2] MAD temp[3].x, src0.z__, src1.x__, src0.000 14: ELSE; 15: src0.xyz = temp[1] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 16: IF aluresult.x___; 17: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].y, src0._x_, src0._1_, -src1._z_ 18: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[3].x, src0.x__, src1.y__, src2.z__ 19: ELSE; 20: src0.xyz = temp[1], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 21: IF aluresult.x___; 22: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._x_ 23: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[3].x, src0.x__, src1.y__, src2.x__ 24: ELSE; 25: src0.xyz = temp[1], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 26: IF aluresult.x___; 27: src0.xyz = const[1], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[3].x, src1.x__, srcp.z__, src0.z__ 28: ELSE; 29: src0.xyz = temp[1], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 30: IF aluresult.x___; 31: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._1_ 32: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[3].x, src0.x__, src1.y__, src0.1__ 33: ELSE; 34: src0.xyz = temp[1], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 35: IF aluresult.x___; 36: src0.xyz = const[1] MAD temp[0].y, src0._x_, src0._1_, -src0._z_ 37: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[3].x, src0.x__, src1.y__, src2.z__ 38: ELSE; 39: src0.xyz = temp[1], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 40: IF aluresult.x___; 41: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src1._x_ 42: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[3].x, src0.x__, src1.y__, src2.x__ 43: ELSE; 44: src0.xyz = temp[1], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 45: IF aluresult.x___; 46: src0.xyz = temp[2], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[3].x, src1.z__, srcp.x__, src0.000 47: ELSE; 48: src0.xyz = temp[1], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 49: IF aluresult.x___; 50: src0.xyz = const[2], src1.xyz = temp[2] MAD temp[3].x, src0.y__, src1.x__, src0.000 51: ELSE; 52: src0.xyz = temp[1], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 53: IF aluresult.x___; 54: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 55: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[3].x, src0.x__, src1.y__, src2.y__ 56: ELSE; 57: src0.xyz = temp[1], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 58: IF aluresult.x___; 59: src0.xyz = const[3], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 60: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[3].x, src0.x__, src1.y__, src0.w__ 61: ELSE; 62: src0.xyz = temp[1], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 63: IF aluresult.x___; 64: src0.xyz = const[3], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[3].x, src1.x__, srcp.y__, src0.y__ 65: ELSE; 66: src0.xyz = temp[1], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 67: IF aluresult.x___; 68: src0.xyz = const[4] MAD temp[0].y, src0._y_, src0._1_, src0._1_ 69: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[3].x, src0.x__, src1.y__, -src0.1__ 70: ELSE; 71: src0.xyz = temp[1], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 72: IF aluresult.x___; 73: src0.xyz = const[4], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 74: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[3].x, src0.x__, src1.y__, src2.y__ 75: ELSE; 76: src0.xyz = temp[1], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 77: IF aluresult.x___; 78: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 79: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[3].x, src0.x__, src1.y__, src0.w__ 80: ELSE; 81: src0.xyz = temp[1], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 82: IF aluresult.x___; 83: src0.xyz = temp[2], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[3].x, src1.y__, srcp.x__, src0.000 84: ELSE; 85: src0.xyz = temp[1], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 86: IF aluresult.x___; 87: MAD temp[3].x, src0.0__, src0.111, src0.000 88: ENDIF; 89: ENDIF; 90: ENDIF; 91: ENDIF; 92: ENDIF; 93: ENDIF; 94: ENDIF; 95: ENDIF; 96: ENDIF; 97: ENDIF; 98: ENDIF; 99: ENDIF; 100: ENDIF; 101: ENDIF; 102: ENDIF; 103: ENDIF; 104: ENDIF; 105: src0.xyz = temp[0] MAD aluresult, src0.x__, src0.111, src0.000 [aluresult = (result == 0)] 106: IF aluresult.x___; 107: src0.xyz = const[0], src1.xyz = temp[2] MAD temp[0].y, src0._z_, src1._y_, src0._0_ 108: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 109: ELSE; 110: src0.xyz = temp[0] MAD aluresult, src0.x__, src0.111, -src0.1__ [aluresult = (result == 0)] 111: IF aluresult.x___; 112: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].y, src0._x_, src0._1_, -src1._z_ 113: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[0].y, src0._y_, src1._y_, src2._z_ 114: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 115: ELSE; 116: src0.xyz = temp[0], src0.w = 2.000000 (0x40) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 117: IF aluresult.x___; 118: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._x_ 119: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._y_, src1._y_, src2._x_ 120: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 121: ELSE; 122: src0.xyz = temp[0], src0.w = 3.000000 (0x44) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 123: IF aluresult.x___; 124: src0.xyz = const[1], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[0].y, src1._y_, srcp._z_, src0._z_ 125: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 126: ELSE; 127: src0.xyz = temp[0], src0.w = 4.000000 (0x48) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 128: IF aluresult.x___; 129: src0.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src0._1_ 130: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[0].y, src0._y_, src1._y_, src0._1_ 131: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 132: ELSE; 133: src0.xyz = temp[0], src0.w = 5.000000 (0x4a) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 134: IF aluresult.x___; 135: src0.xyz = const[1] MAD temp[0].y, src0._x_, src0._1_, -src0._z_ 136: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._y_, src1._y_, src2._z_ 137: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 138: ELSE; 139: src0.xyz = temp[0], src0.w = 6.000000 (0x4c) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 140: IF aluresult.x___; 141: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].y, src0._z_, src0._1_, -src1._x_ 142: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].y, src0._y_, src1._y_, src2._x_ 143: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 144: ELSE; 145: src0.xyz = temp[0], src0.w = 7.000000 (0x4e) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 146: IF aluresult.x___; 147: src0.xyz = temp[2], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[0].y, src1._z_, srcp._y_, src0._0_ 148: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 149: ELSE; 150: src0.xyz = temp[0], src0.w = 8.000000 (0x50) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 151: IF aluresult.x___; 152: src0.xyz = const[2], src1.xyz = temp[2] MAD temp[0].y, src0._y_, src1._y_, src0._0_ 153: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 154: ELSE; 155: src0.xyz = temp[0], src0.w = 9.000000 (0x51) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 156: IF aluresult.x___; 157: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 158: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[0].y, src0._y_, src1._y_, src2._y_ 159: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 160: ELSE; 161: src0.xyz = temp[0], src0.w = 10.000000 (0x52) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 162: IF aluresult.x___; 163: src0.xyz = const[3], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 164: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].y, src0._y_, src1._y_, src0._w_ 165: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 166: ELSE; 167: src0.xyz = temp[0], src0.w = 11.000000 (0x53) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 168: IF aluresult.x___; 169: src0.xyz = const[3], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[0].y, src1._y_, srcp._y_, src0._y_ 170: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 171: ELSE; 172: src0.xyz = temp[0], src0.w = 12.000000 (0x54) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 173: IF aluresult.x___; 174: src0.xyz = const[4] MAD temp[0].y, src0._y_, src0._1_, src0._1_ 175: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[0].y, src0._y_, src1._y_, -src0._1_ 176: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 177: ELSE; 178: src0.xyz = temp[0], src0.w = 13.000000 (0x55) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 179: IF aluresult.x___; 180: src0.xyz = const[4], src0.w = const[2] MAD temp[0].y, src0._w_, src0._1_, -src0._y_ 181: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[0].y, src0._y_, src1._y_, src2._y_ 182: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 183: ELSE; 184: src0.xyz = temp[0], src0.w = 14.000000 (0x56) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 185: IF aluresult.x___; 186: src0.xyz = const[2], src0.w = const[2] MAD temp[0].y, src0._y_, src0._1_, -src0._w_ 187: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].y, src0._y_, src1._y_, src0._w_ 188: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 189: ELSE; 190: src0.xyz = temp[0], src0.w = 15.000000 (0x57) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 191: IF aluresult.x___; 192: src0.xyz = temp[2], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[0].y, src1._y_, srcp._y_, src0._0_ 193: src0.xyz = temp[0] MAD temp[3].y, src0._y_, src0.111, src0.000 194: ELSE; 195: src0.xyz = temp[0], src0.w = 16.000000 (0x58) MAD aluresult, src0.x__, src0.111, -src0.w__ [aluresult = (result == 0)] 196: IF aluresult.x___; 197: MAD temp[3].y, src0._0_, src0.111, src0.000 198: ENDIF; 199: ENDIF; 200: ENDIF; 201: ENDIF; 202: ENDIF; 203: ENDIF; 204: ENDIF; 205: ENDIF; 206: ENDIF; 207: ENDIF; 208: ENDIF; 209: ENDIF; 210: ENDIF; 211: ENDIF; 212: ENDIF; 213: ENDIF; 214: ENDIF; 215: src0.w = temp[0] MAD aluresult, src0.w__, src0.111, src0.000 [aluresult = (result == 0)] 216: IF aluresult.x___; 217: src0.xyz = const[0], src1.xyz = temp[2] MAD temp[0].x, src0.z__, src1.z__, src0.0__ 218: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 219: ELSE; 220: src0.w = temp[0] MAD aluresult, src0.w__, src0.111, -src0.1__ [aluresult = (result == 0)] 221: IF aluresult.x___; 222: src0.xyz = const[1], src1.xyz = const[0] MAD temp[0].x, src0.x__, src0.1__, -src1.z__ 223: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[0] MAD temp[0].x, src0.z__, src1.x__, src2.z__ 224: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 225: ELSE; 226: src0.w = 2.000000 (0x40), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 227: IF aluresult.x___; 228: src0.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src0.x__ 229: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.z__, src1.x__, src2.x__ 230: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 231: ELSE; 232: src0.w = 3.000000 (0x44), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 233: IF aluresult.x___; 234: src0.xyz = const[1], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[0].x, src1.z__, srcp.z__, src0.z__ 235: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 236: ELSE; 237: src0.w = 4.000000 (0x48), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 238: IF aluresult.x___; 239: src0.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src0.1__ 240: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[0].x, src0.z__, src1.x__, src0.1__ 241: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 242: ELSE; 243: src0.w = 5.000000 (0x4a), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 244: IF aluresult.x___; 245: src0.xyz = const[1] MAD temp[0].x, src0.x__, src0.1__, -src0.z__ 246: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.z__, src1.x__, src2.z__ 247: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 248: ELSE; 249: src0.w = 6.000000 (0x4c), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 250: IF aluresult.x___; 251: src0.xyz = const[0], src1.xyz = const[1] MAD temp[0].x, src0.z__, src0.1__, -src1.x__ 252: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[1] MAD temp[0].x, src0.z__, src1.x__, src2.x__ 253: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 254: ELSE; 255: src0.w = 7.000000 (0x4e), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 256: IF aluresult.x___; 257: src0.xyz = temp[2], src1.xyz = const[0], srcp.xyz = (1 - src0) MAD temp[0].x, src1.z__, srcp.z__, src0.0__ 258: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 259: ELSE; 260: src0.w = 8.000000 (0x50), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 261: IF aluresult.x___; 262: src0.xyz = const[2], src1.xyz = temp[2] MAD temp[0].x, src0.y__, src1.z__, src0.0__ 263: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 264: ELSE; 265: src0.w = 9.000000 (0x51), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 266: IF aluresult.x___; 267: src0.xyz = const[2], src0.w = const[2] MAD temp[0].x, src0.w__, src0.1__, -src0.y__ 268: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[2] MAD temp[0].x, src0.z__, src1.x__, src2.y__ 269: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 270: ELSE; 271: src0.w = 10.000000 (0x52), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 272: IF aluresult.x___; 273: src0.xyz = const[3], src0.w = const[2] MAD temp[0].x, src0.y__, src0.1__, -src0.w__ 274: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].x, src0.z__, src1.x__, src0.w__ 275: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 276: ELSE; 277: src0.w = 11.000000 (0x53), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 278: IF aluresult.x___; 279: src0.xyz = const[3], src1.xyz = temp[2], srcp.xyz = (1 - src0) MAD temp[0].x, src1.z__, srcp.y__, src0.y__ 280: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 281: ELSE; 282: src0.w = 12.000000 (0x54), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 283: IF aluresult.x___; 284: src0.xyz = const[4] MAD temp[0].x, src0.y__, src0.1__, src0.1__ 285: src0.xyz = temp[2], src1.xyz = temp[0] MAD temp[0].x, src0.z__, src1.x__, -src0.1__ 286: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 287: ELSE; 288: src0.w = 13.000000 (0x55), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 289: IF aluresult.x___; 290: src0.xyz = const[4], src0.w = const[2] MAD temp[0].x, src0.w__, src0.1__, -src0.y__ 291: src0.xyz = temp[2], src1.xyz = temp[0], src2.xyz = const[4] MAD temp[0].x, src0.z__, src1.x__, src2.y__ 292: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 293: ELSE; 294: src0.w = 14.000000 (0x56), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 295: IF aluresult.x___; 296: src0.xyz = const[2], src0.w = const[2] MAD temp[0].x, src0.y__, src0.1__, -src0.w__ 297: src0.xyz = temp[2], src0.w = const[2], src1.xyz = temp[0] MAD temp[0].x, src0.z__, src1.x__, src0.w__ 298: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 299: ELSE; 300: src0.w = 15.000000 (0x57), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 301: IF aluresult.x___; 302: src0.xyz = temp[2], src1.xyz = const[2], srcp.xyz = (1 - src0) MAD temp[0].x, src1.y__, srcp.z__, src0.0__ 303: src0.xyz = temp[0] MAD temp[3].z, src0.__x, src0.111, src0.000 304: ELSE; 305: src0.w = 16.000000 (0x58), src1.w = temp[0] MAD aluresult, src1.w__, src0.111, -src0.w__ [aluresult = (result == 0)] 306: IF aluresult.x___; 307: MAD temp[3].z, src0.__0, src0.111, src0.000 308: ENDIF; 309: ENDIF; 310: ENDIF; 311: ENDIF; 312: ENDIF; 313: ENDIF; 314: ENDIF; 315: ENDIF; 316: ENDIF; 317: ENDIF; 318: ENDIF; 319: ENDIF; 320: ENDIF; 321: ENDIF; 322: ENDIF; 323: ENDIF; 324: ENDIF; 325: src0.xyz = temp[3] MAD temp[0].xyz, src0.HHH, src0.xyz, src0.HHH MAD temp[0].w, src0.1, src0.1, src0.0 326: 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00003800:ALU wmask: RGB omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0044036c:rgb_A_src:0 A/A/A 0 rgb_B_src:0 R/G/B 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 1 0:CMN_INST 0x00004a00:ALU NOP wmask: AR omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00008007:FRC dest:0 alp_A_src:0 B 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000019:FRC dest:1 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 2 0:CMN_INST 0x00007a00:ALU NOP wmask: ARGB omask: NONE 1:RGB_ADDR 0x48000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000221:rgb_A_src:1 R/G/B 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00043017:FRC dest:1 alp_A_src:3 R 2 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000029:FRC dest:2 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 3 0:CMN_INST 0x00007800:ALU wmask: ARGB omask: NONE 1:RGB_ADDR 0x48000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0221:rgb_A_src:1 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c09000:MAD dest:0 alp_A_src:1 B 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x58a23020:MAD dest:2 rgb_C_src:3 R/G/B 1 alp_C_src:0 A 1 4 0:CMN_INST 0x00005000:ALU wmask: AG omask: NONE 1:RGB_ADDR 0x48000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08000400:Addr0: 0t, Addr1: 1t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00001470:rgb_A_src:0 0/A/0 2 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00c43010:MAD dest:1 alp_A_src:3 R 2 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x5a000019:FRC dest:1 rgb_C_src:0 R/R/R 0 alp_C_src:1 A 1 5 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x48000001:Addr0: 1t, Addr1: 0t, Addr2: 128t, srcp:1 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0191848c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 A/0/0 1 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00483018:CMP dest:1 rgb_C_src:3 R/0/0 0 alp_C_src:0 R 0 6 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08000401:Addr0: 1t, Addr1: 1t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c4c010:MAD dest:1 alp_A_src:0 A 2 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x4a490050:MAD dest:5 rgb_C_src:0 0/0/0 0 alp_C_src:1 G 1 7 0:CMN_INST 0x00007800:ALU wmask: ARGB omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00004027:FRC dest:2 alp_A_src:0 G 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 8 0:CMN_INST 0x00004800:ALU wmask: AR omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x00000402:Addr0: 2t, Addr1: 1t, Addr2: 0t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x0168d006:CMP dest:0 alp_A_src:1 A 0 alp_B_src:1 A 1 targ 0 w:0 5 RGBA_INST: 0x1cc8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:2 A 0 9 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00001410:rgb_A_src:0 0/R/0 2 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000009:FRC dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 10 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000000:Addr0: 0t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a1410:rgb_A_src:0 0/R/0 2 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c31000:MAD dest:0 rgb_C_src:1 0/G/0 1 alp_C_src:0 R 0 11 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000000:Addr0: 0t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x01908484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 G/0/0 1 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00481008:CMP dest:0 rgb_C_src:1 R/0/0 0 alp_C_src:0 R 0 12 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 15 IGN_UNC 3:FC_ADDR 0x000f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 15, JMP_GLBL: 0 13 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000900:Addr0: 0c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 14 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 105 3:FC_ADDR 0x00690000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 105, JMP_GLBL: 0 15 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98050:MAD dest:5 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 16 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 20 IGN_UNC 3:FC_ADDR 0x00140000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 20, JMP_GLBL: 0 17 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c51000:MAD dest:0 rgb_C_src:1 0/B/0 1 alp_C_src:0 R 0 18 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10000002:Addr0: 2t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a030:MAD dest:3 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 19 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 104 3:FC_ADDR 0x00680000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 104, JMP_GLBL: 0 20 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c0:Addr0: 192t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 21 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 25 IGN_UNC 3:FC_ADDR 0x00190000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 25, JMP_GLBL: 0 22 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c10000:MAD dest:0 rgb_C_src:0 0/R/0 1 alp_C_src:0 R 0 23 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482030:MAD dest:3 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 24 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 103 3:FC_ADDR 0x00670000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 103, JMP_GLBL: 0 25 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c4:Addr0: 196t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 26 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 29 IGN_UNC 3:FC_ADDR 0x001d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 29, JMP_GLBL: 0 27 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000901:Addr0: 1c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916481:rgb_A_src:1 R/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00488030:MAD dest:3 rgb_C_src:0 B/0/0 0 alp_C_src:0 R 0 28 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 102 3:FC_ADDR 0x00660000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 102, JMP_GLBL: 0 29 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c8:Addr0: 200t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 30 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 34 IGN_UNC 3:FC_ADDR 0x00220000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 34, JMP_GLBL: 0 31 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00cd0000:MAD dest:0 rgb_C_src:0 0/1/0 1 alp_C_src:0 R 0 32 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498030:MAD dest:3 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 33 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 34 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ca:Addr0: 202t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 35 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 39 IGN_UNC 3:FC_ADDR 0x00270000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 39, JMP_GLBL: 0 36 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c50000:MAD dest:0 rgb_C_src:0 0/B/0 1 alp_C_src:0 R 0 37 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a030:MAD dest:3 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 38 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 39 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200cc:Addr0: 204t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 40 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 44 IGN_UNC 3:FC_ADDR 0x002c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 44, JMP_GLBL: 0 41 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c11000:MAD dest:0 rgb_C_src:1 0/R/0 1 alp_C_src:0 R 0 42 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482030:MAD dest:3 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 43 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 44 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ce:Addr0: 206t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 45 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 48 IGN_UNC 3:FC_ADDR 0x00300000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 48, JMP_GLBL: 0 46 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040002:Addr0: 2t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00906489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 47 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 48 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d0:Addr0: 208t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 49 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 52 IGN_UNC 3:FC_ADDR 0x00340000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 52, JMP_GLBL: 0 50 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000902:Addr0: 2c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 51 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 52 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d1:Addr0: 209t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 53 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 57 IGN_UNC 3:FC_ADDR 0x00390000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 57, JMP_GLBL: 0 54 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 55 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10200002:Addr0: 2t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486030:MAD dest:3 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 56 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 57 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d2:Addr0: 210t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 58 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 62 IGN_UNC 3:FC_ADDR 0x003e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 62, JMP_GLBL: 0 59 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 60 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c030:MAD dest:3 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 61 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 62 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d3:Addr0: 211t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 63 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 66 IGN_UNC 3:FC_ADDR 0x00420000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 66, JMP_GLBL: 0 64 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000903:Addr0: 3c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e481:rgb_A_src:1 R/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00484030:MAD dest:3 rgb_C_src:0 G/0/0 0 alp_C_src:0 R 0 65 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 66 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d4:Addr0: 212t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 67 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 71 IGN_UNC 3:FC_ADDR 0x00470000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 71, JMP_GLBL: 0 68 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004d0000:MAD dest:0 rgb_C_src:0 0/1/0 0 alp_C_src:0 R 0 69 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98030:MAD dest:3 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 70 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 71 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d5:Addr0: 213t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 72 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 76 IGN_UNC 3:FC_ADDR 0x004c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 76, JMP_GLBL: 0 73 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 74 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10400002:Addr0: 2t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486030:MAD dest:3 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 75 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 76 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d6:Addr0: 214t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 77 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 81 IGN_UNC 3:FC_ADDR 0x00510000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 81, JMP_GLBL: 0 78 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 79 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090a480:rgb_A_src:0 R/0/0 0 rgb_B_src:1 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c030:MAD dest:3 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 80 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 81 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d7:Addr0: 215t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c050:MAD dest:5 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 82 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 85 IGN_UNC 3:FC_ADDR 0x00550000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 85, JMP_GLBL: 0 83 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040802:Addr0: 2t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00906485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 84 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 85 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 86 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 89 IGN_UNC 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 87 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 88 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 89 3:FC_ADDR 0x00590000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 89, JMP_GLBL: 0 89 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 90 3:FC_ADDR 0x005a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 90, JMP_GLBL: 0 90 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 91 3:FC_ADDR 0x005b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 91, JMP_GLBL: 0 91 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 92 3:FC_ADDR 0x005c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 92, JMP_GLBL: 0 92 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 93 3:FC_ADDR 0x005d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 93, JMP_GLBL: 0 93 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 94 3:FC_ADDR 0x005e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 94, JMP_GLBL: 0 94 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 95 3:FC_ADDR 0x005f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 95, JMP_GLBL: 0 95 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 96 3:FC_ADDR 0x00600000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 96, JMP_GLBL: 0 96 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 97 3:FC_ADDR 0x00610000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 97, JMP_GLBL: 0 97 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 98 3:FC_ADDR 0x00620000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 98, JMP_GLBL: 0 98 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 99 3:FC_ADDR 0x00630000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 99, JMP_GLBL: 0 99 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 100 3:FC_ADDR 0x00640000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 100, JMP_GLBL: 0 100 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 101 3:FC_ADDR 0x00650000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 101, JMP_GLBL: 0 101 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 102 3:FC_ADDR 0x00660000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 102, JMP_GLBL: 0 102 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 103 3:FC_ADDR 0x00670000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 103, JMP_GLBL: 0 103 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 104 3:FC_ADDR 0x00680000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 104, JMP_GLBL: 0 104 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 105 3:FC_ADDR 0x00690000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 105, JMP_GLBL: 0 105 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 106 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 110 IGN_UNC 3:FC_ADDR 0x006e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 110, JMP_GLBL: 0 107 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000900:Addr0: 0c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862450:rgb_A_src:0 0/B/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 108 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 109 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 215 3:FC_ADDR 0x00d70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 215, JMP_GLBL: 0 110 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98010:MAD dest:1 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 111 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 116 IGN_UNC 3:FC_ADDR 0x00740000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 116, JMP_GLBL: 0 112 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c51000:MAD dest:0 rgb_C_src:1 0/B/0 1 alp_C_src:0 R 0 113 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10000002:Addr0: 2t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00452000:MAD dest:0 rgb_C_src:2 0/B/0 0 alp_C_src:0 R 0 114 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 115 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 214 3:FC_ADDR 0x00d60000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 214, JMP_GLBL: 0 116 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c0:Addr0: 192t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 117 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 122 IGN_UNC 3:FC_ADDR 0x007a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 122, JMP_GLBL: 0 118 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c10000:MAD dest:0 rgb_C_src:0 0/R/0 1 alp_C_src:0 R 0 119 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00412000:MAD dest:0 rgb_C_src:2 0/R/0 0 alp_C_src:0 R 0 120 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 121 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 213 3:FC_ADDR 0x00d50000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 213, JMP_GLBL: 0 122 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c4:Addr0: 196t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 123 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 127 IGN_UNC 3:FC_ADDR 0x007f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 127, JMP_GLBL: 0 124 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8000901:Addr0: 1c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x008a6431:rgb_A_src:1 0/G/0 0 rgb_B_src:3 0/B/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00450000:MAD dest:0 rgb_C_src:0 0/B/0 0 alp_C_src:0 R 0 125 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 126 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 212 3:FC_ADDR 0x00d40000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 212, JMP_GLBL: 0 127 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200c8:Addr0: 200t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 128 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 133 IGN_UNC 3:FC_ADDR 0x00850000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 133, JMP_GLBL: 0 129 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00cd0000:MAD dest:0 rgb_C_src:0 0/1/0 1 alp_C_src:0 R 0 130 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004d0000:MAD dest:0 rgb_C_src:0 0/1/0 0 alp_C_src:0 R 0 131 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 132 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 211 3:FC_ADDR 0x00d30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 211, JMP_GLBL: 0 133 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ca:Addr0: 202t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 134 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 139 IGN_UNC 3:FC_ADDR 0x008b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 139, JMP_GLBL: 0 135 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0410:rgb_A_src:0 0/R/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c50000:MAD dest:0 rgb_C_src:0 0/B/0 1 alp_C_src:0 R 0 136 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00452000:MAD dest:0 rgb_C_src:2 0/B/0 0 alp_C_src:0 R 0 137 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 138 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 210 3:FC_ADDR 0x00d20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 210, JMP_GLBL: 0 139 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200cc:Addr0: 204t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 140 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 145 IGN_UNC 3:FC_ADDR 0x00910000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 145, JMP_GLBL: 0 141 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0450:rgb_A_src:0 0/B/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c11000:MAD dest:0 rgb_C_src:1 0/R/0 1 alp_C_src:0 R 0 142 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00412000:MAD dest:0 rgb_C_src:2 0/R/0 0 alp_C_src:0 R 0 143 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 144 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 209 3:FC_ADDR 0x00d10000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 209, JMP_GLBL: 0 145 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200ce:Addr0: 206t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 146 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 150 IGN_UNC 3:FC_ADDR 0x00960000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 150, JMP_GLBL: 0 147 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8040002:Addr0: 2t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00866451:rgb_A_src:1 0/B/0 0 rgb_B_src:3 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 148 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 149 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 208 3:FC_ADDR 0x00d00000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 208, JMP_GLBL: 0 150 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d0:Addr0: 208t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 151 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 155 IGN_UNC 3:FC_ADDR 0x009b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 155, JMP_GLBL: 0 152 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000902:Addr0: 2c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 153 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 154 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 207 3:FC_ADDR 0x00cf0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 207, JMP_GLBL: 0 155 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d1:Addr0: 209t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 156 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 161 IGN_UNC 3:FC_ADDR 0x00a10000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 161, JMP_GLBL: 0 157 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 158 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10200002:Addr0: 2t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00432000:MAD dest:0 rgb_C_src:2 0/G/0 0 alp_C_src:0 R 0 159 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 160 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 206 3:FC_ADDR 0x00ce0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 206, JMP_GLBL: 0 161 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d2:Addr0: 210t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 162 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 167 IGN_UNC 3:FC_ADDR 0x00a70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 167, JMP_GLBL: 0 163 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 164 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00470000:MAD dest:0 rgb_C_src:0 0/A/0 0 alp_C_src:0 R 0 165 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 166 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 205 3:FC_ADDR 0x00cd0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 205, JMP_GLBL: 0 167 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d3:Addr0: 211t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 168 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 172 IGN_UNC 3:FC_ADDR 0x00ac0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 172, JMP_GLBL: 0 169 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8000903:Addr0: 3c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00866431:rgb_A_src:1 0/G/0 0 rgb_B_src:3 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00430000:MAD dest:0 rgb_C_src:0 0/G/0 0 alp_C_src:0 R 0 170 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 171 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 204 3:FC_ADDR 0x00cc0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 204, JMP_GLBL: 0 172 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d4:Addr0: 212t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 173 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 178 IGN_UNC 3:FC_ADDR 0x00b20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 178, JMP_GLBL: 0 174 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x004d0000:MAD dest:0 rgb_C_src:0 0/1/0 0 alp_C_src:0 R 0 175 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00cd0000:MAD dest:0 rgb_C_src:0 0/1/0 1 alp_C_src:0 R 0 176 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 177 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 203 3:FC_ADDR 0x00cb0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 203, JMP_GLBL: 0 178 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d5:Addr0: 213t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 179 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 184 IGN_UNC 3:FC_ADDR 0x00b80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 184, JMP_GLBL: 0 180 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0470:rgb_A_src:0 0/A/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c30000:MAD dest:0 rgb_C_src:0 0/G/0 1 alp_C_src:0 R 0 181 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x10400002:Addr0: 2t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00432000:MAD dest:0 rgb_C_src:2 0/G/0 0 alp_C_src:0 R 0 182 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 183 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 202 3:FC_ADDR 0x00ca0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 202, JMP_GLBL: 0 184 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d6:Addr0: 214t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 185 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 190 IGN_UNC 3:FC_ADDR 0x00be0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 190, JMP_GLBL: 0 186 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x009a0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 0/1/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c70000:MAD dest:0 rgb_C_src:0 0/A/0 1 alp_C_src:0 R 0 187 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00862430:rgb_A_src:0 0/G/0 0 rgb_B_src:1 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00470000:MAD dest:0 rgb_C_src:0 0/A/0 0 alp_C_src:0 R 0 188 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 189 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 201 3:FC_ADDR 0x00c90000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 201, JMP_GLBL: 0 190 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d7:Addr0: 215t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 191 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 195 IGN_UNC 3:FC_ADDR 0x00c30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 195, JMP_GLBL: 0 192 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0xc8040802:Addr0: 2t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00866431:rgb_A_src:1 0/G/0 0 rgb_B_src:3 0/G/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 193 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0430:rgb_A_src:0 0/G/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 194 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 200 3:FC_ADDR 0x00c80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 200, JMP_GLBL: 0 195 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080200d8:Addr0: 216t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db0480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 196 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 199 IGN_UNC 3:FC_ADDR 0x00c70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 199, JMP_GLBL: 0 197 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 198 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 199 3:FC_ADDR 0x00c70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 199, JMP_GLBL: 0 199 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 200 3:FC_ADDR 0x00c80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 200, JMP_GLBL: 0 200 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 201 3:FC_ADDR 0x00c90000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 201, JMP_GLBL: 0 201 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 202 3:FC_ADDR 0x00ca0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 202, JMP_GLBL: 0 202 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 203 3:FC_ADDR 0x00cb0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 203, JMP_GLBL: 0 203 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 204 3:FC_ADDR 0x00cc0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 204, JMP_GLBL: 0 204 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 205 3:FC_ADDR 0x00cd0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 205, JMP_GLBL: 0 205 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 206 3:FC_ADDR 0x00ce0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 206, JMP_GLBL: 0 206 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 207 3:FC_ADDR 0x00cf0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 207, JMP_GLBL: 0 207 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 208 3:FC_ADDR 0x00d00000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 208, JMP_GLBL: 0 208 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 209 3:FC_ADDR 0x00d10000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 209, JMP_GLBL: 0 209 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 210 3:FC_ADDR 0x00d20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 210, JMP_GLBL: 0 210 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 211 3:FC_ADDR 0x00d30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 211, JMP_GLBL: 0 211 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 212 3:FC_ADDR 0x00d40000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 212, JMP_GLBL: 0 212 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 213 3:FC_ADDR 0x00d50000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 213, JMP_GLBL: 0 213 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 214 3:FC_ADDR 0x00d60000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 214, JMP_GLBL: 0 214 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 215 3:FC_ADDR 0x00d70000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 215, JMP_GLBL: 0 215 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490010:MAD dest:1 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 216 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 220 IGN_UNC 3:FC_ADDR 0x00dc0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 220, JMP_GLBL: 0 217 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000900:Addr0: 0c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00912488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 218 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 219 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 325 3:FC_ADDR 0x01450000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 325, JMP_GLBL: 0 220 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98010:MAD dest:1 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 221 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 226 IGN_UNC 3:FC_ADDR 0x00e20000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 226, JMP_GLBL: 0 222 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08040101:Addr0: 1c, Addr1: 0c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c89000:MAD dest:0 rgb_C_src:1 B/0/0 1 alp_C_src:0 R 0 223 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10000002:Addr0: 2t, Addr1: 0t, Addr2: 0c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a000:MAD dest:0 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 224 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 225 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 324 3:FC_ADDR 0x01440000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 324, JMP_GLBL: 0 226 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c0:Addr0: 192t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 227 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 232 IGN_UNC 3:FC_ADDR 0x00e80000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 232, JMP_GLBL: 0 228 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c80000:MAD dest:0 rgb_C_src:0 R/0/0 1 alp_C_src:0 R 0 229 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482000:MAD dest:0 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 230 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 231 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 323 3:FC_ADDR 0x01430000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 323, JMP_GLBL: 0 232 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c4:Addr0: 196t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 233 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 237 IGN_UNC 3:FC_ADDR 0x00ed0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 237, JMP_GLBL: 0 234 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000901:Addr0: 1c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00488000:MAD dest:0 rgb_C_src:0 B/0/0 0 alp_C_src:0 R 0 235 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 236 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 322 3:FC_ADDR 0x01420000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 322, JMP_GLBL: 0 237 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000c8:Addr0: 200t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 238 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 243 IGN_UNC 3:FC_ADDR 0x00f30000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 243, JMP_GLBL: 0 239 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98000:MAD dest:0 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 240 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498000:MAD dest:0 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 241 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 242 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 321 3:FC_ADDR 0x01410000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 321, JMP_GLBL: 0 243 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000ca:Addr0: 202t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 244 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 249 IGN_UNC 3:FC_ADDR 0x00f90000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 249, JMP_GLBL: 0 245 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020101:Addr0: 1c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930480:rgb_A_src:0 R/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c88000:MAD dest:0 rgb_C_src:0 B/0/0 1 alp_C_src:0 R 0 246 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048a000:MAD dest:0 rgb_C_src:2 B/0/0 0 alp_C_src:0 R 0 247 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 248 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 320 3:FC_ADDR 0x01400000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 320, JMP_GLBL: 0 249 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000cc:Addr0: 204t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 250 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 255 IGN_UNC 3:FC_ADDR 0x00ff0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 255, JMP_GLBL: 0 251 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08040500:Addr0: 0c, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930488:rgb_A_src:0 B/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c81000:MAD dest:0 rgb_C_src:1 R/0/0 1 alp_C_src:0 R 0 252 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10100002:Addr0: 2t, Addr1: 0t, Addr2: 1c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00482000:MAD dest:0 rgb_C_src:2 R/0/0 0 alp_C_src:0 R 0 253 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 254 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 319 3:FC_ADDR 0x013f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 319, JMP_GLBL: 0 255 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000ce:Addr0: 206t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 256 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 260 IGN_UNC 3:FC_ADDR 0x01040000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 260, JMP_GLBL: 0 257 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040002:Addr0: 2t, Addr1: 0c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 258 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 259 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 318 3:FC_ADDR 0x013e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 318, JMP_GLBL: 0 260 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d0:Addr0: 208t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 261 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 265 IGN_UNC 3:FC_ADDR 0x01090000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 265, JMP_GLBL: 0 262 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000902:Addr0: 2c, Addr1: 2t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00912484:rgb_A_src:0 G/0/0 0 rgb_B_src:1 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 263 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 264 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 317 3:FC_ADDR 0x013d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 317, JMP_GLBL: 0 265 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d1:Addr0: 209t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 266 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 271 IGN_UNC 3:FC_ADDR 0x010f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 271, JMP_GLBL: 0 267 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0093048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c84000:MAD dest:0 rgb_C_src:0 G/0/0 1 alp_C_src:0 R 0 268 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10200002:Addr0: 2t, Addr1: 0t, Addr2: 2c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486000:MAD dest:0 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 269 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 270 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 316 3:FC_ADDR 0x013c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 316, JMP_GLBL: 0 271 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d2:Addr0: 210t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 272 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 277 IGN_UNC 3:FC_ADDR 0x01150000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 277, JMP_GLBL: 0 273 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020103:Addr0: 3c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 274 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c000:MAD dest:0 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 275 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 276 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 315 3:FC_ADDR 0x013b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 315, JMP_GLBL: 0 277 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d3:Addr0: 211t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 278 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 282 IGN_UNC 3:FC_ADDR 0x011a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 282, JMP_GLBL: 0 279 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8000903:Addr0: 3c, Addr1: 2t, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0090e489:rgb_A_src:1 B/0/0 0 rgb_B_src:3 G/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00484000:MAD dest:0 rgb_C_src:0 G/0/0 0 alp_C_src:0 R 0 280 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 281 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 314 3:FC_ADDR 0x013a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 314, JMP_GLBL: 0 282 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d4:Addr0: 212t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 283 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 288 IGN_UNC 3:FC_ADDR 0x01200000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 288, JMP_GLBL: 0 284 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00498000:MAD dest:0 rgb_C_src:0 1/0/0 0 alp_C_src:0 R 0 285 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c98000:MAD dest:0 rgb_C_src:0 1/0/0 1 alp_C_src:0 R 0 286 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 287 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 313 3:FC_ADDR 0x01390000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 313, JMP_GLBL: 0 288 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d5:Addr0: 213t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 289 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 294 IGN_UNC 3:FC_ADDR 0x01260000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 294, JMP_GLBL: 0 290 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020104:Addr0: 4c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x0093048c:rgb_A_src:0 A/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c84000:MAD dest:0 rgb_C_src:0 G/0/0 1 alp_C_src:0 R 0 291 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x10400002:Addr0: 2t, Addr1: 0t, Addr2: 4c, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00486000:MAD dest:0 rgb_C_src:2 G/0/0 0 alp_C_src:0 R 0 292 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 293 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 312 3:FC_ADDR 0x01380000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 312, JMP_GLBL: 0 294 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d6:Addr0: 214t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 295 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 300 IGN_UNC 3:FC_ADDR 0x012c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 300, JMP_GLBL: 0 296 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00930484:rgb_A_src:0 G/0/0 0 rgb_B_src:0 1/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 297 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08000002:Addr0: 2t, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020102:Addr0: 2c, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00902488:rgb_A_src:0 B/0/0 0 rgb_B_src:1 R/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0048c000:MAD dest:0 rgb_C_src:0 A/0/0 0 alp_C_src:0 R 0 298 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 299 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 311 3:FC_ADDR 0x01370000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 311, JMP_GLBL: 0 300 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d7:Addr0: 215t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c010:MAD dest:1 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 301 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x1a000f00:0x0f 0 JUMP NONE INCR INCR 0 0 305 IGN_UNC 3:FC_ADDR 0x01310000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 305, JMP_GLBL: 0 302 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0xc8040802:Addr0: 2t, Addr1: 2c, Addr2: 128t, srcp:3 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00916485:rgb_A_src:1 G/0/0 0 rgb_B_src:3 B/0/0 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 303 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0090:rgb_A_src:0 0/0/R 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 304 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x04010010:0x00 0 JUMP NONE NONE DECR 1 1 310 3:FC_ADDR 0x01360000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 310, JMP_GLBL: 0 305 0:CMN_INST 0x00000000:ALU wmask: NONE omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x080000d8:Addr0: 216t, Addr1: 0t, Addr2: 128t, srcp:0 3 RGB_INST: 0x80db048d:rgb_A_src:1 A/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00c8c000:MAD dest:0 rgb_C_src:0 A/0/0 1 alp_C_src:0 R 0 306 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x12000f00:0x0f 0 JUMP NONE INCR NONE 0 0 309 IGN_UNC 3:FC_ADDR 0x01350000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 309, JMP_GLBL: 0 307 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0490:rgb_A_src:0 0/0/0 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00490030:MAD dest:3 rgb_C_src:0 0/0/0 0 alp_C_src:0 R 0 308 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 309 3:FC_ADDR 0x01350000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 309, JMP_GLBL: 0 309 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 310 3:FC_ADDR 0x01360000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 310, JMP_GLBL: 0 310 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 311 3:FC_ADDR 0x01370000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 311, JMP_GLBL: 0 311 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 312 3:FC_ADDR 0x01380000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 312, JMP_GLBL: 0 312 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 313 3:FC_ADDR 0x01390000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 313, JMP_GLBL: 0 313 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 314 3:FC_ADDR 0x013a0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 314, JMP_GLBL: 0 314 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 315 3:FC_ADDR 0x013b0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 315, JMP_GLBL: 0 315 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 316 3:FC_ADDR 0x013c0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 316, JMP_GLBL: 0 316 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 317 3:FC_ADDR 0x013d0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 317, JMP_GLBL: 0 317 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 318 3:FC_ADDR 0x013e0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 318, JMP_GLBL: 0 318 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 319 3:FC_ADDR 0x013f0000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 319, JMP_GLBL: 0 319 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 320 3:FC_ADDR 0x01400000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 320, JMP_GLBL: 0 320 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 321 3:FC_ADDR 0x01410000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 321, JMP_GLBL: 0 321 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 322 3:FC_ADDR 0x01420000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 322, JMP_GLBL: 0 322 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 323 3:FC_ADDR 0x01430000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 323, JMP_GLBL: 0 323 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 324 3:FC_ADDR 0x01440000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 324, JMP_GLBL: 0 324 0:CMN_INST 0x00000402:FC ALU WAIT wmask: NONE omask: NONE 2:FC_INST 0x01010020:0x00 1 JUMP NONE DECR NONE 1 0 325 3:FC_ADDR 0x01450000:BOOL: 0x00, INT: 0x00, JUMP_ADDR: 325, JMP_GLBL: 0 325 0:CMN_INST 0x00007800:ALU wmask: ARGB omask: NONE 1:RGB_ADDR 0x08020003:Addr0: 3t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x004405b4:rgb_A_src:0 H/H/H 0 rgb_B_src:0 R/G/B 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x205b4000:MAD dest:0 rgb_C_src:0 H/H/H 0 alp_C_src:0 0 0 326 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], PSIZE DCL OUT[2], GENERIC[9] DCL CONST[0..3] DCL TEMP[0], LOCAL IMM[0] FLT32 { 1.0000, 0.0000, 0.0000, 0.0000} 0: MUL TEMP[0], CONST[0], IN[1].xxxx 1: MAD TEMP[0], CONST[1], IN[1].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[2], IN[1].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[0] 4: MOV OUT[1], IMM[0].xxxx 5: MOV OUT[0], TEMP[0] 6: MOV OUT[2], IN[0] 7: END Vertex Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], temp[0].1111; 5: MOV temp[1], temp[0]; 6: MOV output[2], input[0]; 7: MOV output[0], temp[1]; 8: MOV output[3], temp[1]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0], const[0], input[1].xxxx; 1: MAD temp[0], const[1], input[1].yyyy, temp[0]; 2: MAD temp[0], const[2], input[1].zzzz, temp[0]; 3: MAD temp[0], const[3], input[1].wwww, temp[0]; 4: MOV output[1], none.1111; 5: MOV output[2], input[0]; 6: MOV output[0], temp[0]; 7: MOV output[3], temp[0]; Final vertex program code: 0: op: 0x00f00002 dst: 0t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 1: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 2: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 3: op: 0x00f00004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W 4: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x016da000 reg: 0t swiz: 1/ 1/ 1/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10001 reg: 0i swiz: X/ Y/ Z/ W src1: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 6: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 7: op: 0x00f06203 dst: 3o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x00000000 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], PERSPECTIVE DCL OUT[0], COLOR DCL TEMP[0..2], LOCAL IMM[0] FLT32 { 1.0000, 0.5000, 6.2832, 0.0000} 0: MOV TEMP[0].w, IMM[0].xxxx 1: MUL TEMP[1].xyz, IMM[0].zzzz, IN[0].xyzz 2: SIN TEMP[2].x, TEMP[1].xxxx 3: SIN TEMP[2].y, TEMP[1].yyyy 4: SIN TEMP[2].z, TEMP[1].zzzz 5: MAD TEMP[0].xyz, IMM[0].yyyy, TEMP[2].xyzz, IMM[0].yyyy 6: MOV OUT[0], TEMP[0] 7: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'rewrite depth out' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'transform KILP' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'unroll loops' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'transform TEX' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'transform IF' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: SIN temp[2].x, temp[1].xxxx; 3: SIN temp[2].y, temp[1].yyyy; 4: SIN temp[2].z, temp[1].zzzz; 5: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 6: MOV output[0], temp[0]; Fragment Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0].w, const[0].xxxx; 1: MUL temp[1].xyz, const[0].zzzz, input[0].xyzz; 2: MUL temp[3].w, temp[1].xxxx, const[1].xxxx; 3: FRC temp[3].w, temp[3]; 4: SIN temp[2].x, temp[3].wwww; 5: MUL temp[4].w, temp[1].yyyy, const[1].xxxx; 6: FRC temp[4].w, temp[4]; 7: SIN temp[2].y, temp[4].wwww; 8: MUL temp[5].w, temp[1].zzzz, const[1].xxxx; 9: FRC temp[5].w, temp[5]; 10: SIN temp[2].z, temp[5].wwww; 11: MAD temp[0].xyz, const[0].yyyy, temp[2].xyzz, const[0].yyyy; 12: MOV output[0], temp[0]; Fragment Program: after 'deadcode' # Radeon Compiler Program 0: MOV temp[0].w, const[0].___x; 1: MUL temp[1].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[3].w, temp[1].___x, const[1].___x; 3: FRC temp[3].w, temp[3].___w; 4: SIN temp[2].x, temp[3].w___; 5: MUL temp[4].w, temp[1].___y, const[1].___x; 6: FRC temp[4].w, temp[4].___w; 7: SIN temp[2].y, temp[4]._w__; 8: MUL temp[5].w, temp[1].___z, const[1].___x; 9: FRC temp[5].w, temp[5].___w; 10: SIN temp[2].z, temp[5].__w_; 11: MAD temp[0].xyz, const[0].yyy_, temp[2].xyz_, const[0].yyy_; 12: MOV output[0], temp[0]; Fragment Program: after 'register rename' # Radeon Compiler Program 0: MOV temp[6].w, const[0].___x; 1: MUL temp[7].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[8].w, temp[7].___x, const[1].___x; 3: FRC temp[9].w, temp[8].___w; 4: SIN temp[10].x, temp[9].w___; 5: MUL temp[11].w, temp[7].___y, const[1].___x; 6: FRC temp[12].w, temp[11].___w; 7: SIN temp[10].y, temp[12]._w__; 8: MUL temp[13].w, temp[7].___z, const[1].___x; 9: FRC temp[14].w, temp[13].___w; 10: SIN temp[10].z, temp[14].__w_; 11: MAD temp[6].xyz, const[0].yyy_, temp[10].xyz_, const[0].yyy_; 12: MOV output[0], temp[6]; Fragment Program: after 'dataflow optimize' # Radeon Compiler Program 0: MOV temp[6].w, none.___1; 1: MUL temp[7].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[8].w, temp[7].___x, const[1].___x; 3: FRC temp[9].w, temp[8].___w; 4: SIN temp[10].x, temp[9].w___; 5: MUL temp[11].w, temp[7].___y, const[1].___x; 6: FRC temp[12].w, temp[11].___w; 7: SIN temp[10].y, temp[12]._w__; 8: MUL temp[13].w, temp[7].___z, const[1].___x; 9: FRC temp[14].w, temp[13].___w; 10: SIN temp[10].z, temp[14].__w_; 11: MAD temp[6].xyz, none.HHH_, temp[10].xyz_, none.HHH_; 12: MOV output[0], temp[6]; Fragment Program: after 'inline literals' # Radeon Compiler Program 0: MOV temp[6].w, none.___1; 1: MUL temp[7].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[8].w, temp[7].___x, const[1].___x; 3: FRC temp[9].w, temp[8].___w; 4: SIN temp[10].x, temp[9].w___; 5: MUL temp[11].w, temp[7].___y, const[1].___x; 6: FRC temp[12].w, temp[11].___w; 7: SIN temp[10].y, temp[12]._w__; 8: MUL temp[13].w, temp[7].___z, const[1].___x; 9: FRC temp[14].w, temp[13].___w; 10: SIN temp[10].z, temp[14].__w_; 11: MAD temp[6].xyz, none.HHH_, temp[10].xyz_, none.HHH_; 12: MOV output[0], temp[6]; CONST[0] = { 1.0000 0.5000 6.2832 0.0000 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dataflow swizzles' # Radeon Compiler Program 0: MOV temp[6].w, none.___1; 1: MUL temp[7].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[8].w, temp[7].___x, const[1].___x; 3: FRC temp[9].w, temp[8].___w; 4: SIN temp[10].x, temp[9].w___; 5: MUL temp[11].w, temp[7].___y, const[1].___x; 6: FRC temp[12].w, temp[11].___w; 7: SIN temp[10].y, temp[12]._w__; 8: MUL temp[13].w, temp[7].___z, const[1].___x; 9: FRC temp[14].w, temp[13].___w; 10: SIN temp[10].z, temp[14].__w_; 11: MAD temp[6].xyz, none.HHH_, temp[10].xyz_, none.HHH_; 12: MOV output[0], temp[6]; CONST[0] = { 1.0000 0.5000 6.2832 0.0000 } CONST[1] = { 0.1592 0.0000 0.0000 0.0000 } Fragment Program: after 'dead constants' # Radeon Compiler Program 0: MOV temp[6].w, none.___1; 1: MUL temp[7].xyz, const[0].zzz_, input[0].xyz_; 2: MUL temp[8].w, temp[7].___x, const[1].___x; 3: FRC temp[9].w, temp[8].___w; 4: SIN temp[10].x, temp[9].w___; 5: MUL temp[11].w, temp[7].___y, const[1].___x; 6: FRC temp[12].w, temp[11].___w; 7: SIN temp[10].y, temp[12]._w__; 8: MUL temp[13].w, temp[7].___z, const[1].___x; 9: FRC temp[14].w, temp[13].___w; 10: SIN temp[10].z, temp[14].__w_; 11: MAD temp[6].xyz, none.HHH_, temp[10].xyz_, none.HHH_; 12: MOV output[0], temp[6]; Fragment Program: after 'pair translate' # Radeon Compiler Program 0: MAD temp[6].w, src0.1, src0.1, src0.0 1: src0.xyz = const[0], src1.xyz = input[0] MAD temp[7].xyz, src0.zzz, src1.xyz, src0.000 2: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[8].w, src0.x, src1.x, src0.0 3: src0.w = temp[8] FRC temp[9].w, src0.w 4: src0.w = temp[9] REPL_ALPHA temp[10].x SIN, src0.w 5: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[11].w, src0.y, src1.x, src0.0 6: src0.w = temp[11] FRC temp[12].w, src0.w 7: src0.w = temp[12] REPL_ALPHA temp[10].y SIN, src0.w 8: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[13].w, src0.z, src1.x, src0.0 9: src0.w = temp[13] FRC temp[14].w, src0.w 10: src0.w = temp[14] REPL_ALPHA temp[10].z SIN, src0.w 11: src0.xyz = temp[10] MAD temp[6].xyz, src0.HHH, src0.xyz, src0.HHH 12: 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: src0.xyz = const[0], src1.xyz = input[0] MAD temp[7].xyz, src0.zzz, src1.xyz, src0.000 MAD temp[6].w, src0.1, src0.1, src0.0 1: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[11].w, src0.y, src1.x, src0.0 2: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[13].w, src0.z, src1.x, src0.0 3: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[8].w, src0.x, src1.x, src0.0 4: src0.w = temp[11] FRC temp[12].w, src0.w 5: src0.w = temp[12] REPL_ALPHA temp[10].y SIN, src0.w 6: src0.w = temp[13] FRC temp[14].w, src0.w 7: src0.w = temp[14] REPL_ALPHA temp[10].z SIN, src0.w 8: src0.w = temp[8] FRC temp[9].w, src0.w 9: src0.w = temp[9] REPL_ALPHA temp[10].x SIN, src0.w 10: src0.xyz = temp[10] MAD temp[6].xyz, src0.HHH, src0.xyz, src0.HHH 11: 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 'dead sources' # Radeon Compiler Program 0: src0.xyz = const[0], src1.xyz = input[0] MAD temp[7].xyz, src0.zzz, src1.xyz, src0.000 MAD temp[6].w, src0.1, src0.1, src0.0 1: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[11].w, src0.y, src1.x, src0.0 2: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[13].w, src0.z, src1.x, src0.0 3: src0.xyz = temp[7], src1.xyz = const[1] MAD temp[8].w, src0.x, src1.x, src0.0 4: src0.w = temp[11] FRC temp[12].w, src0.w 5: src0.w = temp[12] REPL_ALPHA temp[10].y SIN, src0.w 6: src0.w = temp[13] FRC temp[14].w, src0.w 7: src0.w = temp[14] REPL_ALPHA temp[10].z SIN, src0.w 8: src0.w = temp[8] FRC temp[9].w, src0.w 9: src0.w = temp[9] REPL_ALPHA temp[10].x SIN, src0.w 10: src0.xyz = temp[10] MAD temp[6].xyz, src0.HHH, src0.xyz, src0.HHH 11: 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: src0.xyz = const[0], src1.xyz = input[0] MAD temp[0].xyz, src0.zzz, src1.xyz, src0.000 MAD temp[0].w, src0.1, src0.1, src0.0 1: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[1].w, src0.y, src1.x, src0.0 2: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[2].w, src0.z, src1.x, src0.0 3: src0.xyz = temp[0], src1.xyz = const[1] MAD temp[3].w, src0.x, src1.x, src0.0 4: src0.w = temp[1] FRC temp[1].w, src0.w 5: src0.w = temp[1] REPL_ALPHA temp[0].y SIN, src0.w 6: src0.w = temp[2] FRC temp[1].w, src0.w 7: src0.w = temp[1] REPL_ALPHA temp[0].z SIN, src0.w 8: src0.w = temp[3] FRC temp[1].w, src0.w 9: src0.w = temp[1] REPL_ALPHA temp[0].x SIN, src0.w 10: src0.xyz = temp[0] MAD temp[0].xyz, src0.HHH, src0.xyz, src0.HHH 11: 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00007800:ALU wmask: ARGB omask: NONE 1:RGB_ADDR 0x08000100:Addr0: 0c, Addr1: 0t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00442248:rgb_A_src:0 B/B/B 0 rgb_B_src:1 R/G/B 0 targ: 0 4 ALPHA_INST:0x00c18000:MAD dest:0 alp_A_src:0 1 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 1 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00084010:MAD dest:1 alp_A_src:0 G 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 2 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00088020:MAD dest:2 alp_A_src:0 B 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 3 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08040400:Addr0: 0t, Addr1: 1c, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x00080030:MAD dest:3 alp_A_src:0 R 0 alp_B_src:1 R 0 targ 0 w:0 5 RGBA_INST: 0x20000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 0 0 4 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 5 0:CMN_INST 0x00001000:ALU wmask: G omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 6 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020002:Addr0: 2t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 7 0:CMN_INST 0x00002000:ALU wmask: B omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 8 0:CMN_INST 0x00004000:ALU wmask: A omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020003:Addr0: 3t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c017:FRC dest:1 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x00000000:MAD dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 9 0:CMN_INST 0x00000800:ALU wmask: R omask: NONE 1:RGB_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020001:Addr0: 1t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00000000:rgb_A_src:0 R/R/R 0 rgb_B_src:0 R/R/R 0 targ: 0 4 ALPHA_INST:0x0000c00c:SIN dest:0 alp_A_src:0 A 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x0000000a:SOP dest:0 rgb_C_src:0 R/R/R 0 alp_C_src:0 R 0 10 0:CMN_INST 0x00003800:ALU wmask: RGB omask: NONE 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020080:Addr0: 128t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x004405b4:rgb_A_src:0 H/H/H 0 rgb_B_src:0 R/G/B 0 targ: 0 4 ALPHA_INST:0x00000000:MAD dest:0 alp_A_src:0 R 0 alp_B_src:0 R 0 targ 0 w:0 5 RGBA_INST: 0x005b4000:MAD dest:0 rgb_C_src:0 H/H/H 0 alp_C_src:0 R 0 11 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0 r300: Initial vertex program VERT DCL IN[0] DCL IN[1] DCL OUT[0], POSITION DCL OUT[1], GENERIC[9] DCL CONST[0..3] DCL TEMP[0..14], LOCAL IMM[0] FLT32 { 0.0000, 6.2832, 1.0000, 12.0000} IMM[1] FLT32 { 2.0000, 23.0000, 0.5000, 0.0000} 0: MOV TEMP[0], IMM[0].xxxx 1: MUL TEMP[1].x, IMM[0].yyyy, IN[0].xxxx 2: MOV TEMP[2].x, IMM[0].zzzz 3: MOV TEMP[3].x, IMM[0].xxxx 4: MOV TEMP[4].x, IMM[0].xxxx 5: BGNLOOP :0 6: SGE TEMP[5].x, TEMP[4].xxxx, IMM[0].wwww 7: IF TEMP[5].xxxx :0 8: BRK 9: ENDIF 10: MOV TEMP[6].x, IMM[0].zzzz 11: MOV TEMP[7].x, IMM[1].xxxx 12: BGNLOOP :0 13: SLT TEMP[8].x, IMM[1].yyyy, TEMP[7].xxxx 14: IF TEMP[8].xxxx :0 15: BRK 16: ENDIF 17: MAD TEMP[9].x, IMM[1].xxxx, TEMP[4].xxxx, IMM[0].zzzz 18: SGE TEMP[10].x, TEMP[9].xxxx, TEMP[7].xxxx 19: IF TEMP[10].xxxx :0 20: MUL TEMP[6].x, TEMP[6].xxxx, TEMP[7].xxxx 21: ENDIF 22: ADD TEMP[7].x, TEMP[7].xxxx, IMM[0].zzzz 23: ENDLOOP :0 24: MAD TEMP[11].x, IMM[1].xxxx, TEMP[4].xxxx, IMM[0].zzzz 25: POW TEMP[12].x, TEMP[1].xxxx, TEMP[11].xxxx 26: MUL TEMP[13].x, TEMP[2].xxxx, TEMP[12].xxxx 27: RCP TEMP[14].x, TEMP[6].xxxx 28: MAD TEMP[3].x, TEMP[13].xxxx, TEMP[14].xxxx, TEMP[3].xxxx 29: MOV TEMP[2].x, -TEMP[2].xxxx 30: ADD TEMP[4].x, TEMP[4].xxxx, IMM[0].zzzz 31: ENDLOOP :0 32: MOV TEMP[1].yzw, IMM[0].xxxz 33: MAD TEMP[1].x, IMM[1].zzzz, TEMP[3].xxxx, IMM[1].zzzz 34: MUL TEMP[2], CONST[0], IN[1].xxxx 35: MAD TEMP[2], CONST[1], IN[1].yyyy, TEMP[2] 36: MAD TEMP[2], CONST[2], IN[1].zzzz, TEMP[2] 37: MAD TEMP[0], CONST[3], IN[1].wwww, TEMP[2] 38: MOV OUT[0], TEMP[0] 39: MOV OUT[1], TEMP[1] 40: END Vertex Program: before compilation # Radeon Compiler Program 0: MOV temp[0], const[4].xxxx; 1: MUL temp[1].x, const[4].yyyy, input[0].xxxx; 2: MOV temp[2].x, const[4].zzzz; 3: MOV temp[3].x, const[4].xxxx; 4: MOV temp[4].x, const[4].xxxx; 5: BGNLOOP; 6: SGE temp[5].x, temp[4].xxxx, const[4].wwww; 7: IF temp[5].xxxx; 8: BRK; 9: ENDIF; 10: MOV temp[6].x, const[4].zzzz; 11: MOV temp[7].x, const[5].xxxx; 12: BGNLOOP; 13: SLT temp[8].x, const[5].yyyy, temp[7].xxxx; 14: IF temp[8].xxxx; 15: BRK; 16: ENDIF; 17: MAD temp[9].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 18: SGE temp[10].x, temp[9].xxxx, temp[7].xxxx; 19: IF temp[10].xxxx; 20: MUL temp[6].x, temp[6].xxxx, temp[7].xxxx; 21: ENDIF; 22: ADD temp[7].x, temp[7].xxxx, const[4].zzzz; 23: ENDLOOP; 24: MAD temp[11].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 25: POW temp[12].x, temp[1].xxxx, temp[11].xxxx; 26: MUL temp[13].x, temp[2].xxxx, temp[12].xxxx; 27: RCP temp[14].x, temp[6].xxxx; 28: MAD temp[3].x, temp[13].xxxx, temp[14].xxxx, temp[3].xxxx; 29: MOV temp[2].x, -temp[2].xxxx; 30: ADD temp[4].x, temp[4].xxxx, const[4].zzzz; 31: ENDLOOP; 32: MOV temp[1].yzw, const[4].xxxz; 33: MAD temp[1].x, const[5].zzzz, temp[3].xxxx, const[5].zzzz; 34: MUL temp[2], const[0], input[1].xxxx; 35: MAD temp[2], const[1], input[1].yyyy, temp[2]; 36: MAD temp[2], const[2], input[1].zzzz, temp[2]; 37: MAD temp[0], const[3], input[1].wwww, temp[2]; 38: MOV temp[15], temp[0]; 39: MOV output[1], temp[1]; 40: MOV output[0], temp[15]; 41: MOV output[2], temp[15]; Vertex Program: after 'emulate negative addressing' # Radeon Compiler Program 0: MOV temp[0], const[4].xxxx; 1: MUL temp[1].x, const[4].yyyy, input[0].xxxx; 2: MOV temp[2].x, const[4].zzzz; 3: MOV temp[3].x, const[4].xxxx; 4: MOV temp[4].x, const[4].xxxx; 5: BGNLOOP; 6: SGE temp[5].x, temp[4].xxxx, const[4].wwww; 7: IF temp[5].xxxx; 8: BRK; 9: ENDIF; 10: MOV temp[6].x, const[4].zzzz; 11: MOV temp[7].x, const[5].xxxx; 12: BGNLOOP; 13: SLT temp[8].x, const[5].yyyy, temp[7].xxxx; 14: IF temp[8].xxxx; 15: BRK; 16: ENDIF; 17: MAD temp[9].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 18: SGE temp[10].x, temp[9].xxxx, temp[7].xxxx; 19: IF temp[10].xxxx; 20: MUL temp[6].x, temp[6].xxxx, temp[7].xxxx; 21: ENDIF; 22: ADD temp[7].x, temp[7].xxxx, const[4].zzzz; 23: ENDLOOP; 24: MAD temp[11].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 25: POW temp[12].x, temp[1].xxxx, temp[11].xxxx; 26: MUL temp[13].x, temp[2].xxxx, temp[12].xxxx; 27: RCP temp[14].x, temp[6].xxxx; 28: MAD temp[3].x, temp[13].xxxx, temp[14].xxxx, temp[3].xxxx; 29: MOV temp[2].x, -temp[2].xxxx; 30: ADD temp[4].x, temp[4].xxxx, const[4].zzzz; 31: ENDLOOP; 32: MOV temp[1].yzw, const[4].xxxz; 33: MAD temp[1].x, const[5].zzzz, temp[3].xxxx, const[5].zzzz; 34: MUL temp[2], const[0], input[1].xxxx; 35: MAD temp[2], const[1], input[1].yyyy, temp[2]; 36: MAD temp[2], const[2], input[1].zzzz, temp[2]; 37: MAD temp[0], const[3], input[1].wwww, temp[2]; 38: MOV temp[15], temp[0]; 39: MOV output[1], temp[1]; 40: MOV output[0], temp[15]; 41: MOV output[2], temp[15]; Vertex Program: after 'native rewrite' # Radeon Compiler Program 0: MOV temp[0], const[4].xxxx; 1: MUL temp[1].x, const[4].yyyy, input[0].xxxx; 2: MOV temp[2].x, const[4].zzzz; 3: MOV temp[3].x, const[4].xxxx; 4: MOV temp[4].x, const[4].xxxx; 5: BGNLOOP; 6: SGE temp[5].x, temp[4].xxxx, const[4].wwww; 7: IF temp[5].xxxx; 8: BRK; 9: ENDIF; 10: MOV temp[6].x, const[4].zzzz; 11: MOV temp[7].x, const[5].xxxx; 12: BGNLOOP; 13: SLT temp[8].x, const[5].yyyy, temp[7].xxxx; 14: IF temp[8].xxxx; 15: BRK; 16: ENDIF; 17: MAD temp[9].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 18: SGE temp[10].x, temp[9].xxxx, temp[7].xxxx; 19: IF temp[10].xxxx; 20: MUL temp[6].x, temp[6].xxxx, temp[7].xxxx; 21: ENDIF; 22: ADD temp[7].x, temp[7].xxxx, const[4].zzzz; 23: ENDLOOP; 24: MAD temp[11].x, const[5].xxxx, temp[4].xxxx, const[4].zzzz; 25: POW temp[12].x, temp[1].xxxx, temp[11].xxxx; 26: MUL temp[13].x, temp[2].xxxx, temp[12].xxxx; 27: RCP temp[14].x, temp[6].xxxx; 28: MAD temp[3].x, temp[13].xxxx, temp[14].xxxx, temp[3].xxxx; 29: MOV temp[2].x, -temp[2].xxxx; 30: ADD temp[4].x, temp[4].xxxx, const[4].zzzz; 31: ENDLOOP; 32: MOV temp[1].yzw, const[4].xxxz; 33: MAD temp[1].x, const[5].zzzz, temp[3].xxxx, const[5].zzzz; 34: MUL temp[2], const[0], input[1].xxxx; 35: MAD temp[2], const[1], input[1].yyyy, temp[2]; 36: MAD temp[2], const[2], input[1].zzzz, temp[2]; 37: MAD temp[0], const[3], input[1].wwww, temp[2]; 38: MOV temp[15], temp[0]; 39: MOV output[1], temp[1]; 40: MOV output[0], temp[15]; 41: MOV output[2], temp[15]; Vertex Program: after 'deadcode' # Radeon Compiler Program 0: MUL temp[1].x, const[4].y___, input[0].x___; 1: MOV temp[2].x, const[4].z___; 2: MOV temp[3].x, const[4].x___; 3: MOV temp[4].x, const[4].x___; 4: BGNLOOP; 5: SGE temp[5].x, temp[4].x___, const[4].w___; 6: IF temp[5].x___; 7: BRK; 8: ENDIF; 9: MOV temp[6].x, const[4].z___; 10: MOV temp[7].x, const[5].x___; 11: BGNLOOP; 12: SLT temp[8].x, const[5].y___, temp[7].x___; 13: IF temp[8].x___; 14: BRK; 15: ENDIF; 16: MAD temp[9].x, const[5].x___, temp[4].x___, const[4].z___; 17: SGE temp[10].x, temp[9].x___, temp[7].x___; 18: IF temp[10].x___; 19: MUL temp[6].x, temp[6].x___, temp[7].x___; 20: ENDIF; 21: ADD temp[7].x, temp[7].x___, const[4].z___; 22: ENDLOOP; 23: MAD temp[11].x, const[5].x___, temp[4].x___, const[4].z___; 24: POW temp[12].x, temp[1].x___, temp[11].x___; 25: MUL temp[13].x, temp[2].x___, temp[12].x___; 26: RCP temp[14].x, temp[6].x___; 27: MAD temp[3].x, temp[13].x___, temp[14].x___, temp[3].x___; 28: MOV temp[2].x, -temp[2].x___; 29: ADD temp[4].x, temp[4].x___, const[4].z___; 30: ENDLOOP; 31: MOV temp[1].yzw, const[4]._xxz; 32: MAD temp[1].x, const[5].z___, temp[3].x___, const[5].z___; 33: MUL temp[2], const[0], input[1].xxxx; 34: MAD temp[2], const[1], input[1].yyyy, temp[2]; 35: MAD temp[2], const[2], input[1].zzzz, temp[2]; 36: MAD temp[0], const[3], input[1].wwww, temp[2]; 37: MOV temp[15], temp[0]; 38: MOV output[1], temp[1]; 39: MOV output[0], temp[15]; 40: MOV output[2], temp[15]; Vertex Program: after 'dataflow optimize' # Radeon Compiler Program 0: MUL temp[1].x, const[4].y___, input[0].x___; 1: MOV temp[2].x, none.1___; 2: MOV temp[3].x, none.0___; 3: MOV temp[4].x, none.0___; 4: BGNLOOP; 5: SGE temp[5].x, temp[4].x___, const[4].w___; 6: IF temp[5].x___; 7: BRK; 8: ENDIF; 9: MOV temp[6].x, none.1___; 10: MOV temp[7].x, const[5].x___; 11: BGNLOOP; 12: SLT temp[8].x, const[5].y___, temp[7].x___; 13: IF temp[8].x___; 14: BRK; 15: ENDIF; 16: MAD temp[9].x, const[5].x___, temp[4].x___, none.1___; 17: SGE temp[10].x, temp[9].x___, temp[7].x___; 18: IF temp[10].x___; 19: MUL temp[6].x, temp[6].x___, temp[7].x___; 20: ENDIF; 21: ADD temp[7].x, temp[7].x___, none.1___; 22: ENDLOOP; 23: MAD temp[11].x, const[5].x___, temp[4].x___, none.1___; 24: POW temp[12].x, temp[1].x___, temp[11].x___; 25: MUL temp[13].x, temp[2].x___, temp[12].x___; 26: RCP temp[14].x, temp[6].x___; 27: MAD temp[3].x, temp[13].x___, temp[14].x___, temp[3].x___; 28: MOV temp[2].x, -temp[2].x___; 29: ADD temp[4].x, temp[4].x___, none.1___; 30: ENDLOOP; 31: MOV temp[1].yzw, none._001; 32: MAD temp[1].x, const[5].z___, temp[3].x___, const[5].z___; 33: MUL temp[2], const[0], input[1].xxxx; 34: MAD temp[2], const[1], input[1].yyyy, temp[2]; 35: MAD temp[2], const[2], input[1].zzzz, temp[2]; 36: MAD temp[0], const[3], input[1].wwww, temp[2]; 37: MOV output[1], temp[1]; 38: MOV output[0], temp[0]; 39: MOV output[2], temp[0]; Vertex Program: after 'source conflict resolve' # Radeon Compiler Program 0: MUL temp[1].x, const[4].y___, input[0].x___; 1: MOV temp[2].x, none.1___; 2: MOV temp[3].x, none.0___; 3: MOV temp[4].x, none.0___; 4: BGNLOOP; 5: SGE temp[5].x, temp[4].x___, const[4].w___; 6: IF temp[5].x___; 7: BRK; 8: ENDIF; 9: MOV temp[6].x, none.1___; 10: MOV temp[7].x, const[5].x___; 11: BGNLOOP; 12: SLT temp[8].x, const[5].y___, temp[7].x___; 13: IF temp[8].x___; 14: BRK; 15: ENDIF; 16: MAD temp[9].x, const[5].x___, temp[4].x___, none.1___; 17: SGE temp[10].x, temp[9].x___, temp[7].x___; 18: IF temp[10].x___; 19: MUL temp[6].x, temp[6].x___, temp[7].x___; 20: ENDIF; 21: ADD temp[7].x, temp[7].x___, none.1___; 22: ENDLOOP; 23: MAD temp[11].x, const[5].x___, temp[4].x___, none.1___; 24: POW temp[12].x, temp[1].x___, temp[11].x___; 25: MUL temp[13].x, temp[2].x___, temp[12].x___; 26: RCP temp[14].x, temp[6].x___; 27: MAD temp[3].x, temp[13].x___, temp[14].x___, temp[3].x___; 28: MOV temp[2].x, -temp[2].x___; 29: ADD temp[4].x, temp[4].x___, none.1___; 30: ENDLOOP; 31: MOV temp[1].yzw, none._001; 32: MAD temp[1].x, const[5].z___, temp[3].x___, const[5].z___; 33: MUL temp[2], const[0], input[1].xxxx; 34: MAD temp[2], const[1], input[1].yyyy, temp[2]; 35: MAD temp[2], const[2], input[1].zzzz, temp[2]; 36: MAD temp[0], const[3], input[1].wwww, temp[2]; 37: MOV output[1], temp[1]; 38: MOV output[0], temp[0]; 39: MOV output[2], temp[0]; Vertex Program: after 'register allocation' # Radeon Compiler Program 0: MUL temp[0].x, const[4].y___, input[0].x___; 1: MOV temp[1].x, none.1___; 2: MOV temp[2].x, none.0___; 3: MOV temp[3].x, none.0___; 4: BGNLOOP; 5: SGE temp[4].x, temp[3].x___, const[4].w___; 6: IF temp[4].x___; 7: BRK; 8: ENDIF; 9: MOV temp[5].x, none.1___; 10: MOV temp[6].x, const[5].x___; 11: BGNLOOP; 12: SLT temp[7].x, const[5].y___, temp[6].x___; 13: IF temp[7].x___; 14: BRK; 15: ENDIF; 16: MAD temp[8].x, const[5].x___, temp[3].x___, none.1___; 17: SGE temp[9].x, temp[8].x___, temp[6].x___; 18: IF temp[9].x___; 19: MUL temp[5].x, temp[5].x___, temp[6].x___; 20: ENDIF; 21: ADD temp[6].x, temp[6].x___, none.1___; 22: ENDLOOP; 23: MAD temp[10].x, const[5].x___, temp[3].x___, none.1___; 24: POW temp[11].x, temp[0].x___, temp[10].x___; 25: MUL temp[12].x, temp[1].x___, temp[11].x___; 26: RCP temp[13].x, temp[5].x___; 27: MAD temp[2].x, temp[12].x___, temp[13].x___, temp[2].x___; 28: MOV temp[1].x, -temp[1].x___; 29: ADD temp[3].x, temp[3].x___, none.1___; 30: ENDLOOP; 31: MOV temp[0].yzw, none._001; 32: MAD temp[0].x, const[5].z___, temp[2].x___, const[5].z___; 33: MUL temp[1], const[0], input[1].xxxx; 34: MAD temp[1], const[1], input[1].yyyy, temp[1]; 35: MAD temp[1], const[2], input[1].zzzz, temp[1]; 36: MAD temp[1], const[3], input[1].wwww, temp[1]; 37: MOV output[1], temp[0]; 38: MOV output[0], temp[1]; 39: MOV output[2], temp[1]; CONST[4] = { 0.0000 6.2832 1.0000 12.0000 } CONST[5] = { 2.0000 23.0000 0.5000 0.0000 } Vertex Program: after 'dead constants' # Radeon Compiler Program 0: MUL temp[0].x, const[4].y___, input[0].x___; 1: MOV temp[1].x, none.1___; 2: MOV temp[2].x, none.0___; 3: MOV temp[3].x, none.0___; 4: BGNLOOP; 5: SGE temp[4].x, temp[3].x___, const[4].w___; 6: IF temp[4].x___; 7: BRK; 8: ENDIF; 9: MOV temp[5].x, none.1___; 10: MOV temp[6].x, const[5].x___; 11: BGNLOOP; 12: SLT temp[7].x, const[5].y___, temp[6].x___; 13: IF temp[7].x___; 14: BRK; 15: ENDIF; 16: MAD temp[8].x, const[5].x___, temp[3].x___, none.1___; 17: SGE temp[9].x, temp[8].x___, temp[6].x___; 18: IF temp[9].x___; 19: MUL temp[5].x, temp[5].x___, temp[6].x___; 20: ENDIF; 21: ADD temp[6].x, temp[6].x___, none.1___; 22: ENDLOOP; 23: MAD temp[10].x, const[5].x___, temp[3].x___, none.1___; 24: POW temp[11].x, temp[0].x___, temp[10].x___; 25: MUL temp[12].x, temp[1].x___, temp[11].x___; 26: RCP temp[13].x, temp[5].x___; 27: MAD temp[2].x, temp[12].x___, temp[13].x___, temp[2].x___; 28: MOV temp[1].x, -temp[1].x___; 29: ADD temp[3].x, temp[3].x___, none.1___; 30: ENDLOOP; 31: MOV temp[0].yzw, none._001; 32: MAD temp[0].x, const[5].z___, temp[2].x___, const[5].z___; 33: MUL temp[1], const[0], input[1].xxxx; 34: MAD temp[1], const[1], input[1].yyyy, temp[1]; 35: MAD temp[1], const[2], input[1].zzzz, temp[1]; 36: MAD temp[1], const[3], input[1].wwww, temp[1]; 37: MOV output[1], temp[0]; 38: MOV output[0], temp[1]; 39: MOV output[2], temp[1]; Vertex Program: after 'lower control flow opcodes' # Radeon Compiler Program 0: MUL temp[0].x, const[4].y___, input[0].x___; 1: MOV temp[1].x, none.1___; 2: MOV temp[2].x, none.0___; 3: MOV temp[3].x, none.0___; 4: ME_PRED_SEQ temp[14].w, none.0000; 5: BGNLOOP; 6: SGE temp[4].x, temp[3].x___, const[4].w___; PRED_SET 7: ME_PRED_SEQ temp[14].w, temp[4].x___; PRED_SET 8: RCP temp[14].w, none.0000; PRED_INV 9: MOV temp[5].x, none.1___; PRED_SET 10: MOV temp[6].x, const[5].x___; PRED_SET 11: ADD temp[15].w, temp[14].___w, none.0000; 12: BGNLOOP; 13: SLT temp[7].x, const[5].y___, temp[6].x___; PRED_SET 14: VE_PRED_SNEQ_PUSH temp[15].w, temp[15].___w, temp[7].___x; 15: ME_PRED_SET_CLEAR temp[15].w, none.xxxx; PRED_SET 16: ME_PRED_SET_POP temp[15].w, temp[15].___w; 17: MAD temp[8].x, const[5].x___, temp[3].x___, none.1___; PRED_SET 18: SGE temp[9].x, temp[8].x___, temp[6].x___; PRED_SET 19: VE_PRED_SNEQ_PUSH temp[15].w, temp[15].___w, temp[9].___x; 20: MUL temp[5].x, temp[5].x___, temp[6].x___; PRED_SET 21: ME_PRED_SET_POP temp[15].w, temp[15].___w; 22: ADD temp[6].x, temp[6].x___, none.1___; PRED_SET 23: ENDLOOP; 24: ME_PRED_SET_RESTORE temp[15].w, temp[14].___w; 25: MAD temp[10].x, const[5].x___, temp[3].x___, none.1___; PRED_SET 26: POW temp[11].x, temp[0].x___, temp[10].x___; PRED_SET 27: MUL temp[12].x, temp[1].x___, temp[11].x___; PRED_SET 28: RCP temp[13].x, temp[5].x___; PRED_SET 29: MAD temp[2].x, temp[12].x___, temp[13].x___, temp[2].x___; PRED_SET 30: MOV temp[1].x, -temp[1].x___; PRED_SET 31: ADD temp[3].x, temp[3].x___, none.1___; PRED_SET 32: ENDLOOP; 33: MOV temp[0].yzw, none._001; 34: MAD temp[0].x, const[5].z___, temp[2].x___, const[5].z___; 35: MUL temp[1], const[0], input[1].xxxx; 36: MAD temp[1], const[1], input[1].yyyy, temp[1]; 37: MAD temp[1], const[2], input[1].zzzz, temp[1]; 38: MAD temp[1], const[3], input[1].wwww, temp[1]; 39: MOV output[1], temp[0]; 40: MOV output[0], temp[1]; 41: MOV output[2], temp[1]; Final vertex program code: 0: op: 0x00100002 dst: 0t op: VE_MULTIPLY src0: 0x01ff2082 reg: 4c swiz: Y/ U/ U/ U src1: 0x01ff0001 reg: 0i swiz: X/ U/ U/ U src2: 0x01248001 reg: 0i swiz: 0/ 0/ 0/ 0 1: op: 0x00102003 dst: 1t op: VE_ADD src0: 0x01ffa000 reg: 0t swiz: 1/ U/ U/ U src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 2: op: 0x00104003 dst: 2t op: VE_ADD src0: 0x01ff8000 reg: 0t swiz: 0/ U/ U/ U src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 3: op: 0x00106003 dst: 3t op: VE_ADD src0: 0x01ff8000 reg: 0t swiz: 0/ U/ U/ U src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 4: op: 0x0081c055 dst: 14t op: ME_PRED_SET_EQ src0: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 5: op: 0x00000000 dst: 0t op: VE_NO_OP src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x00000000 reg: 0t swiz: X/ X/ X/ X src2: 0x00000000 reg: 0t swiz: X/ X/ X/ X 6: op: 0x0c108009 dst: 4t op: PRED 1VE_SET_GREATER_THAN_EQUAL src0: 0x01ff0060 reg: 3t swiz: X/ U/ U/ U src1: 0x01ff6082 reg: 4c swiz: W/ U/ U/ U src2: 0x01248082 reg: 4c swiz: 0/ 0/ 0/ 0 7: op: 0x0c81c055 dst: 14t op: PRED 1 ME_PRED_SET_EQ src0: 0x00000080 reg: 4t swiz: X/ X/ X/ X src1: 0x01248080 reg: 4t swiz: 0/ 0/ 0/ 0 src2: 0x01248080 reg: 4t swiz: 0/ 0/ 0/ 0 8: op: 0x0481c046 dst: 14t op: PRED 0 ME_RECIP_DX src0: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 9: op: 0x0c10a003 dst: 5t op: PRED 1 VE_ADD src0: 0x01ffa000 reg: 0t swiz: 1/ U/ U/ U src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 10: op: 0x0c10c003 dst: 6t op: PRED 1 VE_ADD src0: 0x01ff00a2 reg: 5c swiz: X/ U/ U/ U src1: 0x012480a2 reg: 5c swiz: 0/ 0/ 0/ 0 src2: 0x012480a2 reg: 5c swiz: 0/ 0/ 0/ 0 11: op: 0x0081e003 dst: 15t op: VE_ADD src0: 0x00ffe1c0 reg: 14t swiz: U/ U/ U/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 12: op: 0x00000000 dst: 0t op: VE_NO_OP src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x00000000 reg: 0t swiz: X/ X/ X/ X src2: 0x00000000 reg: 0t swiz: X/ X/ X/ X 13: op: 0x0c10e00a dst: 7t op: PRED 1 VE_SET_LESS_THAN src0: 0x01ff20a2 reg: 5c swiz: Y/ U/ U/ U src1: 0x01ff00c0 reg: 6t swiz: X/ U/ U/ U src2: 0x012480c0 reg: 6t swiz: 0/ 0/ 0/ 0 14: op: 0x0081e012 dst: 15t op: VE_PRED_SET_NEQ_PUSH src0: 0x00ffe1e0 reg: 15t swiz: U/ U/ U/ W src1: 0x003fe0e0 reg: 7t swiz: U/ U/ U/ X src2: 0x012480e0 reg: 7t swiz: 0/ 0/ 0/ 0 15: op: 0x0c81e059 dst: 15t op: PRED 1 ME_PRED_SET_CLR src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 16: op: 0x0081e05b dst: 15t op: ME_PRED_SET_POP src0: 0x00db61e0 reg: 15t swiz: W/ W/ W/ W src1: 0x012481e0 reg: 15t swiz: 0/ 0/ 0/ 0 src2: 0x012481e0 reg: 15t swiz: 0/ 0/ 0/ 0 17: op: 0x0c110004 dst: 8t op: PRED 1 VE_MULTIPLY_ADD src0: 0x01ff00a2 reg: 5c swiz: X/ U/ U/ U src1: 0x01ff0060 reg: 3t swiz: X/ U/ U/ U src2: 0x01ffa0a0 reg: 5t swiz: 1/ U/ U/ U 18: op: 0x0c112009 dst: 9t op: PRED 1VE_SET_GREATER_THAN_EQUAL src0: 0x01ff0100 reg: 8t swiz: X/ U/ U/ U src1: 0x01ff00c0 reg: 6t swiz: X/ U/ U/ U src2: 0x012480c0 reg: 6t swiz: 0/ 0/ 0/ 0 19: op: 0x0081e012 dst: 15t op: VE_PRED_SET_NEQ_PUSH src0: 0x00ffe1e0 reg: 15t swiz: U/ U/ U/ W src1: 0x003fe120 reg: 9t swiz: U/ U/ U/ X src2: 0x01248120 reg: 9t swiz: 0/ 0/ 0/ 0 20: op: 0x0c10a002 dst: 5t op: PRED 1 VE_MULTIPLY src0: 0x01ff00a0 reg: 5t swiz: X/ U/ U/ U src1: 0x01ff00c0 reg: 6t swiz: X/ U/ U/ U src2: 0x012480c0 reg: 6t swiz: 0/ 0/ 0/ 0 21: op: 0x0081e05b dst: 15t op: ME_PRED_SET_POP src0: 0x00db61e0 reg: 15t swiz: W/ W/ W/ W src1: 0x012481e0 reg: 15t swiz: 0/ 0/ 0/ 0 src2: 0x012481e0 reg: 15t swiz: 0/ 0/ 0/ 0 22: op: 0x0c10c003 dst: 6t op: PRED 1 VE_ADD src0: 0x01ff00c0 reg: 6t swiz: X/ U/ U/ U src1: 0x01ffa000 reg: 0t swiz: 1/ U/ U/ U src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 23: op: 0x00000000 dst: 0t op: VE_NO_OP src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x00000000 reg: 0t swiz: X/ X/ X/ X src2: 0x00000000 reg: 0t swiz: X/ X/ X/ X 24: op: 0x0081e05c dst: 15t op: ME_PRED_SET_RESTORE src0: 0x00db61c0 reg: 14t swiz: W/ W/ W/ W src1: 0x012481c0 reg: 14t swiz: 0/ 0/ 0/ 0 src2: 0x012481c0 reg: 14t swiz: 0/ 0/ 0/ 0 25: op: 0x0c114004 dst: 10t op: PRED 1 VE_MULTIPLY_ADD src0: 0x01ff00a2 reg: 5c swiz: X/ U/ U/ U src1: 0x01ff0060 reg: 3t swiz: X/ U/ U/ U src2: 0x01ffa0a0 reg: 5t swiz: 1/ U/ U/ U 26: op: 0x0c116045 dst: 11t op: PRED 1 ME_POWER_FUNC_FF src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x00000140 reg: 10t swiz: X/ X/ X/ X 27: op: 0x0c118002 dst: 12t op: PRED 1 VE_MULTIPLY src0: 0x01ff0020 reg: 1t swiz: X/ U/ U/ U src1: 0x01ff0160 reg: 11t swiz: X/ U/ U/ U src2: 0x01248160 reg: 11t swiz: 0/ 0/ 0/ 0 28: op: 0x0c11a046 dst: 13t op: PRED 1 ME_RECIP_DX src0: 0x000000a0 reg: 5t swiz: X/ X/ X/ X src1: 0x012480a0 reg: 5t swiz: 0/ 0/ 0/ 0 src2: 0x012480a0 reg: 5t swiz: 0/ 0/ 0/ 0 29: op: 0x0c104080 dst: 2t op: PRED 1 PVS_MACRO_OP_2CLK_MADD src0: 0x01ff0180 reg: 12t swiz: X/ U/ U/ U src1: 0x01ff01a0 reg: 13t swiz: X/ U/ U/ U src2: 0x01ff0040 reg: 2t swiz: X/ U/ U/ U 30: op: 0x0c102003 dst: 1t op: PRED 1 VE_ADD src0: 0x1fff0020 reg: 1t swiz: -X/-U/-U/-U src1: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 src2: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 31: op: 0x0c106003 dst: 3t op: PRED 1 VE_ADD src0: 0x01ff0060 reg: 3t swiz: X/ U/ U/ U src1: 0x01ffa000 reg: 0t swiz: 1/ U/ U/ U src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 32: op: 0x00000000 dst: 0t op: VE_NO_OP src0: 0x00000000 reg: 0t swiz: X/ X/ X/ X src1: 0x00000000 reg: 0t swiz: X/ X/ X/ X src2: 0x00000000 reg: 0t swiz: X/ X/ X/ X 33: op: 0x00e00003 dst: 0t op: VE_ADD src0: 0x0164e000 reg: 0t swiz: U/ 0/ 0/ 1 src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 34: op: 0x00100004 dst: 0t op: VE_MULTIPLY_ADD src0: 0x01ff40a2 reg: 5c swiz: Z/ U/ U/ U src1: 0x01ff0040 reg: 2t swiz: X/ U/ U/ U src2: 0x01ff40a2 reg: 5c swiz: Z/ U/ U/ U 35: op: 0x00f02002 dst: 1t op: VE_MULTIPLY src0: 0x00d10002 reg: 0c swiz: X/ Y/ Z/ W src1: 0x00000021 reg: 1i swiz: X/ X/ X/ X src2: 0x01248021 reg: 1i swiz: 0/ 0/ 0/ 0 36: op: 0x00f02004 dst: 1t op: VE_MULTIPLY_ADD src0: 0x00d10022 reg: 1c swiz: X/ Y/ Z/ W src1: 0x00492021 reg: 1i swiz: Y/ Y/ Y/ Y src2: 0x00d10020 reg: 1t swiz: X/ Y/ Z/ W 37: op: 0x00f02004 dst: 1t op: VE_MULTIPLY_ADD src0: 0x00d10042 reg: 2c swiz: X/ Y/ Z/ W src1: 0x00924021 reg: 1i swiz: Z/ Z/ Z/ Z src2: 0x00d10020 reg: 1t swiz: X/ Y/ Z/ W 38: op: 0x00f02004 dst: 1t op: VE_MULTIPLY_ADD src0: 0x00d10062 reg: 3c swiz: X/ Y/ Z/ W src1: 0x00db6021 reg: 1i swiz: W/ W/ W/ W src2: 0x00d10020 reg: 1t swiz: X/ Y/ Z/ W 39: op: 0x00f02203 dst: 1o op: VE_ADD src0: 0x00d10000 reg: 0t swiz: X/ Y/ Z/ W src1: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 src2: 0x01248000 reg: 0t swiz: 0/ 0/ 0/ 0 40: op: 0x00f00203 dst: 0o op: VE_ADD src0: 0x00d10020 reg: 1t swiz: X/ Y/ Z/ W src1: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 src2: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 41: op: 0x00f04203 dst: 2o op: VE_ADD src0: 0x00d10020 reg: 1t swiz: X/ Y/ Z/ W src1: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 src2: 0x01248020 reg: 1t swiz: 0/ 0/ 0/ 0 Flow Control Ops: 0x0000000a LOOP: uw-> 0x000d0016 lw-> 0x00ff000c loop data->0x00000100 Before = 12 First = 13 Last = 22 LOOP: uw-> 0x0006001f lw-> 0x00ff0005 loop data->0x00000100 Before = 5 First = 6 Last = 31 r300: Initial fragment program FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], GENERIC[9], 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 'unroll loops' # 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 'transform IF' # 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 'register rename' # 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 'inline literals' # 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 '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 'dead sources' # 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 = 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 R500 Fragment Program: -------- 0 0:CMN_INST 0x00078005:OUT TEX_WAIT wmask: NONE omask: ARGB 1:RGB_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 2:ALPHA_ADDR 0x08020000:Addr0: 0t, Addr1: 128t, Addr2: 128t, srcp:0 3 RGB_INST: 0x00db0220:rgb_A_src:0 R/G/B 0 rgb_B_src:0 1/1/1 0 targ: 0 4 ALPHA_INST:0x00c0c000:MAD dest:0 alp_A_src:0 A 0 alp_B_src:0 1 0 targ 0 w:0 5 RGBA_INST: 0x20490000:MAD dest:0 rgb_C_src:0 0/0/0 0 alp_C_src:0 0 0