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