mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-26 14:25:18 +00:00
9ed9eb72f4
Re-commit of r258951 after fixing layering violation. The BPF and WebAssembly backends had identical code for emitting errors for unsupported features, and AMDGPU had very similar code. This merges them all into one DiagnosticInfo subclass, that can be used by any backend. There should be minimal functional changes here, but some AMDGPU tests have been updated for the new format of errors (it used a slightly different format to BPF and WebAssembly). The AMDGPU error messages will now benefit from having precise source locations when debug info is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259498 91177308-0d34-0410-b5e6-96231b3b80d8
20 lines
821 B
LLVM
20 lines
821 B
LLVM
; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
|
|
; RUN: not llc -mtriple=amdgcn-unknown-unknown -mcpu=kaveri -verify-machineinstrs < %s 2>&1 | FileCheck -check-prefix=ERROR %s
|
|
|
|
; ERROR: in function test{{.*}}: unsupported hsa intrinsic without hsa target
|
|
|
|
; GCN-LABEL: {{^}}test:
|
|
; GCN: enable_sgpr_dispatch_ptr = 1
|
|
; GCN: s_load_dword s{{[0-9]+}}, s[4:5], 0x0
|
|
define void @test(i32 addrspace(1)* %out) {
|
|
%dispatch_ptr = call noalias i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0
|
|
%header_ptr = bitcast i8 addrspace(2)* %dispatch_ptr to i32 addrspace(2)*
|
|
%value = load i32, i32 addrspace(2)* %header_ptr
|
|
store i32 %value, i32 addrspace(1)* %out
|
|
ret void
|
|
}
|
|
|
|
declare noalias i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0
|
|
|
|
attributes #0 = { readnone }
|