R600: Use correct CF_END instruction on Northern Island GPUs
authorTom Stellard <thomas.stellard@amd.com>
Mon, 29 Apr 2013 22:23:58 +0000 (22:23 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Mon, 29 Apr 2013 22:23:58 +0000 (22:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180735 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/R600ControlFlowFinalizer.cpp
test/CodeGen/R600/cf_end.ll

index 9271b3976b59b59ed5d5fc87e748190cfbaa7426..94736adbabcd9de822e2fabe032d0af5e930daeb 100644 (file)
@@ -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;
       }
index 67d5e3e781c84fdf3335b623573d211709e98aa9..56cd7de38219fd30e9c2b1332d838dabb84dc0b8 100644 (file)
@@ -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
 }