radeon/llvm: add missing cases for BREAK/CONTINUE
authorVadim Girlin <vadimgirlin@gmail.com>
Mon, 7 May 2012 09:02:46 +0000 (13:02 +0400)
committerVadim Girlin <vadimgirlin@gmail.com>
Mon, 7 May 2012 21:18:22 +0000 (01:18 +0400)
Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/radeon/AMDGPUUtil.cpp
src/gallium/drivers/radeon/R600CodeEmitter.cpp

index 30fa32ce98aacc194470be9003cfa6c65813ef16..d6f72b190506b14ab02c664e30b9691e82a9808c 100644 (file)
@@ -105,6 +105,7 @@ bool llvm::isFCOp(unsigned opcode)
   case AMDIL::BREAK_LOGICALZ_f32:
   case AMDIL::BREAK_LOGICALNZ_i32:
   case AMDIL::BREAK_LOGICALZ_i32:
+  case AMDIL::BREAK_LOGICALNZ_f32:
   case AMDIL::CONTINUE_LOGICALNZ_f32:
   case AMDIL::IF_LOGICALNZ_i32:
   case AMDIL::IF_LOGICALZ_f32:
index 53fdd1592c49f1c2990a4fca55ba80a3742b688d..e0bc95b9465f350354ba463ac153ab65a3f0bfe2 100644 (file)
@@ -568,6 +568,7 @@ void R600CodeEmitter::emitFCInstr(MachineInstr &MI)
   case AMDIL::BREAK_LOGICALZ_f32:
     instr = FC_BREAK;
     break;
+  case AMDIL::BREAK_LOGICALNZ_f32:
   case AMDIL::BREAK_LOGICALNZ_i32:
     instr = FC_BREAK_NZ_INT;
     break;
@@ -575,6 +576,7 @@ void R600CodeEmitter::emitFCInstr(MachineInstr &MI)
     instr = FC_BREAK_Z_INT;
     break;
   case AMDIL::CONTINUE_LOGICALNZ_f32:
+  case AMDIL::CONTINUE_LOGICALNZ_i32:
     instr = FC_CONTINUE;
     break;
   /* XXX: This assumes that all IFs will be if (x != 0).  If we add