1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V4 %s 3; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V5 %s 4; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V5 %s 5 6; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V4 %s 7; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V5 %s 8; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V5 %s 9 10define amdgpu_kernel void @addrspacecast(ptr addrspace(5) %ptr.private, ptr addrspace(3) %ptr.local) { 11; GFX8V4-LABEL: addrspacecast: 12; GFX8V4: ; %bb.0: 13; GFX8V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 14; GFX8V4-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x40 15; GFX8V4-NEXT: v_mov_b32_e32 v4, 1 16; GFX8V4-NEXT: s_waitcnt lgkmcnt(0) 17; GFX8V4-NEXT: s_cmp_lg_u32 s0, -1 18; GFX8V4-NEXT: s_cselect_b32 s3, s3, 0 19; GFX8V4-NEXT: s_cselect_b32 s0, s0, 0 20; GFX8V4-NEXT: s_cmp_lg_u32 s1, -1 21; GFX8V4-NEXT: v_mov_b32_e32 v0, s0 22; GFX8V4-NEXT: v_mov_b32_e32 v1, s3 23; GFX8V4-NEXT: s_cselect_b32 s0, s2, 0 24; GFX8V4-NEXT: s_cselect_b32 s1, s1, 0 25; GFX8V4-NEXT: v_mov_b32_e32 v2, s1 26; GFX8V4-NEXT: v_mov_b32_e32 v3, s0 27; GFX8V4-NEXT: flat_store_dword v[0:1], v4 28; GFX8V4-NEXT: s_waitcnt vmcnt(0) 29; GFX8V4-NEXT: v_mov_b32_e32 v0, 2 30; GFX8V4-NEXT: flat_store_dword v[2:3], v0 31; GFX8V4-NEXT: s_waitcnt vmcnt(0) 32; GFX8V4-NEXT: s_endpgm 33; 34; GFX8V5-LABEL: addrspacecast: 35; GFX8V5: ; %bb.0: 36; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 37; GFX8V5-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0xc8 38; GFX8V5-NEXT: v_mov_b32_e32 v4, 1 39; GFX8V5-NEXT: s_waitcnt lgkmcnt(0) 40; GFX8V5-NEXT: s_cmp_lg_u32 s0, -1 41; GFX8V5-NEXT: s_cselect_b32 s2, s2, 0 42; GFX8V5-NEXT: s_cselect_b32 s0, s0, 0 43; GFX8V5-NEXT: s_cmp_lg_u32 s1, -1 44; GFX8V5-NEXT: v_mov_b32_e32 v0, s0 45; GFX8V5-NEXT: v_mov_b32_e32 v1, s2 46; GFX8V5-NEXT: s_cselect_b32 s0, s3, 0 47; GFX8V5-NEXT: s_cselect_b32 s1, s1, 0 48; GFX8V5-NEXT: v_mov_b32_e32 v2, s1 49; GFX8V5-NEXT: v_mov_b32_e32 v3, s0 50; GFX8V5-NEXT: flat_store_dword v[0:1], v4 51; GFX8V5-NEXT: s_waitcnt vmcnt(0) 52; GFX8V5-NEXT: v_mov_b32_e32 v0, 2 53; GFX8V5-NEXT: flat_store_dword v[2:3], v0 54; GFX8V5-NEXT: s_waitcnt vmcnt(0) 55; GFX8V5-NEXT: s_endpgm 56; 57; GFX9V4-LABEL: addrspacecast: 58; GFX9V4: ; %bb.0: 59; GFX9V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 60; GFX9V4-NEXT: s_mov_b64 s[2:3], src_private_base 61; GFX9V4-NEXT: s_mov_b64 s[4:5], src_shared_base 62; GFX9V4-NEXT: v_mov_b32_e32 v4, 1 63; GFX9V4-NEXT: s_waitcnt lgkmcnt(0) 64; GFX9V4-NEXT: s_cmp_lg_u32 s0, -1 65; GFX9V4-NEXT: s_cselect_b32 s2, s3, 0 66; GFX9V4-NEXT: s_cselect_b32 s0, s0, 0 67; GFX9V4-NEXT: s_cmp_lg_u32 s1, -1 68; GFX9V4-NEXT: v_mov_b32_e32 v0, s0 69; GFX9V4-NEXT: v_mov_b32_e32 v1, s2 70; GFX9V4-NEXT: s_cselect_b32 s0, s5, 0 71; GFX9V4-NEXT: s_cselect_b32 s1, s1, 0 72; GFX9V4-NEXT: v_mov_b32_e32 v2, s1 73; GFX9V4-NEXT: v_mov_b32_e32 v3, s0 74; GFX9V4-NEXT: flat_store_dword v[0:1], v4 75; GFX9V4-NEXT: s_waitcnt vmcnt(0) 76; GFX9V4-NEXT: v_mov_b32_e32 v0, 2 77; GFX9V4-NEXT: flat_store_dword v[2:3], v0 78; GFX9V4-NEXT: s_waitcnt vmcnt(0) 79; GFX9V4-NEXT: s_endpgm 80; 81; GFX9V5-LABEL: addrspacecast: 82; GFX9V5: ; %bb.0: 83; GFX9V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 84; GFX9V5-NEXT: s_mov_b64 s[2:3], src_private_base 85; GFX9V5-NEXT: s_mov_b64 s[4:5], src_shared_base 86; GFX9V5-NEXT: v_mov_b32_e32 v4, 1 87; GFX9V5-NEXT: s_waitcnt lgkmcnt(0) 88; GFX9V5-NEXT: s_cmp_lg_u32 s0, -1 89; GFX9V5-NEXT: s_cselect_b32 s2, s3, 0 90; GFX9V5-NEXT: s_cselect_b32 s0, s0, 0 91; GFX9V5-NEXT: s_cmp_lg_u32 s1, -1 92; GFX9V5-NEXT: v_mov_b32_e32 v0, s0 93; GFX9V5-NEXT: v_mov_b32_e32 v1, s2 94; GFX9V5-NEXT: s_cselect_b32 s0, s5, 0 95; GFX9V5-NEXT: s_cselect_b32 s1, s1, 0 96; GFX9V5-NEXT: v_mov_b32_e32 v2, s1 97; GFX9V5-NEXT: v_mov_b32_e32 v3, s0 98; GFX9V5-NEXT: flat_store_dword v[0:1], v4 99; GFX9V5-NEXT: s_waitcnt vmcnt(0) 100; GFX9V5-NEXT: v_mov_b32_e32 v0, 2 101; GFX9V5-NEXT: flat_store_dword v[2:3], v0 102; GFX9V5-NEXT: s_waitcnt vmcnt(0) 103; GFX9V5-NEXT: s_endpgm 104 105 %flat.private = addrspacecast ptr addrspace(5) %ptr.private to ptr 106 %flat.local = addrspacecast ptr addrspace(3) %ptr.local to ptr 107 store volatile i32 1, ptr %flat.private 108 store volatile i32 2, ptr %flat.local 109 ret void 110} 111 112define amdgpu_kernel void @llvm_amdgcn_is_shared(ptr %ptr) { 113; GFX8V4-LABEL: llvm_amdgcn_is_shared: 114; GFX8V4: ; %bb.0: 115; GFX8V4-NEXT: s_load_dword s0, s[6:7], 0x40 116; GFX8V4-NEXT: s_load_dword s1, s[8:9], 0x4 117; GFX8V4-NEXT: s_waitcnt lgkmcnt(0) 118; GFX8V4-NEXT: s_cmp_eq_u32 s1, s0 119; GFX8V4-NEXT: s_cselect_b64 s[0:1], -1, 0 120; GFX8V4-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 121; GFX8V4-NEXT: flat_store_dword v[0:1], v0 122; GFX8V4-NEXT: s_waitcnt vmcnt(0) 123; GFX8V4-NEXT: s_endpgm 124; 125; GFX8V5-LABEL: llvm_amdgcn_is_shared: 126; GFX8V5: ; %bb.0: 127; GFX8V5-NEXT: s_load_dword s0, s[8:9], 0xcc 128; GFX8V5-NEXT: s_load_dword s1, s[8:9], 0x4 129; GFX8V5-NEXT: s_waitcnt lgkmcnt(0) 130; GFX8V5-NEXT: s_cmp_eq_u32 s1, s0 131; GFX8V5-NEXT: s_cselect_b64 s[0:1], -1, 0 132; GFX8V5-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 133; GFX8V5-NEXT: flat_store_dword v[0:1], v0 134; GFX8V5-NEXT: s_waitcnt vmcnt(0) 135; GFX8V5-NEXT: s_endpgm 136; 137; GFX9V4-LABEL: llvm_amdgcn_is_shared: 138; GFX9V4: ; %bb.0: 139; GFX9V4-NEXT: s_load_dword s2, s[8:9], 0x4 140; GFX9V4-NEXT: s_mov_b64 s[0:1], src_shared_base 141; GFX9V4-NEXT: s_waitcnt lgkmcnt(0) 142; GFX9V4-NEXT: s_cmp_eq_u32 s2, s1 143; GFX9V4-NEXT: s_cselect_b64 s[0:1], -1, 0 144; GFX9V4-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 145; GFX9V4-NEXT: global_store_dword v[0:1], v0, off 146; GFX9V4-NEXT: s_waitcnt vmcnt(0) 147; GFX9V4-NEXT: s_endpgm 148; 149; GFX9V5-LABEL: llvm_amdgcn_is_shared: 150; GFX9V5: ; %bb.0: 151; GFX9V5-NEXT: s_load_dword s2, s[8:9], 0x4 152; GFX9V5-NEXT: s_mov_b64 s[0:1], src_shared_base 153; GFX9V5-NEXT: s_waitcnt lgkmcnt(0) 154; GFX9V5-NEXT: s_cmp_eq_u32 s2, s1 155; GFX9V5-NEXT: s_cselect_b64 s[0:1], -1, 0 156; GFX9V5-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 157; GFX9V5-NEXT: global_store_dword v[0:1], v0, off 158; GFX9V5-NEXT: s_waitcnt vmcnt(0) 159; GFX9V5-NEXT: s_endpgm 160 %is.shared = call i1 @llvm.amdgcn.is.shared(ptr %ptr) 161 %zext = zext i1 %is.shared to i32 162 store volatile i32 %zext, ptr addrspace(1) undef 163 ret void 164} 165 166define amdgpu_kernel void @llvm_amdgcn_is_private(ptr %ptr) { 167; GFX8V4-LABEL: llvm_amdgcn_is_private: 168; GFX8V4: ; %bb.0: 169; GFX8V4-NEXT: s_load_dword s0, s[6:7], 0x44 170; GFX8V4-NEXT: s_load_dword s1, s[8:9], 0x4 171; GFX8V4-NEXT: s_waitcnt lgkmcnt(0) 172; GFX8V4-NEXT: s_cmp_eq_u32 s1, s0 173; GFX8V4-NEXT: s_cselect_b64 s[0:1], -1, 0 174; GFX8V4-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 175; GFX8V4-NEXT: flat_store_dword v[0:1], v0 176; GFX8V4-NEXT: s_waitcnt vmcnt(0) 177; GFX8V4-NEXT: s_endpgm 178; 179; GFX8V5-LABEL: llvm_amdgcn_is_private: 180; GFX8V5: ; %bb.0: 181; GFX8V5-NEXT: s_load_dword s0, s[8:9], 0xc8 182; GFX8V5-NEXT: s_load_dword s1, s[8:9], 0x4 183; GFX8V5-NEXT: s_waitcnt lgkmcnt(0) 184; GFX8V5-NEXT: s_cmp_eq_u32 s1, s0 185; GFX8V5-NEXT: s_cselect_b64 s[0:1], -1, 0 186; GFX8V5-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 187; GFX8V5-NEXT: flat_store_dword v[0:1], v0 188; GFX8V5-NEXT: s_waitcnt vmcnt(0) 189; GFX8V5-NEXT: s_endpgm 190; 191; GFX9V4-LABEL: llvm_amdgcn_is_private: 192; GFX9V4: ; %bb.0: 193; GFX9V4-NEXT: s_load_dword s2, s[8:9], 0x4 194; GFX9V4-NEXT: s_mov_b64 s[0:1], src_private_base 195; GFX9V4-NEXT: s_waitcnt lgkmcnt(0) 196; GFX9V4-NEXT: s_cmp_eq_u32 s2, s1 197; GFX9V4-NEXT: s_cselect_b64 s[0:1], -1, 0 198; GFX9V4-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 199; GFX9V4-NEXT: global_store_dword v[0:1], v0, off 200; GFX9V4-NEXT: s_waitcnt vmcnt(0) 201; GFX9V4-NEXT: s_endpgm 202; 203; GFX9V5-LABEL: llvm_amdgcn_is_private: 204; GFX9V5: ; %bb.0: 205; GFX9V5-NEXT: s_load_dword s2, s[8:9], 0x4 206; GFX9V5-NEXT: s_mov_b64 s[0:1], src_private_base 207; GFX9V5-NEXT: s_waitcnt lgkmcnt(0) 208; GFX9V5-NEXT: s_cmp_eq_u32 s2, s1 209; GFX9V5-NEXT: s_cselect_b64 s[0:1], -1, 0 210; GFX9V5-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] 211; GFX9V5-NEXT: global_store_dword v[0:1], v0, off 212; GFX9V5-NEXT: s_waitcnt vmcnt(0) 213; GFX9V5-NEXT: s_endpgm 214 %is.private = call i1 @llvm.amdgcn.is.private(ptr %ptr) 215 %zext = zext i1 %is.private to i32 216 store volatile i32 %zext, ptr addrspace(1) undef 217 ret void 218} 219 220define amdgpu_kernel void @llvm_trap() { 221; GFX8V4-LABEL: llvm_trap: 222; GFX8V4: ; %bb.0: 223; GFX8V4-NEXT: s_mov_b64 s[0:1], s[6:7] 224; GFX8V4-NEXT: s_trap 2 225; 226; GFX8V5-LABEL: llvm_trap: 227; GFX8V5: ; %bb.0: 228; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0xc8 229; GFX8V5-NEXT: s_waitcnt lgkmcnt(0) 230; GFX8V5-NEXT: s_trap 2 231; 232; GFX9V4-LABEL: llvm_trap: 233; GFX9V4: ; %bb.0: 234; GFX9V4-NEXT: s_trap 2 235; 236; GFX9V5-LABEL: llvm_trap: 237; GFX9V5: ; %bb.0: 238; GFX9V5-NEXT: s_trap 2 239 call void @llvm.trap() 240 unreachable 241} 242 243define amdgpu_kernel void @llvm_debugtrap() { 244; GFX8V4-LABEL: llvm_debugtrap: 245; GFX8V4: ; %bb.0: 246; GFX8V4-NEXT: s_trap 3 247; 248; GFX8V5-LABEL: llvm_debugtrap: 249; GFX8V5: ; %bb.0: 250; GFX8V5-NEXT: s_trap 3 251; 252; GFX9V4-LABEL: llvm_debugtrap: 253; GFX9V4: ; %bb.0: 254; GFX9V4-NEXT: s_trap 3 255; 256; GFX9V5-LABEL: llvm_debugtrap: 257; GFX9V5: ; %bb.0: 258; GFX9V5-NEXT: s_trap 3 259 call void @llvm.debugtrap() 260 unreachable 261} 262 263define amdgpu_kernel void @llvm_amdgcn_queue_ptr(ptr addrspace(1) %ptr) { 264; GFX8V4-LABEL: llvm_amdgcn_queue_ptr: 265; GFX8V4: ; %bb.0: 266; GFX8V4-NEXT: v_mov_b32_e32 v0, s6 267; GFX8V4-NEXT: v_mov_b32_e32 v1, s7 268; GFX8V4-NEXT: s_add_u32 s0, s8, 8 269; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc 270; GFX8V4-NEXT: s_addc_u32 s1, s9, 0 271; GFX8V4-NEXT: s_waitcnt vmcnt(0) 272; GFX8V4-NEXT: v_mov_b32_e32 v0, s0 273; GFX8V4-NEXT: v_mov_b32_e32 v1, s1 274; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc 275; GFX8V4-NEXT: s_waitcnt vmcnt(0) 276; GFX8V4-NEXT: v_mov_b32_e32 v0, s4 277; GFX8V4-NEXT: v_mov_b32_e32 v1, s5 278; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc 279; GFX8V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 280; GFX8V4-NEXT: v_mov_b32_e32 v2, s10 281; GFX8V4-NEXT: v_mov_b32_e32 v3, s11 282; GFX8V4-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) 283; GFX8V4-NEXT: v_mov_b32_e32 v0, s0 284; GFX8V4-NEXT: v_mov_b32_e32 v1, s1 285; GFX8V4-NEXT: flat_store_dwordx2 v[0:1], v[2:3] 286; GFX8V4-NEXT: s_waitcnt vmcnt(0) 287; GFX8V4-NEXT: s_endpgm 288; 289; GFX8V5-LABEL: llvm_amdgcn_queue_ptr: 290; GFX8V5: ; %bb.0: 291; GFX8V5-NEXT: v_mov_b32_e32 v0, s6 292; GFX8V5-NEXT: v_mov_b32_e32 v1, s7 293; GFX8V5-NEXT: s_add_u32 s0, s8, 8 294; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc 295; GFX8V5-NEXT: s_addc_u32 s1, s9, 0 296; GFX8V5-NEXT: s_waitcnt vmcnt(0) 297; GFX8V5-NEXT: v_mov_b32_e32 v0, s0 298; GFX8V5-NEXT: v_mov_b32_e32 v1, s1 299; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc 300; GFX8V5-NEXT: s_waitcnt vmcnt(0) 301; GFX8V5-NEXT: v_mov_b32_e32 v0, s4 302; GFX8V5-NEXT: v_mov_b32_e32 v1, s5 303; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc 304; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 305; GFX8V5-NEXT: v_mov_b32_e32 v2, s10 306; GFX8V5-NEXT: v_mov_b32_e32 v3, s11 307; GFX8V5-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) 308; GFX8V5-NEXT: v_mov_b32_e32 v0, s0 309; GFX8V5-NEXT: v_mov_b32_e32 v1, s1 310; GFX8V5-NEXT: flat_store_dwordx2 v[0:1], v[2:3] 311; GFX8V5-NEXT: s_waitcnt vmcnt(0) 312; GFX8V5-NEXT: s_endpgm 313; 314; GFX9V4-LABEL: llvm_amdgcn_queue_ptr: 315; GFX9V4: ; %bb.0: 316; GFX9V4-NEXT: v_mov_b32_e32 v2, 0 317; GFX9V4-NEXT: global_load_ubyte v0, v2, s[6:7] glc 318; GFX9V4-NEXT: global_load_ubyte v0, v2, s[8:9] offset:8 glc 319; GFX9V4-NEXT: global_load_ubyte v0, v2, s[4:5] glc 320; GFX9V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 321; GFX9V4-NEXT: s_waitcnt vmcnt(0) 322; GFX9V4-NEXT: v_mov_b32_e32 v0, s10 323; GFX9V4-NEXT: v_mov_b32_e32 v1, s11 324; GFX9V4-NEXT: ; kill: killed $sgpr6_sgpr7 325; GFX9V4-NEXT: ; kill: killed $sgpr4_sgpr5 326; GFX9V4-NEXT: s_waitcnt lgkmcnt(0) 327; GFX9V4-NEXT: global_store_dwordx2 v2, v[0:1], s[0:1] 328; GFX9V4-NEXT: s_waitcnt vmcnt(0) 329; GFX9V4-NEXT: s_endpgm 330; 331; GFX9V5-LABEL: llvm_amdgcn_queue_ptr: 332; GFX9V5: ; %bb.0: 333; GFX9V5-NEXT: v_mov_b32_e32 v2, 0 334; GFX9V5-NEXT: global_load_ubyte v0, v2, s[6:7] glc 335; GFX9V5-NEXT: global_load_ubyte v0, v2, s[8:9] offset:8 glc 336; GFX9V5-NEXT: global_load_ubyte v0, v2, s[4:5] glc 337; GFX9V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0 338; GFX9V5-NEXT: s_waitcnt vmcnt(0) 339; GFX9V5-NEXT: v_mov_b32_e32 v0, s10 340; GFX9V5-NEXT: v_mov_b32_e32 v1, s11 341; GFX9V5-NEXT: ; kill: killed $sgpr6_sgpr7 342; GFX9V5-NEXT: ; kill: killed $sgpr4_sgpr5 343; GFX9V5-NEXT: s_waitcnt lgkmcnt(0) 344; GFX9V5-NEXT: global_store_dwordx2 v2, v[0:1], s[0:1] 345; GFX9V5-NEXT: s_waitcnt vmcnt(0) 346; GFX9V5-NEXT: s_endpgm 347 %queue.ptr = call ptr addrspace(4) @llvm.amdgcn.queue.ptr() 348 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() 349 %dispatch.ptr = call ptr addrspace(4) @llvm.amdgcn.dispatch.ptr() 350 %dispatch.id = call i64 @llvm.amdgcn.dispatch.id() 351 %queue.load = load volatile i8, ptr addrspace(4) %queue.ptr 352 %implicitarg.load = load volatile i8, ptr addrspace(4) %implicitarg.ptr 353 %dispatch.load = load volatile i8, ptr addrspace(4) %dispatch.ptr 354 store volatile i64 %dispatch.id, ptr addrspace(1) %ptr 355 ret void 356} 357 358declare noalias ptr addrspace(4) @llvm.amdgcn.queue.ptr() 359declare noalias ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() 360declare i64 @llvm.amdgcn.dispatch.id() 361declare noalias ptr addrspace(4) @llvm.amdgcn.dispatch.ptr() 362declare i1 @llvm.amdgcn.is.shared(ptr) 363declare i1 @llvm.amdgcn.is.private(ptr) 364declare void @llvm.trap() 365declare void @llvm.debugtrap() 366 367!llvm.module.flags = !{!0} 368!0 = !{i32 1, !"amdhsa_code_object_version", i32 CODE_OBJECT_VERSION} 369