1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 2; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx900 -O0 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX900 %s 3; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx906 -O0 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX906 %s 4; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx908 -O0 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX908 %s 5; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx90a -O0 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX90a %s 6 7; This test used to crash for gfx908 while allocating the tuple. Compared to the other subtargets, 8; gfx908 marks an extra VGPR reserved for AGPR to VGPR copy that puts more register pressure. 9; To minimize the register pressure, the VGPRs used for CSR SGPR spilling has been picked from the 10; higher available range there by allowing more VGPRs available in the lowest range for allocation. 11 12define i32 @test_tuple(<16 x i64> %0) { 13; GFX900-LABEL: test_tuple: 14; GFX900: ; %bb.0: 15; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 16; GFX900-NEXT: s_or_saveexec_b64 s[4:5], -1 17; GFX900-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill 18; GFX900-NEXT: s_mov_b64 exec, s[4:5] 19; GFX900-NEXT: buffer_store_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill 20; GFX900-NEXT: buffer_store_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill 21; GFX900-NEXT: buffer_store_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill 22; GFX900-NEXT: buffer_store_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill 23; GFX900-NEXT: buffer_store_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill 24; GFX900-NEXT: buffer_store_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill 25; GFX900-NEXT: buffer_store_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill 26; GFX900-NEXT: buffer_store_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill 27; GFX900-NEXT: buffer_store_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill 28; GFX900-NEXT: buffer_store_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill 29; GFX900-NEXT: buffer_store_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill 30; GFX900-NEXT: buffer_store_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill 31; GFX900-NEXT: buffer_store_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill 32; GFX900-NEXT: buffer_store_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill 33; GFX900-NEXT: buffer_store_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill 34; GFX900-NEXT: v_writelane_b32 v63, s36, 0 35; GFX900-NEXT: v_writelane_b32 v63, s37, 1 36; GFX900-NEXT: v_writelane_b32 v63, s38, 2 37; GFX900-NEXT: v_writelane_b32 v63, s39, 3 38; GFX900-NEXT: v_writelane_b32 v63, s40, 4 39; GFX900-NEXT: v_writelane_b32 v63, s41, 5 40; GFX900-NEXT: v_writelane_b32 v63, s42, 6 41; GFX900-NEXT: v_writelane_b32 v63, s43, 7 42; GFX900-NEXT: v_writelane_b32 v63, s44, 8 43; GFX900-NEXT: v_writelane_b32 v63, s45, 9 44; GFX900-NEXT: v_writelane_b32 v63, s46, 10 45; GFX900-NEXT: v_writelane_b32 v63, s47, 11 46; GFX900-NEXT: v_writelane_b32 v63, s48, 12 47; GFX900-NEXT: v_writelane_b32 v63, s49, 13 48; GFX900-NEXT: v_writelane_b32 v63, s50, 14 49; GFX900-NEXT: v_writelane_b32 v63, s51, 15 50; GFX900-NEXT: v_writelane_b32 v63, s52, 16 51; GFX900-NEXT: v_writelane_b32 v63, s53, 17 52; GFX900-NEXT: v_writelane_b32 v63, s54, 18 53; GFX900-NEXT: v_writelane_b32 v63, s55, 19 54; GFX900-NEXT: v_writelane_b32 v63, s56, 20 55; GFX900-NEXT: v_writelane_b32 v63, s57, 21 56; GFX900-NEXT: v_writelane_b32 v63, s58, 22 57; GFX900-NEXT: v_writelane_b32 v63, s59, 23 58; GFX900-NEXT: v_writelane_b32 v63, s60, 24 59; GFX900-NEXT: v_writelane_b32 v63, s61, 25 60; GFX900-NEXT: v_writelane_b32 v63, s62, 26 61; GFX900-NEXT: v_writelane_b32 v63, s63, 27 62; GFX900-NEXT: v_writelane_b32 v63, s64, 28 63; GFX900-NEXT: v_writelane_b32 v63, s65, 29 64; GFX900-NEXT: v_writelane_b32 v63, s66, 30 65; GFX900-NEXT: v_writelane_b32 v63, s67, 31 66; GFX900-NEXT: v_mov_b32_e32 v33, v30 67; GFX900-NEXT: v_mov_b32_e32 v34, v29 68; GFX900-NEXT: v_mov_b32_e32 v35, v28 69; GFX900-NEXT: v_mov_b32_e32 v36, v27 70; GFX900-NEXT: v_mov_b32_e32 v37, v26 71; GFX900-NEXT: v_mov_b32_e32 v38, v25 72; GFX900-NEXT: v_mov_b32_e32 v39, v24 73; GFX900-NEXT: v_mov_b32_e32 v48, v23 74; GFX900-NEXT: v_mov_b32_e32 v49, v22 75; GFX900-NEXT: v_mov_b32_e32 v50, v21 76; GFX900-NEXT: v_mov_b32_e32 v51, v20 77; GFX900-NEXT: v_mov_b32_e32 v52, v19 78; GFX900-NEXT: v_mov_b32_e32 v53, v18 79; GFX900-NEXT: v_mov_b32_e32 v54, v17 80; GFX900-NEXT: v_mov_b32_e32 v55, v16 81; GFX900-NEXT: v_mov_b32_e32 v40, v15 82; GFX900-NEXT: v_mov_b32_e32 v41, v14 83; GFX900-NEXT: v_mov_b32_e32 v42, v13 84; GFX900-NEXT: v_mov_b32_e32 v43, v12 85; GFX900-NEXT: v_mov_b32_e32 v44, v11 86; GFX900-NEXT: v_mov_b32_e32 v45, v10 87; GFX900-NEXT: v_mov_b32_e32 v46, v9 88; GFX900-NEXT: v_mov_b32_e32 v47, v8 89; GFX900-NEXT: v_mov_b32_e32 v56, v7 90; GFX900-NEXT: v_mov_b32_e32 v57, v6 91; GFX900-NEXT: v_mov_b32_e32 v58, v5 92; GFX900-NEXT: v_mov_b32_e32 v59, v4 93; GFX900-NEXT: v_mov_b32_e32 v60, v3 94; GFX900-NEXT: v_mov_b32_e32 v61, v2 95; GFX900-NEXT: v_mov_b32_e32 v62, v1 96; GFX900-NEXT: buffer_load_dword v32, off, s[0:3], s32 97; GFX900-NEXT: ; implicit-def: $sgpr4 98; GFX900-NEXT: ; implicit-def: $sgpr4 99; GFX900-NEXT: ; implicit-def: $sgpr4 100; GFX900-NEXT: ; implicit-def: $sgpr4 101; GFX900-NEXT: ; implicit-def: $sgpr4 102; GFX900-NEXT: ; implicit-def: $sgpr4 103; GFX900-NEXT: ; implicit-def: $sgpr4 104; GFX900-NEXT: ; implicit-def: $sgpr4 105; GFX900-NEXT: ; implicit-def: $sgpr4 106; GFX900-NEXT: ; implicit-def: $sgpr4 107; GFX900-NEXT: ; implicit-def: $sgpr4 108; GFX900-NEXT: ; implicit-def: $sgpr4 109; GFX900-NEXT: ; implicit-def: $sgpr4 110; GFX900-NEXT: ; implicit-def: $sgpr4 111; GFX900-NEXT: ; implicit-def: $sgpr4 112; GFX900-NEXT: ; implicit-def: $sgpr4 113; GFX900-NEXT: ; implicit-def: $sgpr4 114; GFX900-NEXT: ; implicit-def: $sgpr4 115; GFX900-NEXT: ; implicit-def: $sgpr4 116; GFX900-NEXT: ; implicit-def: $sgpr4 117; GFX900-NEXT: ; implicit-def: $sgpr4 118; GFX900-NEXT: ; implicit-def: $sgpr4 119; GFX900-NEXT: ; implicit-def: $sgpr4 120; GFX900-NEXT: ; implicit-def: $sgpr4 121; GFX900-NEXT: ; implicit-def: $sgpr4 122; GFX900-NEXT: ; implicit-def: $sgpr4 123; GFX900-NEXT: ; implicit-def: $sgpr4 124; GFX900-NEXT: ; implicit-def: $sgpr4 125; GFX900-NEXT: ; implicit-def: $sgpr4 126; GFX900-NEXT: ; implicit-def: $sgpr4 127; GFX900-NEXT: ; implicit-def: $sgpr4 128; GFX900-NEXT: ; implicit-def: $sgpr4 129; GFX900-NEXT: ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 killed $exec 130; GFX900-NEXT: v_mov_b32_e32 v1, v62 131; GFX900-NEXT: v_mov_b32_e32 v2, v61 132; GFX900-NEXT: v_mov_b32_e32 v3, v60 133; GFX900-NEXT: v_mov_b32_e32 v4, v59 134; GFX900-NEXT: v_mov_b32_e32 v5, v58 135; GFX900-NEXT: v_mov_b32_e32 v6, v57 136; GFX900-NEXT: v_mov_b32_e32 v7, v56 137; GFX900-NEXT: v_mov_b32_e32 v8, v47 138; GFX900-NEXT: v_mov_b32_e32 v9, v46 139; GFX900-NEXT: v_mov_b32_e32 v10, v45 140; GFX900-NEXT: v_mov_b32_e32 v11, v44 141; GFX900-NEXT: v_mov_b32_e32 v12, v43 142; GFX900-NEXT: v_mov_b32_e32 v13, v42 143; GFX900-NEXT: v_mov_b32_e32 v14, v41 144; GFX900-NEXT: v_mov_b32_e32 v15, v40 145; GFX900-NEXT: v_mov_b32_e32 v16, v55 146; GFX900-NEXT: v_mov_b32_e32 v17, v54 147; GFX900-NEXT: v_mov_b32_e32 v18, v53 148; GFX900-NEXT: v_mov_b32_e32 v19, v52 149; GFX900-NEXT: v_mov_b32_e32 v20, v51 150; GFX900-NEXT: v_mov_b32_e32 v21, v50 151; GFX900-NEXT: v_mov_b32_e32 v22, v49 152; GFX900-NEXT: v_mov_b32_e32 v23, v48 153; GFX900-NEXT: v_mov_b32_e32 v24, v39 154; GFX900-NEXT: v_mov_b32_e32 v25, v38 155; GFX900-NEXT: v_mov_b32_e32 v26, v37 156; GFX900-NEXT: v_mov_b32_e32 v27, v36 157; GFX900-NEXT: v_mov_b32_e32 v28, v35 158; GFX900-NEXT: v_mov_b32_e32 v29, v34 159; GFX900-NEXT: v_mov_b32_e32 v30, v33 160; GFX900-NEXT: ; kill: def $vgpr31 killed $vgpr32 killed $exec 161; GFX900-NEXT: ; implicit-def: $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 162; GFX900-NEXT: v_mov_b32_e32 v0, 0 163; GFX900-NEXT: v_readlane_b32 s67, v63, 31 164; GFX900-NEXT: v_readlane_b32 s66, v63, 30 165; GFX900-NEXT: v_readlane_b32 s65, v63, 29 166; GFX900-NEXT: v_readlane_b32 s64, v63, 28 167; GFX900-NEXT: v_readlane_b32 s63, v63, 27 168; GFX900-NEXT: v_readlane_b32 s62, v63, 26 169; GFX900-NEXT: v_readlane_b32 s61, v63, 25 170; GFX900-NEXT: v_readlane_b32 s60, v63, 24 171; GFX900-NEXT: v_readlane_b32 s59, v63, 23 172; GFX900-NEXT: v_readlane_b32 s58, v63, 22 173; GFX900-NEXT: v_readlane_b32 s57, v63, 21 174; GFX900-NEXT: v_readlane_b32 s56, v63, 20 175; GFX900-NEXT: v_readlane_b32 s55, v63, 19 176; GFX900-NEXT: v_readlane_b32 s54, v63, 18 177; GFX900-NEXT: v_readlane_b32 s53, v63, 17 178; GFX900-NEXT: v_readlane_b32 s52, v63, 16 179; GFX900-NEXT: v_readlane_b32 s51, v63, 15 180; GFX900-NEXT: v_readlane_b32 s50, v63, 14 181; GFX900-NEXT: v_readlane_b32 s49, v63, 13 182; GFX900-NEXT: v_readlane_b32 s48, v63, 12 183; GFX900-NEXT: v_readlane_b32 s47, v63, 11 184; GFX900-NEXT: v_readlane_b32 s46, v63, 10 185; GFX900-NEXT: v_readlane_b32 s45, v63, 9 186; GFX900-NEXT: v_readlane_b32 s44, v63, 8 187; GFX900-NEXT: v_readlane_b32 s43, v63, 7 188; GFX900-NEXT: v_readlane_b32 s42, v63, 6 189; GFX900-NEXT: v_readlane_b32 s41, v63, 5 190; GFX900-NEXT: v_readlane_b32 s40, v63, 4 191; GFX900-NEXT: v_readlane_b32 s39, v63, 3 192; GFX900-NEXT: v_readlane_b32 s38, v63, 2 193; GFX900-NEXT: v_readlane_b32 s37, v63, 1 194; GFX900-NEXT: v_readlane_b32 s36, v63, 0 195; GFX900-NEXT: buffer_load_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload 196; GFX900-NEXT: buffer_load_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload 197; GFX900-NEXT: buffer_load_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload 198; GFX900-NEXT: buffer_load_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload 199; GFX900-NEXT: buffer_load_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload 200; GFX900-NEXT: buffer_load_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload 201; GFX900-NEXT: buffer_load_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload 202; GFX900-NEXT: buffer_load_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload 203; GFX900-NEXT: buffer_load_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload 204; GFX900-NEXT: buffer_load_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload 205; GFX900-NEXT: buffer_load_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload 206; GFX900-NEXT: buffer_load_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload 207; GFX900-NEXT: buffer_load_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload 208; GFX900-NEXT: buffer_load_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload 209; GFX900-NEXT: buffer_load_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload 210; GFX900-NEXT: s_or_saveexec_b64 s[4:5], -1 211; GFX900-NEXT: buffer_load_dword v63, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload 212; GFX900-NEXT: s_mov_b64 exec, s[4:5] 213; GFX900-NEXT: s_waitcnt vmcnt(0) 214; GFX900-NEXT: s_setpc_b64 s[30:31] 215; 216; GFX906-LABEL: test_tuple: 217; GFX906: ; %bb.0: 218; GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 219; GFX906-NEXT: s_or_saveexec_b64 s[4:5], -1 220; GFX906-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill 221; GFX906-NEXT: s_mov_b64 exec, s[4:5] 222; GFX906-NEXT: buffer_store_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill 223; GFX906-NEXT: buffer_store_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill 224; GFX906-NEXT: buffer_store_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill 225; GFX906-NEXT: buffer_store_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill 226; GFX906-NEXT: buffer_store_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill 227; GFX906-NEXT: buffer_store_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill 228; GFX906-NEXT: buffer_store_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill 229; GFX906-NEXT: buffer_store_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill 230; GFX906-NEXT: buffer_store_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill 231; GFX906-NEXT: buffer_store_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill 232; GFX906-NEXT: buffer_store_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill 233; GFX906-NEXT: buffer_store_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill 234; GFX906-NEXT: buffer_store_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill 235; GFX906-NEXT: buffer_store_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill 236; GFX906-NEXT: buffer_store_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill 237; GFX906-NEXT: v_writelane_b32 v63, s36, 0 238; GFX906-NEXT: v_writelane_b32 v63, s37, 1 239; GFX906-NEXT: v_writelane_b32 v63, s38, 2 240; GFX906-NEXT: v_writelane_b32 v63, s39, 3 241; GFX906-NEXT: v_writelane_b32 v63, s40, 4 242; GFX906-NEXT: v_writelane_b32 v63, s41, 5 243; GFX906-NEXT: v_writelane_b32 v63, s42, 6 244; GFX906-NEXT: v_writelane_b32 v63, s43, 7 245; GFX906-NEXT: v_writelane_b32 v63, s44, 8 246; GFX906-NEXT: v_writelane_b32 v63, s45, 9 247; GFX906-NEXT: v_writelane_b32 v63, s46, 10 248; GFX906-NEXT: v_writelane_b32 v63, s47, 11 249; GFX906-NEXT: v_writelane_b32 v63, s48, 12 250; GFX906-NEXT: v_writelane_b32 v63, s49, 13 251; GFX906-NEXT: v_writelane_b32 v63, s50, 14 252; GFX906-NEXT: v_writelane_b32 v63, s51, 15 253; GFX906-NEXT: v_writelane_b32 v63, s52, 16 254; GFX906-NEXT: v_writelane_b32 v63, s53, 17 255; GFX906-NEXT: v_writelane_b32 v63, s54, 18 256; GFX906-NEXT: v_writelane_b32 v63, s55, 19 257; GFX906-NEXT: v_writelane_b32 v63, s56, 20 258; GFX906-NEXT: v_writelane_b32 v63, s57, 21 259; GFX906-NEXT: v_writelane_b32 v63, s58, 22 260; GFX906-NEXT: v_writelane_b32 v63, s59, 23 261; GFX906-NEXT: v_writelane_b32 v63, s60, 24 262; GFX906-NEXT: v_writelane_b32 v63, s61, 25 263; GFX906-NEXT: v_writelane_b32 v63, s62, 26 264; GFX906-NEXT: v_writelane_b32 v63, s63, 27 265; GFX906-NEXT: v_writelane_b32 v63, s64, 28 266; GFX906-NEXT: v_writelane_b32 v63, s65, 29 267; GFX906-NEXT: v_writelane_b32 v63, s66, 30 268; GFX906-NEXT: v_writelane_b32 v63, s67, 31 269; GFX906-NEXT: v_mov_b32_e32 v33, v30 270; GFX906-NEXT: v_mov_b32_e32 v34, v29 271; GFX906-NEXT: v_mov_b32_e32 v35, v28 272; GFX906-NEXT: v_mov_b32_e32 v36, v27 273; GFX906-NEXT: v_mov_b32_e32 v37, v26 274; GFX906-NEXT: v_mov_b32_e32 v38, v25 275; GFX906-NEXT: v_mov_b32_e32 v39, v24 276; GFX906-NEXT: v_mov_b32_e32 v48, v23 277; GFX906-NEXT: v_mov_b32_e32 v49, v22 278; GFX906-NEXT: v_mov_b32_e32 v50, v21 279; GFX906-NEXT: v_mov_b32_e32 v51, v20 280; GFX906-NEXT: v_mov_b32_e32 v52, v19 281; GFX906-NEXT: v_mov_b32_e32 v53, v18 282; GFX906-NEXT: v_mov_b32_e32 v54, v17 283; GFX906-NEXT: v_mov_b32_e32 v55, v16 284; GFX906-NEXT: v_mov_b32_e32 v40, v15 285; GFX906-NEXT: v_mov_b32_e32 v41, v14 286; GFX906-NEXT: v_mov_b32_e32 v42, v13 287; GFX906-NEXT: v_mov_b32_e32 v43, v12 288; GFX906-NEXT: v_mov_b32_e32 v44, v11 289; GFX906-NEXT: v_mov_b32_e32 v45, v10 290; GFX906-NEXT: v_mov_b32_e32 v46, v9 291; GFX906-NEXT: v_mov_b32_e32 v47, v8 292; GFX906-NEXT: v_mov_b32_e32 v56, v7 293; GFX906-NEXT: v_mov_b32_e32 v57, v6 294; GFX906-NEXT: v_mov_b32_e32 v58, v5 295; GFX906-NEXT: v_mov_b32_e32 v59, v4 296; GFX906-NEXT: v_mov_b32_e32 v60, v3 297; GFX906-NEXT: v_mov_b32_e32 v61, v2 298; GFX906-NEXT: v_mov_b32_e32 v62, v1 299; GFX906-NEXT: buffer_load_dword v32, off, s[0:3], s32 300; GFX906-NEXT: ; implicit-def: $sgpr4 301; GFX906-NEXT: ; implicit-def: $sgpr4 302; GFX906-NEXT: ; implicit-def: $sgpr4 303; GFX906-NEXT: ; implicit-def: $sgpr4 304; GFX906-NEXT: ; implicit-def: $sgpr4 305; GFX906-NEXT: ; implicit-def: $sgpr4 306; GFX906-NEXT: ; implicit-def: $sgpr4 307; GFX906-NEXT: ; implicit-def: $sgpr4 308; GFX906-NEXT: ; implicit-def: $sgpr4 309; GFX906-NEXT: ; implicit-def: $sgpr4 310; GFX906-NEXT: ; implicit-def: $sgpr4 311; GFX906-NEXT: ; implicit-def: $sgpr4 312; GFX906-NEXT: ; implicit-def: $sgpr4 313; GFX906-NEXT: ; implicit-def: $sgpr4 314; GFX906-NEXT: ; implicit-def: $sgpr4 315; GFX906-NEXT: ; implicit-def: $sgpr4 316; GFX906-NEXT: ; implicit-def: $sgpr4 317; GFX906-NEXT: ; implicit-def: $sgpr4 318; GFX906-NEXT: ; implicit-def: $sgpr4 319; GFX906-NEXT: ; implicit-def: $sgpr4 320; GFX906-NEXT: ; implicit-def: $sgpr4 321; GFX906-NEXT: ; implicit-def: $sgpr4 322; GFX906-NEXT: ; implicit-def: $sgpr4 323; GFX906-NEXT: ; implicit-def: $sgpr4 324; GFX906-NEXT: ; implicit-def: $sgpr4 325; GFX906-NEXT: ; implicit-def: $sgpr4 326; GFX906-NEXT: ; implicit-def: $sgpr4 327; GFX906-NEXT: ; implicit-def: $sgpr4 328; GFX906-NEXT: ; implicit-def: $sgpr4 329; GFX906-NEXT: ; implicit-def: $sgpr4 330; GFX906-NEXT: ; implicit-def: $sgpr4 331; GFX906-NEXT: ; implicit-def: $sgpr4 332; GFX906-NEXT: ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 killed $exec 333; GFX906-NEXT: v_mov_b32_e32 v1, v62 334; GFX906-NEXT: v_mov_b32_e32 v2, v61 335; GFX906-NEXT: v_mov_b32_e32 v3, v60 336; GFX906-NEXT: v_mov_b32_e32 v4, v59 337; GFX906-NEXT: v_mov_b32_e32 v5, v58 338; GFX906-NEXT: v_mov_b32_e32 v6, v57 339; GFX906-NEXT: v_mov_b32_e32 v7, v56 340; GFX906-NEXT: v_mov_b32_e32 v8, v47 341; GFX906-NEXT: v_mov_b32_e32 v9, v46 342; GFX906-NEXT: v_mov_b32_e32 v10, v45 343; GFX906-NEXT: v_mov_b32_e32 v11, v44 344; GFX906-NEXT: v_mov_b32_e32 v12, v43 345; GFX906-NEXT: v_mov_b32_e32 v13, v42 346; GFX906-NEXT: v_mov_b32_e32 v14, v41 347; GFX906-NEXT: v_mov_b32_e32 v15, v40 348; GFX906-NEXT: v_mov_b32_e32 v16, v55 349; GFX906-NEXT: v_mov_b32_e32 v17, v54 350; GFX906-NEXT: v_mov_b32_e32 v18, v53 351; GFX906-NEXT: v_mov_b32_e32 v19, v52 352; GFX906-NEXT: v_mov_b32_e32 v20, v51 353; GFX906-NEXT: v_mov_b32_e32 v21, v50 354; GFX906-NEXT: v_mov_b32_e32 v22, v49 355; GFX906-NEXT: v_mov_b32_e32 v23, v48 356; GFX906-NEXT: v_mov_b32_e32 v24, v39 357; GFX906-NEXT: v_mov_b32_e32 v25, v38 358; GFX906-NEXT: v_mov_b32_e32 v26, v37 359; GFX906-NEXT: v_mov_b32_e32 v27, v36 360; GFX906-NEXT: v_mov_b32_e32 v28, v35 361; GFX906-NEXT: v_mov_b32_e32 v29, v34 362; GFX906-NEXT: v_mov_b32_e32 v30, v33 363; GFX906-NEXT: ; kill: def $vgpr31 killed $vgpr32 killed $exec 364; GFX906-NEXT: ; implicit-def: $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 365; GFX906-NEXT: v_mov_b32_e32 v0, 0 366; GFX906-NEXT: v_readlane_b32 s67, v63, 31 367; GFX906-NEXT: v_readlane_b32 s66, v63, 30 368; GFX906-NEXT: v_readlane_b32 s65, v63, 29 369; GFX906-NEXT: v_readlane_b32 s64, v63, 28 370; GFX906-NEXT: v_readlane_b32 s63, v63, 27 371; GFX906-NEXT: v_readlane_b32 s62, v63, 26 372; GFX906-NEXT: v_readlane_b32 s61, v63, 25 373; GFX906-NEXT: v_readlane_b32 s60, v63, 24 374; GFX906-NEXT: v_readlane_b32 s59, v63, 23 375; GFX906-NEXT: v_readlane_b32 s58, v63, 22 376; GFX906-NEXT: v_readlane_b32 s57, v63, 21 377; GFX906-NEXT: v_readlane_b32 s56, v63, 20 378; GFX906-NEXT: v_readlane_b32 s55, v63, 19 379; GFX906-NEXT: v_readlane_b32 s54, v63, 18 380; GFX906-NEXT: v_readlane_b32 s53, v63, 17 381; GFX906-NEXT: v_readlane_b32 s52, v63, 16 382; GFX906-NEXT: v_readlane_b32 s51, v63, 15 383; GFX906-NEXT: v_readlane_b32 s50, v63, 14 384; GFX906-NEXT: v_readlane_b32 s49, v63, 13 385; GFX906-NEXT: v_readlane_b32 s48, v63, 12 386; GFX906-NEXT: v_readlane_b32 s47, v63, 11 387; GFX906-NEXT: v_readlane_b32 s46, v63, 10 388; GFX906-NEXT: v_readlane_b32 s45, v63, 9 389; GFX906-NEXT: v_readlane_b32 s44, v63, 8 390; GFX906-NEXT: v_readlane_b32 s43, v63, 7 391; GFX906-NEXT: v_readlane_b32 s42, v63, 6 392; GFX906-NEXT: v_readlane_b32 s41, v63, 5 393; GFX906-NEXT: v_readlane_b32 s40, v63, 4 394; GFX906-NEXT: v_readlane_b32 s39, v63, 3 395; GFX906-NEXT: v_readlane_b32 s38, v63, 2 396; GFX906-NEXT: v_readlane_b32 s37, v63, 1 397; GFX906-NEXT: v_readlane_b32 s36, v63, 0 398; GFX906-NEXT: buffer_load_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload 399; GFX906-NEXT: buffer_load_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload 400; GFX906-NEXT: buffer_load_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload 401; GFX906-NEXT: buffer_load_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload 402; GFX906-NEXT: buffer_load_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload 403; GFX906-NEXT: buffer_load_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload 404; GFX906-NEXT: buffer_load_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload 405; GFX906-NEXT: buffer_load_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload 406; GFX906-NEXT: buffer_load_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload 407; GFX906-NEXT: buffer_load_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload 408; GFX906-NEXT: buffer_load_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload 409; GFX906-NEXT: buffer_load_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload 410; GFX906-NEXT: buffer_load_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload 411; GFX906-NEXT: buffer_load_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload 412; GFX906-NEXT: buffer_load_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload 413; GFX906-NEXT: s_or_saveexec_b64 s[4:5], -1 414; GFX906-NEXT: buffer_load_dword v63, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload 415; GFX906-NEXT: s_mov_b64 exec, s[4:5] 416; GFX906-NEXT: s_waitcnt vmcnt(0) 417; GFX906-NEXT: s_setpc_b64 s[30:31] 418; 419; GFX908-LABEL: test_tuple: 420; GFX908: ; %bb.0: 421; GFX908-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 422; GFX908-NEXT: s_or_saveexec_b64 s[4:5], -1 423; GFX908-NEXT: buffer_store_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill 424; GFX908-NEXT: s_mov_b64 exec, s[4:5] 425; GFX908-NEXT: v_accvgpr_write_b32 a0, v40 ; Reload Reuse 426; GFX908-NEXT: v_accvgpr_write_b32 a1, v41 ; Reload Reuse 427; GFX908-NEXT: v_accvgpr_write_b32 a2, v42 ; Reload Reuse 428; GFX908-NEXT: v_accvgpr_write_b32 a3, v43 ; Reload Reuse 429; GFX908-NEXT: v_accvgpr_write_b32 a4, v44 ; Reload Reuse 430; GFX908-NEXT: v_accvgpr_write_b32 a5, v45 ; Reload Reuse 431; GFX908-NEXT: v_accvgpr_write_b32 a6, v46 ; Reload Reuse 432; GFX908-NEXT: v_accvgpr_write_b32 a7, v47 ; Reload Reuse 433; GFX908-NEXT: v_accvgpr_write_b32 a8, v56 ; Reload Reuse 434; GFX908-NEXT: v_accvgpr_write_b32 a9, v57 ; Reload Reuse 435; GFX908-NEXT: v_accvgpr_write_b32 a10, v58 ; Reload Reuse 436; GFX908-NEXT: v_accvgpr_write_b32 a11, v59 ; Reload Reuse 437; GFX908-NEXT: v_accvgpr_write_b32 a12, v60 ; Reload Reuse 438; GFX908-NEXT: v_accvgpr_write_b32 a13, v61 ; Reload Reuse 439; GFX908-NEXT: v_writelane_b32 v62, s36, 0 440; GFX908-NEXT: v_writelane_b32 v62, s37, 1 441; GFX908-NEXT: v_writelane_b32 v62, s38, 2 442; GFX908-NEXT: v_writelane_b32 v62, s39, 3 443; GFX908-NEXT: v_writelane_b32 v62, s40, 4 444; GFX908-NEXT: v_writelane_b32 v62, s41, 5 445; GFX908-NEXT: v_writelane_b32 v62, s42, 6 446; GFX908-NEXT: v_writelane_b32 v62, s43, 7 447; GFX908-NEXT: v_writelane_b32 v62, s44, 8 448; GFX908-NEXT: v_writelane_b32 v62, s45, 9 449; GFX908-NEXT: v_writelane_b32 v62, s46, 10 450; GFX908-NEXT: v_writelane_b32 v62, s47, 11 451; GFX908-NEXT: v_writelane_b32 v62, s48, 12 452; GFX908-NEXT: v_writelane_b32 v62, s49, 13 453; GFX908-NEXT: v_writelane_b32 v62, s50, 14 454; GFX908-NEXT: v_writelane_b32 v62, s51, 15 455; GFX908-NEXT: v_writelane_b32 v62, s52, 16 456; GFX908-NEXT: v_writelane_b32 v62, s53, 17 457; GFX908-NEXT: v_writelane_b32 v62, s54, 18 458; GFX908-NEXT: v_writelane_b32 v62, s55, 19 459; GFX908-NEXT: v_writelane_b32 v62, s56, 20 460; GFX908-NEXT: v_writelane_b32 v62, s57, 21 461; GFX908-NEXT: v_writelane_b32 v62, s58, 22 462; GFX908-NEXT: v_writelane_b32 v62, s59, 23 463; GFX908-NEXT: v_writelane_b32 v62, s60, 24 464; GFX908-NEXT: v_writelane_b32 v62, s61, 25 465; GFX908-NEXT: v_writelane_b32 v62, s62, 26 466; GFX908-NEXT: v_writelane_b32 v62, s63, 27 467; GFX908-NEXT: v_writelane_b32 v62, s64, 28 468; GFX908-NEXT: v_writelane_b32 v62, s65, 29 469; GFX908-NEXT: v_writelane_b32 v62, s66, 30 470; GFX908-NEXT: v_writelane_b32 v62, s67, 31 471; GFX908-NEXT: v_mov_b32_e32 v33, v30 472; GFX908-NEXT: v_mov_b32_e32 v34, v29 473; GFX908-NEXT: v_mov_b32_e32 v35, v28 474; GFX908-NEXT: v_mov_b32_e32 v36, v27 475; GFX908-NEXT: v_mov_b32_e32 v37, v26 476; GFX908-NEXT: v_mov_b32_e32 v38, v25 477; GFX908-NEXT: v_mov_b32_e32 v39, v24 478; GFX908-NEXT: v_mov_b32_e32 v48, v23 479; GFX908-NEXT: v_mov_b32_e32 v49, v22 480; GFX908-NEXT: v_mov_b32_e32 v50, v21 481; GFX908-NEXT: v_mov_b32_e32 v51, v20 482; GFX908-NEXT: v_mov_b32_e32 v52, v19 483; GFX908-NEXT: v_mov_b32_e32 v53, v18 484; GFX908-NEXT: v_mov_b32_e32 v54, v17 485; GFX908-NEXT: v_mov_b32_e32 v55, v16 486; GFX908-NEXT: v_mov_b32_e32 v40, v15 487; GFX908-NEXT: v_mov_b32_e32 v41, v14 488; GFX908-NEXT: v_mov_b32_e32 v42, v13 489; GFX908-NEXT: v_mov_b32_e32 v43, v12 490; GFX908-NEXT: v_mov_b32_e32 v44, v11 491; GFX908-NEXT: v_mov_b32_e32 v45, v10 492; GFX908-NEXT: v_mov_b32_e32 v46, v9 493; GFX908-NEXT: v_mov_b32_e32 v47, v8 494; GFX908-NEXT: v_mov_b32_e32 v56, v7 495; GFX908-NEXT: v_mov_b32_e32 v57, v6 496; GFX908-NEXT: v_mov_b32_e32 v58, v5 497; GFX908-NEXT: v_mov_b32_e32 v59, v4 498; GFX908-NEXT: v_mov_b32_e32 v60, v3 499; GFX908-NEXT: v_mov_b32_e32 v61, v2 500; GFX908-NEXT: v_mov_b32_e32 v32, v1 501; GFX908-NEXT: buffer_load_dword v1, off, s[0:3], s32 502; GFX908-NEXT: s_waitcnt vmcnt(0) 503; GFX908-NEXT: v_accvgpr_write_b32 a14, v1 ; Reload Reuse 504; GFX908-NEXT: ; implicit-def: $sgpr4 505; GFX908-NEXT: ; implicit-def: $sgpr4 506; GFX908-NEXT: ; implicit-def: $sgpr4 507; GFX908-NEXT: ; implicit-def: $sgpr4 508; GFX908-NEXT: ; implicit-def: $sgpr4 509; GFX908-NEXT: ; implicit-def: $sgpr4 510; GFX908-NEXT: ; implicit-def: $sgpr4 511; GFX908-NEXT: ; implicit-def: $sgpr4 512; GFX908-NEXT: ; implicit-def: $sgpr4 513; GFX908-NEXT: ; implicit-def: $sgpr4 514; GFX908-NEXT: ; implicit-def: $sgpr4 515; GFX908-NEXT: ; implicit-def: $sgpr4 516; GFX908-NEXT: ; implicit-def: $sgpr4 517; GFX908-NEXT: ; implicit-def: $sgpr4 518; GFX908-NEXT: ; implicit-def: $sgpr4 519; GFX908-NEXT: ; implicit-def: $sgpr4 520; GFX908-NEXT: ; implicit-def: $sgpr4 521; GFX908-NEXT: ; implicit-def: $sgpr4 522; GFX908-NEXT: ; implicit-def: $sgpr4 523; GFX908-NEXT: ; implicit-def: $sgpr4 524; GFX908-NEXT: ; implicit-def: $sgpr4 525; GFX908-NEXT: ; implicit-def: $sgpr4 526; GFX908-NEXT: ; implicit-def: $sgpr4 527; GFX908-NEXT: ; implicit-def: $sgpr4 528; GFX908-NEXT: ; implicit-def: $sgpr4 529; GFX908-NEXT: ; implicit-def: $sgpr4 530; GFX908-NEXT: ; implicit-def: $sgpr4 531; GFX908-NEXT: ; implicit-def: $sgpr4 532; GFX908-NEXT: ; implicit-def: $sgpr4 533; GFX908-NEXT: ; implicit-def: $sgpr4 534; GFX908-NEXT: ; implicit-def: $sgpr4 535; GFX908-NEXT: ; implicit-def: $sgpr4 536; GFX908-NEXT: ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 killed $exec 537; GFX908-NEXT: v_mov_b32_e32 v1, v32 538; GFX908-NEXT: s_nop 1 539; GFX908-NEXT: v_accvgpr_read_b32 v32, a14 ; Reload Reuse 540; GFX908-NEXT: v_mov_b32_e32 v2, v61 541; GFX908-NEXT: v_mov_b32_e32 v3, v60 542; GFX908-NEXT: v_mov_b32_e32 v4, v59 543; GFX908-NEXT: v_mov_b32_e32 v5, v58 544; GFX908-NEXT: v_mov_b32_e32 v6, v57 545; GFX908-NEXT: v_mov_b32_e32 v7, v56 546; GFX908-NEXT: v_mov_b32_e32 v8, v47 547; GFX908-NEXT: v_mov_b32_e32 v9, v46 548; GFX908-NEXT: v_mov_b32_e32 v10, v45 549; GFX908-NEXT: v_mov_b32_e32 v11, v44 550; GFX908-NEXT: v_mov_b32_e32 v12, v43 551; GFX908-NEXT: v_mov_b32_e32 v13, v42 552; GFX908-NEXT: v_mov_b32_e32 v14, v41 553; GFX908-NEXT: v_mov_b32_e32 v15, v40 554; GFX908-NEXT: v_mov_b32_e32 v16, v55 555; GFX908-NEXT: v_mov_b32_e32 v17, v54 556; GFX908-NEXT: v_mov_b32_e32 v18, v53 557; GFX908-NEXT: v_mov_b32_e32 v19, v52 558; GFX908-NEXT: v_mov_b32_e32 v20, v51 559; GFX908-NEXT: v_mov_b32_e32 v21, v50 560; GFX908-NEXT: v_mov_b32_e32 v22, v49 561; GFX908-NEXT: v_mov_b32_e32 v23, v48 562; GFX908-NEXT: v_mov_b32_e32 v24, v39 563; GFX908-NEXT: v_mov_b32_e32 v25, v38 564; GFX908-NEXT: v_mov_b32_e32 v26, v37 565; GFX908-NEXT: v_mov_b32_e32 v27, v36 566; GFX908-NEXT: v_mov_b32_e32 v28, v35 567; GFX908-NEXT: v_mov_b32_e32 v29, v34 568; GFX908-NEXT: v_mov_b32_e32 v30, v33 569; GFX908-NEXT: ; kill: def $vgpr31 killed $vgpr32 killed $exec 570; GFX908-NEXT: ; implicit-def: $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 571; GFX908-NEXT: v_mov_b32_e32 v0, 0 572; GFX908-NEXT: v_readlane_b32 s67, v62, 31 573; GFX908-NEXT: v_readlane_b32 s66, v62, 30 574; GFX908-NEXT: v_readlane_b32 s65, v62, 29 575; GFX908-NEXT: v_readlane_b32 s64, v62, 28 576; GFX908-NEXT: v_readlane_b32 s63, v62, 27 577; GFX908-NEXT: v_readlane_b32 s62, v62, 26 578; GFX908-NEXT: v_readlane_b32 s61, v62, 25 579; GFX908-NEXT: v_readlane_b32 s60, v62, 24 580; GFX908-NEXT: v_readlane_b32 s59, v62, 23 581; GFX908-NEXT: v_readlane_b32 s58, v62, 22 582; GFX908-NEXT: v_readlane_b32 s57, v62, 21 583; GFX908-NEXT: v_readlane_b32 s56, v62, 20 584; GFX908-NEXT: v_readlane_b32 s55, v62, 19 585; GFX908-NEXT: v_readlane_b32 s54, v62, 18 586; GFX908-NEXT: v_readlane_b32 s53, v62, 17 587; GFX908-NEXT: v_readlane_b32 s52, v62, 16 588; GFX908-NEXT: v_readlane_b32 s51, v62, 15 589; GFX908-NEXT: v_readlane_b32 s50, v62, 14 590; GFX908-NEXT: v_readlane_b32 s49, v62, 13 591; GFX908-NEXT: v_readlane_b32 s48, v62, 12 592; GFX908-NEXT: v_readlane_b32 s47, v62, 11 593; GFX908-NEXT: v_readlane_b32 s46, v62, 10 594; GFX908-NEXT: v_readlane_b32 s45, v62, 9 595; GFX908-NEXT: v_readlane_b32 s44, v62, 8 596; GFX908-NEXT: v_readlane_b32 s43, v62, 7 597; GFX908-NEXT: v_readlane_b32 s42, v62, 6 598; GFX908-NEXT: v_readlane_b32 s41, v62, 5 599; GFX908-NEXT: v_readlane_b32 s40, v62, 4 600; GFX908-NEXT: v_readlane_b32 s39, v62, 3 601; GFX908-NEXT: v_readlane_b32 s38, v62, 2 602; GFX908-NEXT: v_readlane_b32 s37, v62, 1 603; GFX908-NEXT: v_readlane_b32 s36, v62, 0 604; GFX908-NEXT: v_accvgpr_read_b32 v61, a13 ; Reload Reuse 605; GFX908-NEXT: v_accvgpr_read_b32 v60, a12 ; Reload Reuse 606; GFX908-NEXT: v_accvgpr_read_b32 v59, a11 ; Reload Reuse 607; GFX908-NEXT: v_accvgpr_read_b32 v58, a10 ; Reload Reuse 608; GFX908-NEXT: v_accvgpr_read_b32 v57, a9 ; Reload Reuse 609; GFX908-NEXT: v_accvgpr_read_b32 v56, a8 ; Reload Reuse 610; GFX908-NEXT: v_accvgpr_read_b32 v47, a7 ; Reload Reuse 611; GFX908-NEXT: v_accvgpr_read_b32 v46, a6 ; Reload Reuse 612; GFX908-NEXT: v_accvgpr_read_b32 v45, a5 ; Reload Reuse 613; GFX908-NEXT: v_accvgpr_read_b32 v44, a4 ; Reload Reuse 614; GFX908-NEXT: v_accvgpr_read_b32 v43, a3 ; Reload Reuse 615; GFX908-NEXT: v_accvgpr_read_b32 v42, a2 ; Reload Reuse 616; GFX908-NEXT: v_accvgpr_read_b32 v41, a1 ; Reload Reuse 617; GFX908-NEXT: v_accvgpr_read_b32 v40, a0 ; Reload Reuse 618; GFX908-NEXT: s_or_saveexec_b64 s[4:5], -1 619; GFX908-NEXT: buffer_load_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload 620; GFX908-NEXT: s_mov_b64 exec, s[4:5] 621; GFX908-NEXT: s_waitcnt vmcnt(0) 622; GFX908-NEXT: s_setpc_b64 s[30:31] 623; 624; GFX90a-LABEL: test_tuple: 625; GFX90a: ; %bb.0: 626; GFX90a-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 627; GFX90a-NEXT: s_or_saveexec_b64 s[4:5], -1 628; GFX90a-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill 629; GFX90a-NEXT: s_mov_b64 exec, s[4:5] 630; GFX90a-NEXT: v_accvgpr_write_b32 a0, v40 ; Reload Reuse 631; GFX90a-NEXT: v_accvgpr_write_b32 a1, v41 ; Reload Reuse 632; GFX90a-NEXT: v_accvgpr_write_b32 a2, v42 ; Reload Reuse 633; GFX90a-NEXT: v_accvgpr_write_b32 a3, v43 ; Reload Reuse 634; GFX90a-NEXT: v_accvgpr_write_b32 a4, v44 ; Reload Reuse 635; GFX90a-NEXT: v_accvgpr_write_b32 a5, v45 ; Reload Reuse 636; GFX90a-NEXT: v_accvgpr_write_b32 a6, v46 ; Reload Reuse 637; GFX90a-NEXT: v_accvgpr_write_b32 a7, v47 ; Reload Reuse 638; GFX90a-NEXT: v_accvgpr_write_b32 a8, v56 ; Reload Reuse 639; GFX90a-NEXT: v_accvgpr_write_b32 a9, v57 ; Reload Reuse 640; GFX90a-NEXT: v_accvgpr_write_b32 a10, v58 ; Reload Reuse 641; GFX90a-NEXT: v_accvgpr_write_b32 a11, v59 ; Reload Reuse 642; GFX90a-NEXT: v_accvgpr_write_b32 a12, v60 ; Reload Reuse 643; GFX90a-NEXT: v_accvgpr_write_b32 a13, v61 ; Reload Reuse 644; GFX90a-NEXT: v_accvgpr_write_b32 a14, v62 ; Reload Reuse 645; GFX90a-NEXT: v_writelane_b32 v63, s36, 0 646; GFX90a-NEXT: v_writelane_b32 v63, s37, 1 647; GFX90a-NEXT: v_writelane_b32 v63, s38, 2 648; GFX90a-NEXT: v_writelane_b32 v63, s39, 3 649; GFX90a-NEXT: v_writelane_b32 v63, s40, 4 650; GFX90a-NEXT: v_writelane_b32 v63, s41, 5 651; GFX90a-NEXT: v_writelane_b32 v63, s42, 6 652; GFX90a-NEXT: v_writelane_b32 v63, s43, 7 653; GFX90a-NEXT: v_writelane_b32 v63, s44, 8 654; GFX90a-NEXT: v_writelane_b32 v63, s45, 9 655; GFX90a-NEXT: v_writelane_b32 v63, s46, 10 656; GFX90a-NEXT: v_writelane_b32 v63, s47, 11 657; GFX90a-NEXT: v_writelane_b32 v63, s48, 12 658; GFX90a-NEXT: v_writelane_b32 v63, s49, 13 659; GFX90a-NEXT: v_writelane_b32 v63, s50, 14 660; GFX90a-NEXT: v_writelane_b32 v63, s51, 15 661; GFX90a-NEXT: v_writelane_b32 v63, s52, 16 662; GFX90a-NEXT: v_writelane_b32 v63, s53, 17 663; GFX90a-NEXT: v_writelane_b32 v63, s54, 18 664; GFX90a-NEXT: v_writelane_b32 v63, s55, 19 665; GFX90a-NEXT: v_writelane_b32 v63, s56, 20 666; GFX90a-NEXT: v_writelane_b32 v63, s57, 21 667; GFX90a-NEXT: v_writelane_b32 v63, s58, 22 668; GFX90a-NEXT: v_writelane_b32 v63, s59, 23 669; GFX90a-NEXT: v_writelane_b32 v63, s60, 24 670; GFX90a-NEXT: v_writelane_b32 v63, s61, 25 671; GFX90a-NEXT: v_writelane_b32 v63, s62, 26 672; GFX90a-NEXT: v_writelane_b32 v63, s63, 27 673; GFX90a-NEXT: v_writelane_b32 v63, s64, 28 674; GFX90a-NEXT: v_writelane_b32 v63, s65, 29 675; GFX90a-NEXT: v_writelane_b32 v63, s66, 30 676; GFX90a-NEXT: v_writelane_b32 v63, s67, 31 677; GFX90a-NEXT: v_mov_b32_e32 v33, v30 678; GFX90a-NEXT: v_mov_b32_e32 v34, v29 679; GFX90a-NEXT: v_mov_b32_e32 v35, v28 680; GFX90a-NEXT: v_mov_b32_e32 v36, v27 681; GFX90a-NEXT: v_mov_b32_e32 v37, v26 682; GFX90a-NEXT: v_mov_b32_e32 v38, v25 683; GFX90a-NEXT: v_mov_b32_e32 v39, v24 684; GFX90a-NEXT: v_mov_b32_e32 v48, v23 685; GFX90a-NEXT: v_mov_b32_e32 v49, v22 686; GFX90a-NEXT: v_mov_b32_e32 v50, v21 687; GFX90a-NEXT: v_mov_b32_e32 v51, v20 688; GFX90a-NEXT: v_mov_b32_e32 v52, v19 689; GFX90a-NEXT: v_mov_b32_e32 v53, v18 690; GFX90a-NEXT: v_mov_b32_e32 v54, v17 691; GFX90a-NEXT: v_mov_b32_e32 v55, v16 692; GFX90a-NEXT: v_mov_b32_e32 v40, v15 693; GFX90a-NEXT: v_mov_b32_e32 v41, v14 694; GFX90a-NEXT: v_mov_b32_e32 v42, v13 695; GFX90a-NEXT: v_mov_b32_e32 v43, v12 696; GFX90a-NEXT: v_mov_b32_e32 v44, v11 697; GFX90a-NEXT: v_mov_b32_e32 v45, v10 698; GFX90a-NEXT: v_mov_b32_e32 v46, v9 699; GFX90a-NEXT: v_mov_b32_e32 v47, v8 700; GFX90a-NEXT: v_mov_b32_e32 v56, v7 701; GFX90a-NEXT: v_mov_b32_e32 v57, v6 702; GFX90a-NEXT: v_mov_b32_e32 v58, v5 703; GFX90a-NEXT: v_mov_b32_e32 v59, v4 704; GFX90a-NEXT: v_mov_b32_e32 v60, v3 705; GFX90a-NEXT: v_mov_b32_e32 v61, v2 706; GFX90a-NEXT: v_mov_b32_e32 v62, v1 707; GFX90a-NEXT: buffer_load_dword v32, off, s[0:3], s32 708; GFX90a-NEXT: ; implicit-def: $sgpr4 709; GFX90a-NEXT: ; implicit-def: $sgpr4 710; GFX90a-NEXT: ; implicit-def: $sgpr4 711; GFX90a-NEXT: ; implicit-def: $sgpr4 712; GFX90a-NEXT: ; implicit-def: $sgpr4 713; GFX90a-NEXT: ; implicit-def: $sgpr4 714; GFX90a-NEXT: ; implicit-def: $sgpr4 715; GFX90a-NEXT: ; implicit-def: $sgpr4 716; GFX90a-NEXT: ; implicit-def: $sgpr4 717; GFX90a-NEXT: ; implicit-def: $sgpr4 718; GFX90a-NEXT: ; implicit-def: $sgpr4 719; GFX90a-NEXT: ; implicit-def: $sgpr4 720; GFX90a-NEXT: ; implicit-def: $sgpr4 721; GFX90a-NEXT: ; implicit-def: $sgpr4 722; GFX90a-NEXT: ; implicit-def: $sgpr4 723; GFX90a-NEXT: ; implicit-def: $sgpr4 724; GFX90a-NEXT: ; implicit-def: $sgpr4 725; GFX90a-NEXT: ; implicit-def: $sgpr4 726; GFX90a-NEXT: ; implicit-def: $sgpr4 727; GFX90a-NEXT: ; implicit-def: $sgpr4 728; GFX90a-NEXT: ; implicit-def: $sgpr4 729; GFX90a-NEXT: ; implicit-def: $sgpr4 730; GFX90a-NEXT: ; implicit-def: $sgpr4 731; GFX90a-NEXT: ; implicit-def: $sgpr4 732; GFX90a-NEXT: ; implicit-def: $sgpr4 733; GFX90a-NEXT: ; implicit-def: $sgpr4 734; GFX90a-NEXT: ; implicit-def: $sgpr4 735; GFX90a-NEXT: ; implicit-def: $sgpr4 736; GFX90a-NEXT: ; implicit-def: $sgpr4 737; GFX90a-NEXT: ; implicit-def: $sgpr4 738; GFX90a-NEXT: ; implicit-def: $sgpr4 739; GFX90a-NEXT: ; implicit-def: $sgpr4 740; GFX90a-NEXT: ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 killed $exec 741; GFX90a-NEXT: v_mov_b32_e32 v1, v62 742; GFX90a-NEXT: v_mov_b32_e32 v2, v61 743; GFX90a-NEXT: v_mov_b32_e32 v3, v60 744; GFX90a-NEXT: v_mov_b32_e32 v4, v59 745; GFX90a-NEXT: v_mov_b32_e32 v5, v58 746; GFX90a-NEXT: v_mov_b32_e32 v6, v57 747; GFX90a-NEXT: v_mov_b32_e32 v7, v56 748; GFX90a-NEXT: v_mov_b32_e32 v8, v47 749; GFX90a-NEXT: v_mov_b32_e32 v9, v46 750; GFX90a-NEXT: v_mov_b32_e32 v10, v45 751; GFX90a-NEXT: v_mov_b32_e32 v11, v44 752; GFX90a-NEXT: v_mov_b32_e32 v12, v43 753; GFX90a-NEXT: v_mov_b32_e32 v13, v42 754; GFX90a-NEXT: v_mov_b32_e32 v14, v41 755; GFX90a-NEXT: v_mov_b32_e32 v15, v40 756; GFX90a-NEXT: v_mov_b32_e32 v16, v55 757; GFX90a-NEXT: v_mov_b32_e32 v17, v54 758; GFX90a-NEXT: v_mov_b32_e32 v18, v53 759; GFX90a-NEXT: v_mov_b32_e32 v19, v52 760; GFX90a-NEXT: v_mov_b32_e32 v20, v51 761; GFX90a-NEXT: v_mov_b32_e32 v21, v50 762; GFX90a-NEXT: v_mov_b32_e32 v22, v49 763; GFX90a-NEXT: v_mov_b32_e32 v23, v48 764; GFX90a-NEXT: v_mov_b32_e32 v24, v39 765; GFX90a-NEXT: v_mov_b32_e32 v25, v38 766; GFX90a-NEXT: v_mov_b32_e32 v26, v37 767; GFX90a-NEXT: v_mov_b32_e32 v27, v36 768; GFX90a-NEXT: v_mov_b32_e32 v28, v35 769; GFX90a-NEXT: v_mov_b32_e32 v29, v34 770; GFX90a-NEXT: v_mov_b32_e32 v30, v33 771; GFX90a-NEXT: ; kill: def $vgpr31 killed $vgpr32 killed $exec 772; GFX90a-NEXT: ; implicit-def: $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 773; GFX90a-NEXT: v_mov_b32_e32 v0, 0 774; GFX90a-NEXT: v_readlane_b32 s67, v63, 31 775; GFX90a-NEXT: v_readlane_b32 s66, v63, 30 776; GFX90a-NEXT: v_readlane_b32 s65, v63, 29 777; GFX90a-NEXT: v_readlane_b32 s64, v63, 28 778; GFX90a-NEXT: v_readlane_b32 s63, v63, 27 779; GFX90a-NEXT: v_readlane_b32 s62, v63, 26 780; GFX90a-NEXT: v_readlane_b32 s61, v63, 25 781; GFX90a-NEXT: v_readlane_b32 s60, v63, 24 782; GFX90a-NEXT: v_readlane_b32 s59, v63, 23 783; GFX90a-NEXT: v_readlane_b32 s58, v63, 22 784; GFX90a-NEXT: v_readlane_b32 s57, v63, 21 785; GFX90a-NEXT: v_readlane_b32 s56, v63, 20 786; GFX90a-NEXT: v_readlane_b32 s55, v63, 19 787; GFX90a-NEXT: v_readlane_b32 s54, v63, 18 788; GFX90a-NEXT: v_readlane_b32 s53, v63, 17 789; GFX90a-NEXT: v_readlane_b32 s52, v63, 16 790; GFX90a-NEXT: v_readlane_b32 s51, v63, 15 791; GFX90a-NEXT: v_readlane_b32 s50, v63, 14 792; GFX90a-NEXT: v_readlane_b32 s49, v63, 13 793; GFX90a-NEXT: v_readlane_b32 s48, v63, 12 794; GFX90a-NEXT: v_readlane_b32 s47, v63, 11 795; GFX90a-NEXT: v_readlane_b32 s46, v63, 10 796; GFX90a-NEXT: v_readlane_b32 s45, v63, 9 797; GFX90a-NEXT: v_readlane_b32 s44, v63, 8 798; GFX90a-NEXT: v_readlane_b32 s43, v63, 7 799; GFX90a-NEXT: v_readlane_b32 s42, v63, 6 800; GFX90a-NEXT: v_readlane_b32 s41, v63, 5 801; GFX90a-NEXT: v_readlane_b32 s40, v63, 4 802; GFX90a-NEXT: v_readlane_b32 s39, v63, 3 803; GFX90a-NEXT: v_readlane_b32 s38, v63, 2 804; GFX90a-NEXT: v_readlane_b32 s37, v63, 1 805; GFX90a-NEXT: v_readlane_b32 s36, v63, 0 806; GFX90a-NEXT: v_accvgpr_read_b32 v62, a14 ; Reload Reuse 807; GFX90a-NEXT: v_accvgpr_read_b32 v61, a13 ; Reload Reuse 808; GFX90a-NEXT: v_accvgpr_read_b32 v60, a12 ; Reload Reuse 809; GFX90a-NEXT: v_accvgpr_read_b32 v59, a11 ; Reload Reuse 810; GFX90a-NEXT: v_accvgpr_read_b32 v58, a10 ; Reload Reuse 811; GFX90a-NEXT: v_accvgpr_read_b32 v57, a9 ; Reload Reuse 812; GFX90a-NEXT: v_accvgpr_read_b32 v56, a8 ; Reload Reuse 813; GFX90a-NEXT: v_accvgpr_read_b32 v47, a7 ; Reload Reuse 814; GFX90a-NEXT: v_accvgpr_read_b32 v46, a6 ; Reload Reuse 815; GFX90a-NEXT: v_accvgpr_read_b32 v45, a5 ; Reload Reuse 816; GFX90a-NEXT: v_accvgpr_read_b32 v44, a4 ; Reload Reuse 817; GFX90a-NEXT: v_accvgpr_read_b32 v43, a3 ; Reload Reuse 818; GFX90a-NEXT: v_accvgpr_read_b32 v42, a2 ; Reload Reuse 819; GFX90a-NEXT: v_accvgpr_read_b32 v41, a1 ; Reload Reuse 820; GFX90a-NEXT: v_accvgpr_read_b32 v40, a0 ; Reload Reuse 821; GFX90a-NEXT: s_or_saveexec_b64 s[4:5], -1 822; GFX90a-NEXT: buffer_load_dword v63, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload 823; GFX90a-NEXT: s_mov_b64 exec, s[4:5] 824; GFX90a-NEXT: s_waitcnt vmcnt(0) 825; GFX90a-NEXT: s_setpc_b64 s[30:31] 826 %2 = shufflevector <16 x i64> %0, <16 x i64> zeroinitializer, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> 827 ret i32 0 828} 829