1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx40 | FileCheck %s 2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx40 | %ptxas-verify %} 3 4; RUN: not --crash llc < %s -mtriple=nvptx64 -mcpu=sm_20 2>&1 | FileCheck %s --check-prefix ERROR 5; ERROR: LLVM ERROR: .attribute(.managed) requires PTX version >= 4.0 and sm_30 6 7; CHECK: .visible .global .align 4 .u32 device_g; 8@device_g = addrspace(1) global i32 zeroinitializer 9; CHECK: .visible .global .attribute(.managed) .align 4 .u32 managed_g; 10@managed_g = addrspace(1) global i32 zeroinitializer 11 12; CHECK: .extern .global .align 4 .u32 decl_g; 13@decl_g = external addrspace(1) global i32, align 4 14; CHECK: .extern .global .attribute(.managed) .align 8 .b64 managed_decl_g; 15@managed_decl_g = external addrspace(1) global ptr, align 8 16 17!nvvm.annotations = !{!0, !1} 18!0 = !{ptr addrspace(1) @managed_g, !"managed", i32 1} 19!1 = !{ptr addrspace(1) @managed_decl_g, !"managed", i32 1} 20