]> granicus.if.org Git - llvm/commitdiff
[AMDGPU] Always use s_memtime for readcyclecounter
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Tue, 9 Jul 2019 03:10:18 +0000 (03:10 +0000)
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Tue, 9 Jul 2019 03:10:18 +0000 (03:10 +0000)
Differential Revision: https://reviews.llvm.org/D64369

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365431 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/SMInstructions.td
test/CodeGen/AMDGPU/readcyclecounter.ll

index 45d25ecadb7cbca98332094dfd6c4de06501398e..1b410b6b5912444443be7c6ce5dffed838340c30 100644 (file)
@@ -812,21 +812,10 @@ defm : SMLoad_Pattern <"S_BUFFER_LOAD_DWORDX8",   v8f32>;
 defm : SMLoad_Pattern <"S_BUFFER_LOAD_DWORDX16",  v16f32>;
 } // End let AddedComplexity = 100
 
-let OtherPredicates = [isGFX6GFX7] in {
 def : GCNPat <
   (i64 (readcyclecounter)),
   (S_MEMTIME)
 >;
-}
-
-let OtherPredicates = [isGFX8Plus] in {
-
-def : GCNPat <
-  (i64 (readcyclecounter)),
-  (S_MEMREALTIME)
->;
-
-} // let OtherPredicates = [isGFX8Plus]
 
 //===----------------------------------------------------------------------===//
 // GFX10.
index 28d84b33a71a7bee142bd6f662bfbb20bc266fe8..7b36f7a19ba038952fd66f66a88468e76697eaf8 100644 (file)
@@ -1,18 +1,18 @@
-; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=GCN %s
-; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=VI -check-prefix=GCN %s
+; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefix=MEMTIME -check-prefix=SIVI -check-prefix=GCN %s
+; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefix=MEMTIME -check-prefix=SIVI -check-prefix=GCN %s
+; RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -enable-var-scope -check-prefix=MEMTIME -check-prefix=GCN %s
 
 declare i64 @llvm.readcyclecounter() #0
 
 ; GCN-LABEL: {{^}}test_readcyclecounter:
-; SI-DAG: s_memtime s{{\[[0-9]+:[0-9]+\]}}
-; VI-DAG: s_memrealtime s{{\[[0-9]+:[0-9]+\]}}
-; GCN-DAG: s_load_dwordx2
-; GCN: lgkmcnt
-; GCN: store_dwordx2
-; GCN-NOT: lgkmcnt
-; SI: s_memtime s{{\[[0-9]+:[0-9]+\]}}
-; VI: s_memrealtime s{{\[[0-9]+:[0-9]+\]}}
-; GCN: store_dwordx2
+; MEMTIME-DAG: s_memtime s{{\[[0-9]+:[0-9]+\]}}
+; GCN-DAG:     s_load_dwordx2
+; GCN-DAG:     lgkmcnt
+; MEMTIME:     store_dwordx2
+; SIVI-NOT:    lgkmcnt
+; MEMTIME:     s_memtime s{{\[[0-9]+:[0-9]+\]}}
+; MEMTIME:     store_dwordx2
+
 define amdgpu_kernel void @test_readcyclecounter(i64 addrspace(1)* %out) #0 {
   %cycle0 = call i64 @llvm.readcyclecounter()
   store volatile i64 %cycle0, i64 addrspace(1)* %out
@@ -25,9 +25,8 @@ define amdgpu_kernel void @test_readcyclecounter(i64 addrspace(1)* %out) #0 {
 ; This test used to crash in ScheduleDAG.
 ;
 ; GCN-LABEL: {{^}}test_readcyclecounter_smem:
-; SI-DAG: s_memtime
-; VI-DAG: s_memrealtime
-; GCN-DAG: s_load_dword
+; MEMTIME-DAG: s_memtime
+; GCN-DAG:     s_load_dword
 define amdgpu_cs i32 @test_readcyclecounter_smem(i64 addrspace(4)* inreg %in) #0 {
   %cycle0 = call i64 @llvm.readcyclecounter()
   %in.v = load i64, i64 addrspace(4)* %in