diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-03-14 13:08:09 -0400 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-03-14 13:21:36 -0400 |
commit | 42075a518344c449f279efa9e2f98d21613790b5 (patch) | |
tree | 9dfae7d1c10dbe016d076765899afb9aca043eec | |
parent | 8ce2379bad649affe7db0dc5d0d2a63640c95676 (diff) |
r600/llvm: Lower BREAK_LOGICALNZ_i32
-rw-r--r-- | src/gallium/drivers/radeon/AMDGPUUtil.cpp | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/R600CodeEmitter.cpp | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/AMDGPUUtil.cpp b/src/gallium/drivers/radeon/AMDGPUUtil.cpp index 1975501d1c9..2a774391764 100644 --- a/src/gallium/drivers/radeon/AMDGPUUtil.cpp +++ b/src/gallium/drivers/radeon/AMDGPUUtil.cpp @@ -109,6 +109,7 @@ bool llvm::isFCOp(unsigned opcode) switch(opcode) { default: return false; case AMDIL::BREAK_LOGICALZ_f32: + case AMDIL::BREAK_LOGICALNZ_i32: case AMDIL::CONTINUE_LOGICALNZ_f32: case AMDIL::IF_LOGICALZ_f32: case AMDIL::ELSE: diff --git a/src/gallium/drivers/radeon/R600CodeEmitter.cpp b/src/gallium/drivers/radeon/R600CodeEmitter.cpp index e83b03f9ed9..962039be539 100644 --- a/src/gallium/drivers/radeon/R600CodeEmitter.cpp +++ b/src/gallium/drivers/radeon/R600CodeEmitter.cpp @@ -142,6 +142,7 @@ enum FCInstr { FC_BGNLOOP, FC_ENDLOOP, FC_BREAK, + FC_BREAK_NZ_INT, FC_CONTINUE }; @@ -614,6 +615,9 @@ void R600CodeEmitter::emitFCInstr(MachineInstr &MI) case AMDIL::BREAK_LOGICALZ_f32: instr = FC_BREAK; break; + case AMDIL::BREAK_LOGICALNZ_i32: + instr = FC_BREAK_NZ_INT; + break; case AMDIL::CONTINUE_LOGICALNZ_f32: instr = FC_CONTINUE; break; |