Module: Mesa
Branch: master
Commit: 579c04e42ef1bb449fe86d7224ccfe0c2d569595
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=579c04e42ef1bb449fe86d7224ccfe0c2d569595

Author: Alex Deucher <[email protected]>
Date:   Sun Nov 13 17:46:01 2011 -0500

r600g: properly handle cayman in is_alu_vec_unit_inst()

Signed-off-by: Alex Deucher <[email protected]>

---

 src/gallium/drivers/r600/r600_asm.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_asm.c 
b/src/gallium/drivers/r600/r600_asm.c
index 0a1717c..f923c62 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -440,13 +440,21 @@ static int is_alu_mova_inst(struct r600_bytecode *bc, 
struct r600_bytecode_alu *
 /* alu instructions that can only execute on the vector unit */
 static int is_alu_vec_unit_inst(struct r600_bytecode *bc, struct 
r600_bytecode_alu *alu)
 {
-       return is_alu_reduction_inst(bc, alu) ||
-               is_alu_mova_inst(bc, alu) ||
-               (bc->chip_class == EVERGREEN &&
-               (alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT ||
-               alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR 
||
-               alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INTERP_XY ||
-               alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INTERP_ZW));
+       switch (bc->chip_class) {
+       case R600:
+       case R700:
+               return is_alu_reduction_inst(bc, alu) ||
+                       is_alu_mova_inst(bc, alu);
+       case EVERGREEN:
+       case CAYMAN:
+       default:
+               return is_alu_reduction_inst(bc, alu) ||
+                       is_alu_mova_inst(bc, alu) ||
+                       (alu->inst == 
EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT ||
+                        alu->inst == 
EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR ||
+                        alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INTERP_XY ||
+                        alu->inst == EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INTERP_ZW);
+       }
 }
 
 /* alu instructions that can only execute on the trans unit */

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to