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