From: Stanislav Mekhanoshin Date: Tue, 9 Jul 2019 03:10:18 +0000 (+0000) Subject: [AMDGPU] Always use s_memtime for readcyclecounter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd32dc3f72ec99b1794d62c74d2beb3b60468d50;p=llvm [AMDGPU] Always use s_memtime for readcyclecounter Differential Revision: https://reviews.llvm.org/D64369 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365431 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AMDGPU/SMInstructions.td b/lib/Target/AMDGPU/SMInstructions.td index 45d25ecadb7..1b410b6b591 100644 --- a/lib/Target/AMDGPU/SMInstructions.td +++ b/lib/Target/AMDGPU/SMInstructions.td @@ -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. diff --git a/test/CodeGen/AMDGPU/readcyclecounter.ll b/test/CodeGen/AMDGPU/readcyclecounter.ll index 28d84b33a71..7b36f7a19ba 100644 --- a/test/CodeGen/AMDGPU/readcyclecounter.ll +++ b/test/CodeGen/AMDGPU/readcyclecounter.ll @@ -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