brintos

brintos / llvm-project-archived public Read only

0
0
Text · 49.6 KiB · 9ecd35e Raw
1128 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1031 < %s | FileCheck %s3 4; ModuleID = 'kernel_round1_passing.bc'5source_filename = "/tmp/comgr-295d04/input/CompileSource"6@kernel_round1.first_words_data = external hidden unnamed_addr addrspace(3) global [896 x i8], align 17@kernel_round1.collisionsData = external hidden unnamed_addr addrspace(3) global [3840 x i32], align 48@kernel_round1.collisionsNum = external hidden addrspace(3) global i32, align 49 10; Function Attrs: convergent mustprogress nofree nounwind willreturn memory(none)11declare hidden i64 @_Z13get_global_idj(i32 noundef) local_unnamed_addr #012 13; Function Attrs: convergent nounwind14declare hidden i32 @_Z10atomic_addPU3AS1Vjj(ptr addrspace(1) noundef, i32 noundef) local_unnamed_addr #115 16; Function Attrs: convergent nounwind17declare hidden i32 @_Z10atomic_subPU3AS1Vjj(ptr addrspace(1) noundef, i32 noundef) local_unnamed_addr #118 19; Function Attrs: convergent mustprogress nofree nounwind willreturn memory(none)20declare hidden i64 @_Z12get_local_idj(i32 noundef) local_unnamed_addr #021 22; Function Attrs: convergent nounwind23declare hidden void @_Z7barrierj(i32 noundef) local_unnamed_addr #124 25; Function Attrs: convergent mustprogress nofree nounwind willreturn memory(none)26declare hidden i32 @_Z3minjj(i32 noundef, i32 noundef) local_unnamed_addr #027 28; Function Attrs: convergent nounwind29declare hidden i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef) local_unnamed_addr #130 31; Function Attrs: convergent mustprogress nofree nounwind willreturn memory(none)32declare hidden i64 @_Z14get_local_sizej(i32 noundef) local_unnamed_addr #033 34; Function Attrs: convergent norecurse nounwind35define protected amdgpu_kernel void @kernel_round1(ptr addrspace(1) nocapture noundef readonly align 1 %0, ptr addrspace(1) nocapture noundef writeonly align 1 %1, ptr addrspace(1) nocapture noundef readonly align 4 %2, ptr addrspace(1) noundef align 4 %3, ptr addrspace(1) nocapture noundef readnone align 4 %4) local_unnamed_addr #2 !kernel_arg_addr_space !5 !kernel_arg_access_qual !6 !kernel_arg_type !7 !kernel_arg_base_type !7 !kernel_arg_type_qual !8 !kernel_arg_name !9 !reqd_work_group_size !10 {36; CHECK-LABEL: kernel_round1:37; CHECK:       ; %bb.0:38; CHECK-NEXT:    s_add_u32 s12, s12, s1739; CHECK-NEXT:    s_mov_b32 s32, 040; CHECK-NEXT:    s_addc_u32 s13, s13, 041; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_LO), s1242; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_HI), s1343; CHECK-NEXT:    s_load_dwordx8 s[64:71], s[8:9], 0x044; CHECK-NEXT:    s_add_u32 s0, s0, s1745; CHECK-NEXT:    s_mov_b64 s[34:35], s[8:9]46; CHECK-NEXT:    s_addc_u32 s1, s1, 047; CHECK-NEXT:    v_mov_b32_e32 v40, v048; CHECK-NEXT:    s_add_u32 s52, s34, 4049; CHECK-NEXT:    v_mov_b32_e32 v31, v050; CHECK-NEXT:    v_mov_b32_e32 v0, 051; CHECK-NEXT:    s_mov_b32 s33, s1652; CHECK-NEXT:    s_addc_u32 s53, s35, 053; CHECK-NEXT:    s_mov_b32 s51, s1454; CHECK-NEXT:    s_getpc_b64 s[16:17]55; CHECK-NEXT:    s_add_u32 s16, s16, _Z13get_global_idj@rel32@lo+456; CHECK-NEXT:    s_addc_u32 s17, s17, _Z13get_global_idj@rel32@hi+1257; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]58; CHECK-NEXT:    s_mov_b32 s12, s1459; CHECK-NEXT:    s_mov_b32 s13, s1560; CHECK-NEXT:    s_mov_b32 s14, s3361; CHECK-NEXT:    s_mov_b32 s50, s1562; CHECK-NEXT:    s_mov_b64 s[36:37], s[10:11]63; CHECK-NEXT:    s_mov_b64 s[38:39], s[6:7]64; CHECK-NEXT:    s_mov_b64 s[48:49], s[4:5]65; CHECK-NEXT:    v_mov_b32_e32 v45, 066; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]67; CHECK-NEXT:    v_mov_b32_e32 v43, v068; CHECK-NEXT:    v_mov_b32_e32 v31, v4069; CHECK-NEXT:    v_mov_b32_e32 v0, 070; CHECK-NEXT:    s_getpc_b64 s[16:17]71; CHECK-NEXT:    s_add_u32 s16, s16, _Z12get_local_idj@rel32@lo+472; CHECK-NEXT:    s_addc_u32 s17, s17, _Z12get_local_idj@rel32@hi+1273; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]74; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]75; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]76; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]77; CHECK-NEXT:    s_mov_b32 s12, s5178; CHECK-NEXT:    s_mov_b32 s13, s5079; CHECK-NEXT:    s_mov_b32 s14, s3380; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]81; CHECK-NEXT:    v_mov_b32_e32 v41, v082; CHECK-NEXT:    v_mov_b32_e32 v31, v4083; CHECK-NEXT:    v_mov_b32_e32 v0, 184; CHECK-NEXT:    s_getpc_b64 s[16:17]85; CHECK-NEXT:    s_add_u32 s16, s16, _Z7barrierj@rel32@lo+486; CHECK-NEXT:    s_addc_u32 s17, s17, _Z7barrierj@rel32@hi+1287; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]88; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]89; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]90; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]91; CHECK-NEXT:    s_mov_b32 s12, s5192; CHECK-NEXT:    s_mov_b32 s13, s5093; CHECK-NEXT:    s_mov_b32 s14, s3394; CHECK-NEXT:    ds_write_b32 v45, v45 offset:1536095; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]96; CHECK-NEXT:    v_lshrrev_b32_e32 v0, 1, v4397; CHECK-NEXT:    v_lshlrev_b32_e32 v1, 2, v4398; CHECK-NEXT:    v_mov_b32_e32 v31, v4099; CHECK-NEXT:    s_getpc_b64 s[16:17]100; CHECK-NEXT:    s_add_u32 s16, s16, _Z3minjj@rel32@lo+4101; CHECK-NEXT:    s_addc_u32 s17, s17, _Z3minjj@rel32@hi+12102; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]103; CHECK-NEXT:    v_and_b32_e32 v0, 0x7ffffffc, v0104; CHECK-NEXT:    v_and_b32_e32 v1, 28, v1105; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]106; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]107; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]108; CHECK-NEXT:    global_load_dword v0, v0, s[68:69]109; CHECK-NEXT:    s_mov_b32 s12, s51110; CHECK-NEXT:    s_mov_b32 s13, s50111; CHECK-NEXT:    s_mov_b32 s14, s33112; CHECK-NEXT:    s_waitcnt vmcnt(0)113; CHECK-NEXT:    v_bfe_u32 v0, v0, v1, 4114; CHECK-NEXT:    v_mov_b32_e32 v1, 12115; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]116; CHECK-NEXT:    v_mov_b32_e32 v42, v0117; CHECK-NEXT:    s_mov_b32 s52, exec_lo118; CHECK-NEXT:    v_cmpx_ne_u32_e32 0, v42119; CHECK-NEXT:    s_cbranch_execz .LBB0_25120; CHECK-NEXT:  ; %bb.1: ; %.preheader5121; CHECK-NEXT:    v_mul_lo_u32 v0, v41, 14122; CHECK-NEXT:    s_mov_b32 s4, 0123; CHECK-NEXT:    s_mov_b32 s5, 0124; CHECK-NEXT:    v_add_nc_u32_e32 v44, 0x3c04, v0125; CHECK-NEXT:  .LBB0_2: ; =>This Inner Loop Header: Depth=1126; CHECK-NEXT:    v_add_nc_u32_e32 v1, s5, v44127; CHECK-NEXT:    s_add_i32 s5, s5, 1128; CHECK-NEXT:    v_cmp_eq_u32_e32 vcc_lo, s5, v42129; CHECK-NEXT:    ds_write_b8 v1, v45130; CHECK-NEXT:    s_or_b32 s4, vcc_lo, s4131; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s4132; CHECK-NEXT:    s_cbranch_execnz .LBB0_2133; CHECK-NEXT:  ; %bb.3:134; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s4135; CHECK-NEXT:    v_add_nc_u32_e32 v45, -1, v42136; CHECK-NEXT:    s_mov_b32 s55, 0137; CHECK-NEXT:    v_cmp_ne_u32_e32 vcc_lo, 0, v45138; CHECK-NEXT:    s_and_b32 exec_lo, exec_lo, vcc_lo139; CHECK-NEXT:    s_cbranch_execz .LBB0_25140; CHECK-NEXT:  ; %bb.4:141; CHECK-NEXT:    v_lshlrev_b32_e32 v43, 10, v43142; CHECK-NEXT:    v_add_nc_u32_e32 v46, 0x3c05, v0143; CHECK-NEXT:    v_mov_b32_e32 v47, 0144; CHECK-NEXT:    s_mov_b32 s53, 0145; CHECK-NEXT:  .LBB0_5: ; =>This Loop Header: Depth=1146; CHECK-NEXT:    ; Child Loop BB0_8 Depth 2147; CHECK-NEXT:    ; Child Loop BB0_20 Depth 2148; CHECK-NEXT:    v_add_nc_u32_e32 v0, s55, v44149; CHECK-NEXT:    s_lshl_b32 s4, s55, 5150; CHECK-NEXT:    s_add_i32 s54, s55, 1151; CHECK-NEXT:    s_add_i32 s5, s55, 5152; CHECK-NEXT:    v_or3_b32 v57, s4, v43, s54153; CHECK-NEXT:    s_waitcnt lgkmcnt(0)154; CHECK-NEXT:    ds_read_u8 v56, v0155; CHECK-NEXT:    v_mov_b32_e32 v58, s54156; CHECK-NEXT:    s_mov_b32 s68, exec_lo157; CHECK-NEXT:    v_cmpx_lt_u32_e64 s5, v42158; CHECK-NEXT:    s_cbranch_execz .LBB0_17159; CHECK-NEXT:  ; %bb.6: ; %.preheader2160; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1161; CHECK-NEXT:    s_mov_b32 s69, 0162; CHECK-NEXT:    s_mov_b32 s80, 0163; CHECK-NEXT:    s_branch .LBB0_8164; CHECK-NEXT:  .LBB0_7: ; in Loop: Header=BB0_8 Depth=2165; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s81166; CHECK-NEXT:    s_add_i32 s80, s80, 4167; CHECK-NEXT:    s_add_i32 s4, s55, s80168; CHECK-NEXT:    v_add_nc_u32_e32 v0, s80, v57169; CHECK-NEXT:    s_add_i32 s5, s4, 5170; CHECK-NEXT:    s_add_i32 s4, s4, 1171; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, s5, v42172; CHECK-NEXT:    v_mov_b32_e32 v58, s4173; CHECK-NEXT:    s_or_b32 s69, vcc_lo, s69174; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s69175; CHECK-NEXT:    s_cbranch_execz .LBB0_16176; CHECK-NEXT:  .LBB0_8: ; Parent Loop BB0_5 Depth=1177; CHECK-NEXT:    ; => This Inner Loop Header: Depth=2178; CHECK-NEXT:    v_add_nc_u32_e32 v59, s80, v46179; CHECK-NEXT:    v_add_nc_u32_e32 v58, s80, v57180; CHECK-NEXT:    ds_read_u8 v0, v59181; CHECK-NEXT:    s_waitcnt lgkmcnt(0)182; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v56, v0 src0_sel:BYTE_0 src1_sel:DWORD183; CHECK-NEXT:    s_and_saveexec_b32 s81, s4184; CHECK-NEXT:    s_cbranch_execz .LBB0_10185; CHECK-NEXT:  ; %bb.9: ; in Loop: Header=BB0_8 Depth=2186; CHECK-NEXT:    v_mov_b32_e32 v31, v40187; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00188; CHECK-NEXT:    s_add_u32 s8, s34, 40189; CHECK-NEXT:    s_addc_u32 s9, s35, 0190; CHECK-NEXT:    s_getpc_b64 s[16:17]191; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4192; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12193; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]194; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]195; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]196; CHECK-NEXT:    s_mov_b32 s12, s51197; CHECK-NEXT:    s_mov_b32 s13, s50198; CHECK-NEXT:    s_mov_b32 s14, s33199; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47200; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]201; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0202; CHECK-NEXT:    ds_write_b32 v0, v58203; CHECK-NEXT:  .LBB0_10: ; in Loop: Header=BB0_8 Depth=2204; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s81205; CHECK-NEXT:    ds_read_u8 v0, v59 offset:1206; CHECK-NEXT:    s_waitcnt lgkmcnt(0)207; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v56, v0 src0_sel:BYTE_0 src1_sel:DWORD208; CHECK-NEXT:    s_and_saveexec_b32 s81, s4209; CHECK-NEXT:    s_cbranch_execz .LBB0_12210; CHECK-NEXT:  ; %bb.11: ; in Loop: Header=BB0_8 Depth=2211; CHECK-NEXT:    v_mov_b32_e32 v31, v40212; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00213; CHECK-NEXT:    s_add_u32 s8, s34, 40214; CHECK-NEXT:    s_addc_u32 s9, s35, 0215; CHECK-NEXT:    s_getpc_b64 s[16:17]216; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4217; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12218; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]219; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]220; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]221; CHECK-NEXT:    s_mov_b32 s12, s51222; CHECK-NEXT:    s_mov_b32 s13, s50223; CHECK-NEXT:    s_mov_b32 s14, s33224; CHECK-NEXT:    v_add_nc_u32_e32 v60, 1, v58225; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47226; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]227; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0228; CHECK-NEXT:    ds_write_b32 v0, v60229; CHECK-NEXT:  .LBB0_12: ; in Loop: Header=BB0_8 Depth=2230; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s81231; CHECK-NEXT:    ds_read_u8 v0, v59 offset:2232; CHECK-NEXT:    s_waitcnt lgkmcnt(0)233; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v56, v0 src0_sel:BYTE_0 src1_sel:DWORD234; CHECK-NEXT:    s_and_saveexec_b32 s81, s4235; CHECK-NEXT:    s_cbranch_execz .LBB0_14236; CHECK-NEXT:  ; %bb.13: ; in Loop: Header=BB0_8 Depth=2237; CHECK-NEXT:    v_mov_b32_e32 v31, v40238; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00239; CHECK-NEXT:    s_add_u32 s8, s34, 40240; CHECK-NEXT:    s_addc_u32 s9, s35, 0241; CHECK-NEXT:    s_getpc_b64 s[16:17]242; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4243; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12244; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]245; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]246; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]247; CHECK-NEXT:    s_mov_b32 s12, s51248; CHECK-NEXT:    s_mov_b32 s13, s50249; CHECK-NEXT:    s_mov_b32 s14, s33250; CHECK-NEXT:    v_add_nc_u32_e32 v60, 2, v58251; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47252; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]253; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0254; CHECK-NEXT:    ds_write_b32 v0, v60255; CHECK-NEXT:  .LBB0_14: ; in Loop: Header=BB0_8 Depth=2256; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s81257; CHECK-NEXT:    ds_read_u8 v0, v59 offset:3258; CHECK-NEXT:    s_waitcnt lgkmcnt(0)259; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v56, v0 src0_sel:BYTE_0 src1_sel:DWORD260; CHECK-NEXT:    s_and_saveexec_b32 s81, s4261; CHECK-NEXT:    s_cbranch_execz .LBB0_7262; CHECK-NEXT:  ; %bb.15: ; in Loop: Header=BB0_8 Depth=2263; CHECK-NEXT:    v_mov_b32_e32 v31, v40264; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00265; CHECK-NEXT:    s_add_u32 s8, s34, 40266; CHECK-NEXT:    s_addc_u32 s9, s35, 0267; CHECK-NEXT:    s_getpc_b64 s[16:17]268; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4269; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12270; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]271; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]272; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]273; CHECK-NEXT:    s_mov_b32 s12, s51274; CHECK-NEXT:    s_mov_b32 s13, s50275; CHECK-NEXT:    s_mov_b32 s14, s33276; CHECK-NEXT:    v_add_nc_u32_e32 v58, 3, v58277; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47278; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]279; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0280; CHECK-NEXT:    ds_write_b32 v0, v58281; CHECK-NEXT:    s_branch .LBB0_7282; CHECK-NEXT:  .LBB0_16: ; %Flow43283; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1284; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s69285; CHECK-NEXT:    v_mov_b32_e32 v57, v0286; CHECK-NEXT:  .LBB0_17: ; %Flow44287; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1288; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s68289; CHECK-NEXT:    s_mov_b32 s55, exec_lo290; CHECK-NEXT:    v_cmpx_lt_u32_e64 v58, v42291; CHECK-NEXT:    s_cbranch_execz .LBB0_23292; CHECK-NEXT:  ; %bb.18: ; %.preheader293; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1294; CHECK-NEXT:    s_mov_b32 s68, 0295; CHECK-NEXT:    s_inst_prefetch 0x1296; CHECK-NEXT:    s_branch .LBB0_20297; CHECK-NEXT:    .p2align 6298; CHECK-NEXT:  .LBB0_19: ; in Loop: Header=BB0_20 Depth=2299; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s69300; CHECK-NEXT:    v_add_nc_u32_e32 v58, 1, v58301; CHECK-NEXT:    v_add_nc_u32_e32 v57, 1, v57302; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, v58, v42303; CHECK-NEXT:    s_or_b32 s68, vcc_lo, s68304; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s68305; CHECK-NEXT:    s_cbranch_execz .LBB0_22306; CHECK-NEXT:  .LBB0_20: ; Parent Loop BB0_5 Depth=1307; CHECK-NEXT:    ; => This Inner Loop Header: Depth=2308; CHECK-NEXT:    v_add_nc_u32_e32 v0, v44, v58309; CHECK-NEXT:    ds_read_u8 v0, v0310; CHECK-NEXT:    s_waitcnt lgkmcnt(0)311; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v56, v0 src0_sel:BYTE_0 src1_sel:DWORD312; CHECK-NEXT:    s_and_saveexec_b32 s69, s4313; CHECK-NEXT:    s_cbranch_execz .LBB0_19314; CHECK-NEXT:  ; %bb.21: ; in Loop: Header=BB0_20 Depth=2315; CHECK-NEXT:    v_mov_b32_e32 v31, v40316; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00317; CHECK-NEXT:    s_add_u32 s8, s34, 40318; CHECK-NEXT:    s_addc_u32 s9, s35, 0319; CHECK-NEXT:    s_getpc_b64 s[16:17]320; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4321; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12322; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]323; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]324; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]325; CHECK-NEXT:    s_mov_b32 s12, s51326; CHECK-NEXT:    s_mov_b32 s13, s50327; CHECK-NEXT:    s_mov_b32 s14, s33328; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47329; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]330; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0331; CHECK-NEXT:    ds_write_b32 v0, v57332; CHECK-NEXT:    s_branch .LBB0_19333; CHECK-NEXT:  .LBB0_22: ; %Flow41334; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1335; CHECK-NEXT:    s_inst_prefetch 0x2336; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s68337; CHECK-NEXT:  .LBB0_23: ; %Flow42338; CHECK-NEXT:    ; in Loop: Header=BB0_5 Depth=1339; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s55340; CHECK-NEXT:  ; %bb.24: ; in Loop: Header=BB0_5 Depth=1341; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, s54, v45342; CHECK-NEXT:    v_cmp_lt_u32_e64 s4, 59, v47343; CHECK-NEXT:    v_add_nc_u32_e32 v46, 1, v46344; CHECK-NEXT:    s_mov_b32 s55, s54345; CHECK-NEXT:    s_or_b32 s4, vcc_lo, s4346; CHECK-NEXT:    s_and_b32 s4, exec_lo, s4347; CHECK-NEXT:    s_or_b32 s53, s4, s53348; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s53349; CHECK-NEXT:    s_cbranch_execnz .LBB0_5350; CHECK-NEXT:  .LBB0_25: ; %Flow49351; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s52352; CHECK-NEXT:    v_mov_b32_e32 v31, v40353; CHECK-NEXT:    v_mov_b32_e32 v0, 1354; CHECK-NEXT:    s_add_u32 s8, s34, 40355; CHECK-NEXT:    s_addc_u32 s9, s35, 0356; CHECK-NEXT:    s_getpc_b64 s[16:17]357; CHECK-NEXT:    s_add_u32 s16, s16, _Z7barrierj@rel32@lo+4358; CHECK-NEXT:    s_addc_u32 s17, s17, _Z7barrierj@rel32@hi+12359; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]360; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]361; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]362; CHECK-NEXT:    s_mov_b32 s12, s51363; CHECK-NEXT:    s_mov_b32 s13, s50364; CHECK-NEXT:    s_mov_b32 s14, s33365; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]366; CHECK-NEXT:    v_mov_b32_e32 v0, 0367; CHECK-NEXT:    s_mov_b32 s4, exec_lo368; CHECK-NEXT:    ds_read_b32 v47, v0 offset:15360369; CHECK-NEXT:    s_waitcnt lgkmcnt(0)370; CHECK-NEXT:    v_cmpx_gt_u32_e64 v47, v41371; CHECK-NEXT:    s_cbranch_execz .LBB0_33372; CHECK-NEXT:  ; %bb.26:373; CHECK-NEXT:    s_mov_b32 s52, 0374; CHECK-NEXT:    s_branch .LBB0_28375; CHECK-NEXT:  .LBB0_27: ; in Loop: Header=BB0_28 Depth=1376; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s53377; CHECK-NEXT:    v_mov_b32_e32 v31, v40378; CHECK-NEXT:    v_mov_b32_e32 v0, 0379; CHECK-NEXT:    s_add_u32 s8, s34, 40380; CHECK-NEXT:    s_addc_u32 s9, s35, 0381; CHECK-NEXT:    s_getpc_b64 s[16:17]382; CHECK-NEXT:    s_add_u32 s16, s16, _Z14get_local_sizej@rel32@lo+4383; CHECK-NEXT:    s_addc_u32 s17, s17, _Z14get_local_sizej@rel32@hi+12384; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]385; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]386; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]387; CHECK-NEXT:    s_mov_b32 s12, s51388; CHECK-NEXT:    s_mov_b32 s13, s50389; CHECK-NEXT:    s_mov_b32 s14, s33390; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]391; CHECK-NEXT:    v_add_co_u32 v41, vcc_lo, v0, v41392; CHECK-NEXT:    v_add_co_ci_u32_e64 v0, null, 0, v1, vcc_lo393; CHECK-NEXT:    v_cmp_le_u32_e32 vcc_lo, v47, v41394; CHECK-NEXT:    s_or_b32 s52, vcc_lo, s52395; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s52396; CHECK-NEXT:    s_cbranch_execz .LBB0_33397; CHECK-NEXT:  .LBB0_28: ; =>This Inner Loop Header: Depth=1398; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v41399; CHECK-NEXT:    s_mov_b32 s53, exec_lo400; CHECK-NEXT:    ds_read_b32 v0, v0401; CHECK-NEXT:    s_waitcnt lgkmcnt(0)402; CHECK-NEXT:    v_lshrrev_b32_e32 v63, 10, v0403; CHECK-NEXT:    v_bfe_u32 v62, v0, 5, 5404; CHECK-NEXT:    v_and_b32_e32 v72, 31, v0405; CHECK-NEXT:    v_mul_u32_u24_e32 v1, 0x180, v63406; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 5, v62407; CHECK-NEXT:    v_lshlrev_b32_e32 v4, 5, v72408; CHECK-NEXT:    v_add_co_u32 v2, s4, s64, v1409; CHECK-NEXT:    v_add_co_ci_u32_e64 v3, null, s65, 0, s4410; CHECK-NEXT:    v_add_co_u32 v0, vcc_lo, v2, v0411; CHECK-NEXT:    v_add_co_ci_u32_e64 v1, null, 0, v3, vcc_lo412; CHECK-NEXT:    v_add_co_u32 v2, vcc_lo, v2, v4413; CHECK-NEXT:    v_add_co_ci_u32_e64 v3, null, 0, v3, vcc_lo414; CHECK-NEXT:    s_clause 0x1415; CHECK-NEXT:    global_load_dwordx4 v[4:7], v[0:1], off offset:8416; CHECK-NEXT:    global_load_dwordx4 v[8:11], v[2:3], off offset:8417; CHECK-NEXT:    s_waitcnt vmcnt(0)418; CHECK-NEXT:    v_xor_b32_e32 v46, v9, v5419; CHECK-NEXT:    v_xor_b32_e32 v45, v8, v4420; CHECK-NEXT:    v_xor_b32_e32 v57, v11, v7421; CHECK-NEXT:    v_xor_b32_e32 v56, v10, v6422; CHECK-NEXT:    v_or_b32_e32 v5, v46, v57423; CHECK-NEXT:    v_or_b32_e32 v4, v45, v56424; CHECK-NEXT:    v_cmpx_ne_u64_e32 0, v[4:5]425; CHECK-NEXT:    s_cbranch_execz .LBB0_27426; CHECK-NEXT:  ; %bb.29: ; in Loop: Header=BB0_28 Depth=1427; CHECK-NEXT:    s_clause 0x1428; CHECK-NEXT:    global_load_dwordx2 v[58:59], v[2:3], off offset:24429; CHECK-NEXT:    global_load_dwordx2 v[60:61], v[0:1], off offset:24430; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 4, v45431; CHECK-NEXT:    v_alignbit_b32 v1, v46, v45, 12432; CHECK-NEXT:    v_and_b32_e32 v2, 0xf0000, v45433; CHECK-NEXT:    v_mov_b32_e32 v31, v40434; CHECK-NEXT:    s_add_u32 s8, s34, 40435; CHECK-NEXT:    v_and_b32_e32 v3, 0xf000, v0436; CHECK-NEXT:    v_and_b32_e32 v4, 0xf00, v1437; CHECK-NEXT:    v_and_b32_e32 v0, 0xf0, v0438; CHECK-NEXT:    v_and_b32_e32 v1, 15, v1439; CHECK-NEXT:    s_addc_u32 s9, s35, 0440; CHECK-NEXT:    s_getpc_b64 s[16:17]441; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_addPU3AS1Vjj@rel32@lo+4442; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_addPU3AS1Vjj@rel32@hi+12443; CHECK-NEXT:    v_or3_b32 v2, v3, v2, v4444; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]445; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]446; CHECK-NEXT:    s_mov_b32 s12, s51447; CHECK-NEXT:    s_mov_b32 s13, s50448; CHECK-NEXT:    v_or3_b32 v73, v2, v0, v1449; CHECK-NEXT:    s_mov_b32 s14, s33450; CHECK-NEXT:    v_lshrrev_b32_e32 v0, 1, v73451; CHECK-NEXT:    v_lshlrev_b32_e32 v1, 2, v73452; CHECK-NEXT:    v_and_b32_e32 v0, 0x7fffc, v0453; CHECK-NEXT:    v_lshlrev_b32_e64 v44, v1, 1454; CHECK-NEXT:    v_and_b32_e32 v74, 28, v1455; CHECK-NEXT:    v_add_co_u32 v42, s4, s70, v0456; CHECK-NEXT:    v_add_co_ci_u32_e64 v43, null, s71, 0, s4457; CHECK-NEXT:    v_mov_b32_e32 v2, v44458; CHECK-NEXT:    v_mov_b32_e32 v0, v42459; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]460; CHECK-NEXT:    v_mov_b32_e32 v1, v43461; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]462; CHECK-NEXT:    v_bfe_u32 v0, v0, v74, 4463; CHECK-NEXT:    s_mov_b32 s4, exec_lo464; CHECK-NEXT:    v_cmpx_gt_u32_e32 12, v0465; CHECK-NEXT:    s_xor_b32 s4, exec_lo, s4466; CHECK-NEXT:    s_cbranch_execz .LBB0_31467; CHECK-NEXT:  ; %bb.30: ; in Loop: Header=BB0_28 Depth=1468; CHECK-NEXT:    v_xor_b32_e32 v4, v60, v58469; CHECK-NEXT:    v_lshrrev_b64 v[2:3], 16, v[56:57]470; CHECK-NEXT:    v_mad_u64_u32 v[6:7], null, 0x180, v73, s[66:67]471; CHECK-NEXT:    v_lshlrev_b32_e32 v10, 5, v0472; CHECK-NEXT:    v_lshlrev_b32_e32 v1, 16, v4473; CHECK-NEXT:    v_lshlrev_b32_e32 v8, 6, v72474; CHECK-NEXT:    v_lshlrev_b32_e32 v9, 12, v63475; CHECK-NEXT:    v_xor_b32_e32 v5, v61, v59476; CHECK-NEXT:    v_lshlrev_b32_e32 v11, 16, v56477; CHECK-NEXT:    v_or_b32_e32 v3, v1, v3478; CHECK-NEXT:    v_lshrrev_b64 v[0:1], 16, v[45:46]479; CHECK-NEXT:    v_add_co_u32 v6, vcc_lo, v6, v10480; CHECK-NEXT:    v_or3_b32 v8, v8, v9, v62481; CHECK-NEXT:    v_add_co_ci_u32_e64 v7, null, 0, v7, vcc_lo482; CHECK-NEXT:    v_lshrrev_b64 v[4:5], 16, v[4:5]483; CHECK-NEXT:    v_or_b32_e32 v1, v11, v1484; CHECK-NEXT:    ; implicit-def: $vgpr42485; CHECK-NEXT:    ; implicit-def: $vgpr43486; CHECK-NEXT:    ; implicit-def: $vgpr44487; CHECK-NEXT:    global_store_dword v[6:7], v8, off offset:4488; CHECK-NEXT:    global_store_dwordx4 v[6:7], v[0:3], off offset:8489; CHECK-NEXT:    global_store_dwordx2 v[6:7], v[4:5], off offset:24490; CHECK-NEXT:  .LBB0_31: ; %Flow491; CHECK-NEXT:    ; in Loop: Header=BB0_28 Depth=1492; CHECK-NEXT:    s_andn2_saveexec_b32 s4, s4493; CHECK-NEXT:    s_cbranch_execz .LBB0_27494; CHECK-NEXT:  ; %bb.32: ; in Loop: Header=BB0_28 Depth=1495; CHECK-NEXT:    v_mov_b32_e32 v31, v40496; CHECK-NEXT:    v_mov_b32_e32 v0, v42497; CHECK-NEXT:    v_mov_b32_e32 v1, v43498; CHECK-NEXT:    v_mov_b32_e32 v2, v44499; CHECK-NEXT:    s_add_u32 s8, s34, 40500; CHECK-NEXT:    s_addc_u32 s9, s35, 0501; CHECK-NEXT:    s_getpc_b64 s[16:17]502; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_subPU3AS1Vjj@rel32@lo+4503; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_subPU3AS1Vjj@rel32@hi+12504; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]505; CHECK-NEXT:    s_mov_b64 s[6:7], s[38:39]506; CHECK-NEXT:    s_mov_b64 s[10:11], s[36:37]507; CHECK-NEXT:    s_mov_b32 s12, s51508; CHECK-NEXT:    s_mov_b32 s13, s50509; CHECK-NEXT:    s_mov_b32 s14, s33510; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]511; CHECK-NEXT:    s_branch .LBB0_27512; CHECK-NEXT:  .LBB0_33:513; CHECK-NEXT:    s_endpgm514  %6 = tail call i64 @_Z13get_global_idj(i32 noundef 0) #4515  %7 = trunc i64 %6 to i32516  %8 = tail call i64 @_Z12get_local_idj(i32 noundef 0) #4517  %9 = trunc i64 %8 to i32518  %10 = mul i32 %9, 14519  %11 = getelementptr inbounds i8, ptr addrspace(3) @kernel_round1.first_words_data, i32 %10520  store i32 0, ptr addrspace(3) @kernel_round1.collisionsNum, align 4, !tbaa !11521  tail call void @_Z7barrierj(i32 noundef 1) #5522  %12 = lshr i64 %6, 3523  %13 = shl i32 %7, 2524  %14 = and i32 %13, 28525  %15 = and i64 %12, 536870911526  %16 = getelementptr inbounds i32, ptr addrspace(1) %2, i64 %15527  %17 = load i32, ptr addrspace(1) %16, align 4, !tbaa !11528  %18 = lshr i32 %17, %14529  %19 = and i32 %18, 15530  %20 = tail call i32 @_Z3minjj(i32 noundef %19, i32 noundef 12) #4531  %21 = icmp eq i32 %20, 0532  br i1 %21, label %119, label %27533 53422:                                               ; preds = %27535  %23 = add i32 %20, -1536  %24 = icmp eq i32 %23, 0537  br i1 %24, label %119, label %25538 53925:                                               ; preds = %22540  %26 = shl i32 %7, 10541  br label %37542 54327:                                               ; preds = %5, %27544  %28 = phi i32 [ %30, %27 ], [ 0, %5 ]545  %29 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %28546  store i8 0, ptr addrspace(3) %29, align 1, !tbaa !15547  %30 = add nuw i32 %28, 1548  %31 = icmp eq i32 %30, %20549  br i1 %31, label %22, label %27550 55132:                                               ; preds = %114, %48552  %33 = phi i32 [ %50, %48 ], [ %115, %114 ]553  %34 = icmp ult i32 %44, %23554  %35 = icmp ult i32 %33, 60555  %36 = select i1 %34, i1 %35, i1 false556  br i1 %36, label %37, label %119557 55837:                                               ; preds = %32, %25559  %38 = phi i32 [ 0, %25 ], [ %44, %32 ]560  %39 = phi i32 [ 0, %25 ], [ %33, %32 ]561  %40 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %38562  %41 = load i8, ptr addrspace(3) %40, align 1, !tbaa !15563  %42 = shl i32 %38, 5564  %43 = or i32 %42, %26565  %44 = add nuw i32 %38, 1566  %45 = or i32 %43, %44567  %46 = add i32 %38, 5568  %47 = icmp ult i32 %46, %20569  br i1 %47, label %53, label %48570 57148:                                               ; preds = %98, %37572  %49 = phi i32 [ %45, %37 ], [ %100, %98 ]573  %50 = phi i32 [ %39, %37 ], [ %99, %98 ]574  %51 = phi i32 [ %44, %37 ], [ %54, %98 ]575  %52 = icmp ult i32 %51, %20576  br i1 %52, label %103, label %32577 57853:                                               ; preds = %37, %98579  %54 = phi i32 [ %101, %98 ], [ %46, %37 ]580  %55 = phi i32 [ %54, %98 ], [ %44, %37 ]581  %56 = phi i32 [ %99, %98 ], [ %39, %37 ]582  %57 = phi i32 [ %100, %98 ], [ %45, %37 ]583  %58 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %55584  %59 = load i8, ptr addrspace(3) %58, align 1, !tbaa !15585  %60 = icmp eq i8 %41, %59586  br i1 %60, label %61, label %65587 58861:                                               ; preds = %53589  %62 = add i32 %56, 1590  %63 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #5591  %64 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %63592  store i32 %57, ptr addrspace(3) %64, align 4, !tbaa !11593  br label %65594 59565:                                               ; preds = %61, %53596  %66 = phi i32 [ %62, %61 ], [ %56, %53 ]597  %67 = add i32 %55, 1598  %68 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %67599  %69 = load i8, ptr addrspace(3) %68, align 1, !tbaa !15600  %70 = icmp eq i8 %41, %69601  br i1 %70, label %71, label %76602 60371:                                               ; preds = %65604  %72 = add i32 %57, 1605  %73 = add i32 %66, 1606  %74 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #5607  %75 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %74608  store i32 %72, ptr addrspace(3) %75, align 4, !tbaa !11609  br label %76610 61176:                                               ; preds = %71, %65612  %77 = phi i32 [ %73, %71 ], [ %66, %65 ]613  %78 = add i32 %55, 2614  %79 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %78615  %80 = load i8, ptr addrspace(3) %79, align 1, !tbaa !15616  %81 = icmp eq i8 %41, %80617  br i1 %81, label %82, label %87618 61982:                                               ; preds = %76620  %83 = add i32 %57, 2621  %84 = add i32 %77, 1622  %85 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #5623  %86 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %85624  store i32 %83, ptr addrspace(3) %86, align 4, !tbaa !11625  br label %87626 62787:                                               ; preds = %82, %76628  %88 = phi i32 [ %84, %82 ], [ %77, %76 ]629  %89 = add i32 %55, 3630  %90 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %89631  %91 = load i8, ptr addrspace(3) %90, align 1, !tbaa !15632  %92 = icmp eq i8 %41, %91633  br i1 %92, label %93, label %98634 63593:                                               ; preds = %87636  %94 = add i32 %57, 3637  %95 = add i32 %88, 1638  %96 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #5639  %97 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %96640  store i32 %94, ptr addrspace(3) %97, align 4, !tbaa !11641  br label %98642 64398:                                               ; preds = %93, %87644  %99 = phi i32 [ %95, %93 ], [ %88, %87 ]645  %100 = add i32 %57, 4646  %101 = add i32 %54, 4647  %102 = icmp ult i32 %101, %20648  br i1 %102, label %53, label %48649 650103:                                              ; preds = %48, %114651  %104 = phi i32 [ %117, %114 ], [ %51, %48 ]652  %105 = phi i32 [ %115, %114 ], [ %50, %48 ]653  %106 = phi i32 [ %116, %114 ], [ %49, %48 ]654  %107 = getelementptr inbounds i8, ptr addrspace(3) %11, i32 %104655  %108 = load i8, ptr addrspace(3) %107, align 1, !tbaa !15656  %109 = icmp eq i8 %41, %108657  br i1 %109, label %110, label %114658 659110:                                              ; preds = %103660  %111 = add i32 %105, 1661  %112 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #5662  %113 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %112663  store i32 %106, ptr addrspace(3) %113, align 4, !tbaa !11664  br label %114665 666114:                                              ; preds = %110, %103667  %115 = phi i32 [ %111, %110 ], [ %105, %103 ]668  %116 = add i32 %106, 1669  %117 = add nuw i32 %104, 1670  %118 = icmp ult i32 %117, %20671  br i1 %118, label %103, label %32672 673119:                                              ; preds = %32, %22, %5674  tail call void @_Z7barrierj(i32 noundef 1) #5675  %120 = load i32, ptr addrspace(3) @kernel_round1.collisionsNum, align 4, !tbaa !11676  %121 = icmp ugt i32 %120, %9677  br i1 %121, label %122, label %206678 679122:                                              ; preds = %119680  %123 = getelementptr inbounds i8, ptr addrspace(1) %0, i64 8681  br label %124682 683124:                                              ; preds = %201, %122684  %125 = phi i32 [ %9, %122 ], [ %204, %201 ]685  %126 = phi i64 [ %8, %122 ], [ %203, %201 ]686  %127 = and i64 %126, 4294967295687  %128 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %125688  %129 = load i32, ptr addrspace(3) %128, align 4, !tbaa !11689  %130 = lshr i32 %129, 10690  %131 = lshr i32 %129, 5691  %132 = and i32 %131, 31692  %133 = and i32 %129, 31693  %134 = mul nuw nsw i32 %130, 384694  %135 = zext i32 %134 to i64695  %136 = getelementptr inbounds i8, ptr addrspace(1) %123, i64 %135696  %137 = shl nuw nsw i32 %132, 5697  %138 = zext i32 %137 to i64698  %139 = getelementptr inbounds i8, ptr addrspace(1) %136, i64 %138699  %140 = shl nuw nsw i32 %133, 5700  %141 = zext i32 %140 to i64701  %142 = getelementptr inbounds i8, ptr addrspace(1) %136, i64 %141702  %143 = getelementptr inbounds i64, ptr addrspace(1) %139, i64 1703  %144 = load i64, ptr addrspace(1) %139, align 8, !tbaa !16704  %145 = getelementptr inbounds i64, ptr addrspace(1) %142, i64 1705  %146 = load i64, ptr addrspace(1) %142, align 8, !tbaa !16706  %147 = xor i64 %146, %144707  %148 = load i64, ptr addrspace(1) %143, align 8, !tbaa !16708  %149 = load i64, ptr addrspace(1) %145, align 8, !tbaa !16709  %150 = xor i64 %149, %148710  %151 = icmp ne i64 %147, 0711  %152 = icmp ne i64 %150, 0712  %153 = select i1 %151, i1 true, i1 %152713  br i1 %153, label %154, label %201714 715154:                                              ; preds = %124716  %155 = getelementptr inbounds i64, ptr addrspace(1) %142, i64 2717  %156 = load i64, ptr addrspace(1) %155, align 8, !tbaa !16718  %157 = getelementptr inbounds i64, ptr addrspace(1) %139, i64 2719  %158 = load i64, ptr addrspace(1) %157, align 8, !tbaa !16720  %159 = and i64 %147, 983040721  %160 = shl i64 %147, 4722  %161 = and i64 %160, 61440723  %162 = or i64 %161, %159724  %163 = lshr i64 %147, 12725  %164 = and i64 %163, 3840726  %165 = or i64 %162, %164727  %166 = and i64 %160, 240728  %167 = or i64 %165, %166729  %168 = and i64 %163, 15730  %169 = or i64 %167, %168731  %170 = trunc i64 %169 to i32732  %171 = lshr i64 %169, 3733  %172 = shl nuw nsw i32 %170, 2734  %173 = and i32 %172, 28735  %174 = getelementptr inbounds i32, ptr addrspace(1) %3, i64 %171736  %175 = shl nuw nsw i32 1, %173737  %176 = tail call i32 @_Z10atomic_addPU3AS1Vjj(ptr addrspace(1) noundef %174, i32 noundef %175) #5738  %177 = lshr i32 %176, %173739  %178 = and i32 %177, 15740  %179 = icmp ugt i32 %178, 11741  br i1 %179, label %180, label %182742 743180:                                              ; preds = %154744  %181 = tail call i32 @_Z10atomic_subPU3AS1Vjj(ptr addrspace(1) noundef %174, i32 noundef %175) #5745  br label %201746 747182:                                              ; preds = %154748  %183 = xor i64 %158, %156749  %184 = lshr i64 %183, 16750  %185 = tail call i64 @llvm.fshl.i64(i64 %183, i64 %150, i64 48)751  %186 = tail call i64 @llvm.fshl.i64(i64 %150, i64 %147, i64 48)752  %187 = shl nuw nsw i32 %133, 6753  %188 = shl i32 %130, 12754  %189 = or i32 %187, %188755  %190 = or i32 %189, %132756  %191 = mul nuw nsw i64 %169, 384757  %192 = and i64 %191, 4294967168758  %193 = getelementptr inbounds i8, ptr addrspace(1) %1, i64 %192759  %194 = shl nuw nsw i32 %178, 5760  %195 = or disjoint i32 %194, 8761  %196 = zext i32 %195 to i64762  %197 = getelementptr inbounds i8, ptr addrspace(1) %193, i64 %196763  %198 = getelementptr inbounds i8, ptr addrspace(1) %197, i64 -4764  store i32 %190, ptr addrspace(1) %198, align 4, !tbaa !11765  store i64 %186, ptr addrspace(1) %197, align 8, !tbaa !16766  %199 = getelementptr inbounds i8, ptr addrspace(1) %197, i64 8767  store i64 %185, ptr addrspace(1) %199, align 8, !tbaa !16768  %200 = getelementptr inbounds i8, ptr addrspace(1) %197, i64 16769  store i64 %184, ptr addrspace(1) %200, align 8, !tbaa !16770  br label %201771 772201:                                              ; preds = %182, %180, %124773  %202 = tail call i64 @_Z14get_local_sizej(i32 noundef 0) #4774  %203 = add i64 %202, %127775  %204 = trunc i64 %203 to i32776  %205 = icmp ugt i32 %120, %204777  br i1 %205, label %124, label %206778 779206:                                              ; preds = %201, %119780  ret void781}782 783; Removed most of the if-else blocks784 785define protected amdgpu_kernel void @kernel_round1_short(ptr addrspace(1) nocapture noundef readonly align 1 %.0, ptr addrspace(1) nocapture noundef writeonly align 1 %.1, ptr addrspace(1) nocapture noundef readonly align 4 %.2, ptr addrspace(1) noundef align 4 %.3, ptr addrspace(1) nocapture noundef readnone align 4 %.4) local_unnamed_addr #2 !kernel_arg_addr_space !5 !kernel_arg_access_qual !6 !kernel_arg_type !7 !kernel_arg_base_type !7 !kernel_arg_type_qual !8 !kernel_arg_name !9 !reqd_work_group_size !10 {786; CHECK-LABEL: kernel_round1_short:787; CHECK:       ; %bb.0: ; %.5788; CHECK-NEXT:    s_add_u32 s12, s12, s17789; CHECK-NEXT:    s_mov_b32 s32, 0790; CHECK-NEXT:    s_addc_u32 s13, s13, 0791; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_LO), s12792; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_HI), s13793; CHECK-NEXT:    s_load_dwordx2 s[54:55], s[8:9], 0x10794; CHECK-NEXT:    s_add_u32 s0, s0, s17795; CHECK-NEXT:    s_mov_b64 s[38:39], s[8:9]796; CHECK-NEXT:    s_addc_u32 s1, s1, 0797; CHECK-NEXT:    v_mov_b32_e32 v40, v0798; CHECK-NEXT:    s_add_u32 s52, s38, 40799; CHECK-NEXT:    v_mov_b32_e32 v31, v0800; CHECK-NEXT:    v_mov_b32_e32 v0, 0801; CHECK-NEXT:    s_mov_b32 s33, s16802; CHECK-NEXT:    s_addc_u32 s53, s39, 0803; CHECK-NEXT:    s_mov_b32 s51, s14804; CHECK-NEXT:    s_getpc_b64 s[16:17]805; CHECK-NEXT:    s_add_u32 s16, s16, _Z13get_global_idj@rel32@lo+4806; CHECK-NEXT:    s_addc_u32 s17, s17, _Z13get_global_idj@rel32@hi+12807; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]808; CHECK-NEXT:    s_mov_b32 s12, s14809; CHECK-NEXT:    s_mov_b32 s13, s15810; CHECK-NEXT:    s_mov_b32 s14, s33811; CHECK-NEXT:    s_mov_b32 s50, s15812; CHECK-NEXT:    s_mov_b64 s[34:35], s[10:11]813; CHECK-NEXT:    s_mov_b64 s[36:37], s[6:7]814; CHECK-NEXT:    s_mov_b64 s[48:49], s[4:5]815; CHECK-NEXT:    v_mov_b32_e32 v43, 0816; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]817; CHECK-NEXT:    v_mov_b32_e32 v42, v0818; CHECK-NEXT:    v_mov_b32_e32 v31, v40819; CHECK-NEXT:    v_mov_b32_e32 v0, 0820; CHECK-NEXT:    s_getpc_b64 s[16:17]821; CHECK-NEXT:    s_add_u32 s16, s16, _Z12get_local_idj@rel32@lo+4822; CHECK-NEXT:    s_addc_u32 s17, s17, _Z12get_local_idj@rel32@hi+12823; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]824; CHECK-NEXT:    s_mov_b64 s[6:7], s[36:37]825; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]826; CHECK-NEXT:    s_mov_b64 s[10:11], s[34:35]827; CHECK-NEXT:    s_mov_b32 s12, s51828; CHECK-NEXT:    s_mov_b32 s13, s50829; CHECK-NEXT:    s_mov_b32 s14, s33830; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]831; CHECK-NEXT:    v_mul_lo_u32 v46, v0, 14832; CHECK-NEXT:    v_mov_b32_e32 v31, v40833; CHECK-NEXT:    v_mov_b32_e32 v0, 1834; CHECK-NEXT:    s_getpc_b64 s[16:17]835; CHECK-NEXT:    s_add_u32 s16, s16, _Z7barrierj@rel32@lo+4836; CHECK-NEXT:    s_addc_u32 s17, s17, _Z7barrierj@rel32@hi+12837; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]838; CHECK-NEXT:    s_mov_b64 s[6:7], s[36:37]839; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]840; CHECK-NEXT:    s_mov_b64 s[10:11], s[34:35]841; CHECK-NEXT:    s_mov_b32 s12, s51842; CHECK-NEXT:    s_mov_b32 s13, s50843; CHECK-NEXT:    s_mov_b32 s14, s33844; CHECK-NEXT:    ds_write_b32 v43, v43 offset:15360845; CHECK-NEXT:    v_add_nc_u32_e32 v44, 0x3c04, v46846; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]847; CHECK-NEXT:    v_lshrrev_b32_e32 v0, 1, v42848; CHECK-NEXT:    v_lshlrev_b32_e32 v1, 2, v42849; CHECK-NEXT:    v_mov_b32_e32 v31, v40850; CHECK-NEXT:    s_getpc_b64 s[16:17]851; CHECK-NEXT:    s_add_u32 s16, s16, _Z3minjj@rel32@lo+4852; CHECK-NEXT:    s_addc_u32 s17, s17, _Z3minjj@rel32@hi+12853; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]854; CHECK-NEXT:    v_and_b32_e32 v0, 0x7ffffffc, v0855; CHECK-NEXT:    v_and_b32_e32 v1, 28, v1856; CHECK-NEXT:    s_mov_b64 s[6:7], s[36:37]857; CHECK-NEXT:    s_mov_b64 s[8:9], s[52:53]858; CHECK-NEXT:    s_mov_b64 s[10:11], s[34:35]859; CHECK-NEXT:    global_load_dword v0, v0, s[54:55]860; CHECK-NEXT:    s_mov_b32 s12, s51861; CHECK-NEXT:    s_mov_b32 s13, s50862; CHECK-NEXT:    s_mov_b32 s14, s33863; CHECK-NEXT:    s_waitcnt vmcnt(0)864; CHECK-NEXT:    v_bfe_u32 v0, v0, v1, 4865; CHECK-NEXT:    v_mov_b32_e32 v1, 12866; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]867; CHECK-NEXT:    v_mov_b32_e32 v41, v0868; CHECK-NEXT:    v_lshlrev_b32_e32 v42, 10, v42869; CHECK-NEXT:    s_mov_b32 s4, 0870; CHECK-NEXT:    s_mov_b32 s52, 0871; CHECK-NEXT:    ds_write_b8 v46, v43 offset:15364872; CHECK-NEXT:    v_add_nc_u32_e32 v45, -1, v41873; CHECK-NEXT:  .LBB1_1: ; %.37874; CHECK-NEXT:    ; =>This Loop Header: Depth=1875; CHECK-NEXT:    ; Child Loop BB1_3 Depth 2876; CHECK-NEXT:    ; Child Loop BB1_8 Depth 2877; CHECK-NEXT:    v_add_nc_u32_e32 v0, s4, v44878; CHECK-NEXT:    s_lshl_b32 s5, s4, 5879; CHECK-NEXT:    s_add_i32 s53, s4, 1880; CHECK-NEXT:    s_add_i32 s6, s4, 5881; CHECK-NEXT:    v_or3_b32 v47, s5, v42, s53882; CHECK-NEXT:    s_waitcnt lgkmcnt(0)883; CHECK-NEXT:    ds_read_u8 v46, v0884; CHECK-NEXT:    v_mov_b32_e32 v56, s53885; CHECK-NEXT:    s_mov_b32 s5, exec_lo886; CHECK-NEXT:    v_cmpx_lt_u32_e64 s6, v41887; CHECK-NEXT:    s_cbranch_execz .LBB1_5888; CHECK-NEXT:  ; %bb.2: ; %.53.preheader889; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1890; CHECK-NEXT:    s_mov_b32 s6, 0891; CHECK-NEXT:    s_mov_b32 s7, 0892; CHECK-NEXT:  .LBB1_3: ; %.53893; CHECK-NEXT:    ; Parent Loop BB1_1 Depth=1894; CHECK-NEXT:    ; => This Inner Loop Header: Depth=2895; CHECK-NEXT:    s_add_i32 s7, s7, 4896; CHECK-NEXT:    v_add_nc_u32_e32 v43, 1, v43897; CHECK-NEXT:    s_add_i32 s8, s4, s7898; CHECK-NEXT:    v_add_nc_u32_e32 v0, s7, v47899; CHECK-NEXT:    s_add_i32 s9, s8, 5900; CHECK-NEXT:    s_add_i32 s8, s8, 1901; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, s9, v41902; CHECK-NEXT:    v_mov_b32_e32 v56, s8903; CHECK-NEXT:    s_or_b32 s6, vcc_lo, s6904; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s6905; CHECK-NEXT:    s_cbranch_execnz .LBB1_3906; CHECK-NEXT:  ; %bb.4: ; %Flow3907; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1908; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s6909; CHECK-NEXT:    v_mov_b32_e32 v47, v0910; CHECK-NEXT:  .LBB1_5: ; %Flow4911; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1912; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s5913; CHECK-NEXT:    s_mov_b32 s54, exec_lo914; CHECK-NEXT:    v_cmpx_lt_u32_e64 v56, v41915; CHECK-NEXT:    s_cbranch_execz .LBB1_11916; CHECK-NEXT:  ; %bb.6: ; %.103.preheader917; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1918; CHECK-NEXT:    s_mov_b32 s55, 0919; CHECK-NEXT:    s_inst_prefetch 0x1920; CHECK-NEXT:    s_branch .LBB1_8921; CHECK-NEXT:    .p2align 6922; CHECK-NEXT:  .LBB1_7: ; %.114923; CHECK-NEXT:    ; in Loop: Header=BB1_8 Depth=2924; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s64925; CHECK-NEXT:    v_add_nc_u32_e32 v56, 1, v56926; CHECK-NEXT:    v_add_nc_u32_e32 v47, 1, v47927; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, v56, v41928; CHECK-NEXT:    s_or_b32 s55, vcc_lo, s55929; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s55930; CHECK-NEXT:    s_cbranch_execz .LBB1_10931; CHECK-NEXT:  .LBB1_8: ; %.103932; CHECK-NEXT:    ; Parent Loop BB1_1 Depth=1933; CHECK-NEXT:    ; => This Inner Loop Header: Depth=2934; CHECK-NEXT:    v_add_nc_u32_e32 v0, v44, v56935; CHECK-NEXT:    ds_read_u8 v0, v0936; CHECK-NEXT:    s_waitcnt lgkmcnt(0)937; CHECK-NEXT:    v_cmp_eq_u16_sdwa s4, v46, v0 src0_sel:BYTE_0 src1_sel:DWORD938; CHECK-NEXT:    s_and_saveexec_b32 s64, s4939; CHECK-NEXT:    s_cbranch_execz .LBB1_7940; CHECK-NEXT:  ; %bb.9: ; %.110941; CHECK-NEXT:    ; in Loop: Header=BB1_8 Depth=2942; CHECK-NEXT:    v_mov_b32_e32 v31, v40943; CHECK-NEXT:    v_mov_b32_e32 v0, 0x3c00944; CHECK-NEXT:    s_add_u32 s8, s38, 40945; CHECK-NEXT:    s_addc_u32 s9, s39, 0946; CHECK-NEXT:    s_getpc_b64 s[16:17]947; CHECK-NEXT:    s_add_u32 s16, s16, _Z10atomic_incPU3AS3Vj@rel32@lo+4948; CHECK-NEXT:    s_addc_u32 s17, s17, _Z10atomic_incPU3AS3Vj@rel32@hi+12949; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]950; CHECK-NEXT:    s_mov_b64 s[6:7], s[36:37]951; CHECK-NEXT:    s_mov_b64 s[10:11], s[34:35]952; CHECK-NEXT:    s_mov_b32 s12, s51953; CHECK-NEXT:    s_mov_b32 s13, s50954; CHECK-NEXT:    s_mov_b32 s14, s33955; CHECK-NEXT:    v_add_nc_u32_e32 v43, 1, v43956; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]957; CHECK-NEXT:    v_lshlrev_b32_e32 v0, 2, v0958; CHECK-NEXT:    ds_write_b32 v0, v47959; CHECK-NEXT:    s_branch .LBB1_7960; CHECK-NEXT:  .LBB1_10: ; %Flow961; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1962; CHECK-NEXT:    s_inst_prefetch 0x2963; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s55964; CHECK-NEXT:  .LBB1_11: ; %Flow2965; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1966; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s54967; CHECK-NEXT:  ; %bb.12: ; %.32968; CHECK-NEXT:    ; in Loop: Header=BB1_1 Depth=1969; CHECK-NEXT:    v_cmp_ge_u32_e32 vcc_lo, s53, v45970; CHECK-NEXT:    v_cmp_lt_u32_e64 s4, 59, v43971; CHECK-NEXT:    s_or_b32 s4, vcc_lo, s4972; CHECK-NEXT:    s_and_b32 s4, exec_lo, s4973; CHECK-NEXT:    s_or_b32 s52, s4, s52974; CHECK-NEXT:    s_mov_b32 s4, s53975; CHECK-NEXT:    s_andn2_b32 exec_lo, exec_lo, s52976; CHECK-NEXT:    s_cbranch_execnz .LBB1_1977; CHECK-NEXT:  ; %bb.13: ; %.119978; CHECK-NEXT:    s_or_b32 exec_lo, exec_lo, s52979; CHECK-NEXT:    v_mov_b32_e32 v31, v40980; CHECK-NEXT:    v_mov_b32_e32 v0, 1981; CHECK-NEXT:    s_add_u32 s8, s38, 40982; CHECK-NEXT:    s_addc_u32 s9, s39, 0983; CHECK-NEXT:    s_getpc_b64 s[16:17]984; CHECK-NEXT:    s_add_u32 s16, s16, _Z7barrierj@rel32@lo+4985; CHECK-NEXT:    s_addc_u32 s17, s17, _Z7barrierj@rel32@hi+12986; CHECK-NEXT:    s_mov_b64 s[4:5], s[48:49]987; CHECK-NEXT:    s_mov_b64 s[6:7], s[36:37]988; CHECK-NEXT:    s_mov_b64 s[10:11], s[34:35]989; CHECK-NEXT:    s_mov_b32 s12, s51990; CHECK-NEXT:    s_mov_b32 s13, s50991; CHECK-NEXT:    s_mov_b32 s14, s33992; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]993; CHECK-NEXT:    s_endpgm994.5:995  %.6 = tail call i64 @_Z13get_global_idj(i32 noundef 0) #4996  %.7 = trunc i64 %.6 to i32997  %.8 = tail call i64 @_Z12get_local_idj(i32 noundef 0) #4998  %.9 = trunc i64 %.8 to i32999  %.10 = mul i32 %.9, 141000  %.11 = getelementptr inbounds i8, ptr addrspace(3) @kernel_round1.first_words_data, i32 %.101001  store i32 0, ptr addrspace(3) @kernel_round1.collisionsNum, align 4, !tbaa !111002  tail call void @_Z7barrierj(i32 noundef 1) #51003  %.12 = lshr i64 %.6, 31004  %.13 = shl i32 %.7, 21005  %.14 = and i32 %.13, 281006  %.15 = and i64 %.12, 5368709111007  %.16 = getelementptr inbounds i32, ptr addrspace(1) %.2, i64 %.151008  %.17 = load i32, ptr addrspace(1) %.16, align 4, !tbaa !111009  %.18 = lshr i32 %.17, %.141010  %.19 = and i32 %.18, 151011  %.20 = tail call i32 @_Z3minjj(i32 noundef %.19, i32 noundef 12) #41012  %.21 = icmp eq i32 %.20, 01013  %.23 = add i32 %.20, -11014  %.24 = icmp eq i32 %.23, 01015  store i8 0, ptr addrspace(3) %.11, align 1, !tbaa !151016  br label %.371017 1018.32:                                               ; preds = %.114, %.481019  %.33 = phi i32 [ %.50, %.48 ], [ %.115, %.114 ]1020  %.34 = icmp ult i32 %.44, %.231021  %.35 = icmp ult i32 %.33, 601022  %.36 = select i1 %.34, i1 %.35, i1 false1023  br i1 %.36, label %.37, label %.1191024 1025.37:                                               ; preds = %.32, %.251026  %.38 = phi i32 [ 0, %.5 ], [ %.44, %.32 ]1027  %.39 = phi i32 [ 0, %.5 ], [ %.33, %.32 ]1028  %.26 = shl i32 %.7, 101029  %.40 = getelementptr inbounds i8, ptr addrspace(3) %.11, i32 %.381030  %.41 = load i8, ptr addrspace(3) %.40, align 1, !tbaa !151031  %.42 = shl i32 %.38, 51032  %.43 = or i32 %.42, %.261033  %.44 = add nuw i32 %.38, 11034  %.45 = or i32 %.43, %.441035  %.46 = add i32 %.38, 51036  %.47 = icmp ult i32 %.46, %.201037  br i1 %.47, label %.53, label %.481038 1039.48:                                               ; preds = %.98, %.371040  %.49 = phi i32 [ %.45, %.37 ], [ %.100, %.98 ]1041  %.50 = phi i32 [ %.39, %.37 ], [ %.99, %.98 ]1042  %.51 = phi i32 [ %.44, %.37 ], [ %.54, %.98 ]1043  %.52 = icmp ult i32 %.51, %.201044  br i1 %.52, label %.103, label %.321045 1046.53:                                               ; preds = %.37, %.981047  %.54 = phi i32 [ %.101, %.98 ], [ %.46, %.37 ]1048  %.55 = phi i32 [ %.54, %.98 ], [ %.44, %.37 ]1049  %.56 = phi i32 [ %.99, %.98 ], [ %.39, %.37 ]1050  %.57 = phi i32 [ %.100, %.98 ], [ %.45, %.37 ]1051  %.58 = getelementptr inbounds i8, ptr addrspace(3) %.11, i32 %.551052  %.59 = load i8, ptr addrspace(3) %.58, align 1, !tbaa !151053  %.60 = icmp eq i8 %.41, %.591054  br label %.981055 1056.98:                                               ; preds = %.93, %.871057  %.99 = add i32 %.56, 11058  %.100 = add i32 %.57, 41059  %.101 = add i32 %.54, 41060  %.102 = icmp ult i32 %.101, %.201061  br i1 %.102, label %.53, label %.481062 1063.103:                                              ; preds = %.48, %.1141064  %.104 = phi i32 [ %.117, %.114 ], [ %.51, %.48 ]1065  %.105 = phi i32 [ %.115, %.114 ], [ %.50, %.48 ]1066  %.106 = phi i32 [ %.116, %.114 ], [ %.49, %.48 ]1067  %.107 = getelementptr inbounds i8, ptr addrspace(3) %.11, i32 %.1041068  %.108 = load i8, ptr addrspace(3) %.107, align 1, !tbaa !151069  %.109 = icmp eq i8 %.41, %.1081070  br i1 %.109, label %.110, label %.1141071 1072.110:                                              ; preds = %.1031073  %.111 = add i32 %.105, 11074  %.112 = tail call i32 @_Z10atomic_incPU3AS3Vj(ptr addrspace(3) noundef @kernel_round1.collisionsNum) #51075  %.113 = getelementptr inbounds i32, ptr addrspace(3) @kernel_round1.collisionsData, i32 %.1121076  store i32 %.106, ptr addrspace(3) %.113, align 4, !tbaa !111077  br label %.1141078 1079.114:                                              ; preds = %.110, %.1031080  %.115 = phi i32 [ %.111, %.110 ], [ %.105, %.103 ]1081  %.116 = add i32 %.106, 11082  %.117 = add nuw i32 %.104, 11083  %.118 = icmp ult i32 %.117, %.201084  br i1 %.118, label %.103, label %.321085 1086.119:                                              ; preds = %.32, %.22, %.51087  tail call void @_Z7barrierj(i32 noundef 1) #51088  %.120 = load i32, ptr addrspace(3) @kernel_round1.collisionsNum, align 4, !tbaa !111089  %.121 = icmp ugt i32 %.120, %.91090  br label %.2061091 1092.206:                                              ; preds = %.201, %.1191093  ret void1094}1095 1096; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)1097declare i64 @llvm.fshl.i64(i64, i64, i64) #31098 1099attributes #0 = { convergent mustprogress nofree nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="gfx1030" "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" }1100attributes #1 = { convergent nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="gfx1030" "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" }1101attributes #2 = { convergent norecurse nounwind "amdgpu-flat-work-group-size"="64,64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="gfx1030" "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" "uniform-work-group-size"="true" }1102attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }1103attributes #4 = { convergent nounwind willreturn memory(none) }1104attributes #5 = { convergent nounwind }1105 1106!llvm.module.flags = !{!0, !1, !2}1107!opencl.ocl.version = !{!3}1108!llvm.ident = !{!4}1109 1110!0 = !{i32 1, !"amdhsa_code_object_version", i32 500}1111!1 = !{i32 1, !"wchar_size", i32 4}1112!2 = !{i32 8, !"PIC Level", i32 2}1113!3 = !{i32 1, i32 2}1114!4 = !{!"clang version 17.0.0 (ssh://chfang@git.amd.com:29418/lightning/ec/llvm-project 06ead8cf696777b9f17876b60707ba9de4d0606f)"}1115!5 = !{i32 1, i32 1, i32 1, i32 1, i32 1}1116!6 = !{!"none", !"none", !"none", !"none", !"none"}1117!7 = !{!"char*", !"char*", !"uint*", !"uint*", !"uint*"}1118!8 = !{!"", !"", !"", !"", !""}1119!9 = !{!"ht_src", !"ht_dst", !"rowCountersSrc", !"rowCountersDst", !"debug"}1120!10 = !{i32 64, i32 1, i32 1}1121!11 = !{!12, !12, i64 0}1122!12 = !{!"int", !13, i64 0}1123!13 = !{!"omnipotent char", !14, i64 0}1124!14 = !{!"Simple C/C++ TBAA"}1125!15 = !{!13, !13, i64 0}1126!16 = !{!17, !17, i64 0}1127!17 = !{!"long", !13, i64 0}1128