Index: llvm/trunk/lib/Target/AMDGPU/SMInstructions.td =================================================================== --- llvm/trunk/lib/Target/AMDGPU/SMInstructions.td +++ llvm/trunk/lib/Target/AMDGPU/SMInstructions.td @@ -812,21 +812,10 @@ 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: llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll =================================================================== --- llvm/trunk/test/CodeGen/AMDGPU/readcyclecounter.ll +++ llvm/trunk/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 @@ ; 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