1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s 3 4; Check lowering of some large insertelement that use the stack 5; instead of register indexing. 6 7define amdgpu_kernel void @v_insert_v64i32_varidx(<64 x i32> addrspace(1)* %out.ptr, <64 x i32> addrspace(1)* %ptr, i32 %val, i32 %idx) #0 { 8; GCN-LABEL: v_insert_v64i32_varidx: 9; GCN: ; %bb.0: 10; GCN-NEXT: s_add_u32 s0, s0, s7 11; GCN-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x0 12; GCN-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x10 13; GCN-NEXT: v_mov_b32_e32 v0, 0x100 14; GCN-NEXT: s_addc_u32 s1, s1, 0 15; GCN-NEXT: v_add_u32_e32 v1, 4, v0 16; GCN-NEXT: s_waitcnt lgkmcnt(0) 17; GCN-NEXT: s_load_dwordx16 s[12:27], s[10:11], 0x0 18; GCN-NEXT: s_load_dwordx16 s[68:83], s[10:11], 0x40 19; GCN-NEXT: s_load_dwordx16 s[52:67], s[10:11], 0x80 20; GCN-NEXT: s_load_dwordx16 s[36:51], s[10:11], 0xc0 21; GCN-NEXT: s_movk_i32 s4, 0x50 22; GCN-NEXT: s_waitcnt lgkmcnt(0) 23; GCN-NEXT: v_mov_b32_e32 v4, s13 24; GCN-NEXT: v_mov_b32_e32 v5, s14 25; GCN-NEXT: v_mov_b32_e32 v6, s15 26; GCN-NEXT: v_mov_b32_e32 v8, s16 27; GCN-NEXT: v_mov_b32_e32 v10, s17 28; GCN-NEXT: v_mov_b32_e32 v12, s18 29; GCN-NEXT: v_mov_b32_e32 v14, s19 30; GCN-NEXT: s_movk_i32 s5, 0x60 31; GCN-NEXT: v_add_u32_e32 v2, 8, v0 32; GCN-NEXT: v_add_u32_e32 v3, 12, v0 33; GCN-NEXT: v_add_u32_e32 v7, 16, v0 34; GCN-NEXT: v_add_u32_e32 v9, 20, v0 35; GCN-NEXT: v_add_u32_e32 v11, 24, v0 36; GCN-NEXT: v_add_u32_e32 v13, 28, v0 37; GCN-NEXT: v_add_u32_e32 v15, 32, v0 38; GCN-NEXT: v_mov_b32_e32 v16, s20 39; GCN-NEXT: buffer_store_dword v4, v1, s[0:3], 0 offen 40; GCN-NEXT: buffer_store_dword v5, v2, s[0:3], 0 offen 41; GCN-NEXT: buffer_store_dword v6, v3, s[0:3], 0 offen 42; GCN-NEXT: buffer_store_dword v8, v7, s[0:3], 0 offen 43; GCN-NEXT: buffer_store_dword v10, v9, s[0:3], 0 offen 44; GCN-NEXT: buffer_store_dword v12, v11, s[0:3], 0 offen 45; GCN-NEXT: buffer_store_dword v14, v13, s[0:3], 0 offen 46; GCN-NEXT: buffer_store_dword v16, v15, s[0:3], 0 offen 47; GCN-NEXT: v_add_u32_e32 v17, 36, v0 48; GCN-NEXT: v_mov_b32_e32 v18, s21 49; GCN-NEXT: v_mov_b32_e32 v26, s25 50; GCN-NEXT: v_add_u32_e32 v33, 0x44, v0 51; GCN-NEXT: v_mov_b32_e32 v34, s69 52; GCN-NEXT: v_mov_b32_e32 v4, s71 53; GCN-NEXT: v_add_u32_e32 v19, 40, v0 54; GCN-NEXT: v_mov_b32_e32 v20, s22 55; GCN-NEXT: v_add_u32_e32 v21, 44, v0 56; GCN-NEXT: v_mov_b32_e32 v22, s23 57; GCN-NEXT: v_add_u32_e32 v23, 48, v0 58; GCN-NEXT: v_mov_b32_e32 v24, s24 59; GCN-NEXT: v_add_u32_e32 v25, 52, v0 60; GCN-NEXT: v_add_u32_e32 v27, 56, v0 61; GCN-NEXT: v_mov_b32_e32 v28, s26 62; GCN-NEXT: v_add_u32_e32 v29, 60, v0 63; GCN-NEXT: v_mov_b32_e32 v30, s27 64; GCN-NEXT: v_add_u32_e32 v31, 64, v0 65; GCN-NEXT: v_mov_b32_e32 v32, s68 66; GCN-NEXT: buffer_store_dword v18, v17, s[0:3], 0 offen 67; GCN-NEXT: buffer_store_dword v20, v19, s[0:3], 0 offen 68; GCN-NEXT: buffer_store_dword v22, v21, s[0:3], 0 offen 69; GCN-NEXT: buffer_store_dword v24, v23, s[0:3], 0 offen 70; GCN-NEXT: buffer_store_dword v26, v25, s[0:3], 0 offen 71; GCN-NEXT: buffer_store_dword v28, v27, s[0:3], 0 offen 72; GCN-NEXT: buffer_store_dword v30, v29, s[0:3], 0 offen 73; GCN-NEXT: buffer_store_dword v32, v31, s[0:3], 0 offen 74; GCN-NEXT: s_movk_i32 s13, 0x70 75; GCN-NEXT: v_add_u32_e32 v35, 0x48, v0 76; GCN-NEXT: v_mov_b32_e32 v36, s70 77; GCN-NEXT: v_add_u32_e32 v37, 0x4c, v0 78; GCN-NEXT: v_add_u32_e32 v38, s4, v0 79; GCN-NEXT: v_mov_b32_e32 v5, s72 80; GCN-NEXT: v_add_u32_e32 v39, 0x54, v0 81; GCN-NEXT: v_mov_b32_e32 v6, s73 82; GCN-NEXT: v_add_u32_e32 v40, 0x58, v0 83; GCN-NEXT: v_mov_b32_e32 v8, s74 84; GCN-NEXT: v_add_u32_e32 v41, 0x5c, v0 85; GCN-NEXT: v_mov_b32_e32 v10, s75 86; GCN-NEXT: v_add_u32_e32 v42, s5, v0 87; GCN-NEXT: v_mov_b32_e32 v12, s76 88; GCN-NEXT: buffer_store_dword v34, v33, s[0:3], 0 offen 89; GCN-NEXT: buffer_store_dword v36, v35, s[0:3], 0 offen 90; GCN-NEXT: buffer_store_dword v4, v37, s[0:3], 0 offen 91; GCN-NEXT: buffer_store_dword v5, v38, s[0:3], 0 offen 92; GCN-NEXT: buffer_store_dword v6, v39, s[0:3], 0 offen 93; GCN-NEXT: buffer_store_dword v8, v40, s[0:3], 0 offen 94; GCN-NEXT: buffer_store_dword v10, v41, s[0:3], 0 offen 95; GCN-NEXT: buffer_store_dword v12, v42, s[0:3], 0 offen 96; GCN-NEXT: v_add_u32_e32 v26, 0x64, v0 97; GCN-NEXT: v_mov_b32_e32 v14, s77 98; GCN-NEXT: v_mov_b32_e32 v4, s81 99; GCN-NEXT: s_movk_i32 s14, 0x90 100; GCN-NEXT: s_movk_i32 s15, 0xa0 101; GCN-NEXT: v_add_u32_e32 v28, 0x68, v0 102; GCN-NEXT: v_mov_b32_e32 v16, s78 103; GCN-NEXT: v_add_u32_e32 v30, 0x6c, v0 104; GCN-NEXT: v_mov_b32_e32 v18, s79 105; GCN-NEXT: v_add_u32_e32 v32, s13, v0 106; GCN-NEXT: v_mov_b32_e32 v20, s80 107; GCN-NEXT: v_add_u32_e32 v34, 0x74, v0 108; GCN-NEXT: v_add_u32_e32 v36, 0x78, v0 109; GCN-NEXT: v_mov_b32_e32 v5, s82 110; GCN-NEXT: v_add_u32_e32 v43, 0x7c, v0 111; GCN-NEXT: v_mov_b32_e32 v6, s83 112; GCN-NEXT: v_add_u32_e32 v44, 0x80, v0 113; GCN-NEXT: v_mov_b32_e32 v8, s52 114; GCN-NEXT: buffer_store_dword v14, v26, s[0:3], 0 offen 115; GCN-NEXT: buffer_store_dword v16, v28, s[0:3], 0 offen 116; GCN-NEXT: buffer_store_dword v18, v30, s[0:3], 0 offen 117; GCN-NEXT: buffer_store_dword v20, v32, s[0:3], 0 offen 118; GCN-NEXT: buffer_store_dword v4, v34, s[0:3], 0 offen 119; GCN-NEXT: buffer_store_dword v5, v36, s[0:3], 0 offen 120; GCN-NEXT: buffer_store_dword v6, v43, s[0:3], 0 offen 121; GCN-NEXT: buffer_store_dword v8, v44, s[0:3], 0 offen 122; GCN-NEXT: v_add_u32_e32 v45, 0x84, v0 123; GCN-NEXT: v_mov_b32_e32 v4, s53 124; GCN-NEXT: s_movk_i32 s16, 0xb0 125; GCN-NEXT: v_add_u32_e32 v46, 0x88, v0 126; GCN-NEXT: v_mov_b32_e32 v5, s54 127; GCN-NEXT: v_add_u32_e32 v47, 0x8c, v0 128; GCN-NEXT: v_mov_b32_e32 v6, s55 129; GCN-NEXT: v_add_u32_e32 v48, s14, v0 130; GCN-NEXT: v_mov_b32_e32 v8, s56 131; GCN-NEXT: v_add_u32_e32 v49, 0x94, v0 132; GCN-NEXT: v_mov_b32_e32 v10, s57 133; GCN-NEXT: v_add_u32_e32 v50, 0x98, v0 134; GCN-NEXT: v_mov_b32_e32 v12, s58 135; GCN-NEXT: v_add_u32_e32 v51, 0x9c, v0 136; GCN-NEXT: v_mov_b32_e32 v14, s59 137; GCN-NEXT: v_add_u32_e32 v52, s15, v0 138; GCN-NEXT: v_mov_b32_e32 v16, s60 139; GCN-NEXT: buffer_store_dword v4, v45, s[0:3], 0 offen 140; GCN-NEXT: buffer_store_dword v5, v46, s[0:3], 0 offen 141; GCN-NEXT: buffer_store_dword v6, v47, s[0:3], 0 offen 142; GCN-NEXT: buffer_store_dword v8, v48, s[0:3], 0 offen 143; GCN-NEXT: buffer_store_dword v10, v49, s[0:3], 0 offen 144; GCN-NEXT: buffer_store_dword v12, v50, s[0:3], 0 offen 145; GCN-NEXT: buffer_store_dword v14, v51, s[0:3], 0 offen 146; GCN-NEXT: buffer_store_dword v16, v52, s[0:3], 0 offen 147; GCN-NEXT: v_add_u32_e32 v53, 0xa4, v0 148; GCN-NEXT: v_mov_b32_e32 v4, s61 149; GCN-NEXT: s_movk_i32 s17, 0xd0 150; GCN-NEXT: s_movk_i32 s18, 0xe0 151; GCN-NEXT: v_add_u32_e32 v54, 0xa8, v0 152; GCN-NEXT: v_mov_b32_e32 v5, s62 153; GCN-NEXT: v_add_u32_e32 v55, 0xac, v0 154; GCN-NEXT: v_mov_b32_e32 v6, s63 155; GCN-NEXT: v_add_u32_e32 v56, s16, v0 156; GCN-NEXT: v_mov_b32_e32 v8, s64 157; GCN-NEXT: v_add_u32_e32 v57, 0xb4, v0 158; GCN-NEXT: v_mov_b32_e32 v10, s65 159; GCN-NEXT: v_add_u32_e32 v58, 0xb8, v0 160; GCN-NEXT: v_mov_b32_e32 v12, s66 161; GCN-NEXT: v_add_u32_e32 v59, 0xbc, v0 162; GCN-NEXT: v_mov_b32_e32 v14, s67 163; GCN-NEXT: v_add_u32_e32 v60, 0xc0, v0 164; GCN-NEXT: v_mov_b32_e32 v16, s36 165; GCN-NEXT: buffer_store_dword v4, v53, s[0:3], 0 offen 166; GCN-NEXT: buffer_store_dword v5, v54, s[0:3], 0 offen 167; GCN-NEXT: buffer_store_dword v6, v55, s[0:3], 0 offen 168; GCN-NEXT: buffer_store_dword v8, v56, s[0:3], 0 offen 169; GCN-NEXT: buffer_store_dword v10, v57, s[0:3], 0 offen 170; GCN-NEXT: buffer_store_dword v12, v58, s[0:3], 0 offen 171; GCN-NEXT: buffer_store_dword v14, v59, s[0:3], 0 offen 172; GCN-NEXT: buffer_store_dword v16, v60, s[0:3], 0 offen 173; GCN-NEXT: v_add_u32_e32 v61, 0xc4, v0 174; GCN-NEXT: v_mov_b32_e32 v4, s37 175; GCN-NEXT: s_and_b32 s7, s7, 63 176; GCN-NEXT: s_movk_i32 s19, 0xf0 177; GCN-NEXT: v_add_u32_e32 v62, 0xc8, v0 178; GCN-NEXT: v_mov_b32_e32 v5, s38 179; GCN-NEXT: v_add_u32_e32 v63, 0xcc, v0 180; GCN-NEXT: v_mov_b32_e32 v6, s39 181; GCN-NEXT: v_add_u32_e32 v64, s17, v0 182; GCN-NEXT: v_mov_b32_e32 v8, s40 183; GCN-NEXT: v_add_u32_e32 v65, 0xd4, v0 184; GCN-NEXT: v_mov_b32_e32 v10, s41 185; GCN-NEXT: v_add_u32_e32 v66, 0xd8, v0 186; GCN-NEXT: v_mov_b32_e32 v12, s42 187; GCN-NEXT: v_add_u32_e32 v67, 0xdc, v0 188; GCN-NEXT: v_mov_b32_e32 v14, s43 189; GCN-NEXT: v_add_u32_e32 v68, s18, v0 190; GCN-NEXT: v_mov_b32_e32 v16, s44 191; GCN-NEXT: buffer_store_dword v4, v61, s[0:3], 0 offen 192; GCN-NEXT: buffer_store_dword v5, v62, s[0:3], 0 offen 193; GCN-NEXT: buffer_store_dword v6, v63, s[0:3], 0 offen 194; GCN-NEXT: buffer_store_dword v8, v64, s[0:3], 0 offen 195; GCN-NEXT: buffer_store_dword v10, v65, s[0:3], 0 offen 196; GCN-NEXT: buffer_store_dword v12, v66, s[0:3], 0 offen 197; GCN-NEXT: buffer_store_dword v14, v67, s[0:3], 0 offen 198; GCN-NEXT: buffer_store_dword v16, v68, s[0:3], 0 offen 199; GCN-NEXT: v_add_u32_e32 v69, 0xe4, v0 200; GCN-NEXT: v_mov_b32_e32 v4, s45 201; GCN-NEXT: v_add_u32_e32 v70, 0xe8, v0 202; GCN-NEXT: v_mov_b32_e32 v5, s46 203; GCN-NEXT: v_add_u32_e32 v71, 0xec, v0 204; GCN-NEXT: v_mov_b32_e32 v6, s47 205; GCN-NEXT: v_add_u32_e32 v72, s19, v0 206; GCN-NEXT: v_mov_b32_e32 v8, s48 207; GCN-NEXT: v_add_u32_e32 v73, 0xf4, v0 208; GCN-NEXT: v_mov_b32_e32 v10, s49 209; GCN-NEXT: v_add_u32_e32 v74, 0xf8, v0 210; GCN-NEXT: v_mov_b32_e32 v12, s50 211; GCN-NEXT: buffer_store_dword v4, v69, s[0:3], 0 offen 212; GCN-NEXT: buffer_store_dword v5, v70, s[0:3], 0 offen 213; GCN-NEXT: buffer_store_dword v6, v71, s[0:3], 0 offen 214; GCN-NEXT: buffer_store_dword v8, v72, s[0:3], 0 offen 215; GCN-NEXT: buffer_store_dword v10, v73, s[0:3], 0 offen 216; GCN-NEXT: buffer_store_dword v12, v74, s[0:3], 0 offen 217; GCN-NEXT: v_mov_b32_e32 v4, s12 218; GCN-NEXT: s_lshl_b32 s7, s7, 2 219; GCN-NEXT: v_add_u32_e32 v75, 0xfc, v0 220; GCN-NEXT: v_mov_b32_e32 v14, s51 221; GCN-NEXT: buffer_store_dword v4, off, s[0:3], 0 offset:256 222; GCN-NEXT: buffer_store_dword v14, v75, s[0:3], 0 offen 223; GCN-NEXT: v_mov_b32_e32 v4, s6 224; GCN-NEXT: v_add_u32_e32 v0, s7, v0 225; GCN-NEXT: buffer_store_dword v4, v0, s[0:3], 0 offen 226; GCN-NEXT: buffer_load_dword v1, v1, s[0:3], 0 offen 227; GCN-NEXT: buffer_load_dword v2, v2, s[0:3], 0 offen 228; GCN-NEXT: buffer_load_dword v3, v3, s[0:3], 0 offen 229; GCN-NEXT: buffer_load_dword v4, v7, s[0:3], 0 offen 230; GCN-NEXT: buffer_load_dword v5, v9, s[0:3], 0 offen 231; GCN-NEXT: buffer_load_dword v6, v11, s[0:3], 0 offen 232; GCN-NEXT: buffer_load_dword v7, v13, s[0:3], 0 offen 233; GCN-NEXT: buffer_load_dword v8, v15, s[0:3], 0 offen 234; GCN-NEXT: buffer_load_dword v9, v17, s[0:3], 0 offen 235; GCN-NEXT: buffer_load_dword v10, v19, s[0:3], 0 offen 236; GCN-NEXT: buffer_load_dword v11, v21, s[0:3], 0 offen 237; GCN-NEXT: buffer_load_dword v12, v23, s[0:3], 0 offen 238; GCN-NEXT: buffer_load_dword v13, v25, s[0:3], 0 offen 239; GCN-NEXT: buffer_load_dword v14, v27, s[0:3], 0 offen 240; GCN-NEXT: buffer_load_dword v15, v29, s[0:3], 0 offen 241; GCN-NEXT: buffer_load_dword v16, v31, s[0:3], 0 offen 242; GCN-NEXT: buffer_load_dword v17, v33, s[0:3], 0 offen 243; GCN-NEXT: buffer_load_dword v18, v35, s[0:3], 0 offen 244; GCN-NEXT: buffer_load_dword v19, v37, s[0:3], 0 offen 245; GCN-NEXT: buffer_load_dword v20, v38, s[0:3], 0 offen 246; GCN-NEXT: buffer_load_dword v21, v39, s[0:3], 0 offen 247; GCN-NEXT: buffer_load_dword v22, v40, s[0:3], 0 offen 248; GCN-NEXT: buffer_load_dword v23, v41, s[0:3], 0 offen 249; GCN-NEXT: buffer_load_dword v24, v42, s[0:3], 0 offen 250; GCN-NEXT: buffer_load_dword v25, v26, s[0:3], 0 offen 251; GCN-NEXT: buffer_load_dword v26, v28, s[0:3], 0 offen 252; GCN-NEXT: buffer_load_dword v27, v30, s[0:3], 0 offen 253; GCN-NEXT: buffer_load_dword v28, v32, s[0:3], 0 offen 254; GCN-NEXT: buffer_load_dword v29, v34, s[0:3], 0 offen 255; GCN-NEXT: buffer_load_dword v30, v36, s[0:3], 0 offen 256; GCN-NEXT: buffer_load_dword v31, v43, s[0:3], 0 offen 257; GCN-NEXT: buffer_load_dword v32, v44, s[0:3], 0 offen 258; GCN-NEXT: buffer_load_dword v33, v45, s[0:3], 0 offen 259; GCN-NEXT: buffer_load_dword v34, v46, s[0:3], 0 offen 260; GCN-NEXT: buffer_load_dword v35, v47, s[0:3], 0 offen 261; GCN-NEXT: buffer_load_dword v36, v48, s[0:3], 0 offen 262; GCN-NEXT: buffer_load_dword v37, v49, s[0:3], 0 offen 263; GCN-NEXT: buffer_load_dword v38, v50, s[0:3], 0 offen 264; GCN-NEXT: buffer_load_dword v39, v51, s[0:3], 0 offen 265; GCN-NEXT: buffer_load_dword v40, v52, s[0:3], 0 offen 266; GCN-NEXT: buffer_load_dword v41, v53, s[0:3], 0 offen 267; GCN-NEXT: buffer_load_dword v42, v54, s[0:3], 0 offen 268; GCN-NEXT: buffer_load_dword v43, v55, s[0:3], 0 offen 269; GCN-NEXT: buffer_load_dword v44, v56, s[0:3], 0 offen 270; GCN-NEXT: buffer_load_dword v45, v57, s[0:3], 0 offen 271; GCN-NEXT: buffer_load_dword v46, v58, s[0:3], 0 offen 272; GCN-NEXT: buffer_load_dword v47, v59, s[0:3], 0 offen 273; GCN-NEXT: buffer_load_dword v48, v60, s[0:3], 0 offen 274; GCN-NEXT: buffer_load_dword v49, v61, s[0:3], 0 offen 275; GCN-NEXT: buffer_load_dword v50, v62, s[0:3], 0 offen 276; GCN-NEXT: buffer_load_dword v51, v63, s[0:3], 0 offen 277; GCN-NEXT: buffer_load_dword v52, v64, s[0:3], 0 offen 278; GCN-NEXT: buffer_load_dword v53, v65, s[0:3], 0 offen 279; GCN-NEXT: buffer_load_dword v54, v66, s[0:3], 0 offen 280; GCN-NEXT: buffer_load_dword v55, v67, s[0:3], 0 offen 281; GCN-NEXT: buffer_load_dword v56, v68, s[0:3], 0 offen 282; GCN-NEXT: buffer_load_dword v57, v69, s[0:3], 0 offen 283; GCN-NEXT: buffer_load_dword v58, v70, s[0:3], 0 offen 284; GCN-NEXT: buffer_load_dword v59, v71, s[0:3], 0 offen 285; GCN-NEXT: buffer_load_dword v60, v72, s[0:3], 0 offen 286; GCN-NEXT: buffer_load_dword v61, v73, s[0:3], 0 offen 287; GCN-NEXT: buffer_load_dword v62, v74, s[0:3], 0 offen 288; GCN-NEXT: buffer_load_dword v63, v75, s[0:3], 0 offen 289; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 offset:256 290; GCN-NEXT: s_add_u32 s6, s8, 16 291; GCN-NEXT: s_addc_u32 s7, s9, 0 292; GCN-NEXT: v_mov_b32_e32 v67, s7 293; GCN-NEXT: v_mov_b32_e32 v66, s6 294; GCN-NEXT: s_add_u32 s6, s8, 32 295; GCN-NEXT: s_addc_u32 s7, s9, 0 296; GCN-NEXT: v_mov_b32_e32 v65, s9 297; GCN-NEXT: s_add_u32 s10, s8, 48 298; GCN-NEXT: v_mov_b32_e32 v64, s8 299; GCN-NEXT: s_addc_u32 s11, s9, 0 300; GCN-NEXT: s_waitcnt vmcnt(0) 301; GCN-NEXT: global_store_dwordx4 v[64:65], v[0:3], off 302; GCN-NEXT: global_store_dwordx4 v[66:67], v[4:7], off 303; GCN-NEXT: v_mov_b32_e32 v0, s6 304; GCN-NEXT: v_mov_b32_e32 v1, s7 305; GCN-NEXT: s_add_u32 s6, s8, 64 306; GCN-NEXT: v_mov_b32_e32 v2, s10 307; GCN-NEXT: s_addc_u32 s7, s9, 0 308; GCN-NEXT: v_mov_b32_e32 v3, s11 309; GCN-NEXT: s_add_u32 s10, s8, s4 310; GCN-NEXT: s_addc_u32 s11, s9, 0 311; GCN-NEXT: s_add_u32 s4, s8, s5 312; GCN-NEXT: global_store_dwordx4 v[0:1], v[8:11], off 313; GCN-NEXT: global_store_dwordx4 v[2:3], v[12:15], off 314; GCN-NEXT: v_mov_b32_e32 v0, s6 315; GCN-NEXT: s_addc_u32 s5, s9, 0 316; GCN-NEXT: v_mov_b32_e32 v1, s7 317; GCN-NEXT: s_add_u32 s6, s8, s13 318; GCN-NEXT: v_mov_b32_e32 v2, s10 319; GCN-NEXT: v_mov_b32_e32 v3, s11 320; GCN-NEXT: global_store_dwordx4 v[0:1], v[16:19], off 321; GCN-NEXT: global_store_dwordx4 v[2:3], v[20:23], off 322; GCN-NEXT: s_addc_u32 s7, s9, 0 323; GCN-NEXT: v_mov_b32_e32 v0, s4 324; GCN-NEXT: v_mov_b32_e32 v1, s5 325; GCN-NEXT: s_add_u32 s4, s8, 0x80 326; GCN-NEXT: v_mov_b32_e32 v2, s6 327; GCN-NEXT: s_addc_u32 s5, s9, 0 328; GCN-NEXT: v_mov_b32_e32 v3, s7 329; GCN-NEXT: s_add_u32 s6, s8, s14 330; GCN-NEXT: global_store_dwordx4 v[0:1], v[24:27], off 331; GCN-NEXT: global_store_dwordx4 v[2:3], v[28:31], off 332; GCN-NEXT: s_addc_u32 s7, s9, 0 333; GCN-NEXT: v_mov_b32_e32 v0, s4 334; GCN-NEXT: v_mov_b32_e32 v1, s5 335; GCN-NEXT: s_add_u32 s4, s8, s15 336; GCN-NEXT: v_mov_b32_e32 v2, s6 337; GCN-NEXT: s_addc_u32 s5, s9, 0 338; GCN-NEXT: v_mov_b32_e32 v3, s7 339; GCN-NEXT: s_add_u32 s6, s8, s16 340; GCN-NEXT: global_store_dwordx4 v[0:1], v[32:35], off 341; GCN-NEXT: global_store_dwordx4 v[2:3], v[36:39], off 342; GCN-NEXT: s_addc_u32 s7, s9, 0 343; GCN-NEXT: v_mov_b32_e32 v0, s4 344; GCN-NEXT: v_mov_b32_e32 v1, s5 345; GCN-NEXT: s_add_u32 s4, s8, 0xc0 346; GCN-NEXT: v_mov_b32_e32 v2, s6 347; GCN-NEXT: v_mov_b32_e32 v3, s7 348; GCN-NEXT: global_store_dwordx4 v[0:1], v[40:43], off 349; GCN-NEXT: global_store_dwordx4 v[2:3], v[44:47], off 350; GCN-NEXT: s_addc_u32 s5, s9, 0 351; GCN-NEXT: v_mov_b32_e32 v0, s4 352; GCN-NEXT: v_mov_b32_e32 v1, s5 353; GCN-NEXT: s_add_u32 s4, s8, s17 354; GCN-NEXT: s_addc_u32 s5, s9, 0 355; GCN-NEXT: v_mov_b32_e32 v2, s4 356; GCN-NEXT: v_mov_b32_e32 v3, s5 357; GCN-NEXT: s_add_u32 s4, s8, s18 358; GCN-NEXT: global_store_dwordx4 v[0:1], v[48:51], off 359; GCN-NEXT: global_store_dwordx4 v[2:3], v[52:55], off 360; GCN-NEXT: s_addc_u32 s5, s9, 0 361; GCN-NEXT: v_mov_b32_e32 v0, s4 362; GCN-NEXT: v_mov_b32_e32 v1, s5 363; GCN-NEXT: s_add_u32 s4, s8, s19 364; GCN-NEXT: s_addc_u32 s5, s9, 0 365; GCN-NEXT: v_mov_b32_e32 v2, s4 366; GCN-NEXT: v_mov_b32_e32 v3, s5 367; GCN-NEXT: global_store_dwordx4 v[0:1], v[56:59], off 368; GCN-NEXT: global_store_dwordx4 v[2:3], v[60:63], off 369; GCN-NEXT: s_endpgm 370 %vec = load <64 x i32>, <64 x i32> addrspace(1)* %ptr 371 %insert = insertelement <64 x i32> %vec, i32 %val, i32 %idx 372 store <64 x i32> %insert, <64 x i32> addrspace(1)* %out.ptr 373 ret void 374} 375 376attributes #0 = { "amdgpu-waves-per-eu"="1,10" } 377