brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.9 KiB · 599557c Raw
417 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx900 -O0 < %s | FileCheck -check-prefix=GFX900 %s3; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx906 -O0 < %s | FileCheck -check-prefix=GFX906 %s4; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx908 -O0 < %s | FileCheck -check-prefix=GFX908 %s5; RUN: llc -mtriple amdgcn-amd-amdhsa -mcpu=gfx90a -O0 < %s | FileCheck -check-prefix=GFX90a %s6 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 the10; 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:    buffer_store_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill17; GFX900-NEXT:    buffer_store_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill18; GFX900-NEXT:    buffer_store_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill19; GFX900-NEXT:    buffer_store_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill20; GFX900-NEXT:    buffer_store_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill21; GFX900-NEXT:    buffer_store_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill22; GFX900-NEXT:    buffer_store_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill23; GFX900-NEXT:    buffer_store_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill24; GFX900-NEXT:    buffer_store_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill25; GFX900-NEXT:    buffer_store_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill26; GFX900-NEXT:    buffer_store_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill27; GFX900-NEXT:    buffer_store_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill28; GFX900-NEXT:    buffer_store_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill29; GFX900-NEXT:    buffer_store_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill30; GFX900-NEXT:    buffer_store_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill31; GFX900-NEXT:    v_mov_b32_e32 v33, v3032; GFX900-NEXT:    v_mov_b32_e32 v34, v2933; GFX900-NEXT:    v_mov_b32_e32 v35, v2834; GFX900-NEXT:    v_mov_b32_e32 v36, v2735; GFX900-NEXT:    v_mov_b32_e32 v37, v2636; GFX900-NEXT:    v_mov_b32_e32 v38, v2537; GFX900-NEXT:    v_mov_b32_e32 v39, v2438; GFX900-NEXT:    v_mov_b32_e32 v48, v2339; GFX900-NEXT:    v_mov_b32_e32 v49, v2240; GFX900-NEXT:    v_mov_b32_e32 v50, v2141; GFX900-NEXT:    v_mov_b32_e32 v51, v2042; GFX900-NEXT:    v_mov_b32_e32 v52, v1943; GFX900-NEXT:    v_mov_b32_e32 v53, v1844; GFX900-NEXT:    v_mov_b32_e32 v54, v1745; GFX900-NEXT:    v_mov_b32_e32 v55, v1646; GFX900-NEXT:    v_mov_b32_e32 v40, v1547; GFX900-NEXT:    v_mov_b32_e32 v41, v1448; GFX900-NEXT:    v_mov_b32_e32 v42, v1349; GFX900-NEXT:    v_mov_b32_e32 v43, v1250; GFX900-NEXT:    v_mov_b32_e32 v44, v1151; GFX900-NEXT:    v_mov_b32_e32 v45, v1052; GFX900-NEXT:    v_mov_b32_e32 v46, v953; GFX900-NEXT:    v_mov_b32_e32 v47, v854; GFX900-NEXT:    v_mov_b32_e32 v56, v755; GFX900-NEXT:    v_mov_b32_e32 v57, v656; GFX900-NEXT:    v_mov_b32_e32 v58, v557; GFX900-NEXT:    v_mov_b32_e32 v59, v458; GFX900-NEXT:    v_mov_b32_e32 v60, v359; GFX900-NEXT:    v_mov_b32_e32 v61, v260; GFX900-NEXT:    v_mov_b32_e32 v62, v161; GFX900-NEXT:    buffer_load_dword v32, off, s[0:3], s3262; 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 $exec63; GFX900-NEXT:    v_mov_b32_e32 v1, v6264; GFX900-NEXT:    v_mov_b32_e32 v2, v6165; GFX900-NEXT:    v_mov_b32_e32 v3, v6066; GFX900-NEXT:    v_mov_b32_e32 v4, v5967; GFX900-NEXT:    v_mov_b32_e32 v5, v5868; GFX900-NEXT:    v_mov_b32_e32 v6, v5769; GFX900-NEXT:    v_mov_b32_e32 v7, v5670; GFX900-NEXT:    v_mov_b32_e32 v8, v4771; GFX900-NEXT:    v_mov_b32_e32 v9, v4672; GFX900-NEXT:    v_mov_b32_e32 v10, v4573; GFX900-NEXT:    v_mov_b32_e32 v11, v4474; GFX900-NEXT:    v_mov_b32_e32 v12, v4375; GFX900-NEXT:    v_mov_b32_e32 v13, v4276; GFX900-NEXT:    v_mov_b32_e32 v14, v4177; GFX900-NEXT:    v_mov_b32_e32 v15, v4078; GFX900-NEXT:    v_mov_b32_e32 v16, v5579; GFX900-NEXT:    v_mov_b32_e32 v17, v5480; GFX900-NEXT:    v_mov_b32_e32 v18, v5381; GFX900-NEXT:    v_mov_b32_e32 v19, v5282; GFX900-NEXT:    v_mov_b32_e32 v20, v5183; GFX900-NEXT:    v_mov_b32_e32 v21, v5084; GFX900-NEXT:    v_mov_b32_e32 v22, v4985; GFX900-NEXT:    v_mov_b32_e32 v23, v4886; GFX900-NEXT:    v_mov_b32_e32 v24, v3987; GFX900-NEXT:    v_mov_b32_e32 v25, v3888; GFX900-NEXT:    v_mov_b32_e32 v26, v3789; GFX900-NEXT:    v_mov_b32_e32 v27, v3690; GFX900-NEXT:    v_mov_b32_e32 v28, v3591; GFX900-NEXT:    v_mov_b32_e32 v29, v3492; GFX900-NEXT:    v_mov_b32_e32 v30, v3393; GFX900-NEXT:    s_waitcnt vmcnt(0)94; GFX900-NEXT:    v_mov_b32_e32 v31, v3295; GFX900-NEXT:    v_mov_b32_e32 v0, 096; GFX900-NEXT:    buffer_load_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload97; GFX900-NEXT:    buffer_load_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload98; GFX900-NEXT:    buffer_load_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload99; GFX900-NEXT:    buffer_load_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload100; GFX900-NEXT:    buffer_load_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload101; GFX900-NEXT:    buffer_load_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload102; GFX900-NEXT:    buffer_load_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload103; GFX900-NEXT:    buffer_load_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload104; GFX900-NEXT:    buffer_load_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload105; GFX900-NEXT:    buffer_load_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload106; GFX900-NEXT:    buffer_load_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload107; GFX900-NEXT:    buffer_load_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload108; GFX900-NEXT:    buffer_load_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload109; GFX900-NEXT:    buffer_load_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload110; GFX900-NEXT:    buffer_load_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload111; GFX900-NEXT:    s_waitcnt vmcnt(0)112; GFX900-NEXT:    s_setpc_b64 s[30:31]113;114; GFX906-LABEL: test_tuple:115; GFX906:       ; %bb.0:116; GFX906-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)117; GFX906-NEXT:    buffer_store_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill118; GFX906-NEXT:    buffer_store_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill119; GFX906-NEXT:    buffer_store_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill120; GFX906-NEXT:    buffer_store_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill121; GFX906-NEXT:    buffer_store_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill122; GFX906-NEXT:    buffer_store_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill123; GFX906-NEXT:    buffer_store_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill124; GFX906-NEXT:    buffer_store_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill125; GFX906-NEXT:    buffer_store_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill126; GFX906-NEXT:    buffer_store_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill127; GFX906-NEXT:    buffer_store_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill128; GFX906-NEXT:    buffer_store_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill129; GFX906-NEXT:    buffer_store_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill130; GFX906-NEXT:    buffer_store_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill131; GFX906-NEXT:    buffer_store_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill132; GFX906-NEXT:    v_mov_b32_e32 v33, v30133; GFX906-NEXT:    v_mov_b32_e32 v34, v29134; GFX906-NEXT:    v_mov_b32_e32 v35, v28135; GFX906-NEXT:    v_mov_b32_e32 v36, v27136; GFX906-NEXT:    v_mov_b32_e32 v37, v26137; GFX906-NEXT:    v_mov_b32_e32 v38, v25138; GFX906-NEXT:    v_mov_b32_e32 v39, v24139; GFX906-NEXT:    v_mov_b32_e32 v48, v23140; GFX906-NEXT:    v_mov_b32_e32 v49, v22141; GFX906-NEXT:    v_mov_b32_e32 v50, v21142; GFX906-NEXT:    v_mov_b32_e32 v51, v20143; GFX906-NEXT:    v_mov_b32_e32 v52, v19144; GFX906-NEXT:    v_mov_b32_e32 v53, v18145; GFX906-NEXT:    v_mov_b32_e32 v54, v17146; GFX906-NEXT:    v_mov_b32_e32 v55, v16147; GFX906-NEXT:    v_mov_b32_e32 v40, v15148; GFX906-NEXT:    v_mov_b32_e32 v41, v14149; GFX906-NEXT:    v_mov_b32_e32 v42, v13150; GFX906-NEXT:    v_mov_b32_e32 v43, v12151; GFX906-NEXT:    v_mov_b32_e32 v44, v11152; GFX906-NEXT:    v_mov_b32_e32 v45, v10153; GFX906-NEXT:    v_mov_b32_e32 v46, v9154; GFX906-NEXT:    v_mov_b32_e32 v47, v8155; GFX906-NEXT:    v_mov_b32_e32 v56, v7156; GFX906-NEXT:    v_mov_b32_e32 v57, v6157; GFX906-NEXT:    v_mov_b32_e32 v58, v5158; GFX906-NEXT:    v_mov_b32_e32 v59, v4159; GFX906-NEXT:    v_mov_b32_e32 v60, v3160; GFX906-NEXT:    v_mov_b32_e32 v61, v2161; GFX906-NEXT:    v_mov_b32_e32 v62, v1162; GFX906-NEXT:    buffer_load_dword v32, off, s[0:3], s32163; 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 $exec164; GFX906-NEXT:    v_mov_b32_e32 v1, v62165; GFX906-NEXT:    v_mov_b32_e32 v2, v61166; GFX906-NEXT:    v_mov_b32_e32 v3, v60167; GFX906-NEXT:    v_mov_b32_e32 v4, v59168; GFX906-NEXT:    v_mov_b32_e32 v5, v58169; GFX906-NEXT:    v_mov_b32_e32 v6, v57170; GFX906-NEXT:    v_mov_b32_e32 v7, v56171; GFX906-NEXT:    v_mov_b32_e32 v8, v47172; GFX906-NEXT:    v_mov_b32_e32 v9, v46173; GFX906-NEXT:    v_mov_b32_e32 v10, v45174; GFX906-NEXT:    v_mov_b32_e32 v11, v44175; GFX906-NEXT:    v_mov_b32_e32 v12, v43176; GFX906-NEXT:    v_mov_b32_e32 v13, v42177; GFX906-NEXT:    v_mov_b32_e32 v14, v41178; GFX906-NEXT:    v_mov_b32_e32 v15, v40179; GFX906-NEXT:    v_mov_b32_e32 v16, v55180; GFX906-NEXT:    v_mov_b32_e32 v17, v54181; GFX906-NEXT:    v_mov_b32_e32 v18, v53182; GFX906-NEXT:    v_mov_b32_e32 v19, v52183; GFX906-NEXT:    v_mov_b32_e32 v20, v51184; GFX906-NEXT:    v_mov_b32_e32 v21, v50185; GFX906-NEXT:    v_mov_b32_e32 v22, v49186; GFX906-NEXT:    v_mov_b32_e32 v23, v48187; GFX906-NEXT:    v_mov_b32_e32 v24, v39188; GFX906-NEXT:    v_mov_b32_e32 v25, v38189; GFX906-NEXT:    v_mov_b32_e32 v26, v37190; GFX906-NEXT:    v_mov_b32_e32 v27, v36191; GFX906-NEXT:    v_mov_b32_e32 v28, v35192; GFX906-NEXT:    v_mov_b32_e32 v29, v34193; GFX906-NEXT:    v_mov_b32_e32 v30, v33194; GFX906-NEXT:    s_waitcnt vmcnt(0)195; GFX906-NEXT:    v_mov_b32_e32 v31, v32196; GFX906-NEXT:    v_mov_b32_e32 v0, 0197; GFX906-NEXT:    buffer_load_dword v62, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload198; GFX906-NEXT:    buffer_load_dword v61, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload199; GFX906-NEXT:    buffer_load_dword v60, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload200; GFX906-NEXT:    buffer_load_dword v59, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload201; GFX906-NEXT:    buffer_load_dword v58, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload202; GFX906-NEXT:    buffer_load_dword v57, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload203; GFX906-NEXT:    buffer_load_dword v56, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload204; GFX906-NEXT:    buffer_load_dword v47, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload205; GFX906-NEXT:    buffer_load_dword v46, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload206; GFX906-NEXT:    buffer_load_dword v45, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload207; GFX906-NEXT:    buffer_load_dword v44, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload208; GFX906-NEXT:    buffer_load_dword v43, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload209; GFX906-NEXT:    buffer_load_dword v42, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload210; GFX906-NEXT:    buffer_load_dword v41, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload211; GFX906-NEXT:    buffer_load_dword v40, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload212; GFX906-NEXT:    s_waitcnt vmcnt(0)213; GFX906-NEXT:    s_setpc_b64 s[30:31]214;215; GFX908-LABEL: test_tuple:216; GFX908:       ; %bb.0:217; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)218; GFX908-NEXT:    v_accvgpr_write_b32 a0, v40 ; Reload Reuse219; GFX908-NEXT:    v_accvgpr_write_b32 a1, v41 ; Reload Reuse220; GFX908-NEXT:    v_accvgpr_write_b32 a2, v42 ; Reload Reuse221; GFX908-NEXT:    v_accvgpr_write_b32 a3, v43 ; Reload Reuse222; GFX908-NEXT:    v_accvgpr_write_b32 a4, v44 ; Reload Reuse223; GFX908-NEXT:    v_accvgpr_write_b32 a5, v45 ; Reload Reuse224; GFX908-NEXT:    v_accvgpr_write_b32 a6, v46 ; Reload Reuse225; GFX908-NEXT:    v_accvgpr_write_b32 a7, v47 ; Reload Reuse226; GFX908-NEXT:    v_accvgpr_write_b32 a8, v56 ; Reload Reuse227; GFX908-NEXT:    v_accvgpr_write_b32 a9, v57 ; Reload Reuse228; GFX908-NEXT:    v_accvgpr_write_b32 a10, v58 ; Reload Reuse229; GFX908-NEXT:    v_accvgpr_write_b32 a11, v59 ; Reload Reuse230; GFX908-NEXT:    v_accvgpr_write_b32 a12, v60 ; Reload Reuse231; GFX908-NEXT:    v_accvgpr_write_b32 a13, v61 ; Reload Reuse232; GFX908-NEXT:    v_accvgpr_write_b32 a14, v62 ; Reload Reuse233; GFX908-NEXT:    v_mov_b32_e32 v33, v30234; GFX908-NEXT:    v_mov_b32_e32 v34, v29235; GFX908-NEXT:    v_mov_b32_e32 v35, v28236; GFX908-NEXT:    v_mov_b32_e32 v36, v27237; GFX908-NEXT:    v_mov_b32_e32 v37, v26238; GFX908-NEXT:    v_mov_b32_e32 v38, v25239; GFX908-NEXT:    v_mov_b32_e32 v39, v24240; GFX908-NEXT:    v_mov_b32_e32 v48, v23241; GFX908-NEXT:    v_mov_b32_e32 v49, v22242; GFX908-NEXT:    v_mov_b32_e32 v50, v21243; GFX908-NEXT:    v_mov_b32_e32 v51, v20244; GFX908-NEXT:    v_mov_b32_e32 v52, v19245; GFX908-NEXT:    v_mov_b32_e32 v53, v18246; GFX908-NEXT:    v_mov_b32_e32 v54, v17247; GFX908-NEXT:    v_mov_b32_e32 v55, v16248; GFX908-NEXT:    v_mov_b32_e32 v40, v15249; GFX908-NEXT:    v_mov_b32_e32 v41, v14250; GFX908-NEXT:    v_mov_b32_e32 v42, v13251; GFX908-NEXT:    v_mov_b32_e32 v43, v12252; GFX908-NEXT:    v_mov_b32_e32 v44, v11253; GFX908-NEXT:    v_mov_b32_e32 v45, v10254; GFX908-NEXT:    v_mov_b32_e32 v46, v9255; GFX908-NEXT:    v_mov_b32_e32 v47, v8256; GFX908-NEXT:    v_mov_b32_e32 v56, v7257; GFX908-NEXT:    v_mov_b32_e32 v57, v6258; GFX908-NEXT:    v_mov_b32_e32 v58, v5259; GFX908-NEXT:    v_mov_b32_e32 v59, v4260; GFX908-NEXT:    v_mov_b32_e32 v60, v3261; GFX908-NEXT:    v_mov_b32_e32 v61, v2262; GFX908-NEXT:    v_mov_b32_e32 v62, v1263; GFX908-NEXT:    buffer_load_dword v32, off, s[0:3], s32264; 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 $exec265; GFX908-NEXT:    v_mov_b32_e32 v1, v62266; GFX908-NEXT:    v_mov_b32_e32 v2, v61267; GFX908-NEXT:    v_mov_b32_e32 v3, v60268; GFX908-NEXT:    v_mov_b32_e32 v4, v59269; GFX908-NEXT:    v_mov_b32_e32 v5, v58270; GFX908-NEXT:    v_mov_b32_e32 v6, v57271; GFX908-NEXT:    v_mov_b32_e32 v7, v56272; GFX908-NEXT:    v_mov_b32_e32 v8, v47273; GFX908-NEXT:    v_mov_b32_e32 v9, v46274; GFX908-NEXT:    v_mov_b32_e32 v10, v45275; GFX908-NEXT:    v_mov_b32_e32 v11, v44276; GFX908-NEXT:    v_mov_b32_e32 v12, v43277; GFX908-NEXT:    v_mov_b32_e32 v13, v42278; GFX908-NEXT:    v_mov_b32_e32 v14, v41279; GFX908-NEXT:    v_mov_b32_e32 v15, v40280; GFX908-NEXT:    v_mov_b32_e32 v16, v55281; GFX908-NEXT:    v_mov_b32_e32 v17, v54282; GFX908-NEXT:    v_mov_b32_e32 v18, v53283; GFX908-NEXT:    v_mov_b32_e32 v19, v52284; GFX908-NEXT:    v_mov_b32_e32 v20, v51285; GFX908-NEXT:    v_mov_b32_e32 v21, v50286; GFX908-NEXT:    v_mov_b32_e32 v22, v49287; GFX908-NEXT:    v_mov_b32_e32 v23, v48288; GFX908-NEXT:    v_mov_b32_e32 v24, v39289; GFX908-NEXT:    v_mov_b32_e32 v25, v38290; GFX908-NEXT:    v_mov_b32_e32 v26, v37291; GFX908-NEXT:    v_mov_b32_e32 v27, v36292; GFX908-NEXT:    v_mov_b32_e32 v28, v35293; GFX908-NEXT:    v_mov_b32_e32 v29, v34294; GFX908-NEXT:    v_mov_b32_e32 v30, v33295; GFX908-NEXT:    s_waitcnt vmcnt(0)296; GFX908-NEXT:    v_mov_b32_e32 v31, v32297; GFX908-NEXT:    v_mov_b32_e32 v0, 0298; GFX908-NEXT:    v_accvgpr_read_b32 v62, a14 ; Reload Reuse299; GFX908-NEXT:    v_accvgpr_read_b32 v61, a13 ; Reload Reuse300; GFX908-NEXT:    v_accvgpr_read_b32 v60, a12 ; Reload Reuse301; GFX908-NEXT:    v_accvgpr_read_b32 v59, a11 ; Reload Reuse302; GFX908-NEXT:    v_accvgpr_read_b32 v58, a10 ; Reload Reuse303; GFX908-NEXT:    v_accvgpr_read_b32 v57, a9 ; Reload Reuse304; GFX908-NEXT:    v_accvgpr_read_b32 v56, a8 ; Reload Reuse305; GFX908-NEXT:    v_accvgpr_read_b32 v47, a7 ; Reload Reuse306; GFX908-NEXT:    v_accvgpr_read_b32 v46, a6 ; Reload Reuse307; GFX908-NEXT:    v_accvgpr_read_b32 v45, a5 ; Reload Reuse308; GFX908-NEXT:    v_accvgpr_read_b32 v44, a4 ; Reload Reuse309; GFX908-NEXT:    v_accvgpr_read_b32 v43, a3 ; Reload Reuse310; GFX908-NEXT:    v_accvgpr_read_b32 v42, a2 ; Reload Reuse311; GFX908-NEXT:    v_accvgpr_read_b32 v41, a1 ; Reload Reuse312; GFX908-NEXT:    v_accvgpr_read_b32 v40, a0 ; Reload Reuse313; GFX908-NEXT:    s_setpc_b64 s[30:31]314;315; GFX90a-LABEL: test_tuple:316; GFX90a:       ; %bb.0:317; GFX90a-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)318; GFX90a-NEXT:    v_accvgpr_write_b32 a0, v40 ; Reload Reuse319; GFX90a-NEXT:    v_accvgpr_write_b32 a1, v41 ; Reload Reuse320; GFX90a-NEXT:    v_accvgpr_write_b32 a2, v42 ; Reload Reuse321; GFX90a-NEXT:    v_accvgpr_write_b32 a3, v43 ; Reload Reuse322; GFX90a-NEXT:    v_accvgpr_write_b32 a4, v44 ; Reload Reuse323; GFX90a-NEXT:    v_accvgpr_write_b32 a5, v45 ; Reload Reuse324; GFX90a-NEXT:    v_accvgpr_write_b32 a6, v46 ; Reload Reuse325; GFX90a-NEXT:    v_accvgpr_write_b32 a7, v47 ; Reload Reuse326; GFX90a-NEXT:    v_accvgpr_write_b32 a8, v56 ; Reload Reuse327; GFX90a-NEXT:    v_accvgpr_write_b32 a9, v57 ; Reload Reuse328; GFX90a-NEXT:    v_accvgpr_write_b32 a10, v58 ; Reload Reuse329; GFX90a-NEXT:    v_accvgpr_write_b32 a11, v59 ; Reload Reuse330; GFX90a-NEXT:    v_accvgpr_write_b32 a12, v60 ; Reload Reuse331; GFX90a-NEXT:    v_accvgpr_write_b32 a13, v61 ; Reload Reuse332; GFX90a-NEXT:    v_accvgpr_write_b32 a14, v62 ; Reload Reuse333; GFX90a-NEXT:    v_mov_b32_e32 v33, v30334; GFX90a-NEXT:    v_mov_b32_e32 v34, v29335; GFX90a-NEXT:    v_mov_b32_e32 v35, v28336; GFX90a-NEXT:    v_mov_b32_e32 v36, v27337; GFX90a-NEXT:    v_mov_b32_e32 v37, v26338; GFX90a-NEXT:    v_mov_b32_e32 v38, v25339; GFX90a-NEXT:    v_mov_b32_e32 v39, v24340; GFX90a-NEXT:    v_mov_b32_e32 v48, v23341; GFX90a-NEXT:    v_mov_b32_e32 v49, v22342; GFX90a-NEXT:    v_mov_b32_e32 v50, v21343; GFX90a-NEXT:    v_mov_b32_e32 v51, v20344; GFX90a-NEXT:    v_mov_b32_e32 v52, v19345; GFX90a-NEXT:    v_mov_b32_e32 v53, v18346; GFX90a-NEXT:    v_mov_b32_e32 v54, v17347; GFX90a-NEXT:    v_mov_b32_e32 v55, v16348; GFX90a-NEXT:    v_mov_b32_e32 v40, v15349; GFX90a-NEXT:    v_mov_b32_e32 v41, v14350; GFX90a-NEXT:    v_mov_b32_e32 v42, v13351; GFX90a-NEXT:    v_mov_b32_e32 v43, v12352; GFX90a-NEXT:    v_mov_b32_e32 v44, v11353; GFX90a-NEXT:    v_mov_b32_e32 v45, v10354; GFX90a-NEXT:    v_mov_b32_e32 v46, v9355; GFX90a-NEXT:    v_mov_b32_e32 v47, v8356; GFX90a-NEXT:    v_mov_b32_e32 v56, v7357; GFX90a-NEXT:    v_mov_b32_e32 v57, v6358; GFX90a-NEXT:    v_mov_b32_e32 v58, v5359; GFX90a-NEXT:    v_mov_b32_e32 v59, v4360; GFX90a-NEXT:    v_mov_b32_e32 v60, v3361; GFX90a-NEXT:    v_mov_b32_e32 v61, v2362; GFX90a-NEXT:    v_mov_b32_e32 v62, v1363; GFX90a-NEXT:    buffer_load_dword v32, off, s[0:3], s32364; 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 $exec365; GFX90a-NEXT:    v_mov_b32_e32 v1, v62366; GFX90a-NEXT:    v_mov_b32_e32 v2, v61367; GFX90a-NEXT:    v_mov_b32_e32 v3, v60368; GFX90a-NEXT:    v_mov_b32_e32 v4, v59369; GFX90a-NEXT:    v_mov_b32_e32 v5, v58370; GFX90a-NEXT:    v_mov_b32_e32 v6, v57371; GFX90a-NEXT:    v_mov_b32_e32 v7, v56372; GFX90a-NEXT:    v_mov_b32_e32 v8, v47373; GFX90a-NEXT:    v_mov_b32_e32 v9, v46374; GFX90a-NEXT:    v_mov_b32_e32 v10, v45375; GFX90a-NEXT:    v_mov_b32_e32 v11, v44376; GFX90a-NEXT:    v_mov_b32_e32 v12, v43377; GFX90a-NEXT:    v_mov_b32_e32 v13, v42378; GFX90a-NEXT:    v_mov_b32_e32 v14, v41379; GFX90a-NEXT:    v_mov_b32_e32 v15, v40380; GFX90a-NEXT:    v_mov_b32_e32 v16, v55381; GFX90a-NEXT:    v_mov_b32_e32 v17, v54382; GFX90a-NEXT:    v_mov_b32_e32 v18, v53383; GFX90a-NEXT:    v_mov_b32_e32 v19, v52384; GFX90a-NEXT:    v_mov_b32_e32 v20, v51385; GFX90a-NEXT:    v_mov_b32_e32 v21, v50386; GFX90a-NEXT:    v_mov_b32_e32 v22, v49387; GFX90a-NEXT:    v_mov_b32_e32 v23, v48388; GFX90a-NEXT:    v_mov_b32_e32 v24, v39389; GFX90a-NEXT:    v_mov_b32_e32 v25, v38390; GFX90a-NEXT:    v_mov_b32_e32 v26, v37391; GFX90a-NEXT:    v_mov_b32_e32 v27, v36392; GFX90a-NEXT:    v_mov_b32_e32 v28, v35393; GFX90a-NEXT:    v_mov_b32_e32 v29, v34394; GFX90a-NEXT:    v_mov_b32_e32 v30, v33395; GFX90a-NEXT:    s_waitcnt vmcnt(0)396; GFX90a-NEXT:    v_mov_b32_e32 v31, v32397; GFX90a-NEXT:    v_mov_b32_e32 v0, 0398; GFX90a-NEXT:    v_accvgpr_read_b32 v62, a14 ; Reload Reuse399; GFX90a-NEXT:    v_accvgpr_read_b32 v61, a13 ; Reload Reuse400; GFX90a-NEXT:    v_accvgpr_read_b32 v60, a12 ; Reload Reuse401; GFX90a-NEXT:    v_accvgpr_read_b32 v59, a11 ; Reload Reuse402; GFX90a-NEXT:    v_accvgpr_read_b32 v58, a10 ; Reload Reuse403; GFX90a-NEXT:    v_accvgpr_read_b32 v57, a9 ; Reload Reuse404; GFX90a-NEXT:    v_accvgpr_read_b32 v56, a8 ; Reload Reuse405; GFX90a-NEXT:    v_accvgpr_read_b32 v47, a7 ; Reload Reuse406; GFX90a-NEXT:    v_accvgpr_read_b32 v46, a6 ; Reload Reuse407; GFX90a-NEXT:    v_accvgpr_read_b32 v45, a5 ; Reload Reuse408; GFX90a-NEXT:    v_accvgpr_read_b32 v44, a4 ; Reload Reuse409; GFX90a-NEXT:    v_accvgpr_read_b32 v43, a3 ; Reload Reuse410; GFX90a-NEXT:    v_accvgpr_read_b32 v42, a2 ; Reload Reuse411; GFX90a-NEXT:    v_accvgpr_read_b32 v41, a1 ; Reload Reuse412; GFX90a-NEXT:    v_accvgpr_read_b32 v40, a0 ; Reload Reuse413; GFX90a-NEXT:    s_setpc_b64 s[30:31]414  %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>415  ret i32 0416}417