389 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V4 %s3; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V5 %s4; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 | FileCheck --check-prefix=GFX8V5 %s5 6; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V4 %s7; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V5 %s8; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 | FileCheck --check-prefixes=GFX9V5 %s9 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], 0x014; GFX8V4-NEXT: s_load_dwordx2 s[2:3], s[6:7], 0x4015; GFX8V4-NEXT: s_add_i32 s12, s12, s1716; GFX8V4-NEXT: s_lshr_b32 flat_scratch_hi, s12, 817; GFX8V4-NEXT: s_mov_b32 flat_scratch_lo, s1318; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)19; GFX8V4-NEXT: s_mov_b32 s4, s020; GFX8V4-NEXT: s_mov_b32 s5, s321; GFX8V4-NEXT: s_cmp_lg_u32 s0, -122; GFX8V4-NEXT: s_cselect_b64 s[4:5], s[4:5], 023; GFX8V4-NEXT: s_mov_b32 s6, s124; GFX8V4-NEXT: s_mov_b32 s7, s225; GFX8V4-NEXT: s_cmp_lg_u32 s1, -126; GFX8V4-NEXT: v_mov_b32_e32 v0, s427; GFX8V4-NEXT: s_cselect_b64 s[0:1], s[6:7], 028; GFX8V4-NEXT: v_mov_b32_e32 v2, 129; GFX8V4-NEXT: v_mov_b32_e32 v1, s530; GFX8V4-NEXT: flat_store_dword v[0:1], v231; GFX8V4-NEXT: s_waitcnt vmcnt(0)32; GFX8V4-NEXT: v_mov_b32_e32 v0, s033; GFX8V4-NEXT: v_mov_b32_e32 v2, 234; GFX8V4-NEXT: v_mov_b32_e32 v1, s135; GFX8V4-NEXT: flat_store_dword v[0:1], v236; GFX8V4-NEXT: s_waitcnt vmcnt(0)37; GFX8V4-NEXT: s_endpgm38;39; GFX8V5-LABEL: addrspacecast:40; GFX8V5: ; %bb.0:41; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x042; GFX8V5-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0xc843; GFX8V5-NEXT: s_add_i32 s12, s12, s1744; GFX8V5-NEXT: s_lshr_b32 flat_scratch_hi, s12, 845; GFX8V5-NEXT: s_mov_b32 flat_scratch_lo, s1346; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)47; GFX8V5-NEXT: s_mov_b32 s4, s048; GFX8V5-NEXT: s_mov_b32 s5, s249; GFX8V5-NEXT: s_cmp_lg_u32 s0, -150; GFX8V5-NEXT: s_cselect_b64 s[4:5], s[4:5], 051; GFX8V5-NEXT: s_mov_b32 s2, s152; GFX8V5-NEXT: s_cmp_lg_u32 s1, -153; GFX8V5-NEXT: v_mov_b32_e32 v0, s454; GFX8V5-NEXT: s_cselect_b64 s[0:1], s[2:3], 055; GFX8V5-NEXT: v_mov_b32_e32 v2, 156; GFX8V5-NEXT: v_mov_b32_e32 v1, s557; GFX8V5-NEXT: flat_store_dword v[0:1], v258; GFX8V5-NEXT: s_waitcnt vmcnt(0)59; GFX8V5-NEXT: v_mov_b32_e32 v0, s060; GFX8V5-NEXT: v_mov_b32_e32 v2, 261; GFX8V5-NEXT: v_mov_b32_e32 v1, s162; GFX8V5-NEXT: flat_store_dword v[0:1], v263; GFX8V5-NEXT: s_waitcnt vmcnt(0)64; GFX8V5-NEXT: s_endpgm65;66; GFX9V4-LABEL: addrspacecast:67; GFX9V4: ; %bb.0:68; GFX9V4-NEXT: s_load_dwordx2 s[4:5], s[8:9], 0x069; GFX9V4-NEXT: s_add_u32 flat_scratch_lo, s12, s1770; GFX9V4-NEXT: s_addc_u32 flat_scratch_hi, s13, 071; GFX9V4-NEXT: s_mov_b64 s[0:1], src_private_base72; GFX9V4-NEXT: s_mov_b64 s[2:3], src_shared_base73; GFX9V4-NEXT: s_waitcnt lgkmcnt(0)74; GFX9V4-NEXT: s_mov_b32 s0, s475; GFX9V4-NEXT: s_cmp_lg_u32 s4, -176; GFX9V4-NEXT: s_cselect_b64 s[0:1], s[0:1], 077; GFX9V4-NEXT: s_mov_b32 s2, s578; GFX9V4-NEXT: s_cmp_lg_u32 s5, -179; GFX9V4-NEXT: v_mov_b32_e32 v0, s080; GFX9V4-NEXT: s_cselect_b64 s[2:3], s[2:3], 081; GFX9V4-NEXT: v_mov_b32_e32 v2, 182; GFX9V4-NEXT: v_mov_b32_e32 v1, s183; GFX9V4-NEXT: flat_store_dword v[0:1], v284; GFX9V4-NEXT: s_waitcnt vmcnt(0)85; GFX9V4-NEXT: v_mov_b32_e32 v0, s286; GFX9V4-NEXT: v_mov_b32_e32 v2, 287; GFX9V4-NEXT: v_mov_b32_e32 v1, s388; GFX9V4-NEXT: flat_store_dword v[0:1], v289; GFX9V4-NEXT: s_waitcnt vmcnt(0)90; GFX9V4-NEXT: s_endpgm91;92; GFX9V5-LABEL: addrspacecast:93; GFX9V5: ; %bb.0:94; GFX9V5-NEXT: s_load_dwordx2 s[4:5], s[8:9], 0x095; GFX9V5-NEXT: s_add_u32 flat_scratch_lo, s12, s1796; GFX9V5-NEXT: s_addc_u32 flat_scratch_hi, s13, 097; GFX9V5-NEXT: s_mov_b64 s[0:1], src_private_base98; GFX9V5-NEXT: s_mov_b64 s[2:3], src_shared_base99; GFX9V5-NEXT: s_waitcnt lgkmcnt(0)100; GFX9V5-NEXT: s_mov_b32 s0, s4101; GFX9V5-NEXT: s_cmp_lg_u32 s4, -1102; GFX9V5-NEXT: s_cselect_b64 s[0:1], s[0:1], 0103; GFX9V5-NEXT: s_mov_b32 s2, s5104; GFX9V5-NEXT: s_cmp_lg_u32 s5, -1105; GFX9V5-NEXT: v_mov_b32_e32 v0, s0106; GFX9V5-NEXT: s_cselect_b64 s[2:3], s[2:3], 0107; GFX9V5-NEXT: v_mov_b32_e32 v2, 1108; GFX9V5-NEXT: v_mov_b32_e32 v1, s1109; GFX9V5-NEXT: flat_store_dword v[0:1], v2110; GFX9V5-NEXT: s_waitcnt vmcnt(0)111; GFX9V5-NEXT: v_mov_b32_e32 v0, s2112; GFX9V5-NEXT: v_mov_b32_e32 v2, 2113; GFX9V5-NEXT: v_mov_b32_e32 v1, s3114; GFX9V5-NEXT: flat_store_dword v[0:1], v2115; GFX9V5-NEXT: s_waitcnt vmcnt(0)116; GFX9V5-NEXT: s_endpgm117 %flat.private = addrspacecast ptr addrspace(5) %ptr.private to ptr118 %flat.local = addrspacecast ptr addrspace(3) %ptr.local to ptr119 store volatile i32 1, ptr %flat.private120 store volatile i32 2, ptr %flat.local121 ret void122}123 124define amdgpu_kernel void @llvm_amdgcn_is_shared(ptr %ptr) #0 {125; GFX8V4-LABEL: llvm_amdgcn_is_shared:126; GFX8V4: ; %bb.0:127; GFX8V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0128; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)129; GFX8V4-NEXT: s_load_dword s0, s[6:7], 0x40130; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)131; GFX8V4-NEXT: s_cmp_eq_u32 s1, s0132; GFX8V4-NEXT: s_cselect_b32 s0, 1, 0133; GFX8V4-NEXT: v_mov_b32_e32 v0, s0134; GFX8V4-NEXT: flat_store_dword v[0:1], v0135; GFX8V4-NEXT: s_waitcnt vmcnt(0)136; GFX8V4-NEXT: s_endpgm137;138; GFX8V5-LABEL: llvm_amdgcn_is_shared:139; GFX8V5: ; %bb.0:140; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0141; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)142; GFX8V5-NEXT: s_load_dword s0, s[8:9], 0xcc143; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)144; GFX8V5-NEXT: s_cmp_eq_u32 s1, s0145; GFX8V5-NEXT: s_cselect_b32 s0, 1, 0146; GFX8V5-NEXT: v_mov_b32_e32 v0, s0147; GFX8V5-NEXT: flat_store_dword v[0:1], v0148; GFX8V5-NEXT: s_waitcnt vmcnt(0)149; GFX8V5-NEXT: s_endpgm150;151; GFX9V4-LABEL: llvm_amdgcn_is_shared:152; GFX9V4: ; %bb.0:153; GFX9V4-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0x0154; GFX9V4-NEXT: s_mov_b64 s[0:1], src_shared_base155; GFX9V4-NEXT: s_waitcnt lgkmcnt(0)156; GFX9V4-NEXT: s_cmp_eq_u32 s3, s1157; GFX9V4-NEXT: s_cselect_b32 s0, 1, 0158; GFX9V4-NEXT: v_mov_b32_e32 v0, s0159; GFX9V4-NEXT: global_store_dword v[0:1], v0, off160; GFX9V4-NEXT: s_waitcnt vmcnt(0)161; GFX9V4-NEXT: s_endpgm162;163; GFX9V5-LABEL: llvm_amdgcn_is_shared:164; GFX9V5: ; %bb.0:165; GFX9V5-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0x0166; GFX9V5-NEXT: s_mov_b64 s[0:1], src_shared_base167; GFX9V5-NEXT: s_waitcnt lgkmcnt(0)168; GFX9V5-NEXT: s_cmp_eq_u32 s3, s1169; GFX9V5-NEXT: s_cselect_b32 s0, 1, 0170; GFX9V5-NEXT: v_mov_b32_e32 v0, s0171; GFX9V5-NEXT: global_store_dword v[0:1], v0, off172; GFX9V5-NEXT: s_waitcnt vmcnt(0)173; GFX9V5-NEXT: s_endpgm174 %is.shared = call i1 @llvm.amdgcn.is.shared(ptr %ptr)175 %zext = zext i1 %is.shared to i32176 store volatile i32 %zext, ptr addrspace(1) poison177 ret void178}179 180define amdgpu_kernel void @llvm_amdgcn_is_private(ptr %ptr) #0 {181; GFX8V4-LABEL: llvm_amdgcn_is_private:182; GFX8V4: ; %bb.0:183; GFX8V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0184; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)185; GFX8V4-NEXT: s_load_dword s0, s[6:7], 0x44186; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)187; GFX8V4-NEXT: s_cmp_eq_u32 s1, s0188; GFX8V4-NEXT: s_cselect_b32 s0, 1, 0189; GFX8V4-NEXT: v_mov_b32_e32 v0, s0190; GFX8V4-NEXT: flat_store_dword v[0:1], v0191; GFX8V4-NEXT: s_waitcnt vmcnt(0)192; GFX8V4-NEXT: s_endpgm193;194; GFX8V5-LABEL: llvm_amdgcn_is_private:195; GFX8V5: ; %bb.0:196; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0197; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)198; GFX8V5-NEXT: s_load_dword s0, s[8:9], 0xc8199; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)200; GFX8V5-NEXT: s_cmp_eq_u32 s1, s0201; GFX8V5-NEXT: s_cselect_b32 s0, 1, 0202; GFX8V5-NEXT: v_mov_b32_e32 v0, s0203; GFX8V5-NEXT: flat_store_dword v[0:1], v0204; GFX8V5-NEXT: s_waitcnt vmcnt(0)205; GFX8V5-NEXT: s_endpgm206;207; GFX9V4-LABEL: llvm_amdgcn_is_private:208; GFX9V4: ; %bb.0:209; GFX9V4-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0x0210; GFX9V4-NEXT: s_mov_b64 s[0:1], src_private_base211; GFX9V4-NEXT: s_waitcnt lgkmcnt(0)212; GFX9V4-NEXT: s_cmp_eq_u32 s3, s1213; GFX9V4-NEXT: s_cselect_b32 s0, 1, 0214; GFX9V4-NEXT: v_mov_b32_e32 v0, s0215; GFX9V4-NEXT: global_store_dword v[0:1], v0, off216; GFX9V4-NEXT: s_waitcnt vmcnt(0)217; GFX9V4-NEXT: s_endpgm218;219; GFX9V5-LABEL: llvm_amdgcn_is_private:220; GFX9V5: ; %bb.0:221; GFX9V5-NEXT: s_load_dwordx2 s[2:3], s[8:9], 0x0222; GFX9V5-NEXT: s_mov_b64 s[0:1], src_private_base223; GFX9V5-NEXT: s_waitcnt lgkmcnt(0)224; GFX9V5-NEXT: s_cmp_eq_u32 s3, s1225; GFX9V5-NEXT: s_cselect_b32 s0, 1, 0226; GFX9V5-NEXT: v_mov_b32_e32 v0, s0227; GFX9V5-NEXT: global_store_dword v[0:1], v0, off228; GFX9V5-NEXT: s_waitcnt vmcnt(0)229; GFX9V5-NEXT: s_endpgm230 %is.private = call i1 @llvm.amdgcn.is.private(ptr %ptr)231 %zext = zext i1 %is.private to i32232 store volatile i32 %zext, ptr addrspace(1) poison233 ret void234}235 236define amdgpu_kernel void @llvm_trap() #0 {237; GFX8V4-LABEL: llvm_trap:238; GFX8V4: ; %bb.0:239; GFX8V4-NEXT: s_mov_b64 s[0:1], s[6:7]240; GFX8V4-NEXT: s_trap 2241;242; GFX8V5-LABEL: llvm_trap:243; GFX8V5: ; %bb.0:244; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0xc8245; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)246; GFX8V5-NEXT: s_trap 2247;248; GFX9V4-LABEL: llvm_trap:249; GFX9V4: ; %bb.0:250; GFX9V4-NEXT: s_trap 2251;252; GFX9V5-LABEL: llvm_trap:253; GFX9V5: ; %bb.0:254; GFX9V5-NEXT: s_trap 2255 call void @llvm.trap()256 unreachable257}258 259define amdgpu_kernel void @llvm_debugtrap() #0 {260; GFX8V4-LABEL: llvm_debugtrap:261; GFX8V4: ; %bb.0:262; GFX8V4-NEXT: s_trap 3263;264; GFX8V5-LABEL: llvm_debugtrap:265; GFX8V5: ; %bb.0:266; GFX8V5-NEXT: s_trap 3267;268; GFX9V4-LABEL: llvm_debugtrap:269; GFX9V4: ; %bb.0:270; GFX9V4-NEXT: s_trap 3271;272; GFX9V5-LABEL: llvm_debugtrap:273; GFX9V5: ; %bb.0:274; GFX9V5-NEXT: s_trap 3275 call void @llvm.debugtrap()276 unreachable277}278 279define amdgpu_kernel void @llvm_amdgcn_queue_ptr(ptr addrspace(1) %ptr) #0 {280; GFX8V4-LABEL: llvm_amdgcn_queue_ptr:281; GFX8V4: ; %bb.0:282; GFX8V4-NEXT: v_mov_b32_e32 v0, s6283; GFX8V4-NEXT: v_mov_b32_e32 v1, s7284; GFX8V4-NEXT: s_add_u32 s0, s8, 8285; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc286; GFX8V4-NEXT: s_addc_u32 s1, s9, 0287; GFX8V4-NEXT: s_waitcnt vmcnt(0)288; GFX8V4-NEXT: v_mov_b32_e32 v0, s0289; GFX8V4-NEXT: v_mov_b32_e32 v1, s1290; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc291; GFX8V4-NEXT: s_waitcnt vmcnt(0)292; GFX8V4-NEXT: v_mov_b32_e32 v0, s4293; GFX8V4-NEXT: v_mov_b32_e32 v1, s5294; GFX8V4-NEXT: flat_load_ubyte v0, v[0:1] glc295; GFX8V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0296; GFX8V4-NEXT: s_waitcnt vmcnt(0)297; GFX8V4-NEXT: v_mov_b32_e32 v0, s10298; GFX8V4-NEXT: v_mov_b32_e32 v1, s11299; GFX8V4-NEXT: s_waitcnt lgkmcnt(0)300; GFX8V4-NEXT: v_mov_b32_e32 v3, s1301; GFX8V4-NEXT: v_mov_b32_e32 v2, s0302; GFX8V4-NEXT: flat_store_dwordx2 v[2:3], v[0:1]303; GFX8V4-NEXT: s_waitcnt vmcnt(0)304; GFX8V4-NEXT: s_endpgm305;306; GFX8V5-LABEL: llvm_amdgcn_queue_ptr:307; GFX8V5: ; %bb.0:308; GFX8V5-NEXT: v_mov_b32_e32 v0, s6309; GFX8V5-NEXT: v_mov_b32_e32 v1, s7310; GFX8V5-NEXT: s_add_u32 s0, s8, 8311; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc312; GFX8V5-NEXT: s_addc_u32 s1, s9, 0313; GFX8V5-NEXT: s_waitcnt vmcnt(0)314; GFX8V5-NEXT: v_mov_b32_e32 v0, s0315; GFX8V5-NEXT: v_mov_b32_e32 v1, s1316; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc317; GFX8V5-NEXT: s_waitcnt vmcnt(0)318; GFX8V5-NEXT: v_mov_b32_e32 v0, s4319; GFX8V5-NEXT: v_mov_b32_e32 v1, s5320; GFX8V5-NEXT: flat_load_ubyte v0, v[0:1] glc321; GFX8V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0322; GFX8V5-NEXT: s_waitcnt vmcnt(0)323; GFX8V5-NEXT: v_mov_b32_e32 v0, s10324; GFX8V5-NEXT: v_mov_b32_e32 v1, s11325; GFX8V5-NEXT: s_waitcnt lgkmcnt(0)326; GFX8V5-NEXT: v_mov_b32_e32 v3, s1327; GFX8V5-NEXT: v_mov_b32_e32 v2, s0328; GFX8V5-NEXT: flat_store_dwordx2 v[2:3], v[0:1]329; GFX8V5-NEXT: s_waitcnt vmcnt(0)330; GFX8V5-NEXT: s_endpgm331;332; GFX9V4-LABEL: llvm_amdgcn_queue_ptr:333; GFX9V4: ; %bb.0:334; GFX9V4-NEXT: v_mov_b32_e32 v2, 0335; GFX9V4-NEXT: global_load_ubyte v0, v2, s[6:7] glc336; GFX9V4-NEXT: global_load_ubyte v0, v2, s[8:9] offset:8 glc337; GFX9V4-NEXT: global_load_ubyte v0, v2, s[4:5] glc338; GFX9V4-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0339; GFX9V4-NEXT: s_waitcnt vmcnt(0)340; GFX9V4-NEXT: v_mov_b32_e32 v0, s10341; GFX9V4-NEXT: v_mov_b32_e32 v1, s11342; GFX9V4-NEXT: ; kill: killed $sgpr6_sgpr7343; GFX9V4-NEXT: ; kill: killed $sgpr4_sgpr5344; GFX9V4-NEXT: s_waitcnt lgkmcnt(0)345; GFX9V4-NEXT: global_store_dwordx2 v2, v[0:1], s[0:1]346; GFX9V4-NEXT: s_waitcnt vmcnt(0)347; GFX9V4-NEXT: s_endpgm348;349; GFX9V5-LABEL: llvm_amdgcn_queue_ptr:350; GFX9V5: ; %bb.0:351; GFX9V5-NEXT: v_mov_b32_e32 v2, 0352; GFX9V5-NEXT: global_load_ubyte v0, v2, s[6:7] glc353; GFX9V5-NEXT: global_load_ubyte v0, v2, s[8:9] offset:8 glc354; GFX9V5-NEXT: global_load_ubyte v0, v2, s[4:5] glc355; GFX9V5-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0356; GFX9V5-NEXT: s_waitcnt vmcnt(0)357; GFX9V5-NEXT: v_mov_b32_e32 v0, s10358; GFX9V5-NEXT: v_mov_b32_e32 v1, s11359; GFX9V5-NEXT: ; kill: killed $sgpr6_sgpr7360; GFX9V5-NEXT: ; kill: killed $sgpr4_sgpr5361; GFX9V5-NEXT: s_waitcnt lgkmcnt(0)362; GFX9V5-NEXT: global_store_dwordx2 v2, v[0:1], s[0:1]363; GFX9V5-NEXT: s_waitcnt vmcnt(0)364; GFX9V5-NEXT: s_endpgm365 %queue.ptr = call ptr addrspace(4) @llvm.amdgcn.queue.ptr()366 %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()367 %dispatch.ptr = call ptr addrspace(4) @llvm.amdgcn.dispatch.ptr()368 %dispatch.id = call i64 @llvm.amdgcn.dispatch.id()369 %queue.load = load volatile i8, ptr addrspace(4) %queue.ptr370 %implicitarg.load = load volatile i8, ptr addrspace(4) %implicitarg.ptr371 %dispatch.load = load volatile i8, ptr addrspace(4) %dispatch.ptr372 store volatile i64 %dispatch.id, ptr addrspace(1) %ptr373 ret void374}375 376declare noalias ptr addrspace(4) @llvm.amdgcn.queue.ptr()377declare noalias ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()378declare i64 @llvm.amdgcn.dispatch.id()379declare noalias ptr addrspace(4) @llvm.amdgcn.dispatch.ptr()380declare i1 @llvm.amdgcn.is.shared(ptr)381declare i1 @llvm.amdgcn.is.private(ptr)382declare void @llvm.trap()383declare void @llvm.debugtrap()384 385!llvm.module.flags = !{!0}386!0 = !{i32 1, !"amdhsa_code_object_version", i32 CODE_OBJECT_VERSION}387 388attributes #0 = { "amdgpu-no-flat-scratch-init" }389