1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 2; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -greedy-regclass-priority-trumps-globalness=1 -o - %s | FileCheck -check-prefixes=GFX90A,GLOBALNESS1 %s 3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -greedy-regclass-priority-trumps-globalness=0 -o - %s | FileCheck -check-prefixes=GFX90A,GLOBALNESS0 %s 4 5declare void @wobble() 6 7define internal fastcc void @widget() { 8; GFX90A-LABEL: widget: 9; GFX90A: ; %bb.0: ; %bb 10; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 11; GFX90A-NEXT: s_mov_b32 s16, s33 12; GFX90A-NEXT: s_mov_b32 s33, s32 13; GFX90A-NEXT: s_or_saveexec_b64 s[18:19], -1 14; GFX90A-NEXT: buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill 15; GFX90A-NEXT: s_mov_b64 exec, s[18:19] 16; GFX90A-NEXT: s_addk_i32 s32, 0x400 17; GFX90A-NEXT: v_writelane_b32 v40, s16, 2 18; GFX90A-NEXT: s_getpc_b64 s[16:17] 19; GFX90A-NEXT: s_add_u32 s16, s16, wobble@gotpcrel32@lo+4 20; GFX90A-NEXT: s_addc_u32 s17, s17, wobble@gotpcrel32@hi+12 21; GFX90A-NEXT: s_load_dwordx2 s[16:17], s[16:17], 0x0 22; GFX90A-NEXT: v_writelane_b32 v40, s30, 0 23; GFX90A-NEXT: v_writelane_b32 v40, s31, 1 24; GFX90A-NEXT: s_waitcnt lgkmcnt(0) 25; GFX90A-NEXT: s_swappc_b64 s[30:31], s[16:17] 26bb: 27 tail call void @wobble() 28 unreachable 29} 30 31define amdgpu_kernel void @kernel(ptr addrspace(1) %arg1.global, i1 %tmp3.i.i, i32 %tmp5.i.i, i32 %tmp427.i, i1 %tmp438.i, double %tmp27.i, i1 %tmp48.i) { 32; GLOBALNESS1-LABEL: kernel: 33; GLOBALNESS1: ; %bb.0: ; %bb 34; GLOBALNESS1-NEXT: s_mov_b64 s[36:37], s[6:7] 35; GLOBALNESS1-NEXT: s_load_dwordx4 s[76:79], s[8:9], 0x0 36; GLOBALNESS1-NEXT: s_load_dword s6, s[8:9], 0x14 37; GLOBALNESS1-NEXT: v_mov_b32_e32 v41, v0 38; GLOBALNESS1-NEXT: v_mov_b32_e32 v42, 0 39; GLOBALNESS1-NEXT: v_pk_mov_b32 v[0:1], 0, 0 40; GLOBALNESS1-NEXT: global_store_dword v[0:1], v42, off 41; GLOBALNESS1-NEXT: s_waitcnt lgkmcnt(0) 42; GLOBALNESS1-NEXT: global_load_dword v2, v42, s[76:77] 43; GLOBALNESS1-NEXT: s_mov_b64 s[40:41], s[4:5] 44; GLOBALNESS1-NEXT: s_load_dwordx2 s[4:5], s[8:9], 0x18 45; GLOBALNESS1-NEXT: s_load_dword s7, s[8:9], 0x20 46; GLOBALNESS1-NEXT: s_add_u32 flat_scratch_lo, s12, s17 47; GLOBALNESS1-NEXT: s_addc_u32 flat_scratch_hi, s13, 0 48; GLOBALNESS1-NEXT: s_add_u32 s0, s0, s17 49; GLOBALNESS1-NEXT: v_mov_b32_e32 v0, 0 50; GLOBALNESS1-NEXT: s_addc_u32 s1, s1, 0 51; GLOBALNESS1-NEXT: v_mov_b32_e32 v1, 0x40994400 52; GLOBALNESS1-NEXT: s_bitcmp1_b32 s78, 0 53; GLOBALNESS1-NEXT: s_waitcnt lgkmcnt(0) 54; GLOBALNESS1-NEXT: v_cmp_ngt_f64_e32 vcc, s[4:5], v[0:1] 55; GLOBALNESS1-NEXT: v_cmp_ngt_f64_e64 s[4:5], s[4:5], 0 56; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v1, 0, 1, s[4:5] 57; GLOBALNESS1-NEXT: s_cselect_b64 s[4:5], -1, 0 58; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v3, 0, 1, s[4:5] 59; GLOBALNESS1-NEXT: s_xor_b64 s[4:5], s[4:5], -1 60; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 61; GLOBALNESS1-NEXT: s_bitcmp1_b32 s6, 0 62; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[42:43], 1, v0 63; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 64; GLOBALNESS1-NEXT: s_cselect_b64 s[4:5], -1, 0 65; GLOBALNESS1-NEXT: s_xor_b64 s[4:5], s[4:5], -1 66; GLOBALNESS1-NEXT: s_bitcmp1_b32 s7, 0 67; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[48:49], 1, v0 68; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 69; GLOBALNESS1-NEXT: s_cselect_b64 s[4:5], -1, 0 70; GLOBALNESS1-NEXT: s_xor_b64 s[4:5], s[4:5], -1 71; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[50:51], 1, v0 72; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 73; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[52:53], 1, v0 74; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[44:45], 1, v1 75; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[46:47], 1, v3 76; GLOBALNESS1-NEXT: s_mov_b32 s70, s16 77; GLOBALNESS1-NEXT: s_mov_b64 s[38:39], s[8:9] 78; GLOBALNESS1-NEXT: s_mov_b32 s71, s15 79; GLOBALNESS1-NEXT: s_mov_b32 s72, s14 80; GLOBALNESS1-NEXT: s_mov_b64 s[34:35], s[10:11] 81; GLOBALNESS1-NEXT: s_mov_b32 s32, 0 82; GLOBALNESS1-NEXT: ; implicit-def: $vgpr44_vgpr45 83; GLOBALNESS1-NEXT: s_waitcnt vmcnt(0) 84; GLOBALNESS1-NEXT: v_cmp_gt_i32_e32 vcc, 0, v2 85; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 86; GLOBALNESS1-NEXT: v_cmp_gt_i32_e32 vcc, 1, v2 87; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc 88; GLOBALNESS1-NEXT: v_cmp_eq_u32_e32 vcc, 1, v2 89; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v3, 0, 1, vcc 90; GLOBALNESS1-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2 91; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v2, 0, 1, vcc 92; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[54:55], 1, v0 93; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[56:57], 1, v1 94; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[58:59], 1, v3 95; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[60:61], 1, v2 96; GLOBALNESS1-NEXT: s_branch .LBB1_4 97; GLOBALNESS1-NEXT: .LBB1_1: ; %bb70.i 98; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 99; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[60:61] 100; GLOBALNESS1-NEXT: s_cbranch_vccz .LBB1_29 101; GLOBALNESS1-NEXT: .LBB1_2: ; %Flow15 102; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 103; GLOBALNESS1-NEXT: s_or_b64 exec, exec, s[4:5] 104; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], 0 105; GLOBALNESS1-NEXT: ; implicit-def: $sgpr4_sgpr5 106; GLOBALNESS1-NEXT: .LBB1_3: ; %Flow28 107; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 108; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[6:7] 109; GLOBALNESS1-NEXT: v_pk_mov_b32 v[44:45], v[0:1], v[0:1] op_sel:[0,1] 110; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_30 111; GLOBALNESS1-NEXT: .LBB1_4: ; %bb5 112; GLOBALNESS1-NEXT: ; =>This Loop Header: Depth=1 113; GLOBALNESS1-NEXT: ; Child Loop BB1_16 Depth 2 114; GLOBALNESS1-NEXT: v_mov_b32_e32 v0, 0x80 115; GLOBALNESS1-NEXT: v_mov_b32_e32 v1, 0 116; GLOBALNESS1-NEXT: flat_load_dword v40, v[0:1] 117; GLOBALNESS1-NEXT: s_add_u32 s8, s38, 40 118; GLOBALNESS1-NEXT: buffer_store_dword v42, off, s[0:3], 0 119; GLOBALNESS1-NEXT: flat_load_dword v46, v[0:1] 120; GLOBALNESS1-NEXT: s_addc_u32 s9, s39, 0 121; GLOBALNESS1-NEXT: s_getpc_b64 s[4:5] 122; GLOBALNESS1-NEXT: s_add_u32 s4, s4, wobble@gotpcrel32@lo+4 123; GLOBALNESS1-NEXT: s_addc_u32 s5, s5, wobble@gotpcrel32@hi+12 124; GLOBALNESS1-NEXT: s_load_dwordx2 s[16:17], s[4:5], 0x0 125; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], s[40:41] 126; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], s[36:37] 127; GLOBALNESS1-NEXT: s_mov_b64 s[10:11], s[34:35] 128; GLOBALNESS1-NEXT: s_mov_b32 s12, s72 129; GLOBALNESS1-NEXT: s_mov_b32 s13, s71 130; GLOBALNESS1-NEXT: s_mov_b32 s14, s70 131; GLOBALNESS1-NEXT: v_mov_b32_e32 v31, v41 132; GLOBALNESS1-NEXT: s_waitcnt lgkmcnt(0) 133; GLOBALNESS1-NEXT: s_swappc_b64 s[30:31], s[16:17] 134; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[46:47] 135; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], -1 136; GLOBALNESS1-NEXT: ; implicit-def: $sgpr4_sgpr5 137; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_9 138; GLOBALNESS1-NEXT: ; %bb.5: ; %NodeBlock 139; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 140; GLOBALNESS1-NEXT: s_cmp_lt_i32 s79, 1 141; GLOBALNESS1-NEXT: s_cbranch_scc1 .LBB1_7 142; GLOBALNESS1-NEXT: ; %bb.6: ; %LeafBlock12 143; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 144; GLOBALNESS1-NEXT: s_cmp_lg_u32 s79, 1 145; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], -1 146; GLOBALNESS1-NEXT: s_cselect_b64 s[6:7], -1, 0 147; GLOBALNESS1-NEXT: s_cbranch_execz .LBB1_8 148; GLOBALNESS1-NEXT: s_branch .LBB1_9 149; GLOBALNESS1-NEXT: .LBB1_7: ; in Loop: Header=BB1_4 Depth=1 150; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], 0 151; GLOBALNESS1-NEXT: ; implicit-def: $sgpr4_sgpr5 152; GLOBALNESS1-NEXT: .LBB1_8: ; %LeafBlock 153; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 154; GLOBALNESS1-NEXT: s_cmp_lg_u32 s79, 0 155; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], 0 156; GLOBALNESS1-NEXT: s_cselect_b64 s[6:7], -1, 0 157; GLOBALNESS1-NEXT: .LBB1_9: ; %Flow25 158; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 159; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[6:7] 160; GLOBALNESS1-NEXT: s_cbranch_vccz .LBB1_24 161; GLOBALNESS1-NEXT: ; %bb.10: ; %baz.exit.i 162; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 163; GLOBALNESS1-NEXT: v_pk_mov_b32 v[2:3], 0, 0 164; GLOBALNESS1-NEXT: flat_load_dword v0, v[2:3] 165; GLOBALNESS1-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) 166; GLOBALNESS1-NEXT: v_cmp_gt_i32_e64 s[62:63], 0, v0 167; GLOBALNESS1-NEXT: v_mov_b32_e32 v0, 0 168; GLOBALNESS1-NEXT: v_mov_b32_e32 v1, 0x3ff00000 169; GLOBALNESS1-NEXT: s_and_saveexec_b64 s[74:75], s[62:63] 170; GLOBALNESS1-NEXT: s_cbranch_execz .LBB1_26 171; GLOBALNESS1-NEXT: ; %bb.11: ; %bb33.i 172; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 173; GLOBALNESS1-NEXT: global_load_dwordx2 v[0:1], v[2:3], off 174; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[54:55] 175; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_13 176; GLOBALNESS1-NEXT: ; %bb.12: ; %bb39.i 177; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 178; GLOBALNESS1-NEXT: v_mov_b32_e32 v43, v42 179; GLOBALNESS1-NEXT: v_pk_mov_b32 v[2:3], 0, 0 180; GLOBALNESS1-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 181; GLOBALNESS1-NEXT: .LBB1_13: ; %bb44.lr.ph.i 182; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 183; GLOBALNESS1-NEXT: v_cmp_ne_u32_e32 vcc, 0, v46 184; GLOBALNESS1-NEXT: v_cndmask_b32_e32 v2, 0, v40, vcc 185; GLOBALNESS1-NEXT: s_waitcnt vmcnt(0) 186; GLOBALNESS1-NEXT: v_cmp_nlt_f64_e32 vcc, 0, v[0:1] 187; GLOBALNESS1-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 188; GLOBALNESS1-NEXT: v_cmp_eq_u32_e64 s[64:65], 0, v2 189; GLOBALNESS1-NEXT: v_cmp_ne_u32_e64 s[66:67], 1, v0 190; GLOBALNESS1-NEXT: s_branch .LBB1_16 191; GLOBALNESS1-NEXT: .LBB1_14: ; %Flow16 192; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 193; GLOBALNESS1-NEXT: s_or_b64 exec, exec, s[4:5] 194; GLOBALNESS1-NEXT: .LBB1_15: ; %bb63.i 195; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 196; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[52:53] 197; GLOBALNESS1-NEXT: s_cbranch_vccz .LBB1_25 198; GLOBALNESS1-NEXT: .LBB1_16: ; %bb44.i 199; GLOBALNESS1-NEXT: ; Parent Loop BB1_4 Depth=1 200; GLOBALNESS1-NEXT: ; => This Inner Loop Header: Depth=2 201; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[48:49] 202; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_15 203; GLOBALNESS1-NEXT: ; %bb.17: ; %bb46.i 204; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 205; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[50:51] 206; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_15 207; GLOBALNESS1-NEXT: ; %bb.18: ; %bb50.i 208; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 209; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[42:43] 210; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_21 211; GLOBALNESS1-NEXT: ; %bb.19: ; %bb3.i.i 212; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 213; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[44:45] 214; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_21 215; GLOBALNESS1-NEXT: ; %bb.20: ; %bb6.i.i 216; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 217; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[66:67] 218; GLOBALNESS1-NEXT: .LBB1_21: ; %spam.exit.i 219; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 220; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[56:57] 221; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_15 222; GLOBALNESS1-NEXT: ; %bb.22: ; %bb55.i 223; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 224; GLOBALNESS1-NEXT: s_add_u32 s68, s38, 40 225; GLOBALNESS1-NEXT: s_addc_u32 s69, s39, 0 226; GLOBALNESS1-NEXT: s_getpc_b64 s[4:5] 227; GLOBALNESS1-NEXT: s_add_u32 s4, s4, wobble@gotpcrel32@lo+4 228; GLOBALNESS1-NEXT: s_addc_u32 s5, s5, wobble@gotpcrel32@hi+12 229; GLOBALNESS1-NEXT: s_load_dwordx2 s[76:77], s[4:5], 0x0 230; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], s[40:41] 231; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], s[36:37] 232; GLOBALNESS1-NEXT: s_mov_b64 s[8:9], s[68:69] 233; GLOBALNESS1-NEXT: s_mov_b64 s[10:11], s[34:35] 234; GLOBALNESS1-NEXT: s_mov_b32 s12, s72 235; GLOBALNESS1-NEXT: s_mov_b32 s13, s71 236; GLOBALNESS1-NEXT: s_mov_b32 s14, s70 237; GLOBALNESS1-NEXT: v_mov_b32_e32 v31, v41 238; GLOBALNESS1-NEXT: s_waitcnt lgkmcnt(0) 239; GLOBALNESS1-NEXT: s_swappc_b64 s[30:31], s[76:77] 240; GLOBALNESS1-NEXT: v_pk_mov_b32 v[46:47], 0, 0 241; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], s[40:41] 242; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], s[36:37] 243; GLOBALNESS1-NEXT: s_mov_b64 s[8:9], s[68:69] 244; GLOBALNESS1-NEXT: s_mov_b64 s[10:11], s[34:35] 245; GLOBALNESS1-NEXT: s_mov_b32 s12, s72 246; GLOBALNESS1-NEXT: s_mov_b32 s13, s71 247; GLOBALNESS1-NEXT: s_mov_b32 s14, s70 248; GLOBALNESS1-NEXT: v_mov_b32_e32 v31, v41 249; GLOBALNESS1-NEXT: global_store_dwordx2 v[46:47], v[44:45], off 250; GLOBALNESS1-NEXT: s_swappc_b64 s[30:31], s[76:77] 251; GLOBALNESS1-NEXT: s_and_saveexec_b64 s[4:5], s[64:65] 252; GLOBALNESS1-NEXT: s_cbranch_execz .LBB1_14 253; GLOBALNESS1-NEXT: ; %bb.23: ; %bb62.i 254; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_16 Depth=2 255; GLOBALNESS1-NEXT: v_mov_b32_e32 v43, v42 256; GLOBALNESS1-NEXT: global_store_dwordx2 v[46:47], v[42:43], off 257; GLOBALNESS1-NEXT: s_branch .LBB1_14 258; GLOBALNESS1-NEXT: .LBB1_24: ; in Loop: Header=BB1_4 Depth=1 259; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], -1 260; GLOBALNESS1-NEXT: ; implicit-def: $vgpr0_vgpr1 261; GLOBALNESS1-NEXT: s_branch .LBB1_3 262; GLOBALNESS1-NEXT: .LBB1_25: ; %Flow23 263; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 264; GLOBALNESS1-NEXT: v_pk_mov_b32 v[0:1], 0, 0 265; GLOBALNESS1-NEXT: .LBB1_26: ; %Flow24 266; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 267; GLOBALNESS1-NEXT: s_or_b64 exec, exec, s[74:75] 268; GLOBALNESS1-NEXT: s_and_saveexec_b64 s[4:5], s[62:63] 269; GLOBALNESS1-NEXT: s_cbranch_execz .LBB1_2 270; GLOBALNESS1-NEXT: ; %bb.27: ; %bb67.i 271; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 272; GLOBALNESS1-NEXT: s_and_b64 vcc, exec, s[58:59] 273; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_1 274; GLOBALNESS1-NEXT: ; %bb.28: ; %bb69.i 275; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 276; GLOBALNESS1-NEXT: v_mov_b32_e32 v43, v42 277; GLOBALNESS1-NEXT: v_pk_mov_b32 v[2:3], 0, 0 278; GLOBALNESS1-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 279; GLOBALNESS1-NEXT: s_branch .LBB1_1 280; GLOBALNESS1-NEXT: .LBB1_29: ; %bb73.i 281; GLOBALNESS1-NEXT: ; in Loop: Header=BB1_4 Depth=1 282; GLOBALNESS1-NEXT: v_mov_b32_e32 v43, v42 283; GLOBALNESS1-NEXT: v_pk_mov_b32 v[2:3], 0, 0 284; GLOBALNESS1-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 285; GLOBALNESS1-NEXT: s_branch .LBB1_2 286; GLOBALNESS1-NEXT: .LBB1_30: ; %loop.exit.guard 287; GLOBALNESS1-NEXT: s_andn2_b64 vcc, exec, s[4:5] 288; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], -1 289; GLOBALNESS1-NEXT: s_cbranch_vccz .LBB1_32 290; GLOBALNESS1-NEXT: ; %bb.31: ; %bb7.i.i 291; GLOBALNESS1-NEXT: s_add_u32 s8, s38, 40 292; GLOBALNESS1-NEXT: s_addc_u32 s9, s39, 0 293; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], s[40:41] 294; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], s[36:37] 295; GLOBALNESS1-NEXT: s_mov_b64 s[10:11], s[34:35] 296; GLOBALNESS1-NEXT: s_mov_b32 s12, s72 297; GLOBALNESS1-NEXT: s_mov_b32 s13, s71 298; GLOBALNESS1-NEXT: s_mov_b32 s14, s70 299; GLOBALNESS1-NEXT: v_mov_b32_e32 v31, v41 300; GLOBALNESS1-NEXT: s_getpc_b64 s[16:17] 301; GLOBALNESS1-NEXT: s_add_u32 s16, s16, widget@rel32@lo+4 302; GLOBALNESS1-NEXT: s_addc_u32 s17, s17, widget@rel32@hi+12 303; GLOBALNESS1-NEXT: s_swappc_b64 s[30:31], s[16:17] 304; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], 0 305; GLOBALNESS1-NEXT: .LBB1_32: ; %Flow 306; GLOBALNESS1-NEXT: s_andn2_b64 vcc, exec, s[4:5] 307; GLOBALNESS1-NEXT: s_cbranch_vccnz .LBB1_34 308; GLOBALNESS1-NEXT: ; %bb.33: ; %bb11.i.i 309; GLOBALNESS1-NEXT: s_add_u32 s8, s38, 40 310; GLOBALNESS1-NEXT: s_addc_u32 s9, s39, 0 311; GLOBALNESS1-NEXT: s_mov_b64 s[4:5], s[40:41] 312; GLOBALNESS1-NEXT: s_mov_b64 s[6:7], s[36:37] 313; GLOBALNESS1-NEXT: s_mov_b64 s[10:11], s[34:35] 314; GLOBALNESS1-NEXT: s_mov_b32 s12, s72 315; GLOBALNESS1-NEXT: s_mov_b32 s13, s71 316; GLOBALNESS1-NEXT: s_mov_b32 s14, s70 317; GLOBALNESS1-NEXT: v_mov_b32_e32 v31, v41 318; GLOBALNESS1-NEXT: s_getpc_b64 s[16:17] 319; GLOBALNESS1-NEXT: s_add_u32 s16, s16, widget@rel32@lo+4 320; GLOBALNESS1-NEXT: s_addc_u32 s17, s17, widget@rel32@hi+12 321; GLOBALNESS1-NEXT: s_swappc_b64 s[30:31], s[16:17] 322; GLOBALNESS1-NEXT: .LBB1_34: ; %UnifiedUnreachableBlock 323; 324; GLOBALNESS0-LABEL: kernel: 325; GLOBALNESS0: ; %bb.0: ; %bb 326; GLOBALNESS0-NEXT: s_mov_b64 s[36:37], s[6:7] 327; GLOBALNESS0-NEXT: s_load_dwordx4 s[72:75], s[8:9], 0x0 328; GLOBALNESS0-NEXT: s_load_dword s6, s[8:9], 0x14 329; GLOBALNESS0-NEXT: v_mov_b32_e32 v41, v0 330; GLOBALNESS0-NEXT: v_mov_b32_e32 v42, 0 331; GLOBALNESS0-NEXT: v_pk_mov_b32 v[0:1], 0, 0 332; GLOBALNESS0-NEXT: global_store_dword v[0:1], v42, off 333; GLOBALNESS0-NEXT: s_waitcnt lgkmcnt(0) 334; GLOBALNESS0-NEXT: global_load_dword v2, v42, s[72:73] 335; GLOBALNESS0-NEXT: s_mov_b64 s[40:41], s[4:5] 336; GLOBALNESS0-NEXT: s_load_dwordx2 s[4:5], s[8:9], 0x18 337; GLOBALNESS0-NEXT: s_load_dword s7, s[8:9], 0x20 338; GLOBALNESS0-NEXT: s_add_u32 flat_scratch_lo, s12, s17 339; GLOBALNESS0-NEXT: s_addc_u32 flat_scratch_hi, s13, 0 340; GLOBALNESS0-NEXT: s_add_u32 s0, s0, s17 341; GLOBALNESS0-NEXT: v_mov_b32_e32 v0, 0 342; GLOBALNESS0-NEXT: s_addc_u32 s1, s1, 0 343; GLOBALNESS0-NEXT: v_mov_b32_e32 v1, 0x40994400 344; GLOBALNESS0-NEXT: s_bitcmp1_b32 s74, 0 345; GLOBALNESS0-NEXT: s_waitcnt lgkmcnt(0) 346; GLOBALNESS0-NEXT: v_cmp_ngt_f64_e32 vcc, s[4:5], v[0:1] 347; GLOBALNESS0-NEXT: v_cmp_ngt_f64_e64 s[4:5], s[4:5], 0 348; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v1, 0, 1, s[4:5] 349; GLOBALNESS0-NEXT: s_cselect_b64 s[4:5], -1, 0 350; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v3, 0, 1, s[4:5] 351; GLOBALNESS0-NEXT: s_xor_b64 s[4:5], s[4:5], -1 352; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 353; GLOBALNESS0-NEXT: s_bitcmp1_b32 s6, 0 354; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[42:43], 1, v0 355; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 356; GLOBALNESS0-NEXT: s_cselect_b64 s[4:5], -1, 0 357; GLOBALNESS0-NEXT: s_xor_b64 s[4:5], s[4:5], -1 358; GLOBALNESS0-NEXT: s_bitcmp1_b32 s7, 0 359; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[48:49], 1, v0 360; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 361; GLOBALNESS0-NEXT: s_cselect_b64 s[4:5], -1, 0 362; GLOBALNESS0-NEXT: s_xor_b64 s[4:5], s[4:5], -1 363; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[50:51], 1, v0 364; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5] 365; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[52:53], 1, v0 366; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[44:45], 1, v1 367; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[46:47], 1, v3 368; GLOBALNESS0-NEXT: s_mov_b32 s68, s16 369; GLOBALNESS0-NEXT: s_mov_b64 s[38:39], s[8:9] 370; GLOBALNESS0-NEXT: s_mov_b32 s69, s15 371; GLOBALNESS0-NEXT: s_mov_b32 s70, s14 372; GLOBALNESS0-NEXT: s_mov_b64 s[34:35], s[10:11] 373; GLOBALNESS0-NEXT: s_mov_b32 s32, 0 374; GLOBALNESS0-NEXT: ; implicit-def: $vgpr44_vgpr45 375; GLOBALNESS0-NEXT: s_waitcnt vmcnt(0) 376; GLOBALNESS0-NEXT: v_cmp_gt_i32_e32 vcc, 0, v2 377; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 378; GLOBALNESS0-NEXT: v_cmp_gt_i32_e32 vcc, 1, v2 379; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc 380; GLOBALNESS0-NEXT: v_cmp_eq_u32_e32 vcc, 1, v2 381; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v3, 0, 1, vcc 382; GLOBALNESS0-NEXT: v_cmp_eq_u32_e32 vcc, 0, v2 383; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v2, 0, 1, vcc 384; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[54:55], 1, v0 385; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[56:57], 1, v1 386; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[58:59], 1, v3 387; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[60:61], 1, v2 388; GLOBALNESS0-NEXT: s_branch .LBB1_4 389; GLOBALNESS0-NEXT: .LBB1_1: ; %bb70.i 390; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 391; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[60:61] 392; GLOBALNESS0-NEXT: s_cbranch_vccz .LBB1_29 393; GLOBALNESS0-NEXT: .LBB1_2: ; %Flow15 394; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 395; GLOBALNESS0-NEXT: s_or_b64 exec, exec, s[4:5] 396; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], 0 397; GLOBALNESS0-NEXT: ; implicit-def: $sgpr4_sgpr5 398; GLOBALNESS0-NEXT: .LBB1_3: ; %Flow28 399; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 400; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[6:7] 401; GLOBALNESS0-NEXT: v_pk_mov_b32 v[44:45], v[0:1], v[0:1] op_sel:[0,1] 402; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_30 403; GLOBALNESS0-NEXT: .LBB1_4: ; %bb5 404; GLOBALNESS0-NEXT: ; =>This Loop Header: Depth=1 405; GLOBALNESS0-NEXT: ; Child Loop BB1_16 Depth 2 406; GLOBALNESS0-NEXT: v_mov_b32_e32 v0, 0x80 407; GLOBALNESS0-NEXT: v_mov_b32_e32 v1, 0 408; GLOBALNESS0-NEXT: flat_load_dword v40, v[0:1] 409; GLOBALNESS0-NEXT: s_add_u32 s8, s38, 40 410; GLOBALNESS0-NEXT: buffer_store_dword v42, off, s[0:3], 0 411; GLOBALNESS0-NEXT: flat_load_dword v46, v[0:1] 412; GLOBALNESS0-NEXT: s_addc_u32 s9, s39, 0 413; GLOBALNESS0-NEXT: s_getpc_b64 s[4:5] 414; GLOBALNESS0-NEXT: s_add_u32 s4, s4, wobble@gotpcrel32@lo+4 415; GLOBALNESS0-NEXT: s_addc_u32 s5, s5, wobble@gotpcrel32@hi+12 416; GLOBALNESS0-NEXT: s_load_dwordx2 s[16:17], s[4:5], 0x0 417; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], s[40:41] 418; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], s[36:37] 419; GLOBALNESS0-NEXT: s_mov_b64 s[10:11], s[34:35] 420; GLOBALNESS0-NEXT: s_mov_b32 s12, s70 421; GLOBALNESS0-NEXT: s_mov_b32 s13, s69 422; GLOBALNESS0-NEXT: s_mov_b32 s14, s68 423; GLOBALNESS0-NEXT: v_mov_b32_e32 v31, v41 424; GLOBALNESS0-NEXT: s_waitcnt lgkmcnt(0) 425; GLOBALNESS0-NEXT: s_swappc_b64 s[30:31], s[16:17] 426; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[46:47] 427; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], -1 428; GLOBALNESS0-NEXT: ; implicit-def: $sgpr4_sgpr5 429; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_9 430; GLOBALNESS0-NEXT: ; %bb.5: ; %NodeBlock 431; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 432; GLOBALNESS0-NEXT: s_cmp_lt_i32 s75, 1 433; GLOBALNESS0-NEXT: s_cbranch_scc1 .LBB1_7 434; GLOBALNESS0-NEXT: ; %bb.6: ; %LeafBlock12 435; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 436; GLOBALNESS0-NEXT: s_cmp_lg_u32 s75, 1 437; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], -1 438; GLOBALNESS0-NEXT: s_cselect_b64 s[6:7], -1, 0 439; GLOBALNESS0-NEXT: s_cbranch_execz .LBB1_8 440; GLOBALNESS0-NEXT: s_branch .LBB1_9 441; GLOBALNESS0-NEXT: .LBB1_7: ; in Loop: Header=BB1_4 Depth=1 442; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], 0 443; GLOBALNESS0-NEXT: ; implicit-def: $sgpr4_sgpr5 444; GLOBALNESS0-NEXT: .LBB1_8: ; %LeafBlock 445; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 446; GLOBALNESS0-NEXT: s_cmp_lg_u32 s75, 0 447; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], 0 448; GLOBALNESS0-NEXT: s_cselect_b64 s[6:7], -1, 0 449; GLOBALNESS0-NEXT: .LBB1_9: ; %Flow25 450; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 451; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[6:7] 452; GLOBALNESS0-NEXT: s_cbranch_vccz .LBB1_24 453; GLOBALNESS0-NEXT: ; %bb.10: ; %baz.exit.i 454; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 455; GLOBALNESS0-NEXT: v_pk_mov_b32 v[2:3], 0, 0 456; GLOBALNESS0-NEXT: flat_load_dword v0, v[2:3] 457; GLOBALNESS0-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) 458; GLOBALNESS0-NEXT: v_cmp_gt_i32_e64 s[62:63], 0, v0 459; GLOBALNESS0-NEXT: v_mov_b32_e32 v0, 0 460; GLOBALNESS0-NEXT: v_mov_b32_e32 v1, 0x3ff00000 461; GLOBALNESS0-NEXT: s_and_saveexec_b64 s[76:77], s[62:63] 462; GLOBALNESS0-NEXT: s_cbranch_execz .LBB1_26 463; GLOBALNESS0-NEXT: ; %bb.11: ; %bb33.i 464; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 465; GLOBALNESS0-NEXT: global_load_dwordx2 v[0:1], v[2:3], off 466; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[54:55] 467; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_13 468; GLOBALNESS0-NEXT: ; %bb.12: ; %bb39.i 469; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 470; GLOBALNESS0-NEXT: v_mov_b32_e32 v43, v42 471; GLOBALNESS0-NEXT: v_pk_mov_b32 v[2:3], 0, 0 472; GLOBALNESS0-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 473; GLOBALNESS0-NEXT: .LBB1_13: ; %bb44.lr.ph.i 474; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 475; GLOBALNESS0-NEXT: v_cmp_ne_u32_e32 vcc, 0, v46 476; GLOBALNESS0-NEXT: v_cndmask_b32_e32 v2, 0, v40, vcc 477; GLOBALNESS0-NEXT: s_waitcnt vmcnt(0) 478; GLOBALNESS0-NEXT: v_cmp_nlt_f64_e32 vcc, 0, v[0:1] 479; GLOBALNESS0-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc 480; GLOBALNESS0-NEXT: v_cmp_eq_u32_e64 s[64:65], 0, v2 481; GLOBALNESS0-NEXT: v_cmp_ne_u32_e64 s[66:67], 1, v0 482; GLOBALNESS0-NEXT: s_branch .LBB1_16 483; GLOBALNESS0-NEXT: .LBB1_14: ; %Flow16 484; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 485; GLOBALNESS0-NEXT: s_or_b64 exec, exec, s[4:5] 486; GLOBALNESS0-NEXT: .LBB1_15: ; %bb63.i 487; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 488; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[52:53] 489; GLOBALNESS0-NEXT: s_cbranch_vccz .LBB1_25 490; GLOBALNESS0-NEXT: .LBB1_16: ; %bb44.i 491; GLOBALNESS0-NEXT: ; Parent Loop BB1_4 Depth=1 492; GLOBALNESS0-NEXT: ; => This Inner Loop Header: Depth=2 493; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[48:49] 494; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_15 495; GLOBALNESS0-NEXT: ; %bb.17: ; %bb46.i 496; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 497; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[50:51] 498; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_15 499; GLOBALNESS0-NEXT: ; %bb.18: ; %bb50.i 500; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 501; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[42:43] 502; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_21 503; GLOBALNESS0-NEXT: ; %bb.19: ; %bb3.i.i 504; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 505; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[44:45] 506; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_21 507; GLOBALNESS0-NEXT: ; %bb.20: ; %bb6.i.i 508; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 509; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[66:67] 510; GLOBALNESS0-NEXT: .LBB1_21: ; %spam.exit.i 511; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 512; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[56:57] 513; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_15 514; GLOBALNESS0-NEXT: ; %bb.22: ; %bb55.i 515; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 516; GLOBALNESS0-NEXT: s_add_u32 s72, s38, 40 517; GLOBALNESS0-NEXT: s_addc_u32 s73, s39, 0 518; GLOBALNESS0-NEXT: s_getpc_b64 s[4:5] 519; GLOBALNESS0-NEXT: s_add_u32 s4, s4, wobble@gotpcrel32@lo+4 520; GLOBALNESS0-NEXT: s_addc_u32 s5, s5, wobble@gotpcrel32@hi+12 521; GLOBALNESS0-NEXT: s_load_dwordx2 s[78:79], s[4:5], 0x0 522; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], s[40:41] 523; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], s[36:37] 524; GLOBALNESS0-NEXT: s_mov_b64 s[8:9], s[72:73] 525; GLOBALNESS0-NEXT: s_mov_b64 s[10:11], s[34:35] 526; GLOBALNESS0-NEXT: s_mov_b32 s12, s70 527; GLOBALNESS0-NEXT: s_mov_b32 s13, s69 528; GLOBALNESS0-NEXT: s_mov_b32 s14, s68 529; GLOBALNESS0-NEXT: v_mov_b32_e32 v31, v41 530; GLOBALNESS0-NEXT: s_waitcnt lgkmcnt(0) 531; GLOBALNESS0-NEXT: s_swappc_b64 s[30:31], s[78:79] 532; GLOBALNESS0-NEXT: v_pk_mov_b32 v[46:47], 0, 0 533; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], s[40:41] 534; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], s[36:37] 535; GLOBALNESS0-NEXT: s_mov_b64 s[8:9], s[72:73] 536; GLOBALNESS0-NEXT: s_mov_b64 s[10:11], s[34:35] 537; GLOBALNESS0-NEXT: s_mov_b32 s12, s70 538; GLOBALNESS0-NEXT: s_mov_b32 s13, s69 539; GLOBALNESS0-NEXT: s_mov_b32 s14, s68 540; GLOBALNESS0-NEXT: v_mov_b32_e32 v31, v41 541; GLOBALNESS0-NEXT: global_store_dwordx2 v[46:47], v[44:45], off 542; GLOBALNESS0-NEXT: s_swappc_b64 s[30:31], s[78:79] 543; GLOBALNESS0-NEXT: s_and_saveexec_b64 s[4:5], s[64:65] 544; GLOBALNESS0-NEXT: s_cbranch_execz .LBB1_14 545; GLOBALNESS0-NEXT: ; %bb.23: ; %bb62.i 546; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_16 Depth=2 547; GLOBALNESS0-NEXT: v_mov_b32_e32 v43, v42 548; GLOBALNESS0-NEXT: global_store_dwordx2 v[46:47], v[42:43], off 549; GLOBALNESS0-NEXT: s_branch .LBB1_14 550; GLOBALNESS0-NEXT: .LBB1_24: ; in Loop: Header=BB1_4 Depth=1 551; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], -1 552; GLOBALNESS0-NEXT: ; implicit-def: $vgpr0_vgpr1 553; GLOBALNESS0-NEXT: s_branch .LBB1_3 554; GLOBALNESS0-NEXT: .LBB1_25: ; %Flow23 555; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 556; GLOBALNESS0-NEXT: v_pk_mov_b32 v[0:1], 0, 0 557; GLOBALNESS0-NEXT: .LBB1_26: ; %Flow24 558; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 559; GLOBALNESS0-NEXT: s_or_b64 exec, exec, s[76:77] 560; GLOBALNESS0-NEXT: s_and_saveexec_b64 s[4:5], s[62:63] 561; GLOBALNESS0-NEXT: s_cbranch_execz .LBB1_2 562; GLOBALNESS0-NEXT: ; %bb.27: ; %bb67.i 563; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 564; GLOBALNESS0-NEXT: s_and_b64 vcc, exec, s[58:59] 565; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_1 566; GLOBALNESS0-NEXT: ; %bb.28: ; %bb69.i 567; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 568; GLOBALNESS0-NEXT: v_mov_b32_e32 v43, v42 569; GLOBALNESS0-NEXT: v_pk_mov_b32 v[2:3], 0, 0 570; GLOBALNESS0-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 571; GLOBALNESS0-NEXT: s_branch .LBB1_1 572; GLOBALNESS0-NEXT: .LBB1_29: ; %bb73.i 573; GLOBALNESS0-NEXT: ; in Loop: Header=BB1_4 Depth=1 574; GLOBALNESS0-NEXT: v_mov_b32_e32 v43, v42 575; GLOBALNESS0-NEXT: v_pk_mov_b32 v[2:3], 0, 0 576; GLOBALNESS0-NEXT: global_store_dwordx2 v[2:3], v[42:43], off 577; GLOBALNESS0-NEXT: s_branch .LBB1_2 578; GLOBALNESS0-NEXT: .LBB1_30: ; %loop.exit.guard 579; GLOBALNESS0-NEXT: s_andn2_b64 vcc, exec, s[4:5] 580; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], -1 581; GLOBALNESS0-NEXT: s_cbranch_vccz .LBB1_32 582; GLOBALNESS0-NEXT: ; %bb.31: ; %bb7.i.i 583; GLOBALNESS0-NEXT: s_add_u32 s8, s38, 40 584; GLOBALNESS0-NEXT: s_addc_u32 s9, s39, 0 585; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], s[40:41] 586; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], s[36:37] 587; GLOBALNESS0-NEXT: s_mov_b64 s[10:11], s[34:35] 588; GLOBALNESS0-NEXT: s_mov_b32 s12, s70 589; GLOBALNESS0-NEXT: s_mov_b32 s13, s69 590; GLOBALNESS0-NEXT: s_mov_b32 s14, s68 591; GLOBALNESS0-NEXT: v_mov_b32_e32 v31, v41 592; GLOBALNESS0-NEXT: s_getpc_b64 s[16:17] 593; GLOBALNESS0-NEXT: s_add_u32 s16, s16, widget@rel32@lo+4 594; GLOBALNESS0-NEXT: s_addc_u32 s17, s17, widget@rel32@hi+12 595; GLOBALNESS0-NEXT: s_swappc_b64 s[30:31], s[16:17] 596; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], 0 597; GLOBALNESS0-NEXT: .LBB1_32: ; %Flow 598; GLOBALNESS0-NEXT: s_andn2_b64 vcc, exec, s[4:5] 599; GLOBALNESS0-NEXT: s_cbranch_vccnz .LBB1_34 600; GLOBALNESS0-NEXT: ; %bb.33: ; %bb11.i.i 601; GLOBALNESS0-NEXT: s_add_u32 s8, s38, 40 602; GLOBALNESS0-NEXT: s_addc_u32 s9, s39, 0 603; GLOBALNESS0-NEXT: s_mov_b64 s[4:5], s[40:41] 604; GLOBALNESS0-NEXT: s_mov_b64 s[6:7], s[36:37] 605; GLOBALNESS0-NEXT: s_mov_b64 s[10:11], s[34:35] 606; GLOBALNESS0-NEXT: s_mov_b32 s12, s70 607; GLOBALNESS0-NEXT: s_mov_b32 s13, s69 608; GLOBALNESS0-NEXT: s_mov_b32 s14, s68 609; GLOBALNESS0-NEXT: v_mov_b32_e32 v31, v41 610; GLOBALNESS0-NEXT: s_getpc_b64 s[16:17] 611; GLOBALNESS0-NEXT: s_add_u32 s16, s16, widget@rel32@lo+4 612; GLOBALNESS0-NEXT: s_addc_u32 s17, s17, widget@rel32@hi+12 613; GLOBALNESS0-NEXT: s_swappc_b64 s[30:31], s[16:17] 614; GLOBALNESS0-NEXT: .LBB1_34: ; %UnifiedUnreachableBlock 615bb: 616 store i32 0, ptr addrspace(1) null, align 4 617 %tmp4 = load i32, ptr addrspace(1) %arg1.global, align 4 618 br label %bb5 619 620bb5: ; preds = %bb5.backedge, %bb 621 %tmp4.i.sroa.0.0 = phi <9 x double> [ undef, %bb ], [ %tmp4.i.sroa.0.1, %bb5.backedge ] 622 %tmp14.1.i = load i32, ptr inttoptr (i64 128 to ptr), align 128 623 store i32 0, ptr addrspace(5) null, align 4 624 %tmp14.2.i = load i32, ptr inttoptr (i64 128 to ptr), align 128 625 %tmp15.2.i = icmp eq i32 %tmp14.2.i, 0 626 %spec.select.2.i = select i1 %tmp15.2.i, i32 0, i32 %tmp14.1.i 627 tail call void @wobble() 628 br i1 %tmp3.i.i, label %bb4.i.i, label %baz.exit.i 629 630bb4.i.i: ; preds = %bb5 631 switch i32 %tmp5.i.i, label %baz.exit.i [ 632 i32 0, label %bb7.i.i 633 i32 1, label %bb11.i.i 634 ] 635 636bb7.i.i: ; preds = %bb4.i.i 637 tail call fastcc void @widget() 638 unreachable 639 640bb11.i.i: ; preds = %bb4.i.i 641 tail call fastcc void @widget() 642 unreachable 643 644baz.exit.i: ; preds = %bb4.i.i, %bb5 645 %tmp26.i = load i32, ptr null, align 4 646 %tmp27.i4 = load double, ptr addrspace(1) null, align 8 647 %tmp31.i = icmp slt i32 %tmp26.i, 0 648 br i1 %tmp31.i, label %bb33.i, label %bb64.i 649 650bb33.i: ; preds = %baz.exit.i 651 %tmp38.i = icmp slt i32 %tmp4, 0 652 br i1 %tmp38.i, label %bb39.i, label %bb44.lr.ph.i 653 654bb39.i: ; preds = %bb33.i 655 store double 0.000000e+00, ptr addrspace(1) null, align 8 656 br label %bb44.lr.ph.i 657 658bb44.lr.ph.i: ; preds = %bb39.i, %bb33.i 659 br label %bb44.i 660 661bb44.i: ; preds = %bb63.i, %bb44.lr.ph.i 662 br i1 %tmp3.i.i, label %bb63.i, label %bb46.i 663 664bb46.i: ; preds = %bb44.i 665 br i1 %tmp438.i, label %bb63.i, label %bb50.i 666 667bb50.i: ; preds = %bb46.i 668 switch i32 0, label %spam.exit.i [ 669 i32 0, label %bb1.i.i 670 ] 671 672bb1.i.i: ; preds = %bb50.i 673 %tmp2.i.i = fcmp ogt double %tmp27.i, 1.617000e+03 674 br i1 %tmp2.i.i, label %spam.exit.i, label %bb3.i.i 675 676bb3.i.i: ; preds = %bb1.i.i 677 %tmp4.i.i = fcmp ogt double %tmp27.i, 0.000000e+00 678 br i1 %tmp4.i.i, label %spam.exit.i, label %bb6.i.i 679 680bb6.i.i: ; preds = %bb3.i.i 681 %tmp7.i.i = fcmp ogt double %tmp27.i4, 0.000000e+00 682 br i1 %tmp7.i.i, label %spam.exit.i, label %bb8.i.i 683 684bb8.i.i: ; preds = %bb6.i.i 685 tail call void null() 686 br label %spam.exit.i 687 688spam.exit.i: ; preds = %bb8.i.i, %bb6.i.i, %bb3.i.i, %bb1.i.i, %bb50.i 689 %tmp22.i = icmp sgt i32 %tmp4, 0 690 br i1 %tmp22.i, label %bb63.i, label %bb55.i 691 692bb55.i: ; preds = %spam.exit.i 693 tail call void @wobble() 694 %tmp0 = extractelement <9 x double> %tmp4.i.sroa.0.0, i32 0 695 store double %tmp0, ptr addrspace(1) null, align 8 696 tail call void @wobble() 697 %tmp61.i = icmp eq i32 %spec.select.2.i, 0 698 br i1 %tmp61.i, label %bb62.i, label %bb63.i 699 700bb62.i: ; preds = %bb55.i 701 store double 0.000000e+00, ptr addrspace(1) null, align 8 702 br label %bb63.i 703 704bb63.i: ; preds = %bb62.i, %bb55.i, %spam.exit.i, %bb46.i, %bb44.i 705 br i1 %tmp48.i, label %bb44.i, label %bb64.i 706 707bb64.i: ; preds = %bb63.i, %baz.exit.i 708 %tmp4.i.sroa.0.1 = phi <9 x double> [ <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>, %baz.exit.i ], [ zeroinitializer, %bb63.i ] 709 br i1 %tmp31.i, label %bb67.i, label %bb5.backedge 710 711bb5.backedge: ; preds = %bb73.i, %bb70.i, %bb64.i 712 br label %bb5 713 714bb67.i: ; preds = %bb64.i 715 %tmp68.i = icmp eq i32 %tmp4, 1 716 br i1 %tmp68.i, label %bb69.i, label %bb70.i 717 718bb69.i: ; preds = %bb67.i 719 store double 0.000000e+00, ptr addrspace(1) null, align 8 720 br label %bb70.i 721 722bb70.i: ; preds = %bb69.i, %bb67.i 723 %tmp3.i.i2 = icmp eq i32 %tmp4, 0 724 br i1 %tmp3.i.i2, label %bb73.i, label %bb5.backedge 725 726bb73.i: ; preds = %bb70.i 727 store double 0.000000e+00, ptr addrspace(1) null, align 8 728 br label %bb5.backedge 729} 730 731!llvm.module.flags = !{!0} 732!0 = !{i32 1, !"amdhsa_code_object_version", i32 500} 733