[llvm] r180735 - R600: Use correct CF_END instruction on Northern Island GPUs

Tom Stellard thomas.stellard at amd.com
Mon Apr 29 15:23:58 PDT 2013


Author: tstellar
Date: Mon Apr 29 17:23:58 2013
New Revision: 180735

URL: http://llvm.org/viewvc/llvm-project?rev=180735&view=rev
Log:
R600: Use correct CF_END instruction on Northern Island GPUs

Modified:
    llvm/trunk/lib/Target/R600/R600ControlFlowFinalizer.cpp
    llvm/trunk/test/CodeGen/R600/cf_end.ll

Modified: llvm/trunk/lib/Target/R600/R600ControlFlowFinalizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/R600ControlFlowFinalizer.cpp?rev=180735&r1=180734&r2=180735&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/R600ControlFlowFinalizer.cpp (original)
+++ llvm/trunk/lib/Target/R600/R600ControlFlowFinalizer.cpp Mon Apr 29 17:23:58 2013
@@ -123,7 +123,7 @@ private:
       Opcode = isEg ? AMDGPU::POP_EG : AMDGPU::POP_R600;
       break;
     case CF_END:
-      if (ST.device()->getGeneration() == AMDGPUDeviceInfo::HD6XXX) {
+      if (ST.device()->getDeviceFlag() == OCL_DEVICE_CAYMAN) {
         Opcode = AMDGPU::CF_END_CM;
         break;
       }

Modified: llvm/trunk/test/CodeGen/R600/cf_end.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/R600/cf_end.ll?rev=180735&r1=180734&r2=180735&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/R600/cf_end.ll (original)
+++ llvm/trunk/test/CodeGen/R600/cf_end.ll Mon Apr 29 17:23:58 2013
@@ -1,6 +1,9 @@
-; RUN: llc < %s -march=r600 -mcpu=redwood --show-mc-encoding | FileCheck %s
+; RUN: llc < %s -march=r600 -mcpu=redwood --show-mc-encoding | FileCheck --check-prefix=EG-CHECK %s
+; RUN: llc < %s -march=r600 -mcpu=caicos --show-mc-encoding | FileCheck --check-prefix=EG-CHECK %s
+; RUN: llc < %s -march=r600 -mcpu=cayman --show-mc-encoding | FileCheck --check-prefix=CM-CHECK %s
 
-; CHECK: CF_END ; encoding: [0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80]
+; EG-CHECK: CF_END ; encoding: [0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80]
+; CM-CHECK: CF_END ; encoding: [0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88]
 define void @eop() {
   ret void
 }





More information about the llvm-commits mailing list