[llvm] r365431 - [AMDGPU] Always use s_memtime for readcyclecounter
Stanislav Mekhanoshin via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 8 20:10:19 PDT 2019
Author: rampitec
Date: Mon Jul 8 20:10:18 2019
New Revision: 365431
URL: http://llvm.org/viewvc/llvm-project?rev=365431&view=rev
Log:
[AMDGPU] Always use s_memtime for readcyclecounter
Differential Revision: https://reviews.llvm.org/D64369
Modified:
llvm/trunk/lib/Target/AMDGPU/SMInstructions.td
llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll
Modified: llvm/trunk/lib/Target/AMDGPU/SMInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SMInstructions.td?rev=365431&r1=365430&r2=365431&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SMInstructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/SMInstructions.td Mon Jul 8 20:10:18 2019
@@ -812,21 +812,10 @@ defm : SMLoad_Pattern <"S_BUFFER_LOAD_DW
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.
Modified: llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll?rev=365431&r1=365430&r2=365431&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll Mon Jul 8 20:10:18 2019
@@ -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_readcycl
; 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
More information about the llvm-commits
mailing list