1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -mattr=-xnack -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s 3 4; Check lowering of some large extractelement that use the stack 5; instead of register indexing. 6 7define i32 @v_extract_v64i32_varidx(<64 x i32> addrspace(1)* %ptr, i32 %idx) { 8; GCN-LABEL: v_extract_v64i32_varidx: 9; GCN: ; %bb.0: 10; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 11; GCN-NEXT: s_mov_b32 s6, s33 12; GCN-NEXT: s_add_i32 s33, s32, 0x3fc0 13; GCN-NEXT: s_and_b32 s33, s33, 0xffffc000 14; GCN-NEXT: v_add_co_u32_e32 v3, vcc, 64, v0 15; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill 16; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill 17; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill 18; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill 19; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill 20; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill 21; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill 22; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill 23; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill 24; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill 25; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill 26; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill 27; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill 28; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill 29; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill 30; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill 31; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, 0, v1, vcc 32; GCN-NEXT: s_movk_i32 s4, 0x80 33; GCN-NEXT: global_load_dwordx4 v[8:11], v[3:4], off offset:16 34; GCN-NEXT: global_load_dwordx4 v[12:15], v[3:4], off offset:32 35; GCN-NEXT: global_load_dwordx4 v[56:59], v[3:4], off offset:48 36; GCN-NEXT: s_mov_b32 s5, 0 37; GCN-NEXT: v_mov_b32_e32 v3, s4 38; GCN-NEXT: v_mov_b32_e32 v4, s5 39; GCN-NEXT: v_add_co_u32_e32 v3, vcc, v0, v3 40; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, v1, v4, vcc 41; GCN-NEXT: global_load_dwordx4 v[16:19], v[0:1], off 42; GCN-NEXT: global_load_dwordx4 v[20:23], v[0:1], off offset:16 43; GCN-NEXT: global_load_dwordx4 v[24:27], v[0:1], off offset:32 44; GCN-NEXT: global_load_dwordx4 v[28:31], v[0:1], off offset:48 45; GCN-NEXT: global_load_dwordx4 v[32:35], v[0:1], off offset:64 46; GCN-NEXT: global_load_dwordx4 v[36:39], v[0:1], off offset:128 47; GCN-NEXT: global_load_dwordx4 v[40:43], v[0:1], off offset:192 48; GCN-NEXT: global_load_dwordx4 v[44:47], v[3:4], off offset:16 49; GCN-NEXT: global_load_dwordx4 v[52:55], v[3:4], off offset:32 50; GCN-NEXT: global_load_dwordx4 v[48:51], v[3:4], off offset:48 51; GCN-NEXT: s_movk_i32 s4, 0xc0 52; GCN-NEXT: v_mov_b32_e32 v6, s5 53; GCN-NEXT: v_mov_b32_e32 v5, s4 54; GCN-NEXT: v_add_co_u32_e32 v60, vcc, v0, v5 55; GCN-NEXT: v_addc_co_u32_e32 v61, vcc, v1, v6, vcc 56; GCN-NEXT: v_and_b32_e32 v0, 63, v2 57; GCN-NEXT: v_lshrrev_b32_e64 v1, 6, s33 58; GCN-NEXT: v_lshlrev_b32_e32 v0, 2, v0 59; GCN-NEXT: v_add_u32_e32 v1, 0x100, v1 60; GCN-NEXT: v_add_u32_e32 v0, v1, v0 61; GCN-NEXT: s_add_i32 s32, s32, 0x10000 62; GCN-NEXT: s_add_i32 s32, s32, 0xffff0000 63; GCN-NEXT: s_waitcnt vmcnt(0) 64; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill 65; GCN-NEXT: s_waitcnt vmcnt(0) 66; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill 67; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill 68; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill 69; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill 70; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill 71; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill 72; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill 73; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill 74; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill 75; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill 76; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill 77; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill 78; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill 79; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill 80; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill 81; GCN-NEXT: global_load_dwordx4 v[4:7], v[60:61], off offset:16 82; GCN-NEXT: global_load_dwordx4 v[48:51], v[60:61], off offset:32 83; GCN-NEXT: s_waitcnt vmcnt(0) 84; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill 85; GCN-NEXT: s_waitcnt vmcnt(0) 86; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill 87; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill 88; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill 89; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill 90; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill 91; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill 92; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill 93; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill 94; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill 95; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill 96; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill 97; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill 98; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill 99; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill 100; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill 101; GCN-NEXT: global_load_dwordx4 v[60:63], v[60:61], off offset:48 102; GCN-NEXT: buffer_store_dword v16, off, s[0:3], s33 offset:256 103; GCN-NEXT: buffer_store_dword v17, off, s[0:3], s33 offset:260 104; GCN-NEXT: buffer_store_dword v18, off, s[0:3], s33 offset:264 105; GCN-NEXT: buffer_store_dword v19, off, s[0:3], s33 offset:268 106; GCN-NEXT: buffer_store_dword v20, off, s[0:3], s33 offset:272 107; GCN-NEXT: buffer_store_dword v21, off, s[0:3], s33 offset:276 108; GCN-NEXT: buffer_store_dword v22, off, s[0:3], s33 offset:280 109; GCN-NEXT: buffer_store_dword v23, off, s[0:3], s33 offset:284 110; GCN-NEXT: buffer_store_dword v24, off, s[0:3], s33 offset:288 111; GCN-NEXT: buffer_store_dword v25, off, s[0:3], s33 offset:292 112; GCN-NEXT: buffer_store_dword v26, off, s[0:3], s33 offset:296 113; GCN-NEXT: buffer_store_dword v27, off, s[0:3], s33 offset:300 114; GCN-NEXT: buffer_store_dword v28, off, s[0:3], s33 offset:304 115; GCN-NEXT: buffer_store_dword v29, off, s[0:3], s33 offset:308 116; GCN-NEXT: buffer_store_dword v30, off, s[0:3], s33 offset:312 117; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s33 offset:316 118; GCN-NEXT: buffer_store_dword v32, off, s[0:3], s33 offset:320 119; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s33 offset:324 120; GCN-NEXT: buffer_store_dword v34, off, s[0:3], s33 offset:328 121; GCN-NEXT: buffer_store_dword v35, off, s[0:3], s33 offset:332 122; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:384 123; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:388 124; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:392 125; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:396 126; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:336 127; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:340 128; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:344 129; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:348 130; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:352 131; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:356 132; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:360 133; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:364 134; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:368 135; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:372 136; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:376 137; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:380 138; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:400 139; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:404 140; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:408 141; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:412 142; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:416 143; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:420 144; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:424 145; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:428 146; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload 147; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload 148; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload 149; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload 150; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload 151; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload 152; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload 153; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload 154; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload 155; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload 156; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload 157; GCN-NEXT: buffer_load_dword v19, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload 158; GCN-NEXT: buffer_load_dword v20, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload 159; GCN-NEXT: buffer_load_dword v21, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload 160; GCN-NEXT: buffer_load_dword v22, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload 161; GCN-NEXT: buffer_load_dword v23, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload 162; GCN-NEXT: s_waitcnt vmcnt(0) 163; GCN-NEXT: v_mov_b32_e32 v12, v20 164; GCN-NEXT: v_mov_b32_e32 v13, v21 165; GCN-NEXT: v_mov_b32_e32 v14, v22 166; GCN-NEXT: v_mov_b32_e32 v15, v23 167; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:432 168; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:436 169; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:440 170; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:444 171; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:448 172; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:452 173; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:456 174; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:460 175; GCN-NEXT: buffer_store_dword v4, off, s[0:3], s33 offset:464 176; GCN-NEXT: buffer_store_dword v5, off, s[0:3], s33 offset:468 177; GCN-NEXT: buffer_store_dword v6, off, s[0:3], s33 offset:472 178; GCN-NEXT: buffer_store_dword v7, off, s[0:3], s33 offset:476 179; GCN-NEXT: buffer_load_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload 180; GCN-NEXT: buffer_load_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload 181; GCN-NEXT: buffer_load_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload 182; GCN-NEXT: buffer_load_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload 183; GCN-NEXT: buffer_load_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload 184; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload 185; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload 186; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload 187; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload 188; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload 189; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload 190; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload 191; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload 192; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload 193; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload 194; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload 195; GCN-NEXT: s_waitcnt vmcnt(0) 196; GCN-NEXT: v_mov_b32_e32 v8, v11 197; GCN-NEXT: v_mov_b32_e32 v9, v12 198; GCN-NEXT: v_mov_b32_e32 v10, v13 199; GCN-NEXT: v_mov_b32_e32 v11, v14 200; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:480 201; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:484 202; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:488 203; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:492 204; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:496 205; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:500 206; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:504 207; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 offset:508 208; GCN-NEXT: buffer_load_dword v0, v0, s[0:3], 0 offen 209; GCN-NEXT: buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload 210; GCN-NEXT: buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload 211; GCN-NEXT: buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload 212; GCN-NEXT: buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload 213; GCN-NEXT: buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload 214; GCN-NEXT: buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload 215; GCN-NEXT: buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload 216; GCN-NEXT: buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload 217; GCN-NEXT: buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload 218; GCN-NEXT: buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload 219; GCN-NEXT: buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload 220; GCN-NEXT: buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload 221; GCN-NEXT: buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload 222; GCN-NEXT: buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload 223; GCN-NEXT: buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload 224; GCN-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload 225; GCN-NEXT: s_mov_b32 s33, s6 226; GCN-NEXT: s_waitcnt vmcnt(0) 227; GCN-NEXT: s_setpc_b64 s[30:31] 228 %vec = load <64 x i32>, <64 x i32> addrspace(1)* %ptr 229 %elt = extractelement <64 x i32> %vec, i32 %idx 230 ret i32 %elt 231} 232 233define i16 @v_extract_v128i16_varidx(<128 x i16> addrspace(1)* %ptr, i32 %idx) { 234; GCN-LABEL: v_extract_v128i16_varidx: 235; GCN: ; %bb.0: 236; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 237; GCN-NEXT: s_mov_b32 s6, s33 238; GCN-NEXT: s_add_i32 s33, s32, 0x3fc0 239; GCN-NEXT: s_and_b32 s33, s33, 0xffffc000 240; GCN-NEXT: v_add_co_u32_e32 v3, vcc, 64, v0 241; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill 242; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill 243; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill 244; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill 245; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill 246; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill 247; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill 248; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill 249; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill 250; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill 251; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill 252; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill 253; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill 254; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill 255; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill 256; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill 257; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, 0, v1, vcc 258; GCN-NEXT: s_movk_i32 s4, 0x80 259; GCN-NEXT: global_load_dwordx4 v[8:11], v[3:4], off offset:16 260; GCN-NEXT: global_load_dwordx4 v[12:15], v[3:4], off offset:32 261; GCN-NEXT: global_load_dwordx4 v[56:59], v[3:4], off offset:48 262; GCN-NEXT: s_mov_b32 s5, 0 263; GCN-NEXT: v_mov_b32_e32 v3, s4 264; GCN-NEXT: v_mov_b32_e32 v4, s5 265; GCN-NEXT: v_add_co_u32_e32 v3, vcc, v0, v3 266; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, v1, v4, vcc 267; GCN-NEXT: global_load_dwordx4 v[16:19], v[0:1], off 268; GCN-NEXT: global_load_dwordx4 v[20:23], v[0:1], off offset:16 269; GCN-NEXT: global_load_dwordx4 v[24:27], v[0:1], off offset:32 270; GCN-NEXT: global_load_dwordx4 v[28:31], v[0:1], off offset:48 271; GCN-NEXT: global_load_dwordx4 v[32:35], v[0:1], off offset:64 272; GCN-NEXT: global_load_dwordx4 v[36:39], v[0:1], off offset:128 273; GCN-NEXT: global_load_dwordx4 v[40:43], v[0:1], off offset:192 274; GCN-NEXT: global_load_dwordx4 v[44:47], v[3:4], off offset:16 275; GCN-NEXT: global_load_dwordx4 v[52:55], v[3:4], off offset:32 276; GCN-NEXT: global_load_dwordx4 v[48:51], v[3:4], off offset:48 277; GCN-NEXT: s_movk_i32 s4, 0xc0 278; GCN-NEXT: v_mov_b32_e32 v6, s5 279; GCN-NEXT: v_mov_b32_e32 v5, s4 280; GCN-NEXT: v_add_co_u32_e32 v60, vcc, v0, v5 281; GCN-NEXT: v_addc_co_u32_e32 v61, vcc, v1, v6, vcc 282; GCN-NEXT: v_bfe_u32 v0, v2, 1, 6 283; GCN-NEXT: v_lshlrev_b32_e32 v0, 2, v0 284; GCN-NEXT: v_and_b32_e32 v1, 1, v2 285; GCN-NEXT: v_lshlrev_b32_e32 v1, 4, v1 286; GCN-NEXT: s_add_i32 s32, s32, 0x10000 287; GCN-NEXT: s_add_i32 s32, s32, 0xffff0000 288; GCN-NEXT: s_waitcnt vmcnt(0) 289; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill 290; GCN-NEXT: s_waitcnt vmcnt(0) 291; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill 292; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill 293; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill 294; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill 295; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill 296; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill 297; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill 298; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill 299; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill 300; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill 301; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill 302; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill 303; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill 304; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill 305; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill 306; GCN-NEXT: global_load_dwordx4 v[4:7], v[60:61], off offset:16 307; GCN-NEXT: global_load_dwordx4 v[48:51], v[60:61], off offset:32 308; GCN-NEXT: s_waitcnt vmcnt(0) 309; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill 310; GCN-NEXT: s_waitcnt vmcnt(0) 311; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill 312; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill 313; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill 314; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill 315; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill 316; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill 317; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill 318; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill 319; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill 320; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill 321; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill 322; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill 323; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill 324; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill 325; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill 326; GCN-NEXT: global_load_dwordx4 v[60:63], v[60:61], off offset:48 327; GCN-NEXT: buffer_store_dword v16, off, s[0:3], s33 offset:256 328; GCN-NEXT: buffer_store_dword v17, off, s[0:3], s33 offset:260 329; GCN-NEXT: buffer_store_dword v18, off, s[0:3], s33 offset:264 330; GCN-NEXT: buffer_store_dword v19, off, s[0:3], s33 offset:268 331; GCN-NEXT: buffer_store_dword v20, off, s[0:3], s33 offset:272 332; GCN-NEXT: buffer_store_dword v21, off, s[0:3], s33 offset:276 333; GCN-NEXT: buffer_store_dword v22, off, s[0:3], s33 offset:280 334; GCN-NEXT: buffer_store_dword v23, off, s[0:3], s33 offset:284 335; GCN-NEXT: buffer_store_dword v24, off, s[0:3], s33 offset:288 336; GCN-NEXT: buffer_store_dword v25, off, s[0:3], s33 offset:292 337; GCN-NEXT: buffer_store_dword v26, off, s[0:3], s33 offset:296 338; GCN-NEXT: buffer_store_dword v27, off, s[0:3], s33 offset:300 339; GCN-NEXT: buffer_store_dword v28, off, s[0:3], s33 offset:304 340; GCN-NEXT: buffer_store_dword v29, off, s[0:3], s33 offset:308 341; GCN-NEXT: buffer_store_dword v30, off, s[0:3], s33 offset:312 342; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s33 offset:316 343; GCN-NEXT: buffer_store_dword v32, off, s[0:3], s33 offset:320 344; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s33 offset:324 345; GCN-NEXT: buffer_store_dword v34, off, s[0:3], s33 offset:328 346; GCN-NEXT: buffer_store_dword v35, off, s[0:3], s33 offset:332 347; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:384 348; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:388 349; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:392 350; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:396 351; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:336 352; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:340 353; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:344 354; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:348 355; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:352 356; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:356 357; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:360 358; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:364 359; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:368 360; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:372 361; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:376 362; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:380 363; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:400 364; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:404 365; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:408 366; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:412 367; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:416 368; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:420 369; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:424 370; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:428 371; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload 372; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload 373; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload 374; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload 375; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload 376; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload 377; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload 378; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload 379; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload 380; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload 381; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload 382; GCN-NEXT: buffer_load_dword v19, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload 383; GCN-NEXT: buffer_load_dword v20, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload 384; GCN-NEXT: buffer_load_dword v21, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload 385; GCN-NEXT: buffer_load_dword v22, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload 386; GCN-NEXT: buffer_load_dword v23, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload 387; GCN-NEXT: s_waitcnt vmcnt(0) 388; GCN-NEXT: v_mov_b32_e32 v12, v20 389; GCN-NEXT: v_mov_b32_e32 v13, v21 390; GCN-NEXT: v_mov_b32_e32 v14, v22 391; GCN-NEXT: v_mov_b32_e32 v15, v23 392; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:432 393; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:436 394; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:440 395; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:444 396; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:448 397; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:452 398; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:456 399; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:460 400; GCN-NEXT: buffer_store_dword v4, off, s[0:3], s33 offset:464 401; GCN-NEXT: buffer_store_dword v5, off, s[0:3], s33 offset:468 402; GCN-NEXT: buffer_store_dword v6, off, s[0:3], s33 offset:472 403; GCN-NEXT: buffer_store_dword v7, off, s[0:3], s33 offset:476 404; GCN-NEXT: buffer_load_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload 405; GCN-NEXT: buffer_load_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload 406; GCN-NEXT: buffer_load_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload 407; GCN-NEXT: buffer_load_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload 408; GCN-NEXT: buffer_load_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload 409; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload 410; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload 411; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload 412; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload 413; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload 414; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload 415; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload 416; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload 417; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload 418; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload 419; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload 420; GCN-NEXT: s_waitcnt vmcnt(0) 421; GCN-NEXT: v_mov_b32_e32 v8, v11 422; GCN-NEXT: v_mov_b32_e32 v9, v12 423; GCN-NEXT: v_mov_b32_e32 v10, v13 424; GCN-NEXT: v_mov_b32_e32 v11, v14 425; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:480 426; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:484 427; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:488 428; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:492 429; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:496 430; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:500 431; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:504 432; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 offset:508 433; GCN-NEXT: v_lshrrev_b32_e64 v11, 6, s33 434; GCN-NEXT: v_add_u32_e32 v11, 0x100, v11 435; GCN-NEXT: v_add_u32_e32 v0, v11, v0 436; GCN-NEXT: buffer_load_dword v0, v0, s[0:3], 0 offen 437; GCN-NEXT: buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload 438; GCN-NEXT: buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload 439; GCN-NEXT: buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload 440; GCN-NEXT: buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload 441; GCN-NEXT: buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload 442; GCN-NEXT: buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload 443; GCN-NEXT: buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload 444; GCN-NEXT: buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload 445; GCN-NEXT: buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload 446; GCN-NEXT: buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload 447; GCN-NEXT: buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload 448; GCN-NEXT: buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload 449; GCN-NEXT: buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload 450; GCN-NEXT: buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload 451; GCN-NEXT: buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload 452; GCN-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload 453; GCN-NEXT: s_mov_b32 s33, s6 454; GCN-NEXT: s_waitcnt vmcnt(16) 455; GCN-NEXT: v_lshrrev_b32_e32 v0, v1, v0 456; GCN-NEXT: s_waitcnt vmcnt(0) 457; GCN-NEXT: s_setpc_b64 s[30:31] 458 %vec = load <128 x i16>, <128 x i16> addrspace(1)* %ptr 459 %elt = extractelement <128 x i16> %vec, i32 %idx 460 ret i16 %elt 461} 462 463define i64 @v_extract_v32i64_varidx(<32 x i64> addrspace(1)* %ptr, i32 %idx) { 464; GCN-LABEL: v_extract_v32i64_varidx: 465; GCN: ; %bb.0: 466; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 467; GCN-NEXT: s_mov_b32 s6, s33 468; GCN-NEXT: s_add_i32 s33, s32, 0x3fc0 469; GCN-NEXT: s_and_b32 s33, s33, 0xffffc000 470; GCN-NEXT: v_add_co_u32_e32 v3, vcc, 64, v0 471; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill 472; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill 473; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill 474; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill 475; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill 476; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill 477; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill 478; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill 479; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill 480; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill 481; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill 482; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill 483; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill 484; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill 485; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill 486; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill 487; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, 0, v1, vcc 488; GCN-NEXT: s_movk_i32 s4, 0x80 489; GCN-NEXT: global_load_dwordx4 v[8:11], v[3:4], off offset:16 490; GCN-NEXT: global_load_dwordx4 v[12:15], v[3:4], off offset:32 491; GCN-NEXT: global_load_dwordx4 v[56:59], v[3:4], off offset:48 492; GCN-NEXT: s_mov_b32 s5, 0 493; GCN-NEXT: v_mov_b32_e32 v3, s4 494; GCN-NEXT: v_mov_b32_e32 v4, s5 495; GCN-NEXT: v_add_co_u32_e32 v3, vcc, v0, v3 496; GCN-NEXT: v_addc_co_u32_e32 v4, vcc, v1, v4, vcc 497; GCN-NEXT: global_load_dwordx4 v[16:19], v[0:1], off 498; GCN-NEXT: global_load_dwordx4 v[20:23], v[0:1], off offset:16 499; GCN-NEXT: global_load_dwordx4 v[24:27], v[0:1], off offset:32 500; GCN-NEXT: global_load_dwordx4 v[28:31], v[0:1], off offset:48 501; GCN-NEXT: global_load_dwordx4 v[32:35], v[0:1], off offset:64 502; GCN-NEXT: global_load_dwordx4 v[36:39], v[0:1], off offset:128 503; GCN-NEXT: global_load_dwordx4 v[40:43], v[0:1], off offset:192 504; GCN-NEXT: global_load_dwordx4 v[44:47], v[3:4], off offset:16 505; GCN-NEXT: global_load_dwordx4 v[52:55], v[3:4], off offset:32 506; GCN-NEXT: global_load_dwordx4 v[48:51], v[3:4], off offset:48 507; GCN-NEXT: s_movk_i32 s4, 0xc0 508; GCN-NEXT: v_mov_b32_e32 v6, s5 509; GCN-NEXT: v_mov_b32_e32 v5, s4 510; GCN-NEXT: v_add_co_u32_e32 v60, vcc, v0, v5 511; GCN-NEXT: v_addc_co_u32_e32 v61, vcc, v1, v6, vcc 512; GCN-NEXT: v_and_b32_e32 v0, 31, v2 513; GCN-NEXT: v_lshrrev_b32_e64 v2, 6, s33 514; GCN-NEXT: v_lshlrev_b32_e32 v0, 3, v0 515; GCN-NEXT: v_add_u32_e32 v2, 0x100, v2 516; GCN-NEXT: v_add_u32_e32 v1, v2, v0 517; GCN-NEXT: s_add_i32 s32, s32, 0x10000 518; GCN-NEXT: s_add_i32 s32, s32, 0xffff0000 519; GCN-NEXT: s_waitcnt vmcnt(0) 520; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill 521; GCN-NEXT: s_waitcnt vmcnt(0) 522; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill 523; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill 524; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill 525; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill 526; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill 527; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill 528; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill 529; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill 530; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill 531; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill 532; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill 533; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill 534; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill 535; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill 536; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill 537; GCN-NEXT: global_load_dwordx4 v[4:7], v[60:61], off offset:16 538; GCN-NEXT: global_load_dwordx4 v[48:51], v[60:61], off offset:32 539; GCN-NEXT: s_waitcnt vmcnt(0) 540; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill 541; GCN-NEXT: s_waitcnt vmcnt(0) 542; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill 543; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill 544; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill 545; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill 546; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill 547; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill 548; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill 549; GCN-NEXT: buffer_store_dword v48, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill 550; GCN-NEXT: buffer_store_dword v49, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill 551; GCN-NEXT: buffer_store_dword v50, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill 552; GCN-NEXT: buffer_store_dword v51, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill 553; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill 554; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill 555; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill 556; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill 557; GCN-NEXT: global_load_dwordx4 v[60:63], v[60:61], off offset:48 558; GCN-NEXT: buffer_store_dword v16, off, s[0:3], s33 offset:256 559; GCN-NEXT: buffer_store_dword v17, off, s[0:3], s33 offset:260 560; GCN-NEXT: buffer_store_dword v18, off, s[0:3], s33 offset:264 561; GCN-NEXT: buffer_store_dword v19, off, s[0:3], s33 offset:268 562; GCN-NEXT: buffer_store_dword v20, off, s[0:3], s33 offset:272 563; GCN-NEXT: buffer_store_dword v21, off, s[0:3], s33 offset:276 564; GCN-NEXT: buffer_store_dword v22, off, s[0:3], s33 offset:280 565; GCN-NEXT: buffer_store_dword v23, off, s[0:3], s33 offset:284 566; GCN-NEXT: buffer_store_dword v24, off, s[0:3], s33 offset:288 567; GCN-NEXT: buffer_store_dword v25, off, s[0:3], s33 offset:292 568; GCN-NEXT: buffer_store_dword v26, off, s[0:3], s33 offset:296 569; GCN-NEXT: buffer_store_dword v27, off, s[0:3], s33 offset:300 570; GCN-NEXT: buffer_store_dword v28, off, s[0:3], s33 offset:304 571; GCN-NEXT: buffer_store_dword v29, off, s[0:3], s33 offset:308 572; GCN-NEXT: buffer_store_dword v30, off, s[0:3], s33 offset:312 573; GCN-NEXT: buffer_store_dword v31, off, s[0:3], s33 offset:316 574; GCN-NEXT: buffer_store_dword v32, off, s[0:3], s33 offset:320 575; GCN-NEXT: buffer_store_dword v33, off, s[0:3], s33 offset:324 576; GCN-NEXT: buffer_store_dword v34, off, s[0:3], s33 offset:328 577; GCN-NEXT: buffer_store_dword v35, off, s[0:3], s33 offset:332 578; GCN-NEXT: buffer_store_dword v36, off, s[0:3], s33 offset:384 579; GCN-NEXT: buffer_store_dword v37, off, s[0:3], s33 offset:388 580; GCN-NEXT: buffer_store_dword v38, off, s[0:3], s33 offset:392 581; GCN-NEXT: buffer_store_dword v39, off, s[0:3], s33 offset:396 582; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:336 583; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:340 584; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:344 585; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:348 586; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:352 587; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:356 588; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:360 589; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:364 590; GCN-NEXT: buffer_store_dword v56, off, s[0:3], s33 offset:368 591; GCN-NEXT: buffer_store_dword v57, off, s[0:3], s33 offset:372 592; GCN-NEXT: buffer_store_dword v58, off, s[0:3], s33 offset:376 593; GCN-NEXT: buffer_store_dword v59, off, s[0:3], s33 offset:380 594; GCN-NEXT: buffer_store_dword v44, off, s[0:3], s33 offset:400 595; GCN-NEXT: buffer_store_dword v45, off, s[0:3], s33 offset:404 596; GCN-NEXT: buffer_store_dword v46, off, s[0:3], s33 offset:408 597; GCN-NEXT: buffer_store_dword v47, off, s[0:3], s33 offset:412 598; GCN-NEXT: buffer_store_dword v52, off, s[0:3], s33 offset:416 599; GCN-NEXT: buffer_store_dword v53, off, s[0:3], s33 offset:420 600; GCN-NEXT: buffer_store_dword v54, off, s[0:3], s33 offset:424 601; GCN-NEXT: buffer_store_dword v55, off, s[0:3], s33 offset:428 602; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload 603; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload 604; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload 605; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload 606; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload 607; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload 608; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload 609; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload 610; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload 611; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload 612; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload 613; GCN-NEXT: buffer_load_dword v19, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload 614; GCN-NEXT: buffer_load_dword v20, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload 615; GCN-NEXT: buffer_load_dword v21, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload 616; GCN-NEXT: buffer_load_dword v22, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload 617; GCN-NEXT: buffer_load_dword v23, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload 618; GCN-NEXT: s_waitcnt vmcnt(0) 619; GCN-NEXT: v_mov_b32_e32 v12, v20 620; GCN-NEXT: v_mov_b32_e32 v13, v21 621; GCN-NEXT: v_mov_b32_e32 v14, v22 622; GCN-NEXT: v_mov_b32_e32 v15, v23 623; GCN-NEXT: buffer_store_dword v12, off, s[0:3], s33 offset:432 624; GCN-NEXT: buffer_store_dword v13, off, s[0:3], s33 offset:436 625; GCN-NEXT: buffer_store_dword v14, off, s[0:3], s33 offset:440 626; GCN-NEXT: buffer_store_dword v15, off, s[0:3], s33 offset:444 627; GCN-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:448 628; GCN-NEXT: buffer_store_dword v41, off, s[0:3], s33 offset:452 629; GCN-NEXT: buffer_store_dword v42, off, s[0:3], s33 offset:456 630; GCN-NEXT: buffer_store_dword v43, off, s[0:3], s33 offset:460 631; GCN-NEXT: buffer_store_dword v4, off, s[0:3], s33 offset:464 632; GCN-NEXT: buffer_store_dword v5, off, s[0:3], s33 offset:468 633; GCN-NEXT: buffer_store_dword v6, off, s[0:3], s33 offset:472 634; GCN-NEXT: buffer_store_dword v7, off, s[0:3], s33 offset:476 635; GCN-NEXT: buffer_load_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload 636; GCN-NEXT: buffer_load_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload 637; GCN-NEXT: buffer_load_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload 638; GCN-NEXT: buffer_load_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload 639; GCN-NEXT: buffer_load_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload 640; GCN-NEXT: buffer_load_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload 641; GCN-NEXT: buffer_load_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload 642; GCN-NEXT: buffer_load_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload 643; GCN-NEXT: buffer_load_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload 644; GCN-NEXT: buffer_load_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload 645; GCN-NEXT: buffer_load_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload 646; GCN-NEXT: buffer_load_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload 647; GCN-NEXT: buffer_load_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload 648; GCN-NEXT: buffer_load_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload 649; GCN-NEXT: buffer_load_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload 650; GCN-NEXT: buffer_load_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload 651; GCN-NEXT: s_waitcnt vmcnt(0) 652; GCN-NEXT: v_mov_b32_e32 v8, v11 653; GCN-NEXT: v_mov_b32_e32 v9, v12 654; GCN-NEXT: v_mov_b32_e32 v10, v13 655; GCN-NEXT: v_mov_b32_e32 v11, v14 656; GCN-NEXT: buffer_store_dword v8, off, s[0:3], s33 offset:480 657; GCN-NEXT: buffer_store_dword v9, off, s[0:3], s33 offset:484 658; GCN-NEXT: buffer_store_dword v10, off, s[0:3], s33 offset:488 659; GCN-NEXT: buffer_store_dword v11, off, s[0:3], s33 offset:492 660; GCN-NEXT: buffer_store_dword v60, off, s[0:3], s33 offset:496 661; GCN-NEXT: buffer_store_dword v61, off, s[0:3], s33 offset:500 662; GCN-NEXT: buffer_store_dword v62, off, s[0:3], s33 offset:504 663; GCN-NEXT: buffer_store_dword v63, off, s[0:3], s33 offset:508 664; GCN-NEXT: buffer_load_dword v0, v1, s[0:3], 0 offen 665; GCN-NEXT: buffer_load_dword v1, v1, s[0:3], 0 offen offset:4 666; GCN-NEXT: buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload 667; GCN-NEXT: buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload 668; GCN-NEXT: buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload 669; GCN-NEXT: buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload 670; GCN-NEXT: buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload 671; GCN-NEXT: buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload 672; GCN-NEXT: buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload 673; GCN-NEXT: buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload 674; GCN-NEXT: buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload 675; GCN-NEXT: buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload 676; GCN-NEXT: buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload 677; GCN-NEXT: buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload 678; GCN-NEXT: buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload 679; GCN-NEXT: buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload 680; GCN-NEXT: buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload 681; GCN-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload 682; GCN-NEXT: s_mov_b32 s33, s6 683; GCN-NEXT: s_waitcnt vmcnt(0) 684; GCN-NEXT: s_setpc_b64 s[30:31] 685 %vec = load <32 x i64>, <32 x i64> addrspace(1)* %ptr 686 %elt = extractelement <32 x i64> %vec, i32 %idx 687 ret i64 %elt 688} 689