blob: f9da09d35817940c1b10a63f5b4af470e7ece014 [file] [edit]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -mtriple=amdgpu11.00 -mattr=+precise-memory -run-pass si-insert-waitcnts -o - %s | FileCheck %s
--- |
define amdgpu_ps void @gds_wait_merge() !dbg !3 {
ret void
}
define amdgpu_ps void @gds_wait_merge_control() {
ret void
}
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!2}
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
!1 = !DIFile(filename: "gds-wait-merge.c", directory: "/")
!2 = !{i32 2, !"Debug Info Version", i32 3}
!3 = distinct !DISubprogram(name: "gds_wait_merge", scope: !1, file: !1, line: 1, type: !4, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
!4 = !DISubroutineType(types: !{})
!5 = !DILabel(scope: !3, name: "before_interp", file: !1, line: 2)
!6 = !DILocation(line: 2, column: 1, scope: !3)
...
---
name: gds_wait_merge
tracksRegLiveness: true
machineFunctionInfo:
isEntryFunction: true
body: |
bb.0:
liveins: $vgpr0
; CHECK-LABEL: name: gds_wait_merge
; CHECK: liveins: $vgpr0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $vgpr1 = DS_ORDERED_COUNT $vgpr0, 772, implicit $m0, implicit $exec :: (load store (s32), addrspace 2)
; CHECK-NEXT: DBG_LABEL !6, debug-location !DILocation(line: 2, column: 1, scope: !3)
; CHECK-NEXT: S_WAITCNT .Lgkmcnt_0
; CHECK-NEXT: $vgpr1 = V_INTERP_P10_F32_inreg 0, $vgpr0, 0, killed $vgpr1, 0, $vgpr0, 0, 0, implicit $m0, implicit $exec, implicit $mode
; CHECK-NEXT: S_ENDPGM 0
$vgpr1 = DS_ORDERED_COUNT $vgpr0, 772, implicit $m0, implicit $exec :: (load store (s32), addrspace 2)
DBG_LABEL !5, debug-location !6
$vgpr1 = V_INTERP_P10_F32_inreg 0, $vgpr0, 0, killed $vgpr1, 0, $vgpr0, 0, 7, implicit $m0, implicit $exec, implicit $mode
S_ENDPGM 0
...
---
name: gds_wait_merge_control
tracksRegLiveness: true
machineFunctionInfo:
isEntryFunction: true
body: |
bb.0:
liveins: $vgpr0
; CHECK-LABEL: name: gds_wait_merge_control
; CHECK: liveins: $vgpr0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $vgpr1 = DS_ORDERED_COUNT $vgpr0, 772, implicit $m0, implicit $exec :: (load store (s32), addrspace 2)
; CHECK-NEXT: S_WAITCNT .Lgkmcnt_0
; CHECK-NEXT: $vgpr1 = V_INTERP_P10_F32_inreg 0, $vgpr0, 0, killed $vgpr1, 0, $vgpr0, 0, 0, implicit $m0, implicit $exec, implicit $mode
; CHECK-NEXT: S_ENDPGM 0
$vgpr1 = DS_ORDERED_COUNT $vgpr0, 772, implicit $m0, implicit $exec :: (load store (s32), addrspace 2)
$vgpr1 = V_INTERP_P10_F32_inreg 0, $vgpr0, 0, killed $vgpr1, 0, $vgpr0, 0, 7, implicit $m0, implicit $exec, implicit $mode
S_ENDPGM 0
...