###### after parse { EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after ssa_rename { EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after if_conversion { EXPORT PIXEL 0 __, __, __, __ } ###### after peephole { EXPORT PIXEL 0 __, __, __, __ } ###### after gvn { EXPORT PIXEL 0 __, __, __, __ } ###### after def_use { EXPORT PIXEL 0 __, __, __, __ } ###### after dce_cleanup { EXPORT PIXEL 0 __, __, __, __ } ###### after gcm { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] [ MOV R2.x, R1.x MOV R2.y, R1.y MOV R2.z, R1.z MOV R2.w, R1.w ] > EXPORT PIXEL 0 R2.x, R2.y, R2.z, R2.w CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 CF_END } ###### after if_conversion { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after peephole { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gvn { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after def_use { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after dce_cleanup { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after gcm { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 ALU < [ INTERP_LOAD_P0 R1.x.1||FP@R0.x, Param0x INTERP_LOAD_P0 R1.y.1||FP@R0.y, Param0y INTERP_LOAD_P0 R1.z.1||FP@R0.z, Param0z INTERP_LOAD_P0 R1.w.1||FP@R0.w, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] [ MOV R2.x, R1.x MOV R2.y, R1.y MOV R2.z, R1.z MOV R2.w, R1.w ] > EXPORT PIXEL 0 R2.x, R2.y, R2.z, R2.w CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 CF_END } ###### after if_conversion { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after peephole { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gvn { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after def_use { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after dce_cleanup { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after gcm { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 ALU < [ INTERP_LOAD_P0 R1.x.1||FP@R0.x, Param0x INTERP_LOAD_P0 R1.y.1||FP@R0.y, Param0y INTERP_LOAD_P0 R1.z.1||FP@R0.z, Param0z INTERP_LOAD_P0 R1.w.1||FP@R0.w, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } -------------------------------------------------------------- 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 ===== SHADER #9 ========================================= VS/CAYMAN/CAYMAN ===== ===== 26 dw ===== 5 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 00000005 a01c0000 ALU 8 @10 0010 00000001 00600c90 1 x: MOV R3.x, R1.x 0012 00000401 20600c90 y: MOV R3.y, R1.y 0014 00000801 40600c90 z: MOV R3.z, R1.z 0016 80000c01 60600c90 w: MOV R3.w, R1.w 0018 00000002 00800c90 2 x: MOV R4.x, R2.x 0020 00000402 20800c90 y: MOV R4.y, R2.y 0022 00000802 40800c90 z: MOV R4.z, R2.z 0024 80000c02 60800c90 w: MOV R4.w, R2.w 0004 c001a03c 95000688 EXPORT_DONE POS 60 R3.xyzw 0006 c0024000 95000688 EXPORT_DONE PARAM 0 R4.xyzw 0008 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.xF@R1.x, R1.yF@R1.y, R1.zF@R1.z, R1.wF@R1.w, R2.xF@R2.x, R2.yF@R2.y, R2.zF@R2.z, R2.wF@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R3.x, R1.xF@R1.x MOV R3.y, R1.yF@R1.y MOV R3.z, R1.zF@R1.z MOV R3.w, R1.wF@R1.w ] [ MOV R4.x, R2.xF@R2.x MOV R4.y, R2.yF@R2.y MOV R4.z, R2.zF@R2.z MOV R4.w, R2.wF@R2.w ] > EXPORT POS 60 R3.x, R3.y, R3.z, R3.w EXPORT PARAM 0 R4.x, R4.y, R4.z, R4.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 ] [ MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 ] > EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 CALL_FS t9F@R1.x, t10F@R1.y, t11F@R1.z, t12F@R1.w, t13F@R2.x, t14F@R2.y, t15F@R2.z, t16F@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < (copy) MOV R1.w.1, t12F@R1.w (copy) MOV t8, R1.w.1 (copy) MOV R1.z.1, t11F@R1.z (copy) MOV t7, R1.z.1 (copy) MOV R1.y.1, t10F@R1.y (copy) MOV t6, R1.y.1 (copy) MOV R1.x.1, t9F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R2.w.1, t16F@R2.w (copy) MOV t4, R2.w.1 (copy) MOV R2.z.1, t15F@R2.z (copy) MOV t3, R2.z.1 (copy) MOV R2.y.1, t14F@R2.y (copy) MOV t2, R2.y.1 (copy) MOV R2.x.1, t13F@R2.x (copy) MOV t1, R2.x.1 > EXPORT PARAM 0 t1, t2, t3, t4 EXPORT POS 60 t5, t6, t7, t8 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9F@R1.x, t10F@R1.y, t11F@R1.z, t12F@R1.w, t13F@R2.x, t14F@R2.y, t15F@R2.z, t16F@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9F@R1.x t10F@R1.y t11F@R1.z t12F@R1.w t13F@R2.x t14F@R2.y t15F@R2.z t16F@R2.w ] (copy) MOV R1.w.1, t12F@R1.w (copy) MOV t8, R1.w.1 (copy) MOV R1.z.1, t11F@R1.z (copy) MOV t7, R1.z.1 (copy) MOV R1.y.1, t10F@R1.y (copy) MOV t6, R1.y.1 (copy) MOV R1.x.1, t9F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R2.w.1, t16F@R2.w (copy) MOV t4, R2.w.1 (copy) MOV R2.z.1, t15F@R2.z (copy) MOV t3, R2.z.1 (copy) MOV R2.y.1, t14F@R2.y (copy) MOV t2, R2.y.1 (copy) MOV R2.x.1, t13F@R2.x (copy) MOV t1, R2.x.1 > live_after: [t1 t2 t3 t4 t5 t6 t7 t8 ] EXPORT PARAM 0 t1, t2, t3, t4 EXPORT POS 60 t5, t6, t7, t8 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9FP@R1.x, t10FP@R1.y, t11FP@R1.z, t12FP@R1.w, t13FP@R2.x, t14FP@R2.y, t15FP@R2.z, t16FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9FP@R1.x t10FP@R1.y t11FP@R1.z t12FP@R1.w t13FP@R2.x t14FP@R2.y t15FP@R2.z t16FP@R2.w ] (copy) MOV R1.w.1FP@R1.w, t12FP@R1.w (copy) MOV t8FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t11FP@R1.z (copy) MOV t7FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t10FP@R1.y (copy) MOV t6FP@R1.y, R1.y.1FP@R1.y (copy) MOV R1.x.1FP@R1.x, t9FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R2.w.1FP@R2.w, t16FP@R2.w (copy) MOV t4FP@R2.w, R2.w.1FP@R2.w (copy) MOV R2.z.1FP@R2.z, t15FP@R2.z (copy) MOV t3FP@R2.z, R2.z.1FP@R2.z (copy) MOV R2.y.1FP@R2.y, t14FP@R2.y (copy) MOV t2FP@R2.y, R2.y.1FP@R2.y (copy) MOV R2.x.1FP@R2.x, t13FP@R2.x (copy) MOV t1FP@R2.x, R2.x.1FP@R2.x > live_after: [t1FP@R2.x t2FP@R2.y t3FP@R2.z t4FP@R2.w t5FP@R1.x t6FP@R1.y t7FP@R1.z t8FP@R1.w ] EXPORT PARAM 0 t1FP@R2.x, t2FP@R2.y, t3FP@R2.z, t4FP@R2.w EXPORT POS 60 t5FP@R1.x, t6FP@R1.y, t7FP@R1.z, t8FP@R1.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9FP@R1.x, t10FP@R1.y, t11FP@R1.z, t12FP@R1.w, t13FP@R2.x, t14FP@R2.y, t15FP@R2.z, t16FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9FP@R1.x t10FP@R1.y t11FP@R1.z t12FP@R1.w t13FP@R2.x t14FP@R2.y t15FP@R2.z t16FP@R2.w ] (copy) MOV R1.w.1FP@R1.w, t12FP@R1.w (copy) MOV t8FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t11FP@R1.z (copy) MOV t7FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t10FP@R1.y (copy) MOV t6FP@R1.y, R1.y.1FP@R1.y (copy) MOV R1.x.1FP@R1.x, t9FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R2.w.1FP@R2.w, t16FP@R2.w (copy) MOV t4FP@R2.w, R2.w.1FP@R2.w (copy) MOV R2.z.1FP@R2.z, t15FP@R2.z (copy) MOV t3FP@R2.z, R2.z.1FP@R2.z (copy) MOV R2.y.1FP@R2.y, t14FP@R2.y (copy) MOV t2FP@R2.y, R2.y.1FP@R2.y (copy) MOV R2.x.1FP@R2.x, t13FP@R2.x (copy) MOV t1FP@R2.x, R2.x.1FP@R2.x > live_after: [t1FP@R2.x t2FP@R2.y t3FP@R2.z t4FP@R2.w t5FP@R1.x t6FP@R1.y t7FP@R1.z t8FP@R1.w ] EXPORT PARAM 0 t1FP@R2.x, t2FP@R2.y, t3FP@R2.z, t4FP@R2.w EXPORT POS 60 t5FP@R1.x, t6FP@R1.y, t7FP@R1.z, t8FP@R1.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9||FP@R1.x, t10||FP@R1.y, t11||FP@R1.z, t12||FP@R1.w, t13||FP@R2.x, t14||FP@R2.y, t15||FP@R2.z, t16||FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT PARAM 0 t1||FP@R2.x, t2||FP@R2.y, t3||FP@R2.z, t4||FP@R2.w EXPORT POS 60 t5||FP@R1.x, t6||FP@R1.y, t7||FP@R1.z, t8||FP@R1.w } end BB_0 } ===== SHADER #9 OPT ===================================== VS/CAYMAN/CAYMAN ===== ===== 8 dw ===== 3 gprs ===== 1 stack ========================================== 0000 00000000 84c00000 CALL_FS @0 0002 c0014000 95000688 EXPORT_DONE PARAM 0 R2.xyzw 0004 c000a03c 95000688 EXPORT_DONE POS 60 R1.xyzw 0006 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== -------------------------------------------------------------- VERT DCL IN[0] DCL OUT[0], POSITION 0: MOV OUT[0], IN[0] 1: END STREAMOUT 0: MEM_STREAM0_BUF0[0..0] <- OUT[0].x ===== SHADER #10 ======================================== VS/CAYMAN/CAYMAN ===== ===== 20 dw ===== 3 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 00000006 a00c0000 ALU 4 @12 0012 00000001 00400c90 1 x: MOV R2.x, R1.x 0014 00000401 20400c90 y: MOV R2.y, R1.y 0016 00000801 40400c90 z: MOV R2.z, R1.z 0018 80000c01 60400c90 w: MOV R2.w, R1.w 0004 40010000 90001fff MEM_STREAM0_BUF0 WRITE 0 R2.x___ ES:1 0006 c001203c 95000688 EXPORT_DONE POS 60 R2.xyzw 0008 c0004000 95000fff EXPORT_DONE PARAM 0 R0.____ 0010 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.xF@R1.x, R1.yF@R1.y, R1.zF@R1.z, R1.wF@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R2.x, R1.xF@R1.x MOV R2.y, R1.yF@R1.y MOV R2.z, R1.zF@R1.z MOV R2.w, R1.wF@R1.w ] > MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x, __, __, __ EXPORT POS 60 R2.x, R2.y, R2.z, R2.w EXPORT PARAM 0 __, __, __, __ CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 CALL_FS t6F@R1.x, t7F@R1.y, t8F@R1.z, t9F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < (copy) MOV R1.x.1, t6F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R1.w.1, t9F@R1.w (copy) MOV t4, R1.w.1 (copy) MOV R1.z.1, t8F@R1.z (copy) MOV t3, R1.z.1 (copy) MOV R1.y.1, t7F@R1.y (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT POS 60 t1, t2, t3, t4 MEM_STREAM0_BUF0 WRITE 0 ES:1 t5, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6F@R1.x, t7F@R1.y, t8F@R1.z, t9F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6F@R1.x t7F@R1.y t8F@R1.z t9F@R1.w ] (copy) MOV R1.x.1, t6F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R1.w.1, t9F@R1.w (copy) MOV t4, R1.w.1 (copy) MOV R1.z.1, t8F@R1.z (copy) MOV t3, R1.z.1 (copy) MOV R1.y.1, t7F@R1.y (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 t5 ] EXPORT POS 60 t1, t2, t3, t4 MEM_STREAM0_BUF0 WRITE 0 ES:1 t5, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6FP@R1.x, t7FP@R1.y, t8FP@R1.z, t9FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6FP@R1.x t7FP@R1.y t8FP@R1.z t9FP@R1.w ] (copy) MOV R1.x.1FP@R1.x, t6FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R1.w.1FP@R1.w, t9FP@R1.w (copy) MOV t4FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t8FP@R1.z (copy) MOV t3FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t7FP@R1.y (copy) MOV t2FP@R1.y, R1.y.1FP@R1.y (copy) MOV t1FP@R1.x, R1.x.1FP@R1.x > live_after: [t1FP@R1.x t2FP@R1.y t3FP@R1.z t4FP@R1.w t5FP@R1.x ] EXPORT POS 60 t1FP@R1.x, t2FP@R1.y, t3FP@R1.z, t4FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6FP@R1.x, t7FP@R1.y, t8FP@R1.z, t9FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6FP@R1.x t7FP@R1.y t8FP@R1.z t9FP@R1.w ] (copy) MOV R1.x.1FP@R1.x, t6FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R1.w.1FP@R1.w, t9FP@R1.w (copy) MOV t4FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t8FP@R1.z (copy) MOV t3FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t7FP@R1.y (copy) MOV t2FP@R1.y, R1.y.1FP@R1.y (copy) MOV t1FP@R1.x, R1.x.1FP@R1.x > live_after: [t1FP@R1.x t2FP@R1.y t3FP@R1.z t4FP@R1.w t5FP@R1.x ] EXPORT POS 60 t1FP@R1.x, t2FP@R1.y, t3FP@R1.z, t4FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6||FP@R1.x, t7||FP@R1.y, t8||FP@R1.z, t9||FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT POS 60 t1||FP@R1.x, t2||FP@R1.y, t3||FP@R1.z, t4||FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5||FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ===== SHADER #10 OPT ==================================== VS/CAYMAN/CAYMAN ===== ===== 10 dw ===== 2 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 c000a03c 95000688 EXPORT_DONE POS 60 R1.xyzw 0004 40008000 90001fff MEM_STREAM0_BUF0 WRITE 0 R1.x___ ES:1 0006 c0004000 95000fff EXPORT_DONE PARAM 0 R0.____ 0008 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] > EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] > EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after if_conversion { EXPORT PIXEL 0 __, __, __, __ } ###### after peephole { EXPORT PIXEL 0 __, __, __, __ } ###### after gvn { EXPORT PIXEL 0 __, __, __, __ } ###### after def_use { EXPORT PIXEL 0 __, __, __, __ } ###### after dce_cleanup { EXPORT PIXEL 0 __, __, __, __ } ###### after gcm { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after parse { EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after ssa_rename { EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after if_conversion { EXPORT PIXEL 0 __, __, __, __ } ###### after peephole { EXPORT PIXEL 0 __, __, __, __ } ###### after gvn { EXPORT PIXEL 0 __, __, __, __ } ###### after def_use { EXPORT PIXEL 0 __, __, __, __ } ###### after dce_cleanup { EXPORT PIXEL 0 __, __, __, __ } ###### after gcm { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] [ MOV R2.x, R1.x MOV R2.y, R1.y MOV R2.z, R1.z MOV R2.w, R1.w ] > EXPORT PIXEL 0 R2.x, R2.y, R2.z, R2.w CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 CF_END } ###### after if_conversion { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after peephole { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gvn { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after def_use { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after dce_cleanup { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after gcm { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 ALU < [ INTERP_LOAD_P0 R1.x.1||FP@R0.x, Param0x INTERP_LOAD_P0 R1.y.1||FP@R0.y, Param0y INTERP_LOAD_P0 R1.z.1||FP@R0.z, Param0z INTERP_LOAD_P0 R1.w.1||FP@R0.w, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] [ MOV R2.x, R1.x MOV R2.y, R1.y MOV R2.z, R1.z MOV R2.w, R1.w ] > EXPORT PIXEL 0 R2.x, R2.y, R2.z, R2.w CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 CF_END } ###### after if_conversion { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after peephole { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gvn { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after def_use { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after dce_cleanup { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after gcm { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 ALU < [ INTERP_LOAD_P0 R1.x.1||FP@R0.x, Param0x INTERP_LOAD_P0 R1.y.1||FP@R0.y, Param0y INTERP_LOAD_P0 R1.z.1||FP@R0.z, Param0z INTERP_LOAD_P0 R1.w.1||FP@R0.w, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } -------------------------------------------------------------- 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 ===== SHADER #20 ======================================== VS/CAYMAN/CAYMAN ===== ===== 26 dw ===== 5 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 00000005 a01c0000 ALU 8 @10 0010 00000001 00600c90 1 x: MOV R3.x, R1.x 0012 00000401 20600c90 y: MOV R3.y, R1.y 0014 00000801 40600c90 z: MOV R3.z, R1.z 0016 80000c01 60600c90 w: MOV R3.w, R1.w 0018 00000002 00800c90 2 x: MOV R4.x, R2.x 0020 00000402 20800c90 y: MOV R4.y, R2.y 0022 00000802 40800c90 z: MOV R4.z, R2.z 0024 80000c02 60800c90 w: MOV R4.w, R2.w 0004 c001a03c 95000688 EXPORT_DONE POS 60 R3.xyzw 0006 c0024000 95000688 EXPORT_DONE PARAM 0 R4.xyzw 0008 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.xF@R1.x, R1.yF@R1.y, R1.zF@R1.z, R1.wF@R1.w, R2.xF@R2.x, R2.yF@R2.y, R2.zF@R2.z, R2.wF@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R3.x, R1.xF@R1.x MOV R3.y, R1.yF@R1.y MOV R3.z, R1.zF@R1.z MOV R3.w, R1.wF@R1.w ] [ MOV R4.x, R2.xF@R2.x MOV R4.y, R2.yF@R2.y MOV R4.z, R2.zF@R2.z MOV R4.w, R2.wF@R2.w ] > EXPORT POS 60 R3.x, R3.y, R3.z, R3.w EXPORT PARAM 0 R4.x, R4.y, R4.z, R4.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 ] [ MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 ] > EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R3.x.1, R3.y.1, R3.z.1, R3.w.1 EXPORT PARAM 0 R4.x.1, R4.y.1, R4.z.1, R4.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R3.x.1, R1.x.1 MOV R3.y.1, R1.y.1 MOV R3.z.1, R1.z.1 MOV R3.w.1, R1.w.1 MOV R4.x.1, R2.x.1 MOV R4.y.1, R2.y.1 MOV R4.z.1, R2.z.1 MOV R4.w.1, R2.w.1 EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R2.x.1, R2.y.1, R2.z.1, R2.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 CALL_FS t9F@R1.x, t10F@R1.y, t11F@R1.z, t12F@R1.w, t13F@R2.x, t14F@R2.y, t15F@R2.z, t16F@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < (copy) MOV R1.w.1, t12F@R1.w (copy) MOV t8, R1.w.1 (copy) MOV R1.z.1, t11F@R1.z (copy) MOV t7, R1.z.1 (copy) MOV R1.y.1, t10F@R1.y (copy) MOV t6, R1.y.1 (copy) MOV R1.x.1, t9F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R2.w.1, t16F@R2.w (copy) MOV t4, R2.w.1 (copy) MOV R2.z.1, t15F@R2.z (copy) MOV t3, R2.z.1 (copy) MOV R2.y.1, t14F@R2.y (copy) MOV t2, R2.y.1 (copy) MOV R2.x.1, t13F@R2.x (copy) MOV t1, R2.x.1 > EXPORT PARAM 0 t1, t2, t3, t4 EXPORT POS 60 t5, t6, t7, t8 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9F@R1.x, t10F@R1.y, t11F@R1.z, t12F@R1.w, t13F@R2.x, t14F@R2.y, t15F@R2.z, t16F@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9F@R1.x t10F@R1.y t11F@R1.z t12F@R1.w t13F@R2.x t14F@R2.y t15F@R2.z t16F@R2.w ] (copy) MOV R1.w.1, t12F@R1.w (copy) MOV t8, R1.w.1 (copy) MOV R1.z.1, t11F@R1.z (copy) MOV t7, R1.z.1 (copy) MOV R1.y.1, t10F@R1.y (copy) MOV t6, R1.y.1 (copy) MOV R1.x.1, t9F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R2.w.1, t16F@R2.w (copy) MOV t4, R2.w.1 (copy) MOV R2.z.1, t15F@R2.z (copy) MOV t3, R2.z.1 (copy) MOV R2.y.1, t14F@R2.y (copy) MOV t2, R2.y.1 (copy) MOV R2.x.1, t13F@R2.x (copy) MOV t1, R2.x.1 > live_after: [t1 t2 t3 t4 t5 t6 t7 t8 ] EXPORT PARAM 0 t1, t2, t3, t4 EXPORT POS 60 t5, t6, t7, t8 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9FP@R1.x, t10FP@R1.y, t11FP@R1.z, t12FP@R1.w, t13FP@R2.x, t14FP@R2.y, t15FP@R2.z, t16FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9FP@R1.x t10FP@R1.y t11FP@R1.z t12FP@R1.w t13FP@R2.x t14FP@R2.y t15FP@R2.z t16FP@R2.w ] (copy) MOV R1.w.1FP@R1.w, t12FP@R1.w (copy) MOV t8FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t11FP@R1.z (copy) MOV t7FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t10FP@R1.y (copy) MOV t6FP@R1.y, R1.y.1FP@R1.y (copy) MOV R1.x.1FP@R1.x, t9FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R2.w.1FP@R2.w, t16FP@R2.w (copy) MOV t4FP@R2.w, R2.w.1FP@R2.w (copy) MOV R2.z.1FP@R2.z, t15FP@R2.z (copy) MOV t3FP@R2.z, R2.z.1FP@R2.z (copy) MOV R2.y.1FP@R2.y, t14FP@R2.y (copy) MOV t2FP@R2.y, R2.y.1FP@R2.y (copy) MOV R2.x.1FP@R2.x, t13FP@R2.x (copy) MOV t1FP@R2.x, R2.x.1FP@R2.x > live_after: [t1FP@R2.x t2FP@R2.y t3FP@R2.z t4FP@R2.w t5FP@R1.x t6FP@R1.y t7FP@R1.z t8FP@R1.w ] EXPORT PARAM 0 t1FP@R2.x, t2FP@R2.y, t3FP@R2.z, t4FP@R2.w EXPORT POS 60 t5FP@R1.x, t6FP@R1.y, t7FP@R1.z, t8FP@R1.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9FP@R1.x, t10FP@R1.y, t11FP@R1.z, t12FP@R1.w, t13FP@R2.x, t14FP@R2.y, t15FP@R2.z, t16FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t9FP@R1.x t10FP@R1.y t11FP@R1.z t12FP@R1.w t13FP@R2.x t14FP@R2.y t15FP@R2.z t16FP@R2.w ] (copy) MOV R1.w.1FP@R1.w, t12FP@R1.w (copy) MOV t8FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t11FP@R1.z (copy) MOV t7FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t10FP@R1.y (copy) MOV t6FP@R1.y, R1.y.1FP@R1.y (copy) MOV R1.x.1FP@R1.x, t9FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R2.w.1FP@R2.w, t16FP@R2.w (copy) MOV t4FP@R2.w, R2.w.1FP@R2.w (copy) MOV R2.z.1FP@R2.z, t15FP@R2.z (copy) MOV t3FP@R2.z, R2.z.1FP@R2.z (copy) MOV R2.y.1FP@R2.y, t14FP@R2.y (copy) MOV t2FP@R2.y, R2.y.1FP@R2.y (copy) MOV R2.x.1FP@R2.x, t13FP@R2.x (copy) MOV t1FP@R2.x, R2.x.1FP@R2.x > live_after: [t1FP@R2.x t2FP@R2.y t3FP@R2.z t4FP@R2.w t5FP@R1.x t6FP@R1.y t7FP@R1.z t8FP@R1.w ] EXPORT PARAM 0 t1FP@R2.x, t2FP@R2.y, t3FP@R2.z, t4FP@R2.w EXPORT POS 60 t5FP@R1.x, t6FP@R1.y, t7FP@R1.z, t8FP@R1.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t9||FP@R1.x, t10||FP@R1.y, t11||FP@R1.z, t12||FP@R1.w, t13||FP@R2.x, t14||FP@R2.y, t15||FP@R2.z, t16||FP@R2.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT PARAM 0 t1||FP@R2.x, t2||FP@R2.y, t3||FP@R2.z, t4||FP@R2.w EXPORT POS 60 t5||FP@R1.x, t6||FP@R1.y, t7||FP@R1.z, t8||FP@R1.w } end BB_0 } ===== SHADER #20 OPT ==================================== VS/CAYMAN/CAYMAN ===== ===== 8 dw ===== 3 gprs ===== 1 stack ========================================== 0000 00000000 84c00000 CALL_FS @0 0002 c0014000 95000688 EXPORT_DONE PARAM 0 R2.xyzw 0004 c000a03c 95000688 EXPORT_DONE POS 60 R1.xyzw 0006 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== -------------------------------------------------------------- VERT DCL IN[0] DCL OUT[0], POSITION 0: MOV OUT[0], IN[0] 1: END STREAMOUT 0: MEM_STREAM0_BUF0[0..0] <- OUT[0].x ===== SHADER #21 ======================================== VS/CAYMAN/CAYMAN ===== ===== 20 dw ===== 3 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 00000006 a00c0000 ALU 4 @12 0012 00000001 00400c90 1 x: MOV R2.x, R1.x 0014 00000401 20400c90 y: MOV R2.y, R1.y 0016 00000801 40400c90 z: MOV R2.z, R1.z 0018 80000c01 60400c90 w: MOV R2.w, R1.w 0004 40010000 90001fff MEM_STREAM0_BUF0 WRITE 0 R2.x___ ES:1 0006 c001203c 95000688 EXPORT_DONE POS 60 R2.xyzw 0008 c0004000 95000fff EXPORT_DONE PARAM 0 R0.____ 0010 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.xF@R1.x, R1.yF@R1.y, R1.zF@R1.z, R1.wF@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R2.x, R1.xF@R1.x MOV R2.y, R1.yF@R1.y MOV R2.z, R1.zF@R1.z MOV R2.w, R1.wF@R1.w ] > MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x, __, __, __ EXPORT POS 60 R2.x, R2.y, R2.z, R2.w EXPORT PARAM 0 __, __, __, __ CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R2.x.1, __, __, __ EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MEM_STREAM0_BUF0 WRITE 0 ES:1 R1.x.1, __, __, __ EXPORT POS 60 R1.x.1, R1.y.1, R1.z.1, R1.w.1 EXPORT PARAM 0 __, __, __, __ } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 CALL_FS t6F@R1.x, t7F@R1.y, t8F@R1.z, t9F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < (copy) MOV R1.x.1, t6F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R1.w.1, t9F@R1.w (copy) MOV t4, R1.w.1 (copy) MOV R1.z.1, t8F@R1.z (copy) MOV t3, R1.z.1 (copy) MOV R1.y.1, t7F@R1.y (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT POS 60 t1, t2, t3, t4 MEM_STREAM0_BUF0 WRITE 0 ES:1 t5, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6F@R1.x, t7F@R1.y, t8F@R1.z, t9F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6F@R1.x t7F@R1.y t8F@R1.z t9F@R1.w ] (copy) MOV R1.x.1, t6F@R1.x (copy) MOV t5, R1.x.1 (copy) MOV R1.w.1, t9F@R1.w (copy) MOV t4, R1.w.1 (copy) MOV R1.z.1, t8F@R1.z (copy) MOV t3, R1.z.1 (copy) MOV R1.y.1, t7F@R1.y (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 t5 ] EXPORT POS 60 t1, t2, t3, t4 MEM_STREAM0_BUF0 WRITE 0 ES:1 t5, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6FP@R1.x, t7FP@R1.y, t8FP@R1.z, t9FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6FP@R1.x t7FP@R1.y t8FP@R1.z t9FP@R1.w ] (copy) MOV R1.x.1FP@R1.x, t6FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R1.w.1FP@R1.w, t9FP@R1.w (copy) MOV t4FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t8FP@R1.z (copy) MOV t3FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t7FP@R1.y (copy) MOV t2FP@R1.y, R1.y.1FP@R1.y (copy) MOV t1FP@R1.x, R1.x.1FP@R1.x > live_after: [t1FP@R1.x t2FP@R1.y t3FP@R1.z t4FP@R1.w t5FP@R1.x ] EXPORT POS 60 t1FP@R1.x, t2FP@R1.y, t3FP@R1.z, t4FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6FP@R1.x, t7FP@R1.y, t8FP@R1.z, t9FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t6FP@R1.x t7FP@R1.y t8FP@R1.z t9FP@R1.w ] (copy) MOV R1.x.1FP@R1.x, t6FP@R1.x (copy) MOV t5FP@R1.x, R1.x.1FP@R1.x (copy) MOV R1.w.1FP@R1.w, t9FP@R1.w (copy) MOV t4FP@R1.w, R1.w.1FP@R1.w (copy) MOV R1.z.1FP@R1.z, t8FP@R1.z (copy) MOV t3FP@R1.z, R1.z.1FP@R1.z (copy) MOV R1.y.1FP@R1.y, t7FP@R1.y (copy) MOV t2FP@R1.y, R1.y.1FP@R1.y (copy) MOV t1FP@R1.x, R1.x.1FP@R1.x > live_after: [t1FP@R1.x t2FP@R1.y t3FP@R1.z t4FP@R1.w t5FP@R1.x ] EXPORT POS 60 t1FP@R1.x, t2FP@R1.y, t3FP@R1.z, t4FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t6||FP@R1.x, t7||FP@R1.y, t8||FP@R1.z, t9||FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w EXPORT POS 60 t1||FP@R1.x, t2||FP@R1.y, t3||FP@R1.z, t4||FP@R1.w MEM_STREAM0_BUF0 WRITE 0 ES:1 t5||FP@R1.x, __, __, __ EXPORT PARAM 0 __, __, __, __ } end BB_0 } ===== SHADER #21 OPT ==================================== VS/CAYMAN/CAYMAN ===== ===== 10 dw ===== 2 gprs ===== 1 stack ========================================= 0000 00000000 84c00000 CALL_FS @0 0002 c000a03c 95000688 EXPORT_DONE POS 60 R1.xyzw 0004 40008000 90001fff MEM_STREAM0_BUF0 WRITE 0 R1.x___ ES:1 0006 c0004000 95000fff EXPORT_DONE PARAM 0 R0.____ 0008 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] > EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] > EXPORT PIXEL 0 __, __, __, __ CF_END } ###### after if_conversion { EXPORT PIXEL 0 __, __, __, __ } ###### after peephole { EXPORT PIXEL 0 __, __, __, __ } ###### after gvn { EXPORT PIXEL 0 __, __, __, __ } ###### after def_use { EXPORT PIXEL 0 __, __, __, __ } ###### after dce_cleanup { EXPORT PIXEL 0 __, __, __, __ } ###### after gcm { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 EXPORT PIXEL 0 __, __, __, __ } end BB_0 } ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW 4S INTERP_ZW __, R0.yF@R0.y, Param0x 4S INTERP_ZW __, R0.xF@R0.x, Param0y 4S INTERP_ZW R2.z, R0.yF@R0.y, Param0z 4S INTERP_ZW R2.w, R0.xF@R0.x, Param0w ] [ INTERP_XY 4S INTERP_XY R2.x, R0.yF@R0.y, Param0x 4S INTERP_XY R2.y, R0.xF@R0.x, Param0y 4S INTERP_XY __, R0.yF@R0.y, Param0z 4S INTERP_XY __, R0.xF@R0.x, Param0w ] [ MOV R3.x, R2.x MOV R3.y, R2.y MOV R3.z, R2.z MOV R3.w, R2.w ] > EXPORT PIXEL 0 R3.x, R3.y, R3.z, R3.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] [ INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] [ MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 ] > EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 ALU < INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4, R2.w.1 (copy) MOV t3, R2.z.1 (copy) MOV t2, R2.y.1 (copy) MOV t1, R2.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4, R2.w.1 (copy) MOV t3, R2.z.1 (copy) MOV t2, R2.y.1 (copy) MOV t1, R2.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1FP@R0.z, R2.w.1FP@R0.w, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4FP@R0.w, R2.w.1FP@R0.w (copy) MOV t3FP@R0.z, R2.z.1FP@R0.z (copy) MOV t2FP@R0.y, R2.y.1FP@R0.y (copy) MOV t1FP@R0.x, R2.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1FP@R0.z, R2.w.1FP@R0.w, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4FP@R0.w, R2.w.1FP@R0.w (copy) MOV t3FP@R0.z, R2.z.1FP@R0.z (copy) MOV t2FP@R0.y, R2.y.1FP@R0.y (copy) MOV t1FP@R0.x, R2.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.x||FP@R0.x, R0.y||FP@R0.y] { BB_0 loop_level = 0 live_before: [R0.x||FP@R0.x R0.y||FP@R0.y ] ALU < [ 4S INTERP_ZW __, R0.y||FP@R0.y, Param0x 4S INTERP_ZW __, R0.x||FP@R0.x, Param0y 4S INTERP_ZW R2.z.1||FP@R0.z, R0.y||FP@R0.y, Param0z 4S INTERP_ZW R2.w.1||FP@R0.w, R0.x||FP@R0.x, Param0w ] [ 4S INTERP_XY R2.x.1||FP@R0.x, R0.y||FP@R0.y, Param0x 4S INTERP_XY R2.y.1||FP@R0.y, R0.x||FP@R0.x, Param0y 4S INTERP_XY __, R0.y||FP@R0.y, Param0z 4S INTERP_XY __, R0.x||FP@R0.x, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } -------------------------------------------------------------- VERT DCL IN[0] DCL OUT[0], POSITION DCL OUT[1], GENERIC[19] DCL CONST[0..6] DCL TEMP[0], LOCAL DCL TEMP[1..3], ARRAY(1), LOCAL DCL TEMP[4..12], ARRAY(2), LOCAL DCL TEMP[13..15], ARRAY(3), LOCAL DCL TEMP[16..18], ARRAY(4), LOCAL DCL TEMP[19..20], LOCAL DCL ADDR[0] IMM[0] FLT32 { 1.0000, 2.0000, 3.0000, 0.0000} IMM[1] FLT32 { 4.0000, 5.0000, 6.0000, 25.0000} IMM[2] FLT32 { 7.0000, 8.0000, 9.0000, 25.0000} IMM[3] FLT32 { 10.0000, 11.0000, 12.0000, 25.0000} IMM[4] FLT32 { 13.0000, 14.0000, 15.0000, 25.0000} IMM[5] FLT32 { 16.0000, 17.0000, 18.0000, 25.0000} IMM[6] FLT32 { 19.0000, 20.0000, 21.0000, 25.0000} IMM[7] FLT32 { 22.0000, 23.0000, 24.0000, 25.0000} IMM[8] FLT32 { 25.0000, 26.0000, 27.0000, 0.0000} IMM[9] INT32 {3, 0, 0, 0} 0: MUL TEMP[0], CONST[3], IN[0].xxxx 1: MAD TEMP[0], CONST[4], IN[0].yyyy, TEMP[0] 2: MAD TEMP[0], CONST[5], IN[0].zzzz, TEMP[0] 3: MAD TEMP[0], CONST[6], IN[0].wwww, TEMP[0] 4: MOV TEMP[1], IMM[0].xyzx 5: MOV TEMP[2], IMM[1].xyzx 6: MOV TEMP[3], IMM[2].xyzx 7: MOV TEMP[4], TEMP[1].xyzz 8: MOV TEMP[5], TEMP[2].xyzz 9: MOV TEMP[6], TEMP[3].xyzz 10: MOV TEMP[13], IMM[3].xyzx 11: MOV TEMP[14], IMM[4].xyzx 12: MOV TEMP[15], IMM[5].xyzx 13: MOV TEMP[7], TEMP[13].xyzz 14: MOV TEMP[8], TEMP[14].xyzz 15: MOV TEMP[9], TEMP[15].xyzz 16: MOV TEMP[16], IMM[6].xyzx 17: MOV TEMP[17], IMM[7].xyzx 18: MOV TEMP[18], IMM[8].xyzx 19: MOV TEMP[10], TEMP[16].xyzz 20: MOV TEMP[11], TEMP[17].xyzz 21: MOV TEMP[12], TEMP[18].xyzz 22: UMUL TEMP[19].x, CONST[0].xxxx, IMM[9].xxxx 23: UADD TEMP[19].x, CONST[1].xxxx, TEMP[19].xxxx 24: UARL ADDR[0].x, TEMP[19].xxxx 25: FSEQ TEMP[20].xyz, TEMP[ADDR[0].x+4](2).xyzz, CONST[2].xyzz 26: AND TEMP[20].y, TEMP[20].yyyy, TEMP[20].zzzz 27: AND TEMP[19].x, TEMP[20].xxxx, TEMP[20].yyyy 28: UIF TEMP[19].xxxx :0 29: MOV TEMP[19], IMM[0].wxwx 30: ELSE :0 31: MOV TEMP[19], IMM[0].xwwx 32: ENDIF 33: MOV OUT[1], TEMP[19] 34: MOV OUT[0], TEMP[0] 35: END ===== SHADER #24 ======================================== VS/CAYMAN/CAYMAN ===== ===== 292 dw ===== 27 gprs ===== 1 stack ======================================= 0000 00000000 84c00000 CALL_FS @0 0002 4000000b a1bc0000 ALU 112 @22 KC0[CB0:0-15] 0022 00002083 00800090 1 x: MUL R4.x, KC0[3].x, R1.x 0024 00002483 20800090 y: MUL R4.y, KC0[3].y, R1.x 0026 00002883 40800090 z: MUL R4.z, KC0[3].z, R1.x 0028 80002c83 60800090 w: MUL R4.w, KC0[3].w, R1.x 0030 00802084 008280fe 2 x: MULADD R4.x, KC0[4].x, R1.y, PV.x 0032 00802484 208284fe y: MULADD R4.y, KC0[4].y, R1.y, PV.y 0034 00802884 408288fe z: MULADD R4.z, KC0[4].z, R1.y, PV.z 0036 80802c84 60828cfe w: MULADD R4.w, KC0[4].w, R1.y, PV.w 0038 01002085 008280fe 3 x: MULADD R4.x, KC0[5].x, R1.z, PV.x 0040 01002485 208284fe y: MULADD R4.y, KC0[5].y, R1.z, PV.y 0042 01002885 408288fe z: MULADD R4.z, KC0[5].z, R1.z, PV.z 0044 81002c85 60828cfe w: MULADD R4.w, KC0[5].w, R1.z, PV.w 0046 01802086 008280fe 4 x: MULADD R4.x, KC0[6].x, R1.w, PV.x 0048 01802486 208284fe y: MULADD R4.y, KC0[6].y, R1.w, PV.y 0050 01802886 408288fe z: MULADD R4.z, KC0[6].z, R1.w, PV.z 0052 81802c86 60828cfe w: MULADD R4.w, KC0[6].w, R1.w, PV.w 0054 000000f9 00a00c90 5 x: MOV R5.x, 1.0 0056 000000fd 20a00c90 y: MOV R5.y, [0x40000000 2].x 0058 000004fd 40a00c90 z: MOV R5.z, [0x40400000 3].y 0060 800000f9 60a00c90 w: MOV R5.w, 1.0 0062 40000000 0063 40400000 0064 000000fd 00c00c90 6 x: MOV R6.x, [0x40800000 4].x 0066 000004fd 20c00c90 y: MOV R6.y, [0x40a00000 5].y 0068 000008fd 40c00c90 z: MOV R6.z, [0x40c00000 6].z 0070 800000fd 60c00c90 w: MOV R6.w, [0x40800000 4].x 0072 40800000 0073 40a00000 0074 40c00000 0076 000000fd 00e00c90 7 x: MOV R7.x, [0x40e00000 7].x 0078 000004fd 20e00c90 y: MOV R7.y, [0x41000000 8].y 0080 000008fd 40e00c90 z: MOV R7.z, [0x41100000 9].z 0082 800000fd 60e00c90 w: MOV R7.w, [0x40e00000 7].x 0084 40e00000 0085 41000000 0086 41100000 0088 00000005 01000c90 8 x: MOV R8.x, R5.x 0090 00000405 21000c90 y: MOV R8.y, R5.y 0092 00000805 41000c90 z: MOV R8.z, R5.z 0094 80000805 61000c90 w: MOV R8.w, R5.z 0096 00000006 01200c90 9 x: MOV R9.x, R6.x 0098 00000406 21200c90 y: MOV R9.y, R6.y 0100 00000806 41200c90 z: MOV R9.z, R6.z 0102 80000806 61200c90 w: MOV R9.w, R6.z 0104 00000007 01400c90 10 x: MOV R10.x, R7.x 0106 00000407 21400c90 y: MOV R10.y, R7.y 0108 00000807 41400c90 z: MOV R10.z, R7.z 0110 80000807 61400c90 w: MOV R10.w, R7.z 0112 000000fd 02200c90 11 x: MOV R17.x, [0x41200000 10].x 0114 000004fd 22200c90 y: MOV R17.y, [0x41300000 11].y 0116 000008fd 42200c90 z: MOV R17.z, [0x41400000 12].z 0118 800000fd 62200c90 w: MOV R17.w, [0x41200000 10].x 0120 41200000 0121 41300000 0122 41400000 0124 000000fd 02400c90 12 x: MOV R18.x, [0x41500000 13].x 0126 000004fd 22400c90 y: MOV R18.y, [0x41600000 14].y 0128 000008fd 42400c90 z: MOV R18.z, [0x41700000 15].z 0130 800000fd 62400c90 w: MOV R18.w, [0x41500000 13].x 0132 41500000 0133 41600000 0134 41700000 0136 000000fd 02600c90 13 x: MOV R19.x, [0x41800000 16].x 0138 000004fd 22600c90 y: MOV R19.y, [0x41880000 17].y 0140 000008fd 42600c90 z: MOV R19.z, [0x41900000 18].z 0142 800000fd 62600c90 w: MOV R19.w, [0x41800000 16].x 0144 41800000 0145 41880000 0146 41900000 0148 00000011 01600c90 14 x: MOV R11.x, R17.x 0150 00000411 21600c90 y: MOV R11.y, R17.y 0152 00000811 41600c90 z: MOV R11.z, R17.z 0154 80000811 61600c90 w: MOV R11.w, R17.z 0156 00000012 01800c90 15 x: MOV R12.x, R18.x 0158 00000412 21800c90 y: MOV R12.y, R18.y 0160 00000812 41800c90 z: MOV R12.z, R18.z 0162 80000812 61800c90 w: MOV R12.w, R18.z 0164 00000013 01a00c90 16 x: MOV R13.x, R19.x 0166 00000413 21a00c90 y: MOV R13.y, R19.y 0168 00000813 41a00c90 z: MOV R13.z, R19.z 0170 80000813 61a00c90 w: MOV R13.w, R19.z 0172 000000fd 02800c90 17 x: MOV R20.x, [0x41980000 19].x 0174 000004fd 22800c90 y: MOV R20.y, [0x41a00000 20].y 0176 000008fd 42800c90 z: MOV R20.z, [0x41a80000 21].z 0178 800000fd 62800c90 w: MOV R20.w, [0x41980000 19].x 0180 41980000 0181 41a00000 0182 41a80000 0184 000000fd 02a00c90 18 x: MOV R21.x, [0x41b00000 22].x 0186 000004fd 22a00c90 y: MOV R21.y, [0x41b80000 23].y 0188 000008fd 42a00c90 z: MOV R21.z, [0x41c00000 24].z 0190 800000fd 62a00c90 w: MOV R21.w, [0x41b00000 22].x 0192 41b00000 0193 41b80000 0194 41c00000 0196 000000fd 02c00c90 19 x: MOV R22.x, [0x41c80000 25].x 0198 000004fd 22c00c90 y: MOV R22.y, [0x41d00000 26].y 0200 000008fd 42c00c90 z: MOV R22.z, [0x41d80000 27].z 0202 800000fd 62c00c90 w: MOV R22.w, [0x41c80000 25].x 0204 41c80000 0205 41d00000 0206 41d80000 0208 00000014 01c00c90 20 x: MOV R14.x, R20.x 0210 00000414 21c00c90 y: MOV R14.y, R20.y 0212 00000814 41c00c90 z: MOV R14.z, R20.z 0214 80000814 61c00c90 w: MOV R14.w, R20.z 0216 00000015 01e00c90 21 x: MOV R15.x, R21.x 0218 00000415 21e00c90 y: MOV R15.y, R21.y 0220 00000815 41e00c90 z: MOV R15.z, R21.z 0222 80000815 61e00c90 w: MOV R15.w, R21.z 0224 00000016 02000c90 22 x: MOV R16.x, R22.x 0226 00000416 22000c90 y: MOV R16.y, R22.y 0228 00000816 42000c90 z: MOV R16.z, R22.z 0230 80000816 62000c90 w: MOV R16.w, R22.z 0232 001fa080 02e04790 23 x: MULLO_INT R23.x, KC0[0].x, [0x00000003 4.2039e-45].x 0234 001fa080 22e04780 y: MULLO_INT __.y, KC0[0].x, [0x00000003 4.2039e-45].x 0236 001fa080 42e04780 z: MULLO_INT __.z, KC0[0].x, [0x00000003 4.2039e-45].x 0238 801fa080 62e04780 w: MULLO_INT __.w, KC0[0].x, [0x00000003 4.2039e-45].x 0240 00000003 0242 801fc081 02e01a10 24 x: ADD_INT R23.x, KC0[1].x, PV.x 0244 800000fe 03200c90 25 x: MOV R25.x, PV.x 0004 4000007b a4180000 ALU_PUSH_BEFORE 7 @246 KC0[CB0:0-15] 0246 80000019 00006600 26 x: MOVA_INT __.x, R25.x 0248 00104208 03000610 27 x: SETE_DX10 R24.x, R[8+AR].x, KC0[2].x 0250 00904608 23000610 y: SETE_DX10 R24.y, R[8+AR].y, KC0[2].y 0252 81104a08 43000610 z: SETE_DX10 R24.z, R[8+AR].z, KC0[2].z 0254 811fc4fe 23001810 28 y: AND_INT R24.y, PV.y, PV.z 0256 809fc018 02e01810 29 x: AND_INT R23.x, R24.x, PV.y 0258 801f00fe 0340229c 30 MP x: PRED_SETNE_INT R26.x, PV.x, 0 0006 00000005 82800000 JUMP @10 0008 00000082 a00c0000 ALU 4 @260 0260 00000cf8 02e00c90 31 x: MOV R23.x, 0 0262 000000f9 22e00c90 y: MOV R23.y, 1.0 0264 00000cf8 42e00c90 z: MOV R23.z, 0 0266 800000f9 62e00c90 w: MOV R23.w, 1.0 0010 00000007 83400001 ELSE @14 POP:1 0012 00000086 a80c0000 ALU_POP_AFTER 4 @268 0268 000000f9 02e00c90 32 x: MOV R23.x, 1.0 0270 00000cf8 22e00c90 y: MOV R23.y, 0 0272 00000cf8 42e00c90 z: MOV R23.z, 0 0274 800000f9 62e00c90 w: MOV R23.w, 1.0 0014 0000008a a01c0000 ALU 8 @276 0276 00000017 00600c90 33 x: MOV R3.x, R23.x 0278 00000417 20600c90 y: MOV R3.y, R23.y 0280 00000817 40600c90 z: MOV R3.z, R23.z 0282 80000c17 60600c90 w: MOV R3.w, R23.w 0284 00000004 00400c90 34 x: MOV R2.x, R4.x 0286 00000404 20400c90 y: MOV R2.y, R4.y 0288 00000804 40400c90 z: MOV R2.z, R4.z 0290 80000c04 60400c90 w: MOV R2.w, R4.w 0016 c001203c 95000688 EXPORT_DONE POS 60 R2.xyzw 0018 c001c000 95000688 EXPORT_DONE PARAM 0 R3.xyzw 0020 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== add_gpr_array: @5.x [3] add_gpr_array: @5.y [3] add_gpr_array: @5.z [3] add_gpr_array: @5.w [3] add_gpr_array: @8.x [9] add_gpr_array: @8.y [9] add_gpr_array: @8.z [9] add_gpr_array: @8.w [9] add_gpr_array: @17.x [3] add_gpr_array: @17.y [3] add_gpr_array: @17.z [3] add_gpr_array: @17.w [3] add_gpr_array: @20.x [3] add_gpr_array: @20.y [3] add_gpr_array: @20.z [3] add_gpr_array: @20.w [3] ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.xF@R1.x, R1.yF@R1.y, R1.zF@R1.z, R1.wF@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MUL R4.x, C3.x, R1.xF@R1.x MUL R4.y, C3.y, R1.xF@R1.x MUL R4.z, C3.z, R1.xF@R1.x MUL R4.w, C3.w, R1.xF@R1.x ] [ MULADD R4.x, C4.x, R1.yF@R1.y, R4.x MULADD R4.y, C4.y, R1.yF@R1.y, R4.y MULADD R4.z, C4.z, R1.yF@R1.y, R4.z MULADD R4.w, C4.w, R1.yF@R1.y, R4.w ] [ MULADD R4.x, C5.x, R1.zF@R1.z, R4.x MULADD R4.y, C5.y, R1.zF@R1.z, R4.y MULADD R4.z, C5.z, R1.zF@R1.z, R4.z MULADD R4.w, C5.w, R1.zF@R1.z, R4.w ] [ MULADD R4.x, C6.x, R1.wF@R1.w, R4.x MULADD R4.y, C6.y, R1.wF@R1.w, R4.y MULADD R4.z, C6.z, R1.wF@R1.w, R4.z MULADD R4.w, C6.w, R1.wF@R1.w, R4.w ] [ MOV R5.x, 1|3f800000 MOV R5.y, 2|40000000 MOV R5.z, 3|40400000 MOV R5.w, 1|3f800000 ] [ MOV R6.x, 4|40800000 MOV R6.y, 5|40a00000 MOV R6.z, 6|40c00000 MOV R6.w, 4|40800000 ] [ MOV R7.x, 7|40e00000 MOV R7.y, 8|41000000 MOV R7.z, 9|41100000 MOV R7.w, 7|40e00000 ] [ MOV R8.x, R5.x MOV R8.y, R5.y MOV R8.z, R5.z MOV R8.w, R5.z ] [ MOV R9.x, R6.x MOV R9.y, R6.y MOV R9.z, R6.z MOV R9.w, R6.z ] [ MOV R10.x, R7.x MOV R10.y, R7.y MOV R10.z, R7.z MOV R10.w, R7.z ] [ MOV R17.x, 10|41200000 MOV R17.y, 11|41300000 MOV R17.z, 12|41400000 MOV R17.w, 10|41200000 ] [ MOV R18.x, 13|41500000 MOV R18.y, 14|41600000 MOV R18.z, 15|41700000 MOV R18.w, 13|41500000 ] [ MOV R19.x, 16|41800000 MOV R19.y, 17|41880000 MOV R19.z, 18|41900000 MOV R19.w, 16|41800000 ] [ MOV R11.x, R17.x MOV R11.y, R17.y MOV R11.z, R17.z MOV R11.w, R17.z ] [ MOV R12.x, R18.x MOV R12.y, R18.y MOV R12.z, R18.z MOV R12.w, R18.z ] [ MOV R13.x, R19.x MOV R13.y, R19.y MOV R13.z, R19.z MOV R13.w, R19.z ] [ MOV R20.x, 19|41980000 MOV R20.y, 20|41a00000 MOV R20.z, 21|41a80000 MOV R20.w, 19|41980000 ] [ MOV R21.x, 22|41b00000 MOV R21.y, 23|41b80000 MOV R21.z, 24|41c00000 MOV R21.w, 22|41b00000 ] [ MOV R22.x, 25|41c80000 MOV R22.y, 26|41d00000 MOV R22.z, 27|41d80000 MOV R22.w, 25|41c80000 ] [ MOV R14.x, R20.x MOV R14.y, R20.y MOV R14.z, R20.z MOV R14.w, R20.z ] [ MOV R15.x, R21.x MOV R15.y, R21.y MOV R15.z, R21.z MOV R15.w, R21.z ] [ MOV R16.x, R22.x MOV R16.y, R22.y MOV R16.z, R22.z MOV R16.w, R22.z ] [ MULLO_INT 4S MULLO_INT R23.x, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 ] [ ADD_INT R23.x, C1.x, R23.x ] [ MOV R25.x, R23.x ] > ALU_PUSH_BEFORE < [ MOVA_INT AR, R25.x ] [ SETE_DX10 R24.x, A8.x[AR]_135, C2.x rels: A8.x[AR]_135 : <= R8.x, R9.x, R10.x, R11.x, R12.x, R13.x, R14.x, R15.x, R16.x SETE_DX10 R24.y, A8.y[AR]_138, C2.y rels: A8.y[AR]_138 : <= R8.y, R9.y, R10.y, R11.y, R12.y, R13.y, R14.y, R15.y, R16.y SETE_DX10 R24.z, A8.z[AR]_141, C2.z rels: A8.z[AR]_141 : <= R8.z, R9.z, R10.z, R11.z, R12.z, R13.z, R14.z, R15.z, R16.z ] [ AND_INT R24.y, R24.y, R24.z ] [ AND_INT R23.x, R24.x, R24.y ] [ PRED_SETNE_INT R26.x, PR, EM, R23.x, 0|00000000 ] > region #0 depart region #0 after { if EM { depart region #0 after { JUMP @10 ALU < [ MOV R23.x, 0|00000000 MOV R23.y, 1|3f800000 MOV R23.z, 0|00000000 MOV R23.w, 1|3f800000 ] > } end_depart } endif ELSE @14 ALU_POP_AFTER < [ MOV R23.x, 1|3f800000 MOV R23.y, 0|00000000 MOV R23.z, 0|00000000 MOV R23.w, 1|3f800000 ] > } end_depart ALU < [ MOV R3.x, R23.x MOV R3.y, R23.y MOV R3.z, R23.z MOV R3.w, R23.w ] [ MOV R2.x, R4.x MOV R2.y, R4.y MOV R2.z, R4.z MOV R2.w, R4.w ] > EXPORT POS 60 R2.x, R2.y, R2.z, R2.w EXPORT PARAM 0 R3.x, R3.y, R3.z, R3.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 ] [ MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 ] [ MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 ] [ MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 ] [ MOV R5.x.1, 1|3f800000 MOV R5.y.1, 2|40000000 MOV R5.z.1, 3|40400000 MOV R5.w.1, 1|3f800000 ] [ MOV R6.x.1, 4|40800000 MOV R6.y.1, 5|40a00000 MOV R6.z.1, 6|40c00000 MOV R6.w.1, 4|40800000 ] [ MOV R7.x.1, 7|40e00000 MOV R7.y.1, 8|41000000 MOV R7.z.1, 9|41100000 MOV R7.w.1, 7|40e00000 ] [ MOV R8.x.1, R5.x.1 MOV R8.y.1, R5.y.1 MOV R8.z.1, R5.z.1 MOV R8.w.1, R5.z.1 ] [ MOV R9.x.1, R6.x.1 MOV R9.y.1, R6.y.1 MOV R9.z.1, R6.z.1 MOV R9.w.1, R6.z.1 ] [ MOV R10.x.1, R7.x.1 MOV R10.y.1, R7.y.1 MOV R10.z.1, R7.z.1 MOV R10.w.1, R7.z.1 ] [ MOV R17.x.1, 10|41200000 MOV R17.y.1, 11|41300000 MOV R17.z.1, 12|41400000 MOV R17.w.1, 10|41200000 ] [ MOV R18.x.1, 13|41500000 MOV R18.y.1, 14|41600000 MOV R18.z.1, 15|41700000 MOV R18.w.1, 13|41500000 ] [ MOV R19.x.1, 16|41800000 MOV R19.y.1, 17|41880000 MOV R19.z.1, 18|41900000 MOV R19.w.1, 16|41800000 ] [ MOV R11.x.1, R17.x.1 MOV R11.y.1, R17.y.1 MOV R11.z.1, R17.z.1 MOV R11.w.1, R17.z.1 ] [ MOV R12.x.1, R18.x.1 MOV R12.y.1, R18.y.1 MOV R12.z.1, R18.z.1 MOV R12.w.1, R18.z.1 ] [ MOV R13.x.1, R19.x.1 MOV R13.y.1, R19.y.1 MOV R13.z.1, R19.z.1 MOV R13.w.1, R19.z.1 ] [ MOV R20.x.1, 19|41980000 MOV R20.y.1, 20|41a00000 MOV R20.z.1, 21|41a80000 MOV R20.w.1, 19|41980000 ] [ MOV R21.x.1, 22|41b00000 MOV R21.y.1, 23|41b80000 MOV R21.z.1, 24|41c00000 MOV R21.w.1, 22|41b00000 ] [ MOV R22.x.1, 25|41c80000 MOV R22.y.1, 26|41d00000 MOV R22.z.1, 27|41d80000 MOV R22.w.1, 25|41c80000 ] [ MOV R14.x.1, R20.x.1 MOV R14.y.1, R20.y.1 MOV R14.z.1, R20.z.1 MOV R14.w.1, R20.z.1 ] [ MOV R15.x.1, R21.x.1 MOV R15.y.1, R21.y.1 MOV R15.z.1, R21.z.1 MOV R15.w.1, R21.z.1 ] [ MOV R16.x.1, R22.x.1 MOV R16.y.1, R22.y.1 MOV R16.z.1, R22.z.1 MOV R16.w.1, R22.z.1 ] [ MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ] [ ADD_INT R23.x.2, C1.x, R23.x.1 ] [ MOV R25.x.1, R23.x.2 ] > ALU_PUSH_BEFORE < [ MOVA_INT AR.1, R25.x.1 ] [ SETE_DX10 R24.x.1, A8.x[AR.1]_135, C2.x rels: A8.x[AR.1]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[AR.1]_138, C2.y rels: A8.y[AR.1]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[AR.1]_141, C2.z rels: A8.z[AR.1]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 ] [ AND_INT R24.y.2, R24.y.1, R24.z.1 ] [ AND_INT R23.x.3, R24.x.1, R24.y.2 ] [ PRED_SETNE_INT R26.x.1, PR.1, EM.1, R23.x.3, 0|00000000 ] > region #0 depart region #0 after { if EM.1 { depart region #0 after { JUMP @10 ALU < [ MOV R23.x.4, 0|00000000 MOV R23.y.1, 1|3f800000 MOV R23.z.1, 0|00000000 MOV R23.w.1, 1|3f800000 ] > } end_depart } endif ELSE @14 ALU_POP_AFTER < [ MOV R23.x.5, 1|3f800000 MOV R23.y.2, 0|00000000 MOV R23.z.2, 0|00000000 MOV R23.w.2, 1|3f800000 ] > } end_depart { * phi R23.x.6, R23.x.4, R23.x.5 * phi R23.y.3, R23.y.1, R23.y.2 * phi R23.z.3, R23.z.1, R23.z.2 * phi R23.w.3, R23.w.1, R23.w.2 } ALU < [ MOV R3.x.1, R23.x.6 MOV R3.y.1, R23.y.3 MOV R3.z.1, R23.z.3 MOV R3.w.1, R23.w.3 ] [ MOV R2.x.1, R4.x.4 MOV R2.y.1, R4.y.4 MOV R2.z.1, R4.z.4 MOV R2.w.1, R4.w.4 ] > EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MOV R5.x.1, 1|3f800000 MOV R5.y.1, 2|40000000 MOV R5.z.1, 3|40400000 MOV R6.x.1, 4|40800000 MOV R6.y.1, 5|40a00000 MOV R6.z.1, 6|40c00000 MOV R7.x.1, 7|40e00000 MOV R7.y.1, 8|41000000 MOV R7.z.1, 9|41100000 MOV R8.x.1, R5.x.1 MOV R8.y.1, R5.y.1 MOV R8.z.1, R5.z.1 MOV R9.x.1, R6.x.1 MOV R9.y.1, R6.y.1 MOV R9.z.1, R6.z.1 MOV R10.x.1, R7.x.1 MOV R10.y.1, R7.y.1 MOV R10.z.1, R7.z.1 MOV R17.x.1, 10|41200000 MOV R17.y.1, 11|41300000 MOV R17.z.1, 12|41400000 MOV R18.x.1, 13|41500000 MOV R18.y.1, 14|41600000 MOV R18.z.1, 15|41700000 MOV R19.x.1, 16|41800000 MOV R19.y.1, 17|41880000 MOV R19.z.1, 18|41900000 MOV R11.x.1, R17.x.1 MOV R11.y.1, R17.y.1 MOV R11.z.1, R17.z.1 MOV R12.x.1, R18.x.1 MOV R12.y.1, R18.y.1 MOV R12.z.1, R18.z.1 MOV R13.x.1, R19.x.1 MOV R13.y.1, R19.y.1 MOV R13.z.1, R19.z.1 MOV R20.x.1, 19|41980000 MOV R20.y.1, 20|41a00000 MOV R20.z.1, 21|41a80000 MOV R21.x.1, 22|41b00000 MOV R21.y.1, 23|41b80000 MOV R21.z.1, 24|41c00000 MOV R22.x.1, 25|41c80000 MOV R22.y.1, 26|41d00000 MOV R22.z.1, 27|41d80000 MOV R14.x.1, R20.x.1 MOV R14.y.1, R20.y.1 MOV R14.z.1, R20.z.1 MOV R15.x.1, R21.x.1 MOV R15.y.1, R21.y.1 MOV R15.z.1, R21.z.1 MOV R16.x.1, R22.x.1 MOV R16.y.1, R22.y.1 MOV R16.z.1, R22.z.1 MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R25.x.1, R23.x.2 MOVA_INT AR.1, R25.x.1 SETE_DX10 R24.x.1, A8.x[AR.1]_135, C2.x rels: A8.x[AR.1]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[AR.1]_138, C2.y rels: A8.y[AR.1]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[AR.1]_141, C2.z rels: A8.z[AR.1]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 AND_INT R24.y.2, R24.y.1, R24.z.1 AND_INT R23.x.3, R24.x.1, R24.y.2 PRED_SETNE_INT __, __, EM.1, R23.x.3, 0|00000000 SETE_INT t1, R23.x.3, 0|00000000 MOV R23.x.4, 0|00000000 MOV R23.y.1, 1|3f800000 MOV R23.z.1, 0|00000000 MOV R23.w.1, 1|3f800000 MOV R23.x.5, 1|3f800000 MOV R23.y.2, 0|00000000 MOV R23.z.2, 0|00000000 MOV R23.w.2, 1|3f800000 CNDE_INT R23.w.3, t1, R23.w.1, R23.w.2 CNDE_INT R23.z.3, t1, R23.z.1, R23.z.2 CNDE_INT R23.y.3, t1, R23.y.1, R23.y.2 CNDE_INT R23.x.6, t1, R23.x.4, R23.x.5 MOV R3.x.1, R23.x.6 MOV R3.y.1, R23.y.3 MOV R3.z.1, R23.z.3 MOV R3.w.1, R23.w.3 MOV R2.x.1, R4.x.4 MOV R2.y.1, R4.y.4 MOV R2.z.1, R4.z.4 MOV R2.w.1, R4.w.4 EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MOV R5.x.1, 1|3f800000 MOV R5.y.1, 2|40000000 MOV R5.z.1, 3|40400000 MOV R6.x.1, 4|40800000 MOV R6.y.1, 5|40a00000 MOV R6.z.1, 6|40c00000 MOV R7.x.1, 7|40e00000 MOV R7.y.1, 8|41000000 MOV R7.z.1, 9|41100000 MOV R8.x.1, R5.x.1 MOV R8.y.1, R5.y.1 MOV R8.z.1, R5.z.1 MOV R9.x.1, R6.x.1 MOV R9.y.1, R6.y.1 MOV R9.z.1, R6.z.1 MOV R10.x.1, R7.x.1 MOV R10.y.1, R7.y.1 MOV R10.z.1, R7.z.1 MOV R17.x.1, 10|41200000 MOV R17.y.1, 11|41300000 MOV R17.z.1, 12|41400000 MOV R18.x.1, 13|41500000 MOV R18.y.1, 14|41600000 MOV R18.z.1, 15|41700000 MOV R19.x.1, 16|41800000 MOV R19.y.1, 17|41880000 MOV R19.z.1, 18|41900000 MOV R11.x.1, R17.x.1 MOV R11.y.1, R17.y.1 MOV R11.z.1, R17.z.1 MOV R12.x.1, R18.x.1 MOV R12.y.1, R18.y.1 MOV R12.z.1, R18.z.1 MOV R13.x.1, R19.x.1 MOV R13.y.1, R19.y.1 MOV R13.z.1, R19.z.1 MOV R20.x.1, 19|41980000 MOV R20.y.1, 20|41a00000 MOV R20.z.1, 21|41a80000 MOV R21.x.1, 22|41b00000 MOV R21.y.1, 23|41b80000 MOV R21.z.1, 24|41c00000 MOV R22.x.1, 25|41c80000 MOV R22.y.1, 26|41d00000 MOV R22.z.1, 27|41d80000 MOV R14.x.1, R20.x.1 MOV R14.y.1, R20.y.1 MOV R14.z.1, R20.z.1 MOV R15.x.1, R21.x.1 MOV R15.y.1, R21.y.1 MOV R15.z.1, R21.z.1 MOV R16.x.1, R22.x.1 MOV R16.y.1, R22.y.1 MOV R16.z.1, R22.z.1 MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R25.x.1, R23.x.2 MOVA_INT AR.1, R25.x.1 SETE_DX10 R24.x.1, A8.x[AR.1]_135, C2.x rels: A8.x[AR.1]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[AR.1]_138, C2.y rels: A8.y[AR.1]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[AR.1]_141, C2.z rels: A8.z[AR.1]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 AND_INT R24.y.2, R24.y.1, R24.z.1 AND_INT R23.x.3, R24.x.1, R24.y.2 PRED_SETNE_INT __, __, EM.1, R23.x.3, 0|00000000 SETE_INT t1, R23.x.3, 0|00000000 MOV R23.x.4, 0|00000000 MOV R23.y.1, 1|3f800000 MOV R23.z.1, 0|00000000 MOV R23.w.1, 1|3f800000 MOV R23.x.5, 1|3f800000 MOV R23.y.2, 0|00000000 MOV R23.z.2, 0|00000000 MOV R23.w.2, 1|3f800000 CNDE_INT R23.w.3, R23.x.3, R23.w.2, R23.w.1 CNDE_INT R23.z.3, R23.x.3, R23.z.2, R23.z.1 CNDE_INT R23.y.3, R23.x.3, R23.y.2, R23.y.1 CNDE_INT R23.x.6, R23.x.3, R23.x.5, R23.x.4 MOV R3.x.1, R23.x.6 MOV R3.y.1, R23.y.3 MOV R3.z.1, R23.z.3 MOV R3.w.1, R23.w.3 MOV R2.x.1, R4.x.4 MOV R2.y.1, R4.y.4 MOV R2.z.1, R4.z.4 MOV R2.w.1, R4.w.4 EXPORT POS 60 R2.x.1, R2.y.1, R2.z.1, R2.w.1 EXPORT PARAM 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MOV R5.x.1, 1|3f800000 MOV R5.y.1, 2|40000000 MOV R5.z.1, 3|40400000 MOV R6.x.1, 4|40800000 MOV R6.y.1, 5|40a00000 MOV R6.z.1, 6|40c00000 MOV R7.x.1, 7|40e00000 MOV R7.y.1, 8|41000000 MOV R7.z.1, 9|41100000 MOV R8.x.1, 1|3f800000 MOV R8.y.1, 2|40000000 MOV R8.z.1, 3|40400000 MOV R9.x.1, 4|40800000 MOV R9.y.1, 5|40a00000 MOV R9.z.1, 6|40c00000 MOV R10.x.1, 7|40e00000 MOV R10.y.1, 8|41000000 MOV R10.z.1, 9|41100000 MOV R17.x.1, 10|41200000 MOV R17.y.1, 11|41300000 MOV R17.z.1, 12|41400000 MOV R18.x.1, 13|41500000 MOV R18.y.1, 14|41600000 MOV R18.z.1, 15|41700000 MOV R19.x.1, 16|41800000 MOV R19.y.1, 17|41880000 MOV R19.z.1, 18|41900000 MOV R11.x.1, 10|41200000 MOV R11.y.1, 11|41300000 MOV R11.z.1, 12|41400000 MOV R12.x.1, 13|41500000 MOV R12.y.1, 14|41600000 MOV R12.z.1, 15|41700000 MOV R13.x.1, 16|41800000 MOV R13.y.1, 17|41880000 MOV R13.z.1, 18|41900000 MOV R20.x.1, 19|41980000 MOV R20.y.1, 20|41a00000 MOV R20.z.1, 21|41a80000 MOV R21.x.1, 22|41b00000 MOV R21.y.1, 23|41b80000 MOV R21.z.1, 24|41c00000 MOV R22.x.1, 25|41c80000 MOV R22.y.1, 26|41d00000 MOV R22.z.1, 27|41d80000 MOV R14.x.1, 19|41980000 MOV R14.y.1, 20|41a00000 MOV R14.z.1, 21|41a80000 MOV R15.x.1, 22|41b00000 MOV R15.y.1, 23|41b80000 MOV R15.z.1, 24|41c00000 MOV R16.x.1, 25|41c80000 MOV R16.y.1, 26|41d00000 MOV R16.z.1, 27|41d80000 MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R25.x.1, R23.x.2 MOVA_INT AR.1, R23.x.2 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 AND_INT R24.y.2, R24.y.1, R24.z.1 AND_INT R23.x.3, R24.x.1, R24.y.2 PRED_SETNE_INT __, __, EM.1, R23.x.3, 0|00000000 SETE_INT t1, R23.x.3, 0|00000000 MOV R23.x.4, 0|00000000 MOV R23.y.1, 1|3f800000 MOV R23.z.1, 0|00000000 MOV R23.w.1, 1|3f800000 MOV R23.x.5, 1|3f800000 MOV R23.y.2, 0|00000000 MOV R23.z.2, 0|00000000 MOV R23.w.2, 1|3f800000 MOV R23.w.3, 1|3f800000 MOV R23.z.3, 0|00000000 CNDE_INT R23.y.3, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6, R23.x.3, 1|3f800000, 0|00000000 MOV R3.x.1, R23.x.6 MOV R3.y.1, R23.y.3 MOV R3.z.1, 0|00000000 MOV R3.w.1, 1|3f800000 MOV R2.x.1, R4.x.4 MOV R2.y.1, R4.y.4 MOV R2.z.1, R4.z.4 MOV R2.w.1, R4.w.4 EXPORT POS 60 R4.x.4, R4.y.4, R4.z.4, R4.w.4 EXPORT PARAM 0 R23.x.6, R23.y.3, 0|00000000, 1|3f800000 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MOV R5.x.1, 1|3f800000 MOV R5.y.1, 2|40000000 MOV R5.z.1, 3|40400000 MOV R6.x.1, 4|40800000 MOV R6.y.1, 5|40a00000 MOV R6.z.1, 6|40c00000 MOV R7.x.1, 7|40e00000 MOV R7.y.1, 8|41000000 MOV R7.z.1, 9|41100000 MOV R8.x.1, 1|3f800000 MOV R8.y.1, 2|40000000 MOV R8.z.1, 3|40400000 MOV R9.x.1, 4|40800000 MOV R9.y.1, 5|40a00000 MOV R9.z.1, 6|40c00000 MOV R10.x.1, 7|40e00000 MOV R10.y.1, 8|41000000 MOV R10.z.1, 9|41100000 MOV R17.x.1, 10|41200000 MOV R17.y.1, 11|41300000 MOV R17.z.1, 12|41400000 MOV R18.x.1, 13|41500000 MOV R18.y.1, 14|41600000 MOV R18.z.1, 15|41700000 MOV R19.x.1, 16|41800000 MOV R19.y.1, 17|41880000 MOV R19.z.1, 18|41900000 MOV R11.x.1, 10|41200000 MOV R11.y.1, 11|41300000 MOV R11.z.1, 12|41400000 MOV R12.x.1, 13|41500000 MOV R12.y.1, 14|41600000 MOV R12.z.1, 15|41700000 MOV R13.x.1, 16|41800000 MOV R13.y.1, 17|41880000 MOV R13.z.1, 18|41900000 MOV R20.x.1, 19|41980000 MOV R20.y.1, 20|41a00000 MOV R20.z.1, 21|41a80000 MOV R21.x.1, 22|41b00000 MOV R21.y.1, 23|41b80000 MOV R21.z.1, 24|41c00000 MOV R22.x.1, 25|41c80000 MOV R22.y.1, 26|41d00000 MOV R22.z.1, 27|41d80000 MOV R14.x.1, 19|41980000 MOV R14.y.1, 20|41a00000 MOV R14.z.1, 21|41a80000 MOV R15.x.1, 22|41b00000 MOV R15.y.1, 23|41b80000 MOV R15.z.1, 24|41c00000 MOV R16.x.1, 25|41c80000 MOV R16.y.1, 26|41d00000 MOV R16.z.1, 27|41d80000 MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R25.x.1, R23.x.2 MOVA_INT AR.1, R23.x.2 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 AND_INT R24.y.2, R24.y.1, R24.z.1 AND_INT R23.x.3, R24.x.1, R24.y.2 PRED_SETNE_INT __, __, EM.1, R23.x.3, 0|00000000 SETE_INT t1, R23.x.3, 0|00000000 MOV R23.x.4, 0|00000000 MOV R23.y.1, 1|3f800000 MOV R23.z.1, 0|00000000 MOV R23.w.1, 1|3f800000 MOV R23.x.5, 1|3f800000 MOV R23.y.2, 0|00000000 MOV R23.z.2, 0|00000000 MOV R23.w.2, 1|3f800000 MOV R23.w.3, 1|3f800000 MOV R23.z.3, 0|00000000 CNDE_INT R23.y.3, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6, R23.x.3, 1|3f800000, 0|00000000 MOV R3.x.1, R23.x.6 MOV R3.y.1, R23.y.3 MOV R3.z.1, 0|00000000 MOV R3.w.1, 1|3f800000 MOV R2.x.1, R4.x.4 MOV R2.y.1, R4.y.4 MOV R2.z.1, R4.z.4 MOV R2.w.1, R4.w.4 EXPORT POS 60 R4.x.4, R4.y.4, R4.z.4, R4.w.4 EXPORT PARAM 0 R23.x.6, R23.y.3, 0|00000000, 1|3f800000 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] CALL_FS R1.x.1, R1.y.1, R1.z.1, R1.w.1, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w MUL R4.x.1, C3.x, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.w.1, C3.w, R1.x.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MOV R8.x.1, 1|3f800000 MOV R8.y.1, 2|40000000 MOV R8.z.1, 3|40400000 MOV R9.x.1, 4|40800000 MOV R9.y.1, 5|40a00000 MOV R9.z.1, 6|40c00000 MOV R10.x.1, 7|40e00000 MOV R10.y.1, 8|41000000 MOV R10.z.1, 9|41100000 MOV R11.x.1, 10|41200000 MOV R11.y.1, 11|41300000 MOV R11.z.1, 12|41400000 MOV R12.x.1, 13|41500000 MOV R12.y.1, 14|41600000 MOV R12.z.1, 15|41700000 MOV R13.x.1, 16|41800000 MOV R13.y.1, 17|41880000 MOV R13.z.1, 18|41900000 MOV R14.x.1, 19|41980000 MOV R14.y.1, 20|41a00000 MOV R14.z.1, 21|41a80000 MOV R15.x.1, 22|41b00000 MOV R15.y.1, 23|41b80000 MOV R15.z.1, 24|41c00000 MOV R16.x.1, 25|41c80000 MOV R16.y.1, 26|41d00000 MOV R16.z.1, 27|41d80000 MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 ADD_INT R23.x.2, C1.x, R23.x.1 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 AND_INT R24.y.2, R24.y.1, R24.z.1 AND_INT R23.x.3, R24.x.1, R24.y.2 CNDE_INT R23.y.3, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6, R23.x.3, 1|3f800000, 0|00000000 EXPORT POS 60 R4.x.4, R4.y.4, R4.z.4, R4.w.4 EXPORT PARAM 0 R23.x.6, R23.y.3, 0|00000000, 1|3f800000 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 CALL_FS t8F@R1.x, t9F@R1.y, t10F@R1.z, t11F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 MOV R8.y.1, 2|40000000 MOV R9.y.1, 5|40a00000 MOV R10.y.1, 8|41000000 MOV R11.y.1, 11|41300000 MOV R12.y.1, 14|41600000 MOV R13.y.1, 17|41880000 MOV R14.y.1, 20|41a00000 MOV R15.y.1, 23|41b80000 MOV R16.y.1, 26|41d00000 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R8.z.1, 3|40400000 MOV R9.z.1, 6|40c00000 MOV R10.z.1, 9|41100000 MOV R11.z.1, 12|41400000 MOV R12.z.1, 15|41700000 MOV R13.z.1, 18|41900000 MOV R14.z.1, 21|41a80000 MOV R15.z.1, 24|41c00000 MOV R16.z.1, 27|41d80000 (copy) MOV R1.x.1, t8F@R1.x MUL R4.w.1, C3.w, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.x.1, C3.x, R1.x.1 MOV R8.x.1, 1|3f800000 MOV R9.x.1, 4|40800000 MOV R10.x.1, 7|40e00000 MOV R11.x.1, 10|41200000 MOV R12.x.1, 13|41500000 MOV R13.x.1, 16|41800000 MOV R14.x.1, 19|41980000 MOV R15.x.1, 22|41b00000 MOV R16.x.1, 25|41c80000 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 (copy) MOV R1.y.1, t9F@R1.y MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 AND_INT R24.y.2, R24.y.1, R24.z.1 (copy) MOV R1.z.1, t10F@R1.z MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 AND_INT R23.x.3, R24.x.1, R24.y.2 (copy) MOV R1.w.1, t11F@R1.w MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 CNDE_INT R23.y.3, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6, R23.x.3, 1|3f800000, 0|00000000 (copy) MOV t7, R4.w.4 (copy) MOV t6, R4.z.4 (copy) MOV t5, R4.y.4 (copy) MOV t4, R4.x.4 (copy) MOV t3, R23.y.3 (copy) MOV t2, R23.x.6 > EXPORT PARAM 0 t2, t3, 0|00000000, 1|3f800000 EXPORT POS 60 t4, t5, t6, t7 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t8F@R1.x, t9F@R1.y, t10F@R1.z, t11F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t8F@R1.x t9F@R1.y t10F@R1.z t11F@R1.w ] MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 MOV R8.y.1, 2|40000000 MOV R9.y.1, 5|40a00000 MOV R10.y.1, 8|41000000 MOV R11.y.1, 11|41300000 MOV R12.y.1, 14|41600000 MOV R13.y.1, 17|41880000 MOV R14.y.1, 20|41a00000 MOV R15.y.1, 23|41b80000 MOV R16.y.1, 26|41d00000 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R8.z.1, 3|40400000 MOV R9.z.1, 6|40c00000 MOV R10.z.1, 9|41100000 MOV R11.z.1, 12|41400000 MOV R12.z.1, 15|41700000 MOV R13.z.1, 18|41900000 MOV R14.z.1, 21|41a80000 MOV R15.z.1, 24|41c00000 MOV R16.z.1, 27|41d80000 (copy) MOV R1.x.1, t8F@R1.x MUL R4.w.1, C3.w, R1.x.1 MUL R4.z.1, C3.z, R1.x.1 MUL R4.y.1, C3.y, R1.x.1 MUL R4.x.1, C3.x, R1.x.1 MOV R8.x.1, 1|3f800000 MOV R9.x.1, 4|40800000 MOV R10.x.1, 7|40e00000 MOV R11.x.1, 10|41200000 MOV R12.x.1, 13|41500000 MOV R13.x.1, 16|41800000 MOV R14.x.1, 19|41980000 MOV R15.x.1, 22|41b00000 MOV R16.x.1, 25|41c80000 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 (copy) MOV R1.y.1, t9F@R1.y MULADD R4.w.2, C4.w, R1.y.1, R4.w.1 MULADD R4.z.2, C4.z, R1.y.1, R4.z.1 MULADD R4.y.2, C4.y, R1.y.1, R4.y.1 MULADD R4.x.2, C4.x, R1.y.1, R4.x.1 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 AND_INT R24.y.2, R24.y.1, R24.z.1 (copy) MOV R1.z.1, t10F@R1.z MULADD R4.w.3, C5.w, R1.z.1, R4.w.2 MULADD R4.z.3, C5.z, R1.z.1, R4.z.2 MULADD R4.y.3, C5.y, R1.z.1, R4.y.2 MULADD R4.x.3, C5.x, R1.z.1, R4.x.2 AND_INT R23.x.3, R24.x.1, R24.y.2 (copy) MOV R1.w.1, t11F@R1.w MULADD R4.w.4, C6.w, R1.w.1, R4.w.3 MULADD R4.z.4, C6.z, R1.w.1, R4.z.3 MULADD R4.y.4, C6.y, R1.w.1, R4.y.3 MULADD R4.x.4, C6.x, R1.w.1, R4.x.3 CNDE_INT R23.y.3, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6, R23.x.3, 1|3f800000, 0|00000000 (copy) MOV t7, R4.w.4 (copy) MOV t6, R4.z.4 (copy) MOV t5, R4.y.4 (copy) MOV t4, R4.x.4 (copy) MOV t3, R23.y.3 (copy) MOV t2, R23.x.6 > live_after: [t2 t3 t4 t5 t6 t7 ] EXPORT PARAM 0 t2, t3, 0|00000000, 1|3f800000 EXPORT POS 60 t4, t5, t6, t7 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t8F@R1.x, t9F@R1.y, t10F@R1.z, t11F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t8F@R1.x t9F@R1.y t10F@R1.z t11F@R1.w ] MULLO_INT R23.x.1, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 MOV R8.y.1, 2|40000000 MOV R9.y.1, 5|40a00000 MOV R10.y.1, 8|41000000 MOV R11.y.1, 11|41300000 MOV R12.y.1, 14|41600000 MOV R13.y.1, 17|41880000 MOV R14.y.1, 20|41a00000 MOV R15.y.1, 23|41b80000 MOV R16.y.1, 26|41d00000 ADD_INT R23.x.2, C1.x, R23.x.1 MOV R8.z.1, 3|40400000 MOV R9.z.1, 6|40c00000 MOV R10.z.1, 9|41100000 MOV R11.z.1, 12|41400000 MOV R12.z.1, 15|41700000 MOV R13.z.1, 18|41900000 MOV R14.z.1, 21|41a80000 MOV R15.z.1, 24|41c00000 MOV R16.z.1, 27|41d80000 (copy) MOV R1.x.1F@R1.x, t8F@R1.x MUL R4.w.1, C3.w, R1.x.1F@R1.x MUL R4.z.1, C3.z, R1.x.1F@R1.x MUL R4.y.1, C3.y, R1.x.1F@R1.x MUL R4.x.1, C3.x, R1.x.1F@R1.x MOV R8.x.1, 1|3f800000 MOV R9.x.1, 4|40800000 MOV R10.x.1, 7|40e00000 MOV R11.x.1, 10|41200000 MOV R12.x.1, 13|41500000 MOV R13.x.1, 16|41800000 MOV R14.x.1, 19|41980000 MOV R15.x.1, 22|41b00000 MOV R16.x.1, 25|41c80000 SETE_DX10 R24.y.1, A8.y[R23.x.2]_138, C2.y rels: A8.y[R23.x.2]_138 : <= R8.y.1, R9.y.1, R10.y.1, R11.y.1, R12.y.1, R13.y.1, R14.y.1, R15.y.1, R16.y.1 SETE_DX10 R24.z.1, A8.z[R23.x.2]_141, C2.z rels: A8.z[R23.x.2]_141 : <= R8.z.1, R9.z.1, R10.z.1, R11.z.1, R12.z.1, R13.z.1, R14.z.1, R15.z.1, R16.z.1 (copy) MOV R1.y.1F@R1.y, t9F@R1.y MULADD R4.w.2, C4.w, R1.y.1F@R1.y, R4.w.1 MULADD R4.z.2, C4.z, R1.y.1F@R1.y, R4.z.1 MULADD R4.y.2, C4.y, R1.y.1F@R1.y, R4.y.1 MULADD R4.x.2, C4.x, R1.y.1F@R1.y, R4.x.1 SETE_DX10 R24.x.1, A8.x[R23.x.2]_135, C2.x rels: A8.x[R23.x.2]_135 : <= R8.x.1, R9.x.1, R10.x.1, R11.x.1, R12.x.1, R13.x.1, R14.x.1, R15.x.1, R16.x.1 AND_INT R24.y.2, R24.y.1, R24.z.1 (copy) MOV R1.z.1F@R1.z, t10F@R1.z MULADD R4.w.3, C5.w, R1.z.1F@R1.z, R4.w.2 MULADD R4.z.3, C5.z, R1.z.1F@R1.z, R4.z.2 MULADD R4.y.3, C5.y, R1.z.1F@R1.z, R4.y.2 MULADD R4.x.3, C5.x, R1.z.1F@R1.z, R4.x.2 AND_INT R23.x.3, R24.x.1, R24.y.2 (copy) MOV R1.w.1F@R1.w, t11F@R1.w MULADD R4.w.4FP@R0.w, C6.w, R1.w.1F@R1.w, R4.w.3 MULADD R4.z.4FP@R0.z, C6.z, R1.w.1F@R1.w, R4.z.3 MULADD R4.y.4FP@R0.y, C6.y, R1.w.1F@R1.w, R4.y.3 MULADD R4.x.4FP@R0.x, C6.x, R1.w.1F@R1.w, R4.x.3 CNDE_INT R23.y.3FP@R1.y, R23.x.3, 0|00000000, 1|3f800000 CNDE_INT R23.x.6FP@R1.x, R23.x.3, 1|3f800000, 0|00000000 (copy) MOV t7FP@R0.w, R4.w.4FP@R0.w (copy) MOV t6FP@R0.z, R4.z.4FP@R0.z (copy) MOV t5FP@R0.y, R4.y.4FP@R0.y (copy) MOV t4FP@R0.x, R4.x.4FP@R0.x (copy) MOV t3FP@R1.y, R23.y.3FP@R1.y (copy) MOV t2FP@R1.x, R23.x.6FP@R1.x > live_after: [t2FP@R1.x t3FP@R1.y t4FP@R0.x t5FP@R0.y t6FP@R0.z t7FP@R0.w ] EXPORT PARAM 0 t2FP@R1.x, t3FP@R1.y, 0|00000000, 1|3f800000 EXPORT POS 60 t4FP@R0.x, t5FP@R0.y, t6FP@R0.z, t7FP@R0.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t8F@R1.x, t9F@R1.y, t10F@R1.z, t11F@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < live_before: [t8F@R1.x t9F@R1.y t10F@R1.z t11F@R1.w ] MULLO_INT R23.x.1@R0.x, __, __, __, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003, C0.x, 4.2039e-45|00000003 MOV R8.y.1F, 2|40000000 MOV R9.y.1F, 5|40a00000 MOV R10.y.1F, 8|41000000 MOV R11.y.1F, 11|41300000 MOV R12.y.1F, 14|41600000 MOV R13.y.1F, 17|41880000 MOV R14.y.1F, 20|41a00000 MOV R15.y.1F, 23|41b80000 MOV R16.y.1F, 26|41d00000 ADD_INT R23.x.2@R0.y, C1.x, R23.x.1@R0.x MOV R8.z.1F, 3|40400000 MOV R9.z.1F, 6|40c00000 MOV R10.z.1F, 9|41100000 MOV R11.z.1F, 12|41400000 MOV R12.z.1F, 15|41700000 MOV R13.z.1F, 18|41900000 MOV R14.z.1F, 21|41a80000 MOV R15.z.1F, 24|41c00000 MOV R16.z.1F, 27|41d80000 (copy) MOV R1.x.1F@R1.x, t8F@R1.x MUL R4.w.1@R0.z, C3.w, R1.x.1F@R1.x MUL R4.z.1@R0.w, C3.z, R1.x.1F@R1.x MUL R4.y.1@R9.x, C3.y, R1.x.1F@R1.x MUL R4.x.1@R11.y, C3.x, R1.x.1F@R1.x MOV R8.x.1F, 1|3f800000 MOV R9.x.1F, 4|40800000 MOV R10.x.1F, 7|40e00000 MOV R11.x.1F, 10|41200000 MOV R12.x.1F, 13|41500000 MOV R13.x.1F, 16|41800000 MOV R14.x.1F, 19|41980000 MOV R15.x.1F, 22|41b00000 MOV R16.x.1F, 25|41c80000 SETE_DX10 R24.y.1@R11.z, A8.y[R23.x.2@R0.y]_138F@R2.y, C2.y rels: A8.y[R23.x.2@R0.y]_138F@R2.y : <= R8.y.1F, R9.y.1F, R10.y.1F, R11.y.1F, R12.y.1F, R13.y.1F, R14.y.1F, R15.y.1F, R16.y.1F SETE_DX10 R24.z.1@R2.w, A8.z[R23.x.2@R0.y]_141F@R2.z, C2.z rels: A8.z[R23.x.2@R0.y]_141F@R2.z : <= R8.z.1F, R9.z.1F, R10.z.1F, R11.z.1F, R12.z.1F, R13.z.1F, R14.z.1F, R15.z.1F, R16.z.1F (copy) MOV R1.y.1F@R1.y, t9F@R1.y MULADD R4.w.2@R10.x, C4.w, R1.y.1F@R1.y, R4.w.1@R0.z MULADD R4.z.2@R2.y, C4.z, R1.y.1F@R1.y, R4.z.1@R0.w MULADD R4.y.2@R0.z, C4.y, R1.y.1F@R1.y, R4.y.1@R9.x MULADD R4.x.2@R0.w, C4.x, R1.y.1F@R1.y, R4.x.1@R11.y SETE_DX10 R24.x.1@R0.x, A8.x[R23.x.2@R0.y]_135F@R0.x, C2.x rels: A8.x[R23.x.2@R0.y]_135F@R0.x : <= R8.x.1F, R9.x.1F, R10.x.1F, R11.x.1F, R12.x.1F, R13.x.1F, R14.x.1F, R15.x.1F, R16.x.1F AND_INT R24.y.2@R0.y, R24.y.1@R11.z, R24.z.1@R2.w (copy) MOV R1.z.1F@R1.z, t10F@R1.z MULADD R4.w.3@R2.z, C5.w, R1.z.1F@R1.z, R4.w.2@R10.x MULADD R4.z.3@R2.w, C5.z, R1.z.1F@R1.z, R4.z.2@R2.y MULADD R4.y.3@R1.x, C5.y, R1.z.1F@R1.z, R4.y.2@R0.z MULADD R4.x.3@R1.y, C5.x, R1.z.1F@R1.z, R4.x.2@R0.w AND_INT R23.x.3@R1.z, R24.x.1@R0.x, R24.y.2@R0.y (copy) MOV R1.w.1F@R1.w, t11F@R1.w MULADD R4.w.4FP@R0.w, C6.w, R1.w.1F@R1.w, R4.w.3@R2.z MULADD R4.z.4FP@R0.z, C6.z, R1.w.1F@R1.w, R4.z.3@R2.w MULADD R4.y.4FP@R0.y, C6.y, R1.w.1F@R1.w, R4.y.3@R1.x MULADD R4.x.4FP@R0.x, C6.x, R1.w.1F@R1.w, R4.x.3@R1.y CNDE_INT R23.y.3FP@R1.y, R23.x.3@R1.z, 0|00000000, 1|3f800000 CNDE_INT R23.x.6FP@R1.x, R23.x.3@R1.z, 1|3f800000, 0|00000000 (copy) MOV t7FP@R0.w, R4.w.4FP@R0.w (copy) MOV t6FP@R0.z, R4.z.4FP@R0.z (copy) MOV t5FP@R0.y, R4.y.4FP@R0.y (copy) MOV t4FP@R0.x, R4.x.4FP@R0.x (copy) MOV t3FP@R1.y, R23.y.3FP@R1.y (copy) MOV t2FP@R1.x, R23.x.6FP@R1.x > live_after: [t2FP@R1.x t3FP@R1.y t4FP@R0.x t5FP@R0.y t6FP@R0.z t7FP@R0.w ] EXPORT PARAM 0 t2FP@R1.x, t3FP@R1.y, 0|00000000, 1|3f800000 EXPORT POS 60 t4FP@R0.x, t5FP@R0.y, t6FP@R0.z, t7FP@R0.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y R0.zF@R0.z R0.wF@R0.w ] CALL_FS t8||FP@R1.x, t9||FP@R1.y, t10||FP@R1.z, t11||FP@R1.w, R0.xF@R0.x, R0.yF@R0.y, R0.zF@R0.z, R0.wF@R0.w ALU < [ 4S MULLO_INT R23.x.1F@R124.x, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 4S MULLO_INT __, C0.x, 4.2039e-45|00000003 ] [ ADD_INT R23.x.2F@R124.y, C1.x, R23.x.1F@R124.x MOV R16.z.1F, 27|41d80000 ] [ MOVA_INT __, R23.x.2F@R124.y ] [ MUL R4.y.1F@R125.x, C3.y, R1.x.1||FP@R1.x MOV R16.y.1F, 26|41d00000 MOV R15.z.1F, 24|41c00000 ] [ MOV R16.x.1F, 25|41c80000 MOV R15.y.1F, 23|41b80000 MOV R14.z.1F, 21|41a80000 ] [ MOV R15.x.1F, 22|41b00000 MOV R14.y.1F, 20|41a00000 MOV R13.z.1F, 18|41900000 ] [ MOV R14.x.1F, 19|41980000 MOV R13.y.1F, 17|41880000 MOV R12.z.1F, 15|41700000 ] [ MOV R13.x.1F, 16|41800000 MOV R12.y.1F, 14|41600000 MOV R11.z.1F, 12|41400000 ] [ MOV R12.x.1F, 13|41500000 MOV R11.y.1F, 11|41300000 MOV R10.z.1F, 9|41100000 ] [ MOV R11.x.1F, 10|41200000 MOV R10.y.1F, 8|41000000 MOV R9.z.1F, 6|40c00000 ] [ MOV R10.x.1F, 7|40e00000 MOV R9.y.1F, 5|40a00000 MOV R8.z.1F, 3|40400000 ] [ MOV R9.x.1F, 4|40800000 MOV R8.y.1F, 2|40000000 MUL R4.w.1F@R124.z, C3.w, R1.x.1||FP@R1.x MUL R4.z.1F@R125.w, C3.z, R1.x.1||FP@R1.x ] [ MOV R8.x.1F, 1|3f800000 MUL R4.x.1F@R124.y, C3.x, R1.x.1||FP@R1.x SETE_DX10 R24.z.1F@R124.w, A8.z[R23.x.2F@R124.y]_141F@R2.z, C2.z rels: A8.z[R23.x.2F@R124.y]_141F@R2.z : <= R8.z.1F, R9.z.1F, R10.z.1F, R11.z.1F, R12.z.1F, R13.z.1F, R14.z.1F, R15.z.1F, R16.z.1F ] [ MULADD R4.w.2F@R124.x, C4.w, R1.y.1||FP@R1.y, R4.w.1F@R124.z MULADD R4.z.2F@R126.y, C4.z, R1.y.1||FP@R1.y, R4.z.1F@R125.w SETE_DX10 R24.y.1F@R124.z, A8.y[R23.x.2F@R124.y]_138F@R2.y, C2.y rels: A8.y[R23.x.2F@R124.y]_138F@R2.y : <= R8.y.1F, R9.y.1F, R10.y.1F, R11.y.1F, R12.y.1F, R13.y.1F, R14.y.1F, R15.y.1F, R16.y.1F ] [ SETE_DX10 R24.x.1F@R125.x, A8.x[R23.x.2F@R124.y]_135F@R0.x, C2.x rels: A8.x[R23.x.2F@R124.y]_135F@R0.x : <= R8.x.1F, R9.x.1F, R10.x.1F, R11.x.1F, R12.x.1F, R13.x.1F, R14.x.1F, R15.x.1F, R16.x.1F AND_INT R24.y.2F@R125.y, R24.y.1F@R124.z, R24.z.1F@R124.w MULADD R4.y.2F@R124.z, C4.y, R1.y.1||FP@R1.y, R4.y.1F@R125.x MULADD R4.x.2F@R124.w, C4.x, R1.y.1||FP@R1.y, R4.x.1F@R124.y ] [ MULADD R4.y.3F@R124.x, C5.y, R1.z.1||FP@R1.z, R4.y.2F@R124.z MULADD R4.x.3F@R124.y, C5.x, R1.z.1||FP@R1.z, R4.x.2F@R124.w MULADD R4.w.3F@R125.z, C5.w, R1.z.1||FP@R1.z, R4.w.2F@R124.x ] [ MULADD R4.x.4||FP@R0.x, C6.x, R1.w.1||FP@R1.w, R4.x.3F@R124.y MULADD R4.y.4||FP@R0.y, C6.y, R1.w.1||FP@R1.w, R4.y.3F@R124.x AND_INT R23.x.3F@R124.z, R24.x.1F@R125.x, R24.y.2F@R125.y MULADD R4.z.3F@R124.w, C5.z, R1.z.1||FP@R1.z, R4.z.2F@R126.y ] [ CNDE_INT R23.x.6||FP@R1.x, R23.x.3F@R124.z, 1|3f800000, 0|00000000 CNDE_INT R23.y.3||FP@R1.y, R23.x.3F@R124.z, 0|00000000, 1|3f800000 MULADD R4.z.4||FP@R0.z, C6.z, R1.w.1||FP@R1.w, R4.z.3F@R124.w MULADD R4.w.4||FP@R0.w, C6.w, R1.w.1||FP@R1.w, R4.w.3F@R125.z ] > EXPORT PARAM 0 t2||FP@R1.x, t3||FP@R1.y, 0|00000000, 1|3f800000 EXPORT POS 60 t4||FP@R0.x, t5||FP@R0.y, t6||FP@R0.z, t7||FP@R0.w } end BB_0 } ===== SHADER #24 OPT ==================================== VS/CAYMAN/CAYMAN ===== ===== 158 dw ===== 11 gprs ===== 1 stack ======================================= 0000 00000000 84c00000 CALL_FS @0 0002 40000005 a1240000 ALU 74 @10 KC0[CB0:0-15] 0010 001fa080 0f804790 1 x: MULLO_INT T0.x, KC0[0].x, [0x00000003 4.2039e-45].x 0012 001fa080 20004780 y: MULLO_INT __.y, KC0[0].x, [0x00000003 4.2039e-45].x 0014 001fa080 40004780 z: MULLO_INT __.z, KC0[0].x, [0x00000003 4.2039e-45].x 0016 801fa080 60004780 w: MULLO_INT __.w, KC0[0].x, [0x00000003 4.2039e-45].x 0018 00000003 0020 000f8081 2f801a10 2 y: ADD_INT T0.y, KC0[1].x, T0.x 0022 800000fd 41400c90 z: MOV R10.z, [0x41d80000 27].x 0024 41d80000 0026 8000047c 00006600 3 x: MOVA_INT __.x, T0.y 0028 00002483 0fa00090 4 x: MUL T1.x, KC0[3].y, R1.x 0030 000000fd 21400c90 y: MOV R10.y, [0x41d00000 26].x 0032 800004fd 41200c90 z: MOV R9.z, [0x41c00000 24].y 0034 41d00000 0035 41c00000 0036 000000fd 01000c90 5 x: MOV R8.x, [0x41c80000 25].x 0038 000004fd 21200c90 y: MOV R9.y, [0x41b80000 23].y 0040 800008fd 41000c90 z: MOV R8.z, [0x41a80000 21].z 0042 41c80000 0043 41b80000 0044 41a80000 0046 000000fd 00e00c90 6 x: MOV R7.x, [0x41b00000 22].x 0048 000004fd 21000c90 y: MOV R8.y, [0x41a00000 20].y 0050 800008fd 40e00c90 z: MOV R7.z, [0x41900000 18].z 0052 41b00000 0053 41a00000 0054 41900000 0056 000000fd 00c00c90 7 x: MOV R6.x, [0x41980000 19].x 0058 000004fd 20e00c90 y: MOV R7.y, [0x41880000 17].y 0060 800008fd 40c00c90 z: MOV R6.z, [0x41700000 15].z 0062 41980000 0063 41880000 0064 41700000 0066 000000fd 00a00c90 8 x: MOV R5.x, [0x41800000 16].x 0068 000004fd 20c00c90 y: MOV R6.y, [0x41600000 14].y 0070 800008fd 40a00c90 z: MOV R5.z, [0x41400000 12].z 0072 41800000 0073 41600000 0074 41400000 0076 000000fd 00800c90 9 x: MOV R4.x, [0x41500000 13].x 0078 000004fd 20a00c90 y: MOV R5.y, [0x41300000 11].y 0080 800008fd 40800c90 z: MOV R4.z, [0x41100000 9].z 0082 41500000 0083 41300000 0084 41100000 0086 000000fd 00600c90 10 x: MOV R3.x, [0x41200000 10].x 0088 000004fd 20800c90 y: MOV R4.y, [0x41000000 8].y 0090 800008fd 40600c90 z: MOV R3.z, [0x40c00000 6].z 0092 41200000 0093 41000000 0094 40c00000 0096 000000fd 00400c90 11 x: MOV R2.x, [0x40e00000 7].x 0098 000004fd 20600c90 y: MOV R3.y, [0x40a00000 5].y 0100 800008fd 40400c90 z: MOV R2.z, [0x40400000 3].z 0102 40e00000 0103 40a00000 0104 40400000 0106 000000fd 00200c90 12 x: MOV R1.x, [0x40800000 4].x 0108 000004fd 20400c90 y: MOV R2.y, [0x40000000 2].y 0110 00002c83 4f800090 z: MUL T0.z, KC0[3].w, R1.x 0112 80002883 6fa00090 w: MUL T1.w, KC0[3].z, R1.x 0114 40800000 0115 40000000 0116 000000f9 00000c90 13 x: MOV R0.x, 1.0 0118 00002083 2f800090 y: MUL T0.y, KC0[3].x, R1.x 0120 81104a02 6f800610 w: SETE_DX10 T0.w, R[2+AR].z, KC0[2].z 0122 00802c84 0f82887c 14 x: MULADD T0.x, KC0[4].w, R1.y, T0.z 0124 00802884 2fc28c7d y: MULADD T2.y, KC0[4].z, R1.y, T1.w 0126 80904602 4f800610 z: SETE_DX10 T0.z, R[2+AR].y, KC0[2].y 0128 00104200 0fa00610 15 x: SETE_DX10 T1.x, R[0+AR].x, KC0[2].x 0130 018f887c 2fa01810 y: AND_INT T1.y, T0.z, T0.w 0132 00802484 4f82807d z: MULADD T0.z, KC0[4].y, R1.y, T1.x 0134 80802084 6f82847c w: MULADD T0.w, KC0[4].x, R1.y, T0.y 0136 01002485 0f82887c 16 x: MULADD T0.x, KC0[5].y, R1.z, T0.z 0138 01002085 2f828c7c y: MULADD T0.y, KC0[5].x, R1.z, T0.w 0140 81002c85 4fa2807c z: MULADD T1.z, KC0[5].w, R1.z, T0.x 0142 01802086 0002847c 17 x: MULADD R0.x, KC0[6].x, R1.w, T0.y 0144 01802486 2002807c y: MULADD R0.y, KC0[6].y, R1.w, T0.x 0146 008fa07d 4f801810 z: AND_INT T0.z, T1.x, T1.y 0148 81002885 6f8a847e w: MULADD T0.w, KC0[5].z, R1.z, T2.y VEC_120 0150 001f287c 002380f8 18 x: CNDE_INT R1.x, T0.z, 1.0, 0 0152 001f087c 202380f9 y: CNDE_INT R1.y, T0.z, 0, 1.0 0154 01802886 40028c7c z: MULADD R0.z, KC0[6].z, R1.w, T0.w 0156 81802c86 6002887d w: MULADD R0.w, KC0[6].w, R1.w, T1.z 0004 c000c000 95000b08 EXPORT_DONE PARAM 0 R1.xy01 0006 c000203c 95000688 EXPORT_DONE POS 60 R0.xyzw 0008 00000000 88000000 CF_END @0 ===== SHADER_END =============================================================== ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW 4S INTERP_ZW __, R0.yF@R0.y, Param0x 4S INTERP_ZW __, R0.xF@R0.x, Param0y 4S INTERP_ZW R2.z, R0.yF@R0.y, Param0z 4S INTERP_ZW R2.w, R0.xF@R0.x, Param0w ] [ INTERP_XY 4S INTERP_XY R2.x, R0.yF@R0.y, Param0x 4S INTERP_XY R2.y, R0.xF@R0.x, Param0y 4S INTERP_XY __, R0.yF@R0.y, Param0z 4S INTERP_XY __, R0.xF@R0.x, Param0w ] [ MOV R3.x, R2.x MOV R3.y, R2.y MOV R3.z, R2.z MOV R3.w, R2.w ] > EXPORT PIXEL 0 R3.x, R3.y, R3.z, R3.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] [ INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] [ MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 ] > EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w MOV R3.x.1, R2.x.1 MOV R3.y.1, R2.y.1 MOV R3.z.1, R2.z.1 MOV R3.w.1, R2.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 ALU < INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4, R2.w.1 (copy) MOV t3, R2.z.1 (copy) MOV t2, R2.y.1 (copy) MOV t1, R2.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4, R2.w.1 (copy) MOV t3, R2.z.1 (copy) MOV t2, R2.y.1 (copy) MOV t1, R2.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1FP@R0.z, R2.w.1FP@R0.w, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4FP@R0.w, R2.w.1FP@R0.w (copy) MOV t3FP@R0.z, R2.z.1FP@R0.z (copy) MOV t2FP@R0.y, R2.y.1FP@R0.y (copy) MOV t1FP@R0.x, R2.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_ZW __, __, R2.z.1FP@R0.z, R2.w.1FP@R0.w, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t4FP@R0.w, R2.w.1FP@R0.w (copy) MOV t3FP@R0.z, R2.z.1FP@R0.z (copy) MOV t2FP@R0.y, R2.y.1FP@R0.y (copy) MOV t1FP@R0.x, R2.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.x||FP@R0.x, R0.y||FP@R0.y] { BB_0 loop_level = 0 live_before: [R0.x||FP@R0.x R0.y||FP@R0.y ] ALU < [ 4S INTERP_ZW __, R0.y||FP@R0.y, Param0x 4S INTERP_ZW __, R0.x||FP@R0.x, Param0y 4S INTERP_ZW R2.z.1||FP@R0.z, R0.y||FP@R0.y, Param0z 4S INTERP_ZW R2.w.1||FP@R0.w, R0.x||FP@R0.x, Param0w ] [ 4S INTERP_XY R2.x.1||FP@R0.x, R0.y||FP@R0.y, Param0x 4S INTERP_XY R2.y.1||FP@R0.y, R0.x||FP@R0.x, Param0y 4S INTERP_XY __, R0.y||FP@R0.y, Param0z 4S INTERP_XY __, R0.x||FP@R0.x, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } ###### after parse { ALU < [ INTERP_LOAD_P0 R1.x, Param0x INTERP_LOAD_P0 R1.y, Param0y INTERP_LOAD_P0 R1.z, Param0z INTERP_LOAD_P0 R1.w, Param0w ] [ MOV R2.x, R1.x MOV R2.y, R1.y MOV R2.z, R1.z MOV R2.w, R1.w ] > EXPORT PIXEL 0 R2.x, R2.y, R2.z, R2.w CF_END } ###### after ssa_rename { ALU < [ INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w ] [ MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 ] > EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 CF_END } ###### after if_conversion { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after peephole { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R2.x.1, R2.y.1, R2.z.1, R2.w.1 } ###### after gvn { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after def_use { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w MOV R2.x.1, R1.x.1 MOV R2.y.1, R1.y.1 MOV R2.z.1, R1.z.1 MOV R2.w.1, R1.w.1 EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after dce_cleanup { INTERP_LOAD_P0 R1.x.1, Param0x INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.w.1, Param0w EXPORT PIXEL 0 R1.x.1, R1.y.1, R1.z.1, R1.w.1 } ###### after gcm { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1, Param0w INTERP_LOAD_P0 R1.z.1, Param0z INTERP_LOAD_P0 R1.y.1, Param0y INTERP_LOAD_P0 R1.x.1, Param0x (copy) MOV t4, R1.w.1 (copy) MOV t3, R1.z.1 (copy) MOV t2, R1.y.1 (copy) MOV t1, R1.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { { BB_0 loop_level = 0 ALU < INTERP_LOAD_P0 R1.w.1FP@R0.w, Param0w INTERP_LOAD_P0 R1.z.1FP@R0.z, Param0z INTERP_LOAD_P0 R1.y.1FP@R0.y, Param0y INTERP_LOAD_P0 R1.x.1FP@R0.x, Param0x (copy) MOV t4FP@R0.w, R1.w.1FP@R0.w (copy) MOV t3FP@R0.z, R1.z.1FP@R0.z (copy) MOV t2FP@R0.y, R1.y.1FP@R0.y (copy) MOV t1FP@R0.x, R1.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { { BB_0 loop_level = 0 ALU < [ INTERP_LOAD_P0 R1.x.1||FP@R0.x, Param0x INTERP_LOAD_P0 R1.y.1||FP@R0.y, Param0y INTERP_LOAD_P0 R1.z.1||FP@R0.z, Param0z INTERP_LOAD_P0 R1.w.1||FP@R0.w, Param0w ] > EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } ###### after parse { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW 4S INTERP_ZW __, R0.yF@R0.y, Param0x 4S INTERP_ZW __, R0.xF@R0.x, Param0y 4S INTERP_ZW R2.z, R0.yF@R0.y, Param0z 4S INTERP_ZW R2.w, R0.xF@R0.x, Param0w ] [ INTERP_XY 4S INTERP_XY R2.x, R0.yF@R0.y, Param0x 4S INTERP_XY R2.y, R0.xF@R0.x, Param0y 4S INTERP_XY __, R0.yF@R0.y, Param0z 4S INTERP_XY __, R0.xF@R0.x, Param0w ] > TEX < SAMPLE R3.x, R3.y, R3.z, R3.w, R2.x, R2.y, __, __ > EXPORT PIXEL 0 R3.x, R3.y, R3.z, R3.w CF_END } ###### after ssa_rename { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] ALU < [ INTERP_ZW __, __, R2.z.1, R2.w.1, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] [ INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w ] > TEX < SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ > EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 CF_END } ###### after if_conversion { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after peephole { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after gvn { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after def_use { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w SAMPLE R3.x.1, R3.y.1, R3.z.1, R3.w.1, R2.x.1, R2.y.1, __, __ EXPORT PIXEL 0 R3.x.1, R3.y.1, R3.z.1, R3.w.1 } ###### after gcm { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 ALU < INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t6, R2.y.1 (copy) MOV t5, R2.x.1 > TEX < SAMPLE t7, t8, t9, t10, t5, t6, __, __ > ALU < (copy) MOV R3.w.1, t10 (copy) MOV t4, R3.w.1 (copy) MOV R3.z.1, t9 (copy) MOV t3, R3.z.1 (copy) MOV R3.y.1, t8 (copy) MOV t2, R3.y.1 (copy) MOV R3.x.1, t7 (copy) MOV t1, R3.x.1 > EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after dce_cleanup { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_XY R2.x.1, R2.y.1, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t6, R2.y.1 (copy) MOV t5, R2.x.1 > live_after: [t5 t6 ] TEX < live_before: [t5 t6 ] SAMPLE t7, t8, t9, t10, t5, t6, __, __ > live_after: [t7 t8 t9 t10 ] ALU < live_before: [t7 t8 t9 t10 ] (copy) MOV R3.w.1, t10 (copy) MOV t4, R3.w.1 (copy) MOV R3.z.1, t9 (copy) MOV t3, R3.z.1 (copy) MOV R3.y.1, t8 (copy) MOV t2, R3.y.1 (copy) MOV R3.x.1, t7 (copy) MOV t1, R3.x.1 > live_after: [t1 t2 t3 t4 ] EXPORT PIXEL 0 t1, t2, t3, t4 } end BB_0 } ###### after ra_coalesce { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t6FP@R0.y, R2.y.1FP@R0.y (copy) MOV t5FP@R0.x, R2.x.1FP@R0.x > live_after: [t5FP@R0.x t6FP@R0.y ] TEX < live_before: [t5FP@R0.x t6FP@R0.y ] SAMPLE t7FP@R0.x, t8FP@R0.y, t9FP@R0.z, t10FP@R0.w, t5FP@R0.x, t6FP@R0.y, __, __ > live_after: [t7FP@R0.x t8FP@R0.y t9FP@R0.z t10FP@R0.w ] ALU < live_before: [t7FP@R0.x t8FP@R0.y t9FP@R0.z t10FP@R0.w ] (copy) MOV R3.w.1FP@R0.w, t10FP@R0.w (copy) MOV t4FP@R0.w, R3.w.1FP@R0.w (copy) MOV R3.z.1FP@R0.z, t9FP@R0.z (copy) MOV t3FP@R0.z, R3.z.1FP@R0.z (copy) MOV R3.y.1FP@R0.y, t8FP@R0.y (copy) MOV t2FP@R0.y, R3.y.1FP@R0.y (copy) MOV R3.x.1FP@R0.x, t7FP@R0.x (copy) MOV t1FP@R0.x, R3.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after ra_init { preloaded inputs [R0.xF@R0.x, R0.yF@R0.y] { BB_0 loop_level = 0 live_before: [R0.xF@R0.x R0.yF@R0.y ] ALU < live_before: [R0.xF@R0.x R0.yF@R0.y ] INTERP_XY R2.x.1FP@R0.x, R2.y.1FP@R0.y, __, __, R0.yF@R0.y, Param0x, R0.xF@R0.x, Param0y, R0.yF@R0.y, Param0z, R0.xF@R0.x, Param0w (copy) MOV t6FP@R0.y, R2.y.1FP@R0.y (copy) MOV t5FP@R0.x, R2.x.1FP@R0.x > live_after: [t5FP@R0.x t6FP@R0.y ] TEX < live_before: [t5FP@R0.x t6FP@R0.y ] SAMPLE t7FP@R0.x, t8FP@R0.y, t9FP@R0.z, t10FP@R0.w, t5FP@R0.x, t6FP@R0.y, __, __ > live_after: [t7FP@R0.x t8FP@R0.y t9FP@R0.z t10FP@R0.w ] ALU < live_before: [t7FP@R0.x t8FP@R0.y t9FP@R0.z t10FP@R0.w ] (copy) MOV R3.w.1FP@R0.w, t10FP@R0.w (copy) MOV t4FP@R0.w, R3.w.1FP@R0.w (copy) MOV R3.z.1FP@R0.z, t9FP@R0.z (copy) MOV t3FP@R0.z, R3.z.1FP@R0.z (copy) MOV R3.y.1FP@R0.y, t8FP@R0.y (copy) MOV t2FP@R0.y, R3.y.1FP@R0.y (copy) MOV R3.x.1FP@R0.x, t7FP@R0.x (copy) MOV t1FP@R0.x, R3.x.1FP@R0.x > live_after: [t1FP@R0.x t2FP@R0.y t3FP@R0.z t4FP@R0.w ] EXPORT PIXEL 0 t1FP@R0.x, t2FP@R0.y, t3FP@R0.z, t4FP@R0.w } end BB_0 } ###### after post_scheduler { preloaded inputs [R0.x||FP@R0.x, R0.y||FP@R0.y] { BB_0 loop_level = 0 live_before: [R0.x||FP@R0.x R0.y||FP@R0.y ] ALU < [ 4S INTERP_XY R2.x.1||FP@R0.x, R0.y||FP@R0.y, Param0x 4S INTERP_XY R2.y.1||FP@R0.y, R0.x||FP@R0.x, Param0y 4S INTERP_XY __, R0.y||FP@R0.y, Param0z 4S INTERP_XY __, R0.x||FP@R0.x, Param0w ] > TEX < live_before: [t5||FP@R0.x t6||FP@R0.y ] SAMPLE t7||FP@R0.x, t8||FP@R0.y, t9||FP@R0.z, t10||FP@R0.w, t5||FP@R0.x, t6||FP@R0.y, __, __ > live_after: [t7||FP@R0.x t8||FP@R0.y t9||FP@R0.z t10||FP@R0.w ] EXPORT PIXEL 0 t1||FP@R0.x, t2||FP@R0.y, t3||FP@R0.z, t4||FP@R0.w } end BB_0 } Probe color at (10,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (25,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (40,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (65,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (80,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (95,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (120,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (135,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 Probe color at (150,10) Expected: 0.000000 1.000000 0.000000 Observed: 0.501961 0.501961 0.501961 PIGLIT: {'result': 'fail' }