mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-12 06:31:14 +00:00
[AMDGPU] Cleanup in memory legalizer tests. NFC.
llvm-svn: 325042
This commit is contained in:
parent
e07824ace6
commit
f1be30ca6b
@ -1,11 +1,11 @@
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX8 %s
|
||||
|
||||
; CHECK-LABEL: {{^}}system_monotonic_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_monotonic_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_monotonic_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -14,11 +14,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acquire_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acquire_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acquire_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -27,11 +27,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_release_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_release_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_release_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -40,11 +40,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acq_rel_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acq_rel_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acq_rel_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -53,11 +53,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_seq_cst_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_seq_cst_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_seq_cst_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -66,11 +66,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acquire_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acquire_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acquire_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -79,11 +79,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_release_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_release_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_release_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -92,11 +92,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acq_rel_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acq_rel_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acq_rel_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -105,11 +105,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_seq_cst_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_seq_cst_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_seq_cst_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -118,11 +118,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_seq_cst_seq_cst
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_seq_cst_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_seq_cst_seq_cst(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -131,11 +131,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_monotonic_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_monotonic_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -144,11 +144,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acquire_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acquire_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acquire_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -157,11 +157,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_release_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_release_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_release_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -170,11 +170,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acq_rel_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acq_rel_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acq_rel_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -183,11 +183,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_seq_cst_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_seq_cst_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -196,11 +196,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acquire_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acquire_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acquire_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -209,11 +209,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_release_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_release_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_release_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -222,11 +222,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acq_rel_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acq_rel_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acq_rel_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -235,11 +235,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_seq_cst_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_seq_cst_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -248,11 +248,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_seq_cst_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_seq_cst_seq_cst(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -261,11 +261,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_monotonic_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_monotonic_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_monotonic_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -274,11 +274,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acquire_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acquire_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acquire_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -287,11 +287,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_release_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_release_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_release_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -300,11 +300,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acq_rel_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acq_rel_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acq_rel_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -313,11 +313,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_seq_cst_monotonic
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_seq_cst_monotonic:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_seq_cst_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -326,11 +326,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acquire_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acquire_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acquire_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -339,11 +339,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_release_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_release_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_release_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -352,11 +352,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acq_rel_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acq_rel_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acq_rel_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -365,11 +365,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_seq_cst_acquire
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_seq_cst_acquire:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_seq_cst_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -378,11 +378,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_seq_cst_seq_cst
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_seq_cst_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_seq_cst_seq_cst(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -391,11 +391,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_monotonic_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_monotonic_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -404,11 +404,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acquire_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acquire_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acquire_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -417,11 +417,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_release_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_release_monotonic:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_release_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -430,11 +430,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acq_rel_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acq_rel_monotonic:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acq_rel_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -443,11 +443,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_seq_cst_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst_monotonic:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_seq_cst_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -456,11 +456,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acquire_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acquire_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acquire_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -469,11 +469,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_release_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_release_acquire:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_release_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -482,11 +482,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acq_rel_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acq_rel_acquire:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acq_rel_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -495,11 +495,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_seq_cst_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst_acquire:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_seq_cst_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -508,11 +508,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_seq_cst_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst_seq_cst:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_seq_cst_seq_cst(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -521,11 +521,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_monotonic_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_monotonic_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -534,11 +534,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acquire_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acquire_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acquire_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -547,11 +547,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_release_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_release_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_release_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -560,11 +560,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acq_rel_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acq_rel_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acq_rel_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -573,11 +573,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_seq_cst_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_seq_cst_monotonic(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -586,11 +586,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acquire_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acquire_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acquire_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -599,11 +599,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_release_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_release_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_release_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -612,11 +612,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acq_rel_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acq_rel_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acq_rel_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -625,11 +625,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_seq_cst_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_seq_cst_acquire(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
@ -638,11 +638,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_seq_cst_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_cmpswap v[{{[0-9]+\:[0-9]+}}], v[{{[0-9]+}}:{{[0-9]+}}]{{( offset:[0-9]+)*}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_seq_cst_seq_cst(
|
||||
i32* %out, i32 %in, i32 %old) {
|
||||
entry:
|
||||
|
@ -1,8 +1,8 @@
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx600 -verify-machineinstrs < %s | FileCheck -check-prefix=FUNC -check-prefix=GCN -check-prefix=GFX6 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefix=FUNC -check-prefix=GCN -check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefix=FUNC -check-prefix=GCN -check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx600 -verify-machineinstrs < %s | FileCheck -check-prefixes=FUNC,GCN,GFX6,GFX68 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=FUNC,GCN,GFX8,GFX68 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=FUNC,GCN,GFX8,GFX68 %s
|
||||
|
||||
; FUNC-LABEL: {{^}}system_acquire
|
||||
; FUNC-LABEL: {{^}}system_acquire:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GFX6: s_waitcnt vmcnt(0){{$}}
|
||||
@ -16,7 +16,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}system_release
|
||||
; FUNC-LABEL: {{^}}system_release:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -27,7 +27,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}system_acq_rel
|
||||
; FUNC-LABEL: {{^}}system_acq_rel:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -40,7 +40,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}system_seq_cst
|
||||
; FUNC-LABEL: {{^}}system_seq_cst:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -53,7 +53,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}singlethread_acquire
|
||||
; FUNC-LABEL: {{^}}singlethread_acquire:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -63,7 +63,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}singlethread_release
|
||||
; FUNC-LABEL: {{^}}singlethread_release:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -73,7 +73,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}singlethread_acq_rel
|
||||
; FUNC-LABEL: {{^}}singlethread_acq_rel:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -83,7 +83,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}singlethread_seq_cst
|
||||
; FUNC-LABEL: {{^}}singlethread_seq_cst:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -93,7 +93,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}agent_acquire
|
||||
; FUNC-LABEL: {{^}}agent_acquire:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GFX6: s_waitcnt vmcnt(0){{$}}
|
||||
@ -107,7 +107,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}agent_release
|
||||
; FUNC-LABEL: {{^}}agent_release:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -118,7 +118,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}agent_acq_rel
|
||||
; FUNC-LABEL: {{^}}agent_acq_rel:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -131,7 +131,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}agent_seq_cst
|
||||
; FUNC-LABEL: {{^}}agent_seq_cst:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
@ -144,8 +144,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}workgroup_acquire
|
||||
; FUNC-LABEL: {{^}}workgroup_acquire:
|
||||
; GCN: %bb.0
|
||||
; GFX68-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
define amdgpu_kernel void @workgroup_acquire() {
|
||||
@ -154,8 +155,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}workgroup_release
|
||||
; FUNC-LABEL: {{^}}workgroup_release:
|
||||
; GCN: %bb.0
|
||||
; GFX68-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
define amdgpu_kernel void @workgroup_release() {
|
||||
@ -164,8 +166,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}workgroup_acq_rel
|
||||
; FUNC-LABEL: {{^}}workgroup_acq_rel:
|
||||
; GCN: %bb.0
|
||||
; GFX68-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
define amdgpu_kernel void @workgroup_acq_rel() {
|
||||
@ -174,8 +177,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}workgroup_seq_cst
|
||||
; FUNC-LABEL: {{^}}workgroup_seq_cst:
|
||||
; GCN: %bb.0
|
||||
; GFX68-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
define amdgpu_kernel void @workgroup_seq_cst() {
|
||||
@ -184,7 +188,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}wavefront_acquire
|
||||
; FUNC-LABEL: {{^}}wavefront_acquire:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -194,7 +198,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}wavefront_release
|
||||
; FUNC-LABEL: {{^}}wavefront_release:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -204,7 +208,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}wavefront_acq_rel
|
||||
; FUNC-LABEL: {{^}}wavefront_acq_rel:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
@ -214,7 +218,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; FUNC-LABEL: {{^}}wavefront_seq_cst
|
||||
; FUNC-LABEL: {{^}}wavefront_seq_cst:
|
||||
; GCN: %bb.0
|
||||
; GCN-NOT: ATOMIC_FENCE
|
||||
; GCN: s_endpgm
|
||||
|
@ -1,11 +1,11 @@
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,GFX8 %s
|
||||
|
||||
; CHECK-LABEL: {{^}}system_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_monotonic(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -13,11 +13,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acquire(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -25,11 +25,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_release
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_release:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_release(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -37,11 +37,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_acq_rel
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_acq_rel:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_acq_rel(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -49,11 +49,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}system_seq_cst
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}system_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @system_seq_cst(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -61,11 +61,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_monotonic(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -73,11 +73,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acquire(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -85,11 +85,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_release
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_release:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_release(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -97,11 +97,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_acq_rel
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_acq_rel:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_acq_rel(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -109,11 +109,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}singlethread_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @singlethread_seq_cst(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -121,11 +121,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_monotonic(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -133,11 +133,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acquire(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -145,11 +145,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_release
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_release:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_release(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -157,11 +157,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_acq_rel
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_acq_rel:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_acq_rel(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -169,11 +169,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}agent_seq_cst
|
||||
; CHECK: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NEXT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}agent_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NEXT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @agent_seq_cst(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -181,11 +181,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_monotonic(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -193,11 +193,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acquire(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -205,11 +205,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_release
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_release:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_release(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -217,11 +217,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_acq_rel
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_acq_rel:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_acq_rel(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -229,11 +229,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}workgroup_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst:
|
||||
; GFX8-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX8-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @workgroup_seq_cst(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -241,11 +241,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_monotonic
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_monotonic(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -253,11 +253,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acquire
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acquire(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -265,11 +265,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_release
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_release:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_release(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -277,11 +277,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_acq_rel
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_acq_rel:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_acq_rel(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
@ -289,11 +289,11 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}wavefront_seq_cst
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; CHECK-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; CHECK-NOT: buffer_wbinvl1_vol
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_atomic_swap v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
define amdgpu_kernel void @wavefront_seq_cst(
|
||||
i32* %out, i32 %in) {
|
||||
entry:
|
||||
|
@ -1,11 +1,11 @@
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX9 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX9 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX8,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX8,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX9,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX9,GFX89 %s
|
||||
|
||||
declare i32 @llvm.amdgcn.workitem.id.x()
|
||||
|
||||
; GCN-LABEL: {{^}}system_unordered
|
||||
; GCN-LABEL: {{^}}system_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -19,9 +19,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_monotonic
|
||||
; GCN-LABEL: {{^}}system_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
@ -33,12 +33,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_acquire
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}system_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @system_acquire(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -47,12 +47,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_seq_cst
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}system_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @system_seq_cst(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -61,7 +61,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_unordered
|
||||
; GCN-LABEL: {{^}}singlethread_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -75,7 +75,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -89,7 +89,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_acquire
|
||||
; GCN-LABEL: {{^}}singlethread_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -103,7 +103,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -117,7 +117,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_unordered
|
||||
; GCN-LABEL: {{^}}agent_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -131,9 +131,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_monotonic
|
||||
; GCN-LABEL: {{^}}agent_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
@ -145,12 +145,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_acquire
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}agent_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @agent_acquire(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -159,12 +159,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_seq_cst
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}agent_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}] glc{{$}}
|
||||
; GCN-NEXT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NEXT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @agent_seq_cst(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -173,9 +173,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_unordered
|
||||
; GCN-LABEL: {{^}}workgroup_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
@ -187,9 +187,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
@ -201,12 +201,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_acquire
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}workgroup_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GFX89-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @workgroup_acquire(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -215,12 +215,12 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst:
|
||||
; GFX89-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GFX89-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GFX89-NOT: buffer_wbinvl1_vol
|
||||
; GCN: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, [[RET]]
|
||||
define amdgpu_kernel void @workgroup_seq_cst(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -229,7 +229,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_unordered
|
||||
; GCN-LABEL: {{^}}wavefront_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -243,7 +243,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -257,7 +257,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_acquire
|
||||
; GCN-LABEL: {{^}}wavefront_acquire:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -271,7 +271,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_load_dword [[RET:v[0-9]+]], v[{{[0-9]+}}:{{[0-9]+}}]{{$}}
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
@ -285,8 +285,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_private_0
|
||||
; GCN: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_private_0:
|
||||
; GFX89: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_private_0(
|
||||
i32 addrspace(5)* %in, i32* %out) {
|
||||
entry:
|
||||
@ -295,8 +295,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_private_1
|
||||
; GCN: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_private_1:
|
||||
; GFX89: buffer_load_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_private_1(
|
||||
i32 addrspace(5)* %in, i32* %out) {
|
||||
entry:
|
||||
@ -307,7 +307,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_global_0
|
||||
; GCN-LABEL: {{^}}nontemporal_global_0:
|
||||
; GCN: s_load_dword s{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0x0{{$}}
|
||||
define amdgpu_kernel void @nontemporal_global_0(
|
||||
i32 addrspace(1)* %in, i32* %out) {
|
||||
@ -317,9 +317,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_global_1
|
||||
; GFX8: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
; GFX9: global_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], off glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_global_1:
|
||||
; GFX8: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
; GFX9: global_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}], off glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_global_1(
|
||||
i32 addrspace(1)* %in, i32* %out) {
|
||||
entry:
|
||||
@ -330,7 +330,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_local_0
|
||||
; GCN-LABEL: {{^}}nontemporal_local_0:
|
||||
; GCN: ds_read_b32 v{{[0-9]+}}, v{{[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @nontemporal_local_0(
|
||||
i32 addrspace(3)* %in, i32* %out) {
|
||||
@ -340,7 +340,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_local_1
|
||||
; GCN-LABEL: {{^}}nontemporal_local_1:
|
||||
; GCN: ds_read_b32 v{{[0-9]+}}, v{{[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @nontemporal_local_1(
|
||||
i32 addrspace(3)* %in, i32* %out) {
|
||||
@ -352,8 +352,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_0
|
||||
; GCN: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_0:
|
||||
; GFX89: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_flat_0(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -362,8 +362,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_1
|
||||
; GCN: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_1:
|
||||
; GFX89: flat_load_dword v{{[0-9]+}}, v[{{[0-9]+}}:{{[0-9]+}}] glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_flat_1(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
|
@ -1,11 +1,11 @@
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX8 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX9 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN --check-prefix=GFX9 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX8,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX8,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd- -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX9,GFX89 %s
|
||||
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX9,GFX89 %s
|
||||
|
||||
declare i32 @llvm.amdgcn.workitem.id.x()
|
||||
|
||||
; GCN-LABEL: {{^}}system_unordered
|
||||
; GCN-LABEL: {{^}}system_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @system_unordered(
|
||||
@ -15,7 +15,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_monotonic
|
||||
; GCN-LABEL: {{^}}system_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @system_monotonic(
|
||||
@ -25,9 +25,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_release
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}system_release:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @system_release(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -35,9 +35,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}system_seq_cst
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}system_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @system_seq_cst(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -45,7 +45,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_unordered
|
||||
; GCN-LABEL: {{^}}singlethread_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @singlethread_unordered(
|
||||
@ -55,7 +55,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic
|
||||
; GCN-LABEL: {{^}}singlethread_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @singlethread_monotonic(
|
||||
@ -65,7 +65,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_release
|
||||
; GCN-LABEL: {{^}}singlethread_release:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @singlethread_release(
|
||||
@ -75,7 +75,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst
|
||||
; GCN-LABEL: {{^}}singlethread_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @singlethread_seq_cst(
|
||||
@ -85,7 +85,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_unordered
|
||||
; GCN-LABEL: {{^}}agent_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @agent_unordered(
|
||||
@ -95,7 +95,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_monotonic
|
||||
; GCN-LABEL: {{^}}agent_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @agent_monotonic(
|
||||
@ -105,9 +105,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_release
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}agent_release:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @agent_release(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -115,9 +115,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}agent_seq_cst
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}agent_seq_cst:
|
||||
; GCN: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN-NEXT: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @agent_seq_cst(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -125,7 +125,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_unordered
|
||||
; GCN-LABEL: {{^}}workgroup_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @workgroup_unordered(
|
||||
@ -135,7 +135,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic
|
||||
; GCN-LABEL: {{^}}workgroup_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @workgroup_monotonic(
|
||||
@ -145,9 +145,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_release
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}workgroup_release:
|
||||
; GFX89-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @workgroup_release(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -155,9 +155,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
; GCN-LABEL: {{^}}workgroup_seq_cst:
|
||||
; GFX89-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @workgroup_seq_cst(
|
||||
i32 %in, i32* %out) {
|
||||
entry:
|
||||
@ -165,7 +165,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_unordered
|
||||
; GCN-LABEL: {{^}}wavefront_unordered:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @wavefront_unordered(
|
||||
@ -175,7 +175,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic
|
||||
; GCN-LABEL: {{^}}wavefront_monotonic:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @wavefront_monotonic(
|
||||
@ -185,7 +185,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_release
|
||||
; GCN-LABEL: {{^}}wavefront_release:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @wavefront_release(
|
||||
@ -195,7 +195,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst
|
||||
; GCN-LABEL: {{^}}wavefront_seq_cst:
|
||||
; GCN-NOT: s_waitcnt vmcnt(0){{$}}
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @wavefront_seq_cst(
|
||||
@ -205,8 +205,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_private_0
|
||||
; GCN: buffer_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_private_0:
|
||||
; GFX89: buffer_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_private_0(
|
||||
i32* %in, i32 addrspace(5)* %out) {
|
||||
entry:
|
||||
@ -215,8 +215,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_private_1
|
||||
; GCN: buffer_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_private_1:
|
||||
; GFX89: buffer_store_dword v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], s{{[0-9]+}} offen glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_private_1(
|
||||
i32* %in, i32 addrspace(5)* %out) {
|
||||
entry:
|
||||
@ -227,9 +227,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_global_0
|
||||
; GFX8: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GFX9: global_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}, off glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_global_0:
|
||||
; GFX8: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GFX9: global_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}, off glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_global_0(
|
||||
i32* %in, i32 addrspace(1)* %out) {
|
||||
entry:
|
||||
@ -238,9 +238,9 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_global_1
|
||||
; GFX8: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GFX9: global_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}, off glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_global_1:
|
||||
; GFX8: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GFX9: global_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}, off glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_global_1(
|
||||
i32* %in, i32 addrspace(1)* %out) {
|
||||
entry:
|
||||
@ -251,7 +251,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_local_0
|
||||
; GCN-LABEL: {{^}}nontemporal_local_0:
|
||||
; GCN: ds_write_b32 v{{[0-9]+}}, v{{[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @nontemporal_local_0(
|
||||
i32* %in, i32 addrspace(3)* %out) {
|
||||
@ -261,7 +261,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_local_1
|
||||
; GCN-LABEL: {{^}}nontemporal_local_1:
|
||||
; GCN: ds_write_b32 v{{[0-9]+}}, v{{[0-9]+}}{{$}}
|
||||
define amdgpu_kernel void @nontemporal_local_1(
|
||||
i32* %in, i32 addrspace(3)* %out) {
|
||||
@ -273,8 +273,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_0
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_0:
|
||||
; GFX89: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_flat_0(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
@ -283,8 +283,8 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_1
|
||||
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
; GCN-LABEL: {{^}}nontemporal_flat_1:
|
||||
; GFX89: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}} glc slc{{$}}
|
||||
define amdgpu_kernel void @nontemporal_flat_1(
|
||||
i32* %in, i32* %out) {
|
||||
entry:
|
||||
|
Loading…
x
Reference in New Issue
Block a user