Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll @ 252:1f2b6ac9f198 llvm-original
LLVM16-1
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Aug 2023 09:04:13 +0900 |
parents | 79ff65ed7e25 |
children |
comparison
equal
deleted
inserted
replaced
237:c80f45b162ad | 252:1f2b6ac9f198 |
---|---|
2 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT0 %s | 2 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT0 %s |
3 ; RUN: llc -march=amdgcn -mattr=+auto-waitcnt-before-barrier -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT1 %s | 3 ; RUN: llc -march=amdgcn -mattr=+auto-waitcnt-before-barrier -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT1 %s |
4 ; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT2 %s | 4 ; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT2 %s |
5 ; RUN: llc -march=amdgcn -mcpu=gfx900 -mattr=+auto-waitcnt-before-barrier -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT3 %s | 5 ; RUN: llc -march=amdgcn -mcpu=gfx900 -mattr=+auto-waitcnt-before-barrier -verify-machineinstrs < %s | FileCheck --check-prefix=VARIANT3 %s |
6 | 6 |
7 define amdgpu_kernel void @test_barrier(i32 addrspace(1)* %out, i32 %size) #0 { | 7 define amdgpu_kernel void @test_barrier(ptr addrspace(1) %out, i32 %size) #0 { |
8 ; VARIANT0-LABEL: test_barrier: | 8 ; VARIANT0-LABEL: test_barrier: |
9 ; VARIANT0: ; %bb.0: ; %entry | 9 ; VARIANT0: ; %bb.0: ; %entry |
10 ; VARIANT0-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9 | 10 ; VARIANT0-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9 |
11 ; VARIANT0-NEXT: s_load_dword s0, s[0:1], 0xb | 11 ; VARIANT0-NEXT: s_load_dword s0, s[0:1], 0xb |
12 ; VARIANT0-NEXT: s_mov_b32 s7, 0xf000 | 12 ; VARIANT0-NEXT: s_mov_b32 s7, 0xf000 |
85 ; VARIANT3-NEXT: s_waitcnt vmcnt(0) | 85 ; VARIANT3-NEXT: s_waitcnt vmcnt(0) |
86 ; VARIANT3-NEXT: global_store_dword v2, v0, s[2:3] | 86 ; VARIANT3-NEXT: global_store_dword v2, v0, s[2:3] |
87 ; VARIANT3-NEXT: s_endpgm | 87 ; VARIANT3-NEXT: s_endpgm |
88 entry: | 88 entry: |
89 %tmp = call i32 @llvm.amdgcn.workitem.id.x() | 89 %tmp = call i32 @llvm.amdgcn.workitem.id.x() |
90 %tmp1 = getelementptr i32, i32 addrspace(1)* %out, i32 %tmp | 90 %tmp1 = getelementptr i32, ptr addrspace(1) %out, i32 %tmp |
91 store i32 %tmp, i32 addrspace(1)* %tmp1 | 91 store i32 %tmp, ptr addrspace(1) %tmp1 |
92 call void @llvm.amdgcn.s.barrier() | 92 call void @llvm.amdgcn.s.barrier() |
93 %tmp3 = sub i32 %size, 1 | 93 %tmp3 = sub i32 %size, 1 |
94 %tmp4 = sub i32 %tmp3, %tmp | 94 %tmp4 = sub i32 %tmp3, %tmp |
95 %tmp5 = getelementptr i32, i32 addrspace(1)* %out, i32 %tmp4 | 95 %tmp5 = getelementptr i32, ptr addrspace(1) %out, i32 %tmp4 |
96 %tmp6 = load i32, i32 addrspace(1)* %tmp5 | 96 %tmp6 = load i32, ptr addrspace(1) %tmp5 |
97 store i32 %tmp6, i32 addrspace(1)* %tmp1 | 97 store i32 %tmp6, ptr addrspace(1) %tmp1 |
98 ret void | 98 ret void |
99 } | 99 } |
100 | 100 |
101 declare void @llvm.amdgcn.s.barrier() #1 | 101 declare void @llvm.amdgcn.s.barrier() #1 |
102 declare i32 @llvm.amdgcn.workitem.id.x() #2 | 102 declare i32 @llvm.amdgcn.workitem.id.x() #2 |