R600/SI: Add pattern for the AMDGPU.barrier.local intrinsic
authorMichel Danzer <michel.daenzer@amd.com>
Wed, 10 Jul 2013 16:36:57 +0000 (16:36 +0000)
committerMichel Danzer <michel.daenzer@amd.com>
Wed, 10 Jul 2013 16:36:57 +0000 (16:36 +0000)
lit test coverage to follow in the next commit.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186011 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/SIInstructions.td

index 61755b47a0308adc0f327ca9c025931f957c35ca..30f2a4aa4387bfd62455db5015a935d87033ea89 100644 (file)
@@ -774,8 +774,17 @@ def S_CBRANCH_EXECNZ : SOPP <
 } // End isBranch = 1
 } // End isTerminator = 1
 
-//def S_BARRIER : SOPP_ <0x0000000a, "S_BARRIER", []>;
 let hasSideEffects = 1 in {
+def S_BARRIER : SOPP <0x0000000a, (ins), "S_BARRIER",
+  [(int_AMDGPU_barrier_local)]
+> {
+  let SIMM16 = 0;
+  let isBarrier = 1;
+  let hasCtrlDep = 1;
+  let mayLoad = 1;
+  let mayStore = 1;
+}
+
 def S_WAITCNT : SOPP <0x0000000c, (ins i32imm:$simm16), "S_WAITCNT $simm16",
   []
 >;