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