blob: 1067c872f4deff63d397e33873a3e0453785a04c [file] [edit]
# RUN: split-file %s %t
# Common tests that work on all targets
;--- common.mir
# RUN: llc -mtriple=amdgcn -mcpu=gfx803 -run-pass=none %t/common.mir -o - | FileCheck %t/common.mir --check-prefix=CHECK
# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=none %t/common.mir -o - | FileCheck %t/common.mir --check-prefix=CHECK
# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=none %t/common.mir -o - | FileCheck %t/common.mir --check-prefix=CHECK
# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=none %t/common.mir -o - | FileCheck %t/common.mir --check-prefix=CHECK
---
name: vmcnt_0
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_0
; CHECK: S_WAITCNT_soft .Vmcnt_0
S_WAITCNT_soft .Vmcnt_0
...
---
name: vmcnt_1
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_1
; CHECK: S_WAITCNT_soft .Vmcnt_1
S_WAITCNT_soft .Vmcnt_1
...
---
name: expcnt_0
body: |
bb.0:
; CHECK-LABEL: name: expcnt_0
; CHECK: S_WAITCNT_soft .Expcnt_0
S_WAITCNT_soft .Expcnt_0
...
---
name: expcnt_1
body: |
bb.0:
; CHECK-LABEL: name: expcnt_1
; CHECK: S_WAITCNT_soft .Expcnt_1
S_WAITCNT_soft .Expcnt_1
...
---
name: expcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: expcnt_max-1
; CHECK: S_WAITCNT_soft .Expcnt_6
S_WAITCNT_soft .Expcnt_6
...
---
name: lgkmcnt_0
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_0
; CHECK: S_WAITCNT_soft .Lgkmcnt_0
S_WAITCNT_soft .Lgkmcnt_0
...
---
name: lgkmcnt_1
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_1
; CHECK: S_WAITCNT_soft .Lgkmcnt_1
S_WAITCNT_soft .Lgkmcnt_1
...
---
name: vmcnt_expcnt
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_expcnt
; CHECK: S_WAITCNT_soft .Vmcnt_1_Expcnt_2
S_WAITCNT_soft .Vmcnt_1_Expcnt_2
...
---
name: vmcnt_lgkmcnt
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_lgkmcnt
; CHECK: S_WAITCNT_soft .Vmcnt_3_Lgkmcnt_5
S_WAITCNT_soft .Vmcnt_3_Lgkmcnt_5
...
---
name: expcnt_lgkmcnt
body: |
bb.0:
; CHECK-LABEL: name: expcnt_lgkmcnt
; CHECK: S_WAITCNT_soft .Expcnt_4_Lgkmcnt_6
S_WAITCNT_soft .Expcnt_4_Lgkmcnt_6
...
---
name: all-zero
body: |
bb.0:
; CHECK-LABEL: name: all-zero
; CHECK: S_WAITCNT_soft .Vmcnt_0_Expcnt_0_Lgkmcnt_0
S_WAITCNT_soft .Vmcnt_0_Expcnt_0_Lgkmcnt_0
...
---
name: all-off
body: |
bb.0:
; CHECK-LABEL: name: all-off
; CHECK: S_WAITCNT_soft .AllOff
S_WAITCNT_soft .AllOff
...
---
name: zero-number
body: |
bb.0:
; CHECK-LABEL: name: zero-number
; CHECK: S_WAITCNT_soft .Vmcnt_0_Expcnt_0_Lgkmcnt_0
S_WAITCNT_soft 0
...
# GFX8-specific: vmcnt max=15, lgkmcnt max=15
;--- gfx8.mir
# RUN: llc -mtriple=amdgcn -mcpu=gfx803 -run-pass=none %t/gfx8.mir -o - | FileCheck %t/gfx8.mir
---
name: vmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_max-1
; CHECK: S_WAITCNT_soft .Vmcnt_14
S_WAITCNT_soft .Vmcnt_14
...
---
name: lgkmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_max-1
; CHECK: S_WAITCNT_soft .Lgkmcnt_14
S_WAITCNT_soft .Lgkmcnt_14
...
---
name: all-off-number
body: |
bb.0:
; vmcnt=15, expcnt=7, lgkmcnt=15 -> 0xF7F = 3967
; CHECK-LABEL: name: all-off-number
; CHECK: S_WAITCNT_soft .AllOff
S_WAITCNT_soft 3967
...
# GFX9-specific: vmcnt max=63, lgkmcnt max=15
;--- gfx9.mir
# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=none %t/gfx9.mir -o - | FileCheck %t/gfx9.mir
---
name: vmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_max-1
; CHECK: S_WAITCNT_soft .Vmcnt_62
S_WAITCNT_soft .Vmcnt_62
...
---
name: lgkmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_max-1
; CHECK: S_WAITCNT_soft .Lgkmcnt_14
S_WAITCNT_soft .Lgkmcnt_14
...
---
name: all-off-number
body: |
bb.0:
; vmcnt=63, expcnt=7, lgkmcnt=15 -> 0xCF7F = 53119
; CHECK-LABEL: name: all-off-number
; CHECK: S_WAITCNT_soft .AllOff
S_WAITCNT_soft 53119
...
# GFX10-specific: vmcnt max=63, lgkmcnt max=63
;--- gfx10.mir
# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=none %t/gfx10.mir -o - | FileCheck %t/gfx10.mir
---
name: vmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_max-1
; CHECK: S_WAITCNT_soft .Vmcnt_62
S_WAITCNT_soft .Vmcnt_62
...
---
name: lgkmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_max-1
; CHECK: S_WAITCNT_soft .Lgkmcnt_62
S_WAITCNT_soft .Lgkmcnt_62
...
---
name: all-off-number
body: |
bb.0:
; vmcnt=63, expcnt=7, lgkmcnt=63 -> 0xFF7F = 65407
; CHECK-LABEL: name: all-off-number
; CHECK: S_WAITCNT_soft .AllOff
S_WAITCNT_soft 65407
...
# GFX11-specific: vmcnt max=63, lgkmcnt max=63 (different encoding than GFX10)
;--- gfx11.mir
# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=none %t/gfx11.mir -o - | FileCheck %t/gfx11.mir
---
name: vmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: vmcnt_max-1
; CHECK: S_WAITCNT_soft .Vmcnt_62
S_WAITCNT_soft .Vmcnt_62
...
---
name: lgkmcnt_max-1
body: |
bb.0:
; CHECK-LABEL: name: lgkmcnt_max-1
; CHECK: S_WAITCNT_soft .Lgkmcnt_62
S_WAITCNT_soft .Lgkmcnt_62
...
---
name: all-off-number
body: |
bb.0:
; GFX11 encoding: expcnt[2:0]=bits[2:0], lgkmcnt[5:0]=bits[9:4], vmcnt[5:0]=bits[15:10]
; vmcnt=63, expcnt=7, lgkmcnt=63 -> 0xFFF7 = 65527
; CHECK-LABEL: name: all-off-number
; CHECK: S_WAITCNT_soft .AllOff
S_WAITCNT_soft 65527
...