R600/SI: Add a pattern for llvm.AMDGPU.barrier.global
authorTom Stellard <thomas.stellard@amd.com>
Tue, 17 Jun 2014 16:53:09 +0000 (16:53 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Tue, 17 Jun 2014 16:53:09 +0000 (16:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211109 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDGPUIntrinsics.td
lib/Target/R600/EvergreenInstructions.td
lib/Target/R600/SIInstructions.td

index 95fab11a260f134fdc06b0578e89bb8bba382867..4ef23abfe3ed6ecd2e2899a7a4f88908592d67cc 100644 (file)
@@ -65,6 +65,7 @@ let TargetPrefix = "AMDGPU", isTarget = 1 in {
   def int_AMDGPU_bfe_u32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_AMDGPU_bfm : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_AMDGPU_barrier_local  : Intrinsic<[], [], []>;
+  def int_AMDGPU_barrier_global  : Intrinsic<[], [], []>;
 }
 
 // Legacy names for compatability.
index 28725ff280da05631f3336526040958b23916b47..dcb7e982c7fc6e98e1f0fc6fd17401d6cd9f0a79 100644 (file)
@@ -348,7 +348,7 @@ def FLT_TO_UINT_eg : FLT_TO_UINT_Common<0x9A> {
 def UINT_TO_FLT_eg : UINT_TO_FLT_Common<0x9C>;
 
 def GROUP_BARRIER : InstR600 <
-    (outs), (ins), "  GROUP_BARRIER", [(int_AMDGPU_barrier_local)], AnyALU>,
+    (outs), (ins), "  GROUP_BARRIER", [(int_AMDGPU_barrier_local), (int_AMDGPU_barrier_global)], AnyALU>,
     R600ALU_Word0,
     R600ALU_Word1_OP2 <0x54> {
 
@@ -377,6 +377,11 @@ def GROUP_BARRIER : InstR600 <
   let ALUInst = 1;
 }
 
+def : Pat <
+       (int_AMDGPU_barrier_global),
+       (GROUP_BARRIER)
+>;
+
 //===----------------------------------------------------------------------===//
 // LDS Instructions
 //===----------------------------------------------------------------------===//
index be7d8a6d4ab9f04e39363b0a0b2ea4053ecc1c68..2f04bea269acb6aac1e3550497c0c467f63b4ac7 100644 (file)
@@ -1731,6 +1731,15 @@ def : Pat <
   (S_XOR_B64 $src0, $src1)
 >;
 
+//===----------------------------------------------------------------------===//
+// SOPP Patterns
+//===----------------------------------------------------------------------===//
+
+def : Pat <
+  (int_AMDGPU_barrier_global),
+  (S_BARRIER)
+>;
+
 //===----------------------------------------------------------------------===//
 // VOP2 Patterns
 //===----------------------------------------------------------------------===//