brintos

brintos / llvm-project-archived public Read only

0
0
Text · 512.8 KiB · 6127b40 Raw
14317 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX900 %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX90A %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX942 %s5 6 7define void @v_shuffle_v3p3_v4p3__u_u_u(ptr addrspace(1) inreg %ptr) {8; GFX9-LABEL: v_shuffle_v3p3_v4p3__u_u_u:9; GFX9:       ; %bb.0:10; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11; GFX9-NEXT:    s_setpc_b64 s[30:31]12  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()13  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> poison14  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 1615  ret void16}17 18define void @v_shuffle_v3p3_v4p3__0_u_u(ptr addrspace(1) inreg %ptr) {19; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_u_u:20; GFX900:       ; %bb.0:21; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)22; GFX900-NEXT:    v_mov_b32_e32 v4, 023; GFX900-NEXT:    ;;#ASMSTART24; GFX900-NEXT:    ; def v[0:3]25; GFX900-NEXT:    ;;#ASMEND26; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]27; GFX900-NEXT:    s_waitcnt vmcnt(0)28; GFX900-NEXT:    s_setpc_b64 s[30:31]29;30; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_u_u:31; GFX90A:       ; %bb.0:32; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)33; GFX90A-NEXT:    v_mov_b32_e32 v4, 034; GFX90A-NEXT:    ;;#ASMSTART35; GFX90A-NEXT:    ; def v[0:3]36; GFX90A-NEXT:    ;;#ASMEND37; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]38; GFX90A-NEXT:    s_waitcnt vmcnt(0)39; GFX90A-NEXT:    s_setpc_b64 s[30:31]40;41; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_u_u:42; GFX942:       ; %bb.0:43; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)44; GFX942-NEXT:    v_mov_b32_e32 v4, 045; GFX942-NEXT:    ;;#ASMSTART46; GFX942-NEXT:    ; def v[0:3]47; GFX942-NEXT:    ;;#ASMEND48; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]49; GFX942-NEXT:    s_waitcnt vmcnt(0)50; GFX942-NEXT:    s_setpc_b64 s[30:31]51  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()52  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 poison, i32 poison>53  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 1654  ret void55}56 57define void @v_shuffle_v3p3_v4p3__1_u_u(ptr addrspace(1) inreg %ptr) {58; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_u_u:59; GFX900:       ; %bb.0:60; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)61; GFX900-NEXT:    v_mov_b32_e32 v4, 062; GFX900-NEXT:    ;;#ASMSTART63; GFX900-NEXT:    ; def v[0:3]64; GFX900-NEXT:    ;;#ASMEND65; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]66; GFX900-NEXT:    s_waitcnt vmcnt(0)67; GFX900-NEXT:    s_setpc_b64 s[30:31]68;69; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_u_u:70; GFX90A:       ; %bb.0:71; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)72; GFX90A-NEXT:    ;;#ASMSTART73; GFX90A-NEXT:    ; def v[0:3]74; GFX90A-NEXT:    ;;#ASMEND75; GFX90A-NEXT:    v_mov_b32_e32 v4, 076; GFX90A-NEXT:    v_mov_b32_e32 v0, v177; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]78; GFX90A-NEXT:    s_waitcnt vmcnt(0)79; GFX90A-NEXT:    s_setpc_b64 s[30:31]80;81; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_u_u:82; GFX942:       ; %bb.0:83; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)84; GFX942-NEXT:    ;;#ASMSTART85; GFX942-NEXT:    ; def v[0:3]86; GFX942-NEXT:    ;;#ASMEND87; GFX942-NEXT:    v_mov_b32_e32 v4, 088; GFX942-NEXT:    v_mov_b32_e32 v0, v189; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]90; GFX942-NEXT:    s_waitcnt vmcnt(0)91; GFX942-NEXT:    s_setpc_b64 s[30:31]92  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()93  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 poison, i32 poison>94  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 1695  ret void96}97 98define void @v_shuffle_v3p3_v4p3__2_u_u(ptr addrspace(1) inreg %ptr) {99; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_u_u:100; GFX900:       ; %bb.0:101; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)102; GFX900-NEXT:    v_mov_b32_e32 v4, 0103; GFX900-NEXT:    ;;#ASMSTART104; GFX900-NEXT:    ; def v[0:3]105; GFX900-NEXT:    ;;#ASMEND106; GFX900-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]107; GFX900-NEXT:    s_waitcnt vmcnt(0)108; GFX900-NEXT:    s_setpc_b64 s[30:31]109;110; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_u_u:111; GFX90A:       ; %bb.0:112; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)113; GFX90A-NEXT:    v_mov_b32_e32 v4, 0114; GFX90A-NEXT:    ;;#ASMSTART115; GFX90A-NEXT:    ; def v[0:3]116; GFX90A-NEXT:    ;;#ASMEND117; GFX90A-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]118; GFX90A-NEXT:    s_waitcnt vmcnt(0)119; GFX90A-NEXT:    s_setpc_b64 s[30:31]120;121; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_u_u:122; GFX942:       ; %bb.0:123; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)124; GFX942-NEXT:    v_mov_b32_e32 v4, 0125; GFX942-NEXT:    ;;#ASMSTART126; GFX942-NEXT:    ; def v[0:3]127; GFX942-NEXT:    ;;#ASMEND128; GFX942-NEXT:    global_store_dwordx3 v4, v[2:4], s[0:1]129; GFX942-NEXT:    s_waitcnt vmcnt(0)130; GFX942-NEXT:    s_setpc_b64 s[30:31]131  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()132  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 poison, i32 poison>133  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16134  ret void135}136 137define void @v_shuffle_v3p3_v4p3__3_u_u(ptr addrspace(1) inreg %ptr) {138; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_u_u:139; GFX900:       ; %bb.0:140; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)141; GFX900-NEXT:    v_mov_b32_e32 v4, 0142; GFX900-NEXT:    ;;#ASMSTART143; GFX900-NEXT:    ; def v[0:3]144; GFX900-NEXT:    ;;#ASMEND145; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]146; GFX900-NEXT:    s_waitcnt vmcnt(0)147; GFX900-NEXT:    s_setpc_b64 s[30:31]148;149; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_u_u:150; GFX90A:       ; %bb.0:151; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)152; GFX90A-NEXT:    ;;#ASMSTART153; GFX90A-NEXT:    ; def v[0:3]154; GFX90A-NEXT:    ;;#ASMEND155; GFX90A-NEXT:    v_mov_b32_e32 v4, 0156; GFX90A-NEXT:    v_mov_b32_e32 v0, v3157; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]158; GFX90A-NEXT:    s_waitcnt vmcnt(0)159; GFX90A-NEXT:    s_setpc_b64 s[30:31]160;161; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_u_u:162; GFX942:       ; %bb.0:163; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)164; GFX942-NEXT:    ;;#ASMSTART165; GFX942-NEXT:    ; def v[0:3]166; GFX942-NEXT:    ;;#ASMEND167; GFX942-NEXT:    v_mov_b32_e32 v4, 0168; GFX942-NEXT:    v_mov_b32_e32 v0, v3169; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]170; GFX942-NEXT:    s_waitcnt vmcnt(0)171; GFX942-NEXT:    s_setpc_b64 s[30:31]172  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()173  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 poison, i32 poison>174  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16175  ret void176}177 178define void @v_shuffle_v3p3_v4p3__4_u_u(ptr addrspace(1) inreg %ptr) {179; GFX9-LABEL: v_shuffle_v3p3_v4p3__4_u_u:180; GFX9:       ; %bb.0:181; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)182; GFX9-NEXT:    s_setpc_b64 s[30:31]183  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()184  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 poison, i32 poison>185  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16186  ret void187}188 189define void @v_shuffle_v3p3_v4p3__5_u_u(ptr addrspace(1) inreg %ptr) {190; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_u_u:191; GFX900:       ; %bb.0:192; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)193; GFX900-NEXT:    v_mov_b32_e32 v4, 0194; GFX900-NEXT:    ;;#ASMSTART195; GFX900-NEXT:    ; def v[0:3]196; GFX900-NEXT:    ;;#ASMEND197; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]198; GFX900-NEXT:    s_waitcnt vmcnt(0)199; GFX900-NEXT:    s_setpc_b64 s[30:31]200;201; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_u_u:202; GFX90A:       ; %bb.0:203; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)204; GFX90A-NEXT:    ;;#ASMSTART205; GFX90A-NEXT:    ; def v[0:3]206; GFX90A-NEXT:    ;;#ASMEND207; GFX90A-NEXT:    v_mov_b32_e32 v4, 0208; GFX90A-NEXT:    v_mov_b32_e32 v0, v1209; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]210; GFX90A-NEXT:    s_waitcnt vmcnt(0)211; GFX90A-NEXT:    s_setpc_b64 s[30:31]212;213; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_u_u:214; GFX942:       ; %bb.0:215; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)216; GFX942-NEXT:    ;;#ASMSTART217; GFX942-NEXT:    ; def v[0:3]218; GFX942-NEXT:    ;;#ASMEND219; GFX942-NEXT:    v_mov_b32_e32 v4, 0220; GFX942-NEXT:    v_mov_b32_e32 v0, v1221; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]222; GFX942-NEXT:    s_waitcnt vmcnt(0)223; GFX942-NEXT:    s_setpc_b64 s[30:31]224  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()225  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()226  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>227  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16228  ret void229}230 231define void @v_shuffle_v3p3_v4p3__6_u_u(ptr addrspace(1) inreg %ptr) {232; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_u_u:233; GFX900:       ; %bb.0:234; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)235; GFX900-NEXT:    v_mov_b32_e32 v4, 0236; GFX900-NEXT:    ;;#ASMSTART237; GFX900-NEXT:    ; def v[0:3]238; GFX900-NEXT:    ;;#ASMEND239; GFX900-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]240; GFX900-NEXT:    s_waitcnt vmcnt(0)241; GFX900-NEXT:    s_setpc_b64 s[30:31]242;243; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_u_u:244; GFX90A:       ; %bb.0:245; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)246; GFX90A-NEXT:    v_mov_b32_e32 v4, 0247; GFX90A-NEXT:    ;;#ASMSTART248; GFX90A-NEXT:    ; def v[0:3]249; GFX90A-NEXT:    ;;#ASMEND250; GFX90A-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]251; GFX90A-NEXT:    s_waitcnt vmcnt(0)252; GFX90A-NEXT:    s_setpc_b64 s[30:31]253;254; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_u_u:255; GFX942:       ; %bb.0:256; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)257; GFX942-NEXT:    v_mov_b32_e32 v4, 0258; GFX942-NEXT:    ;;#ASMSTART259; GFX942-NEXT:    ; def v[0:3]260; GFX942-NEXT:    ;;#ASMEND261; GFX942-NEXT:    global_store_dwordx3 v4, v[2:4], s[0:1]262; GFX942-NEXT:    s_waitcnt vmcnt(0)263; GFX942-NEXT:    s_setpc_b64 s[30:31]264  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()265  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()266  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>267  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16268  ret void269}270 271define void @v_shuffle_v3p3_v4p3__7_u_u(ptr addrspace(1) inreg %ptr) {272; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_u:273; GFX900:       ; %bb.0:274; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)275; GFX900-NEXT:    v_mov_b32_e32 v4, 0276; GFX900-NEXT:    ;;#ASMSTART277; GFX900-NEXT:    ; def v[0:3]278; GFX900-NEXT:    ;;#ASMEND279; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]280; GFX900-NEXT:    s_waitcnt vmcnt(0)281; GFX900-NEXT:    s_setpc_b64 s[30:31]282;283; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_u:284; GFX90A:       ; %bb.0:285; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)286; GFX90A-NEXT:    ;;#ASMSTART287; GFX90A-NEXT:    ; def v[0:3]288; GFX90A-NEXT:    ;;#ASMEND289; GFX90A-NEXT:    v_mov_b32_e32 v4, 0290; GFX90A-NEXT:    v_mov_b32_e32 v0, v3291; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]292; GFX90A-NEXT:    s_waitcnt vmcnt(0)293; GFX90A-NEXT:    s_setpc_b64 s[30:31]294;295; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_u:296; GFX942:       ; %bb.0:297; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)298; GFX942-NEXT:    ;;#ASMSTART299; GFX942-NEXT:    ; def v[0:3]300; GFX942-NEXT:    ;;#ASMEND301; GFX942-NEXT:    v_mov_b32_e32 v4, 0302; GFX942-NEXT:    v_mov_b32_e32 v0, v3303; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]304; GFX942-NEXT:    s_waitcnt vmcnt(0)305; GFX942-NEXT:    s_setpc_b64 s[30:31]306  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()307  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()308  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>309  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16310  ret void311}312 313define void @v_shuffle_v3p3_v4p3__7_0_u(ptr addrspace(1) inreg %ptr) {314; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_u:315; GFX900:       ; %bb.0:316; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)317; GFX900-NEXT:    v_mov_b32_e32 v8, 0318; GFX900-NEXT:    ;;#ASMSTART319; GFX900-NEXT:    ; def v[4:7]320; GFX900-NEXT:    ;;#ASMEND321; GFX900-NEXT:    ;;#ASMSTART322; GFX900-NEXT:    ; def v[0:3]323; GFX900-NEXT:    ;;#ASMEND324; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]325; GFX900-NEXT:    s_waitcnt vmcnt(0)326; GFX900-NEXT:    s_setpc_b64 s[30:31]327;328; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_u:329; GFX90A:       ; %bb.0:330; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)331; GFX90A-NEXT:    ;;#ASMSTART332; GFX90A-NEXT:    ; def v[0:3]333; GFX90A-NEXT:    ;;#ASMEND334; GFX90A-NEXT:    ;;#ASMSTART335; GFX90A-NEXT:    ; def v[2:5]336; GFX90A-NEXT:    ;;#ASMEND337; GFX90A-NEXT:    v_mov_b32_e32 v6, 0338; GFX90A-NEXT:    v_mov_b32_e32 v2, v5339; GFX90A-NEXT:    v_mov_b32_e32 v3, v0340; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]341; GFX90A-NEXT:    s_waitcnt vmcnt(0)342; GFX90A-NEXT:    s_setpc_b64 s[30:31]343;344; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_u:345; GFX942:       ; %bb.0:346; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)347; GFX942-NEXT:    ;;#ASMSTART348; GFX942-NEXT:    ; def v[0:3]349; GFX942-NEXT:    ;;#ASMEND350; GFX942-NEXT:    v_mov_b32_e32 v6, 0351; GFX942-NEXT:    ;;#ASMSTART352; GFX942-NEXT:    ; def v[2:5]353; GFX942-NEXT:    ;;#ASMEND354; GFX942-NEXT:    s_nop 0355; GFX942-NEXT:    v_mov_b32_e32 v2, v5356; GFX942-NEXT:    v_mov_b32_e32 v3, v0357; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]358; GFX942-NEXT:    s_waitcnt vmcnt(0)359; GFX942-NEXT:    s_setpc_b64 s[30:31]360  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()361  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()362  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>363  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16364  ret void365}366 367define void @v_shuffle_v3p3_v4p3__7_1_u(ptr addrspace(1) inreg %ptr) {368; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_u:369; GFX900:       ; %bb.0:370; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)371; GFX900-NEXT:    v_mov_b32_e32 v7, 0372; GFX900-NEXT:    ;;#ASMSTART373; GFX900-NEXT:    ; def v[3:6]374; GFX900-NEXT:    ;;#ASMEND375; GFX900-NEXT:    ;;#ASMSTART376; GFX900-NEXT:    ; def v[0:3]377; GFX900-NEXT:    ;;#ASMEND378; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]379; GFX900-NEXT:    s_waitcnt vmcnt(0)380; GFX900-NEXT:    s_setpc_b64 s[30:31]381;382; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_u:383; GFX90A:       ; %bb.0:384; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)385; GFX90A-NEXT:    ;;#ASMSTART386; GFX90A-NEXT:    ; def v[0:3]387; GFX90A-NEXT:    ;;#ASMEND388; GFX90A-NEXT:    v_mov_b32_e32 v6, 0389; GFX90A-NEXT:    ;;#ASMSTART390; GFX90A-NEXT:    ; def v[2:5]391; GFX90A-NEXT:    ;;#ASMEND392; GFX90A-NEXT:    v_mov_b32_e32 v0, v5393; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]394; GFX90A-NEXT:    s_waitcnt vmcnt(0)395; GFX90A-NEXT:    s_setpc_b64 s[30:31]396;397; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_u:398; GFX942:       ; %bb.0:399; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)400; GFX942-NEXT:    ;;#ASMSTART401; GFX942-NEXT:    ; def v[0:3]402; GFX942-NEXT:    ;;#ASMEND403; GFX942-NEXT:    v_mov_b32_e32 v6, 0404; GFX942-NEXT:    ;;#ASMSTART405; GFX942-NEXT:    ; def v[2:5]406; GFX942-NEXT:    ;;#ASMEND407; GFX942-NEXT:    s_nop 0408; GFX942-NEXT:    v_mov_b32_e32 v0, v5409; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]410; GFX942-NEXT:    s_waitcnt vmcnt(0)411; GFX942-NEXT:    s_setpc_b64 s[30:31]412  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()413  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()414  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>415  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16416  ret void417}418 419define void @v_shuffle_v3p3_v4p3__7_2_u(ptr addrspace(1) inreg %ptr) {420; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_u:421; GFX900:       ; %bb.0:422; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)423; GFX900-NEXT:    v_mov_b32_e32 v6, 0424; GFX900-NEXT:    ;;#ASMSTART425; GFX900-NEXT:    ; def v[2:5]426; GFX900-NEXT:    ;;#ASMEND427; GFX900-NEXT:    ;;#ASMSTART428; GFX900-NEXT:    ; def v[0:3]429; GFX900-NEXT:    ;;#ASMEND430; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]431; GFX900-NEXT:    s_waitcnt vmcnt(0)432; GFX900-NEXT:    s_setpc_b64 s[30:31]433;434; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_u:435; GFX90A:       ; %bb.0:436; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)437; GFX90A-NEXT:    ;;#ASMSTART438; GFX90A-NEXT:    ; def v[0:3]439; GFX90A-NEXT:    ;;#ASMEND440; GFX90A-NEXT:    v_mov_b32_e32 v8, 0441; GFX90A-NEXT:    ;;#ASMSTART442; GFX90A-NEXT:    ; def v[4:7]443; GFX90A-NEXT:    ;;#ASMEND444; GFX90A-NEXT:    v_mov_b32_e32 v0, v7445; GFX90A-NEXT:    v_mov_b32_e32 v1, v2446; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]447; GFX90A-NEXT:    s_waitcnt vmcnt(0)448; GFX90A-NEXT:    s_setpc_b64 s[30:31]449;450; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_u:451; GFX942:       ; %bb.0:452; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)453; GFX942-NEXT:    ;;#ASMSTART454; GFX942-NEXT:    ; def v[0:3]455; GFX942-NEXT:    ;;#ASMEND456; GFX942-NEXT:    v_mov_b32_e32 v8, 0457; GFX942-NEXT:    ;;#ASMSTART458; GFX942-NEXT:    ; def v[4:7]459; GFX942-NEXT:    ;;#ASMEND460; GFX942-NEXT:    v_mov_b32_e32 v1, v2461; GFX942-NEXT:    v_mov_b32_e32 v0, v7462; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]463; GFX942-NEXT:    s_waitcnt vmcnt(0)464; GFX942-NEXT:    s_setpc_b64 s[30:31]465  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()466  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()467  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>468  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16469  ret void470}471 472define void @v_shuffle_v3p3_v4p3__7_3_u(ptr addrspace(1) inreg %ptr) {473; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_u:474; GFX900:       ; %bb.0:475; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)476; GFX900-NEXT:    v_mov_b32_e32 v5, 0477; GFX900-NEXT:    ;;#ASMSTART478; GFX900-NEXT:    ; def v[1:4]479; GFX900-NEXT:    ;;#ASMEND480; GFX900-NEXT:    ;;#ASMSTART481; GFX900-NEXT:    ; def v[0:3]482; GFX900-NEXT:    ;;#ASMEND483; GFX900-NEXT:    global_store_dwordx3 v5, v[3:5], s[16:17]484; GFX900-NEXT:    s_waitcnt vmcnt(0)485; GFX900-NEXT:    s_setpc_b64 s[30:31]486;487; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_u:488; GFX90A:       ; %bb.0:489; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)490; GFX90A-NEXT:    ;;#ASMSTART491; GFX90A-NEXT:    ; def v[0:3]492; GFX90A-NEXT:    ;;#ASMEND493; GFX90A-NEXT:    v_mov_b32_e32 v8, 0494; GFX90A-NEXT:    ;;#ASMSTART495; GFX90A-NEXT:    ; def v[4:7]496; GFX90A-NEXT:    ;;#ASMEND497; GFX90A-NEXT:    v_mov_b32_e32 v2, v7498; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]499; GFX90A-NEXT:    s_waitcnt vmcnt(0)500; GFX90A-NEXT:    s_setpc_b64 s[30:31]501;502; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_u:503; GFX942:       ; %bb.0:504; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)505; GFX942-NEXT:    ;;#ASMSTART506; GFX942-NEXT:    ; def v[0:3]507; GFX942-NEXT:    ;;#ASMEND508; GFX942-NEXT:    v_mov_b32_e32 v8, 0509; GFX942-NEXT:    ;;#ASMSTART510; GFX942-NEXT:    ; def v[4:7]511; GFX942-NEXT:    ;;#ASMEND512; GFX942-NEXT:    s_nop 0513; GFX942-NEXT:    v_mov_b32_e32 v2, v7514; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]515; GFX942-NEXT:    s_waitcnt vmcnt(0)516; GFX942-NEXT:    s_setpc_b64 s[30:31]517  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()518  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()519  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>520  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16521  ret void522}523 524define void @v_shuffle_v3p3_v4p3__7_4_u(ptr addrspace(1) inreg %ptr) {525; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_u:526; GFX900:       ; %bb.0:527; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)528; GFX900-NEXT:    v_mov_b32_e32 v5, 0529; GFX900-NEXT:    ;;#ASMSTART530; GFX900-NEXT:    ; def v[0:3]531; GFX900-NEXT:    ;;#ASMEND532; GFX900-NEXT:    v_mov_b32_e32 v4, v0533; GFX900-NEXT:    global_store_dwordx3 v5, v[3:5], s[16:17]534; GFX900-NEXT:    s_waitcnt vmcnt(0)535; GFX900-NEXT:    s_setpc_b64 s[30:31]536;537; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_u:538; GFX90A:       ; %bb.0:539; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)540; GFX90A-NEXT:    ;;#ASMSTART541; GFX90A-NEXT:    ; def v[0:3]542; GFX90A-NEXT:    ;;#ASMEND543; GFX90A-NEXT:    v_mov_b32_e32 v4, 0544; GFX90A-NEXT:    v_mov_b32_e32 v2, v3545; GFX90A-NEXT:    v_mov_b32_e32 v3, v0546; GFX90A-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]547; GFX90A-NEXT:    s_waitcnt vmcnt(0)548; GFX90A-NEXT:    s_setpc_b64 s[30:31]549;550; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_u:551; GFX942:       ; %bb.0:552; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)553; GFX942-NEXT:    ;;#ASMSTART554; GFX942-NEXT:    ; def v[0:3]555; GFX942-NEXT:    ;;#ASMEND556; GFX942-NEXT:    v_mov_b32_e32 v4, 0557; GFX942-NEXT:    v_mov_b32_e32 v2, v3558; GFX942-NEXT:    v_mov_b32_e32 v3, v0559; GFX942-NEXT:    global_store_dwordx3 v4, v[2:4], s[0:1]560; GFX942-NEXT:    s_waitcnt vmcnt(0)561; GFX942-NEXT:    s_setpc_b64 s[30:31]562  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()563  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()564  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>565  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16566  ret void567}568 569define void @v_shuffle_v3p3_v4p3__7_5_u(ptr addrspace(1) inreg %ptr) {570; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_u:571; GFX900:       ; %bb.0:572; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)573; GFX900-NEXT:    v_mov_b32_e32 v5, 0574; GFX900-NEXT:    ;;#ASMSTART575; GFX900-NEXT:    ; def v[0:3]576; GFX900-NEXT:    ;;#ASMEND577; GFX900-NEXT:    v_mov_b32_e32 v4, v1578; GFX900-NEXT:    global_store_dwordx3 v5, v[3:5], s[16:17]579; GFX900-NEXT:    s_waitcnt vmcnt(0)580; GFX900-NEXT:    s_setpc_b64 s[30:31]581;582; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_u:583; GFX90A:       ; %bb.0:584; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)585; GFX90A-NEXT:    ;;#ASMSTART586; GFX90A-NEXT:    ; def v[0:3]587; GFX90A-NEXT:    ;;#ASMEND588; GFX90A-NEXT:    v_mov_b32_e32 v4, 0589; GFX90A-NEXT:    v_mov_b32_e32 v0, v3590; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]591; GFX90A-NEXT:    s_waitcnt vmcnt(0)592; GFX90A-NEXT:    s_setpc_b64 s[30:31]593;594; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_u:595; GFX942:       ; %bb.0:596; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)597; GFX942-NEXT:    ;;#ASMSTART598; GFX942-NEXT:    ; def v[0:3]599; GFX942-NEXT:    ;;#ASMEND600; GFX942-NEXT:    v_mov_b32_e32 v4, 0601; GFX942-NEXT:    v_mov_b32_e32 v0, v3602; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]603; GFX942-NEXT:    s_waitcnt vmcnt(0)604; GFX942-NEXT:    s_setpc_b64 s[30:31]605  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()606  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()607  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>608  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16609  ret void610}611 612define void @v_shuffle_v3p3_v4p3__7_6_u(ptr addrspace(1) inreg %ptr) {613; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_u:614; GFX900:       ; %bb.0:615; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)616; GFX900-NEXT:    v_mov_b32_e32 v5, 0617; GFX900-NEXT:    ;;#ASMSTART618; GFX900-NEXT:    ; def v[0:3]619; GFX900-NEXT:    ;;#ASMEND620; GFX900-NEXT:    v_mov_b32_e32 v4, v2621; GFX900-NEXT:    global_store_dwordx3 v5, v[3:5], s[16:17]622; GFX900-NEXT:    s_waitcnt vmcnt(0)623; GFX900-NEXT:    s_setpc_b64 s[30:31]624;625; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_u:626; GFX90A:       ; %bb.0:627; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)628; GFX90A-NEXT:    ;;#ASMSTART629; GFX90A-NEXT:    ; def v[0:3]630; GFX90A-NEXT:    ;;#ASMEND631; GFX90A-NEXT:    v_mov_b32_e32 v4, 0632; GFX90A-NEXT:    v_mov_b32_e32 v0, v3633; GFX90A-NEXT:    v_mov_b32_e32 v1, v2634; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]635; GFX90A-NEXT:    s_waitcnt vmcnt(0)636; GFX90A-NEXT:    s_setpc_b64 s[30:31]637;638; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_u:639; GFX942:       ; %bb.0:640; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)641; GFX942-NEXT:    ;;#ASMSTART642; GFX942-NEXT:    ; def v[0:3]643; GFX942-NEXT:    ;;#ASMEND644; GFX942-NEXT:    v_mov_b32_e32 v4, 0645; GFX942-NEXT:    v_mov_b32_e32 v0, v3646; GFX942-NEXT:    v_mov_b32_e32 v1, v2647; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]648; GFX942-NEXT:    s_waitcnt vmcnt(0)649; GFX942-NEXT:    s_setpc_b64 s[30:31]650  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()651  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()652  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>653  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16654  ret void655}656 657define void @v_shuffle_v3p3_v4p3__7_7_u(ptr addrspace(1) inreg %ptr) {658; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_u:659; GFX900:       ; %bb.0:660; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)661; GFX900-NEXT:    v_mov_b32_e32 v5, 0662; GFX900-NEXT:    ;;#ASMSTART663; GFX900-NEXT:    ; def v[0:3]664; GFX900-NEXT:    ;;#ASMEND665; GFX900-NEXT:    v_mov_b32_e32 v4, v3666; GFX900-NEXT:    global_store_dwordx3 v5, v[3:5], s[16:17]667; GFX900-NEXT:    s_waitcnt vmcnt(0)668; GFX900-NEXT:    s_setpc_b64 s[30:31]669;670; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_u:671; GFX90A:       ; %bb.0:672; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)673; GFX90A-NEXT:    ;;#ASMSTART674; GFX90A-NEXT:    ; def v[0:3]675; GFX90A-NEXT:    ;;#ASMEND676; GFX90A-NEXT:    v_mov_b32_e32 v4, 0677; GFX90A-NEXT:    v_mov_b32_e32 v2, v3678; GFX90A-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]679; GFX90A-NEXT:    s_waitcnt vmcnt(0)680; GFX90A-NEXT:    s_setpc_b64 s[30:31]681;682; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_u:683; GFX942:       ; %bb.0:684; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)685; GFX942-NEXT:    ;;#ASMSTART686; GFX942-NEXT:    ; def v[0:3]687; GFX942-NEXT:    ;;#ASMEND688; GFX942-NEXT:    v_mov_b32_e32 v4, 0689; GFX942-NEXT:    v_mov_b32_e32 v2, v3690; GFX942-NEXT:    global_store_dwordx3 v4, v[2:4], s[0:1]691; GFX942-NEXT:    s_waitcnt vmcnt(0)692; GFX942-NEXT:    s_setpc_b64 s[30:31]693  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()694  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()695  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>696  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16697  ret void698}699 700define void @v_shuffle_v3p3_v4p3__7_7_0(ptr addrspace(1) inreg %ptr) {701; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_0:702; GFX900:       ; %bb.0:703; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)704; GFX900-NEXT:    v_mov_b32_e32 v9, 0705; GFX900-NEXT:    ;;#ASMSTART706; GFX900-NEXT:    ; def v[0:3]707; GFX900-NEXT:    ;;#ASMEND708; GFX900-NEXT:    v_mov_b32_e32 v4, v3709; GFX900-NEXT:    ;;#ASMSTART710; GFX900-NEXT:    ; def v[5:8]711; GFX900-NEXT:    ;;#ASMEND712; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]713; GFX900-NEXT:    s_waitcnt vmcnt(0)714; GFX900-NEXT:    s_setpc_b64 s[30:31]715;716; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_0:717; GFX90A:       ; %bb.0:718; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)719; GFX90A-NEXT:    ;;#ASMSTART720; GFX90A-NEXT:    ; def v[0:3]721; GFX90A-NEXT:    ;;#ASMEND722; GFX90A-NEXT:    v_mov_b32_e32 v8, 0723; GFX90A-NEXT:    v_mov_b32_e32 v2, v3724; GFX90A-NEXT:    ;;#ASMSTART725; GFX90A-NEXT:    ; def v[4:7]726; GFX90A-NEXT:    ;;#ASMEND727; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]728; GFX90A-NEXT:    s_waitcnt vmcnt(0)729; GFX90A-NEXT:    s_setpc_b64 s[30:31]730;731; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_0:732; GFX942:       ; %bb.0:733; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)734; GFX942-NEXT:    ;;#ASMSTART735; GFX942-NEXT:    ; def v[0:3]736; GFX942-NEXT:    ;;#ASMEND737; GFX942-NEXT:    v_mov_b32_e32 v8, 0738; GFX942-NEXT:    v_mov_b32_e32 v2, v3739; GFX942-NEXT:    ;;#ASMSTART740; GFX942-NEXT:    ; def v[4:7]741; GFX942-NEXT:    ;;#ASMEND742; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]743; GFX942-NEXT:    s_waitcnt vmcnt(0)744; GFX942-NEXT:    s_setpc_b64 s[30:31]745  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()746  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()747  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 0>748  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16749  ret void750}751 752define void @v_shuffle_v3p3_v4p3__7_7_1(ptr addrspace(1) inreg %ptr) {753; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_1:754; GFX900:       ; %bb.0:755; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)756; GFX900-NEXT:    ;;#ASMSTART757; GFX900-NEXT:    ; def v[4:7]758; GFX900-NEXT:    ;;#ASMEND759; GFX900-NEXT:    v_mov_b32_e32 v8, 0760; GFX900-NEXT:    ;;#ASMSTART761; GFX900-NEXT:    ; def v[0:3]762; GFX900-NEXT:    ;;#ASMEND763; GFX900-NEXT:    v_mov_b32_e32 v4, v3764; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]765; GFX900-NEXT:    s_waitcnt vmcnt(0)766; GFX900-NEXT:    s_setpc_b64 s[30:31]767;768; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_1:769; GFX90A:       ; %bb.0:770; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)771; GFX90A-NEXT:    ;;#ASMSTART772; GFX90A-NEXT:    ; def v[4:7]773; GFX90A-NEXT:    ;;#ASMEND774; GFX90A-NEXT:    ;;#ASMSTART775; GFX90A-NEXT:    ; def v[0:3]776; GFX90A-NEXT:    ;;#ASMEND777; GFX90A-NEXT:    v_mov_b32_e32 v8, 0778; GFX90A-NEXT:    v_mov_b32_e32 v2, v3779; GFX90A-NEXT:    v_mov_b32_e32 v4, v5780; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]781; GFX90A-NEXT:    s_waitcnt vmcnt(0)782; GFX90A-NEXT:    s_setpc_b64 s[30:31]783;784; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_1:785; GFX942:       ; %bb.0:786; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)787; GFX942-NEXT:    ;;#ASMSTART788; GFX942-NEXT:    ; def v[4:7]789; GFX942-NEXT:    ;;#ASMEND790; GFX942-NEXT:    ;;#ASMSTART791; GFX942-NEXT:    ; def v[0:3]792; GFX942-NEXT:    ;;#ASMEND793; GFX942-NEXT:    v_mov_b32_e32 v8, 0794; GFX942-NEXT:    v_mov_b32_e32 v2, v3795; GFX942-NEXT:    v_mov_b32_e32 v4, v5796; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]797; GFX942-NEXT:    s_waitcnt vmcnt(0)798; GFX942-NEXT:    s_setpc_b64 s[30:31]799  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()800  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()801  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 1>802  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16803  ret void804}805 806define void @v_shuffle_v3p3_v4p3__7_7_2(ptr addrspace(1) inreg %ptr) {807; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_2:808; GFX900:       ; %bb.0:809; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)810; GFX900-NEXT:    ;;#ASMSTART811; GFX900-NEXT:    ; def v[3:6]812; GFX900-NEXT:    ;;#ASMEND813; GFX900-NEXT:    v_mov_b32_e32 v7, 0814; GFX900-NEXT:    ;;#ASMSTART815; GFX900-NEXT:    ; def v[0:3]816; GFX900-NEXT:    ;;#ASMEND817; GFX900-NEXT:    v_mov_b32_e32 v4, v3818; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]819; GFX900-NEXT:    s_waitcnt vmcnt(0)820; GFX900-NEXT:    s_setpc_b64 s[30:31]821;822; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_2:823; GFX90A:       ; %bb.0:824; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)825; GFX90A-NEXT:    ;;#ASMSTART826; GFX90A-NEXT:    ; def v[2:5]827; GFX90A-NEXT:    ;;#ASMEND828; GFX90A-NEXT:    ;;#ASMSTART829; GFX90A-NEXT:    ; def v[0:3]830; GFX90A-NEXT:    ;;#ASMEND831; GFX90A-NEXT:    v_mov_b32_e32 v6, 0832; GFX90A-NEXT:    v_mov_b32_e32 v2, v3833; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]834; GFX90A-NEXT:    s_waitcnt vmcnt(0)835; GFX90A-NEXT:    s_setpc_b64 s[30:31]836;837; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_2:838; GFX942:       ; %bb.0:839; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)840; GFX942-NEXT:    ;;#ASMSTART841; GFX942-NEXT:    ; def v[2:5]842; GFX942-NEXT:    ;;#ASMEND843; GFX942-NEXT:    v_mov_b32_e32 v6, 0844; GFX942-NEXT:    ;;#ASMSTART845; GFX942-NEXT:    ; def v[0:3]846; GFX942-NEXT:    ;;#ASMEND847; GFX942-NEXT:    s_nop 0848; GFX942-NEXT:    v_mov_b32_e32 v2, v3849; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]850; GFX942-NEXT:    s_waitcnt vmcnt(0)851; GFX942-NEXT:    s_setpc_b64 s[30:31]852  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()853  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()854  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 2>855  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16856  ret void857}858 859define void @v_shuffle_v3p3_v4p3__7_7_3(ptr addrspace(1) inreg %ptr) {860; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_3:861; GFX900:       ; %bb.0:862; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)863; GFX900-NEXT:    ;;#ASMSTART864; GFX900-NEXT:    ; def v[2:5]865; GFX900-NEXT:    ;;#ASMEND866; GFX900-NEXT:    v_mov_b32_e32 v6, 0867; GFX900-NEXT:    ;;#ASMSTART868; GFX900-NEXT:    ; def v[0:3]869; GFX900-NEXT:    ;;#ASMEND870; GFX900-NEXT:    v_mov_b32_e32 v4, v3871; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]872; GFX900-NEXT:    s_waitcnt vmcnt(0)873; GFX900-NEXT:    s_setpc_b64 s[30:31]874;875; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_3:876; GFX90A:       ; %bb.0:877; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)878; GFX90A-NEXT:    ;;#ASMSTART879; GFX90A-NEXT:    ; def v[2:5]880; GFX90A-NEXT:    ;;#ASMEND881; GFX90A-NEXT:    ;;#ASMSTART882; GFX90A-NEXT:    ; def v[0:3]883; GFX90A-NEXT:    ;;#ASMEND884; GFX90A-NEXT:    v_mov_b32_e32 v6, 0885; GFX90A-NEXT:    v_mov_b32_e32 v2, v3886; GFX90A-NEXT:    v_mov_b32_e32 v4, v5887; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]888; GFX90A-NEXT:    s_waitcnt vmcnt(0)889; GFX90A-NEXT:    s_setpc_b64 s[30:31]890;891; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_3:892; GFX942:       ; %bb.0:893; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)894; GFX942-NEXT:    ;;#ASMSTART895; GFX942-NEXT:    ; def v[2:5]896; GFX942-NEXT:    ;;#ASMEND897; GFX942-NEXT:    v_mov_b32_e32 v6, 0898; GFX942-NEXT:    ;;#ASMSTART899; GFX942-NEXT:    ; def v[0:3]900; GFX942-NEXT:    ;;#ASMEND901; GFX942-NEXT:    v_mov_b32_e32 v4, v5902; GFX942-NEXT:    v_mov_b32_e32 v2, v3903; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]904; GFX942-NEXT:    s_waitcnt vmcnt(0)905; GFX942-NEXT:    s_setpc_b64 s[30:31]906  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()907  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()908  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 3>909  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16910  ret void911}912 913define void @v_shuffle_v3p3_v4p3__7_7_4(ptr addrspace(1) inreg %ptr) {914; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_4:915; GFX900:       ; %bb.0:916; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)917; GFX900-NEXT:    v_mov_b32_e32 v6, 0918; GFX900-NEXT:    ;;#ASMSTART919; GFX900-NEXT:    ; def v[0:3]920; GFX900-NEXT:    ;;#ASMEND921; GFX900-NEXT:    v_mov_b32_e32 v4, v3922; GFX900-NEXT:    v_mov_b32_e32 v5, v0923; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]924; GFX900-NEXT:    s_waitcnt vmcnt(0)925; GFX900-NEXT:    s_setpc_b64 s[30:31]926;927; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_4:928; GFX90A:       ; %bb.0:929; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)930; GFX90A-NEXT:    ;;#ASMSTART931; GFX90A-NEXT:    ; def v[0:3]932; GFX90A-NEXT:    ;;#ASMEND933; GFX90A-NEXT:    v_mov_b32_e32 v5, 0934; GFX90A-NEXT:    v_mov_b32_e32 v2, v3935; GFX90A-NEXT:    v_mov_b32_e32 v4, v0936; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]937; GFX90A-NEXT:    s_waitcnt vmcnt(0)938; GFX90A-NEXT:    s_setpc_b64 s[30:31]939;940; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_4:941; GFX942:       ; %bb.0:942; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)943; GFX942-NEXT:    ;;#ASMSTART944; GFX942-NEXT:    ; def v[0:3]945; GFX942-NEXT:    ;;#ASMEND946; GFX942-NEXT:    v_mov_b32_e32 v5, 0947; GFX942-NEXT:    v_mov_b32_e32 v2, v3948; GFX942-NEXT:    v_mov_b32_e32 v4, v0949; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]950; GFX942-NEXT:    s_waitcnt vmcnt(0)951; GFX942-NEXT:    s_setpc_b64 s[30:31]952  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()953  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()954  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 4>955  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16956  ret void957}958 959define void @v_shuffle_v3p3_v4p3__7_7_5(ptr addrspace(1) inreg %ptr) {960; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_5:961; GFX900:       ; %bb.0:962; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)963; GFX900-NEXT:    v_mov_b32_e32 v6, 0964; GFX900-NEXT:    ;;#ASMSTART965; GFX900-NEXT:    ; def v[0:3]966; GFX900-NEXT:    ;;#ASMEND967; GFX900-NEXT:    v_mov_b32_e32 v4, v3968; GFX900-NEXT:    v_mov_b32_e32 v5, v1969; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]970; GFX900-NEXT:    s_waitcnt vmcnt(0)971; GFX900-NEXT:    s_setpc_b64 s[30:31]972;973; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_5:974; GFX90A:       ; %bb.0:975; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)976; GFX90A-NEXT:    ;;#ASMSTART977; GFX90A-NEXT:    ; def v[0:3]978; GFX90A-NEXT:    ;;#ASMEND979; GFX90A-NEXT:    v_mov_b32_e32 v5, 0980; GFX90A-NEXT:    v_mov_b32_e32 v2, v3981; GFX90A-NEXT:    v_mov_b32_e32 v4, v1982; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]983; GFX90A-NEXT:    s_waitcnt vmcnt(0)984; GFX90A-NEXT:    s_setpc_b64 s[30:31]985;986; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_5:987; GFX942:       ; %bb.0:988; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)989; GFX942-NEXT:    ;;#ASMSTART990; GFX942-NEXT:    ; def v[0:3]991; GFX942-NEXT:    ;;#ASMEND992; GFX942-NEXT:    v_mov_b32_e32 v5, 0993; GFX942-NEXT:    v_mov_b32_e32 v2, v3994; GFX942-NEXT:    v_mov_b32_e32 v4, v1995; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]996; GFX942-NEXT:    s_waitcnt vmcnt(0)997; GFX942-NEXT:    s_setpc_b64 s[30:31]998  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()999  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1000  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 5>1001  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161002  ret void1003}1004 1005define void @v_shuffle_v3p3_v4p3__7_7_6(ptr addrspace(1) inreg %ptr) {1006; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_6:1007; GFX900:       ; %bb.0:1008; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1009; GFX900-NEXT:    v_mov_b32_e32 v6, 01010; GFX900-NEXT:    ;;#ASMSTART1011; GFX900-NEXT:    ; def v[0:3]1012; GFX900-NEXT:    ;;#ASMEND1013; GFX900-NEXT:    v_mov_b32_e32 v4, v31014; GFX900-NEXT:    v_mov_b32_e32 v5, v21015; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]1016; GFX900-NEXT:    s_waitcnt vmcnt(0)1017; GFX900-NEXT:    s_setpc_b64 s[30:31]1018;1019; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_6:1020; GFX90A:       ; %bb.0:1021; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1022; GFX90A-NEXT:    ;;#ASMSTART1023; GFX90A-NEXT:    ; def v[0:3]1024; GFX90A-NEXT:    ;;#ASMEND1025; GFX90A-NEXT:    v_mov_b32_e32 v4, 01026; GFX90A-NEXT:    v_mov_b32_e32 v0, v31027; GFX90A-NEXT:    v_mov_b32_e32 v1, v31028; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1029; GFX90A-NEXT:    s_waitcnt vmcnt(0)1030; GFX90A-NEXT:    s_setpc_b64 s[30:31]1031;1032; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_6:1033; GFX942:       ; %bb.0:1034; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1035; GFX942-NEXT:    ;;#ASMSTART1036; GFX942-NEXT:    ; def v[0:3]1037; GFX942-NEXT:    ;;#ASMEND1038; GFX942-NEXT:    v_mov_b32_e32 v4, 01039; GFX942-NEXT:    v_mov_b32_e32 v0, v31040; GFX942-NEXT:    v_mov_b32_e32 v1, v31041; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]1042; GFX942-NEXT:    s_waitcnt vmcnt(0)1043; GFX942-NEXT:    s_setpc_b64 s[30:31]1044  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1045  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1046  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 6>1047  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161048  ret void1049}1050 1051define void @v_shuffle_v3p3_v4p3__7_7_7(ptr addrspace(1) inreg %ptr) {1052; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_7_7:1053; GFX900:       ; %bb.0:1054; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1055; GFX900-NEXT:    v_mov_b32_e32 v6, 01056; GFX900-NEXT:    ;;#ASMSTART1057; GFX900-NEXT:    ; def v[0:3]1058; GFX900-NEXT:    ;;#ASMEND1059; GFX900-NEXT:    v_mov_b32_e32 v4, v31060; GFX900-NEXT:    v_mov_b32_e32 v5, v31061; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]1062; GFX900-NEXT:    s_waitcnt vmcnt(0)1063; GFX900-NEXT:    s_setpc_b64 s[30:31]1064;1065; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_7_7:1066; GFX90A:       ; %bb.0:1067; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1068; GFX90A-NEXT:    ;;#ASMSTART1069; GFX90A-NEXT:    ; def v[0:3]1070; GFX90A-NEXT:    ;;#ASMEND1071; GFX90A-NEXT:    v_mov_b32_e32 v5, 01072; GFX90A-NEXT:    v_mov_b32_e32 v2, v31073; GFX90A-NEXT:    v_mov_b32_e32 v4, v31074; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]1075; GFX90A-NEXT:    s_waitcnt vmcnt(0)1076; GFX90A-NEXT:    s_setpc_b64 s[30:31]1077;1078; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_7_7:1079; GFX942:       ; %bb.0:1080; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1081; GFX942-NEXT:    ;;#ASMSTART1082; GFX942-NEXT:    ; def v[0:3]1083; GFX942-NEXT:    ;;#ASMEND1084; GFX942-NEXT:    v_mov_b32_e32 v5, 01085; GFX942-NEXT:    v_mov_b32_e32 v2, v31086; GFX942-NEXT:    v_mov_b32_e32 v4, v31087; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]1088; GFX942-NEXT:    s_waitcnt vmcnt(0)1089; GFX942-NEXT:    s_setpc_b64 s[30:31]1090  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1091  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1092  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 7>1093  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161094  ret void1095}1096 1097define void @v_shuffle_v3p3_v4p3__u_0_0(ptr addrspace(1) inreg %ptr) {1098; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_0_0:1099; GFX900:       ; %bb.0:1100; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1101; GFX900-NEXT:    ;;#ASMSTART1102; GFX900-NEXT:    ; def v[1:4]1103; GFX900-NEXT:    ;;#ASMEND1104; GFX900-NEXT:    v_mov_b32_e32 v0, 01105; GFX900-NEXT:    v_mov_b32_e32 v2, v11106; GFX900-NEXT:    global_store_dwordx3 v0, v[0:2], s[16:17]1107; GFX900-NEXT:    s_waitcnt vmcnt(0)1108; GFX900-NEXT:    s_setpc_b64 s[30:31]1109;1110; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_0_0:1111; GFX90A:       ; %bb.0:1112; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1113; GFX90A-NEXT:    v_mov_b32_e32 v0, 01114; GFX90A-NEXT:    ;;#ASMSTART1115; GFX90A-NEXT:    ; def v[2:5]1116; GFX90A-NEXT:    ;;#ASMEND1117; GFX90A-NEXT:    v_mov_b32_e32 v1, v21118; GFX90A-NEXT:    global_store_dwordx3 v0, v[0:2], s[16:17]1119; GFX90A-NEXT:    s_waitcnt vmcnt(0)1120; GFX90A-NEXT:    s_setpc_b64 s[30:31]1121;1122; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_0_0:1123; GFX942:       ; %bb.0:1124; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1125; GFX942-NEXT:    v_mov_b32_e32 v0, 01126; GFX942-NEXT:    ;;#ASMSTART1127; GFX942-NEXT:    ; def v[2:5]1128; GFX942-NEXT:    ;;#ASMEND1129; GFX942-NEXT:    s_nop 01130; GFX942-NEXT:    v_mov_b32_e32 v1, v21131; GFX942-NEXT:    global_store_dwordx3 v0, v[0:2], s[0:1]1132; GFX942-NEXT:    s_waitcnt vmcnt(0)1133; GFX942-NEXT:    s_setpc_b64 s[30:31]1134  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1135  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 0, i32 0>1136  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161137  ret void1138}1139 1140define void @v_shuffle_v3p3_v4p3__0_0_0(ptr addrspace(1) inreg %ptr) {1141; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_0_0:1142; GFX900:       ; %bb.0:1143; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1144; GFX900-NEXT:    ;;#ASMSTART1145; GFX900-NEXT:    ; def v[0:3]1146; GFX900-NEXT:    ;;#ASMEND1147; GFX900-NEXT:    v_mov_b32_e32 v4, 01148; GFX900-NEXT:    v_mov_b32_e32 v1, v01149; GFX900-NEXT:    v_mov_b32_e32 v2, v01150; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1151; GFX900-NEXT:    s_waitcnt vmcnt(0)1152; GFX900-NEXT:    s_setpc_b64 s[30:31]1153;1154; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_0_0:1155; GFX90A:       ; %bb.0:1156; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1157; GFX90A-NEXT:    ;;#ASMSTART1158; GFX90A-NEXT:    ; def v[0:3]1159; GFX90A-NEXT:    ;;#ASMEND1160; GFX90A-NEXT:    v_mov_b32_e32 v4, 01161; GFX90A-NEXT:    v_mov_b32_e32 v1, v01162; GFX90A-NEXT:    v_mov_b32_e32 v2, v01163; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1164; GFX90A-NEXT:    s_waitcnt vmcnt(0)1165; GFX90A-NEXT:    s_setpc_b64 s[30:31]1166;1167; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_0_0:1168; GFX942:       ; %bb.0:1169; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1170; GFX942-NEXT:    ;;#ASMSTART1171; GFX942-NEXT:    ; def v[0:3]1172; GFX942-NEXT:    ;;#ASMEND1173; GFX942-NEXT:    v_mov_b32_e32 v4, 01174; GFX942-NEXT:    v_mov_b32_e32 v1, v01175; GFX942-NEXT:    v_mov_b32_e32 v2, v01176; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]1177; GFX942-NEXT:    s_waitcnt vmcnt(0)1178; GFX942-NEXT:    s_setpc_b64 s[30:31]1179  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1180  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> zeroinitializer1181  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161182  ret void1183}1184 1185define void @v_shuffle_v3p3_v4p3__1_0_0(ptr addrspace(1) inreg %ptr) {1186; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_0_0:1187; GFX900:       ; %bb.0:1188; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1189; GFX900-NEXT:    ;;#ASMSTART1190; GFX900-NEXT:    ; def v[0:3]1191; GFX900-NEXT:    ;;#ASMEND1192; GFX900-NEXT:    v_mov_b32_e32 v4, 01193; GFX900-NEXT:    v_mov_b32_e32 v2, v01194; GFX900-NEXT:    v_mov_b32_e32 v3, v01195; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]1196; GFX900-NEXT:    s_waitcnt vmcnt(0)1197; GFX900-NEXT:    s_setpc_b64 s[30:31]1198;1199; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_0_0:1200; GFX90A:       ; %bb.0:1201; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1202; GFX90A-NEXT:    v_mov_b32_e32 v6, 01203; GFX90A-NEXT:    ;;#ASMSTART1204; GFX90A-NEXT:    ; def v[2:5]1205; GFX90A-NEXT:    ;;#ASMEND1206; GFX90A-NEXT:    v_mov_b32_e32 v0, v31207; GFX90A-NEXT:    v_mov_b32_e32 v1, v21208; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]1209; GFX90A-NEXT:    s_waitcnt vmcnt(0)1210; GFX90A-NEXT:    s_setpc_b64 s[30:31]1211;1212; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_0_0:1213; GFX942:       ; %bb.0:1214; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1215; GFX942-NEXT:    v_mov_b32_e32 v6, 01216; GFX942-NEXT:    ;;#ASMSTART1217; GFX942-NEXT:    ; def v[2:5]1218; GFX942-NEXT:    ;;#ASMEND1219; GFX942-NEXT:    s_nop 01220; GFX942-NEXT:    v_mov_b32_e32 v0, v31221; GFX942-NEXT:    v_mov_b32_e32 v1, v21222; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]1223; GFX942-NEXT:    s_waitcnt vmcnt(0)1224; GFX942-NEXT:    s_setpc_b64 s[30:31]1225  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1226  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 0, i32 0>1227  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161228  ret void1229}1230 1231define void @v_shuffle_v3p3_v4p3__2_0_0(ptr addrspace(1) inreg %ptr) {1232; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_0_0:1233; GFX900:       ; %bb.0:1234; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1235; GFX900-NEXT:    ;;#ASMSTART1236; GFX900-NEXT:    ; def v[0:3]1237; GFX900-NEXT:    ;;#ASMEND1238; GFX900-NEXT:    v_mov_b32_e32 v5, 01239; GFX900-NEXT:    v_mov_b32_e32 v3, v01240; GFX900-NEXT:    v_mov_b32_e32 v4, v01241; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]1242; GFX900-NEXT:    s_waitcnt vmcnt(0)1243; GFX900-NEXT:    s_setpc_b64 s[30:31]1244;1245; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_0_0:1246; GFX90A:       ; %bb.0:1247; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1248; GFX90A-NEXT:    ;;#ASMSTART1249; GFX90A-NEXT:    ; def v[0:3]1250; GFX90A-NEXT:    ;;#ASMEND1251; GFX90A-NEXT:    v_mov_b32_e32 v5, 01252; GFX90A-NEXT:    v_mov_b32_e32 v3, v01253; GFX90A-NEXT:    v_mov_b32_e32 v4, v01254; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]1255; GFX90A-NEXT:    s_waitcnt vmcnt(0)1256; GFX90A-NEXT:    s_setpc_b64 s[30:31]1257;1258; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_0_0:1259; GFX942:       ; %bb.0:1260; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1261; GFX942-NEXT:    ;;#ASMSTART1262; GFX942-NEXT:    ; def v[0:3]1263; GFX942-NEXT:    ;;#ASMEND1264; GFX942-NEXT:    v_mov_b32_e32 v5, 01265; GFX942-NEXT:    v_mov_b32_e32 v3, v01266; GFX942-NEXT:    v_mov_b32_e32 v4, v01267; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]1268; GFX942-NEXT:    s_waitcnt vmcnt(0)1269; GFX942-NEXT:    s_setpc_b64 s[30:31]1270  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1271  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 0, i32 0>1272  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161273  ret void1274}1275 1276define void @v_shuffle_v3p3_v4p3__3_0_0(ptr addrspace(1) inreg %ptr) {1277; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_0_0:1278; GFX900:       ; %bb.0:1279; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1280; GFX900-NEXT:    v_mov_b32_e32 v6, 01281; GFX900-NEXT:    ;;#ASMSTART1282; GFX900-NEXT:    ; def v[0:3]1283; GFX900-NEXT:    ;;#ASMEND1284; GFX900-NEXT:    v_mov_b32_e32 v4, v01285; GFX900-NEXT:    v_mov_b32_e32 v5, v01286; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]1287; GFX900-NEXT:    s_waitcnt vmcnt(0)1288; GFX900-NEXT:    s_setpc_b64 s[30:31]1289;1290; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_0_0:1291; GFX90A:       ; %bb.0:1292; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1293; GFX90A-NEXT:    v_mov_b32_e32 v6, 01294; GFX90A-NEXT:    ;;#ASMSTART1295; GFX90A-NEXT:    ; def v[2:5]1296; GFX90A-NEXT:    ;;#ASMEND1297; GFX90A-NEXT:    v_mov_b32_e32 v0, v51298; GFX90A-NEXT:    v_mov_b32_e32 v1, v21299; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]1300; GFX90A-NEXT:    s_waitcnt vmcnt(0)1301; GFX90A-NEXT:    s_setpc_b64 s[30:31]1302;1303; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_0_0:1304; GFX942:       ; %bb.0:1305; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1306; GFX942-NEXT:    v_mov_b32_e32 v6, 01307; GFX942-NEXT:    ;;#ASMSTART1308; GFX942-NEXT:    ; def v[2:5]1309; GFX942-NEXT:    ;;#ASMEND1310; GFX942-NEXT:    s_nop 01311; GFX942-NEXT:    v_mov_b32_e32 v0, v51312; GFX942-NEXT:    v_mov_b32_e32 v1, v21313; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]1314; GFX942-NEXT:    s_waitcnt vmcnt(0)1315; GFX942-NEXT:    s_setpc_b64 s[30:31]1316  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1317  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 0, i32 0>1318  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161319  ret void1320}1321 1322define void @v_shuffle_v3p3_v4p3__4_0_0(ptr addrspace(1) inreg %ptr) {1323; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_0_0:1324; GFX900:       ; %bb.0:1325; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1326; GFX900-NEXT:    ;;#ASMSTART1327; GFX900-NEXT:    ; def v[1:4]1328; GFX900-NEXT:    ;;#ASMEND1329; GFX900-NEXT:    v_mov_b32_e32 v0, 01330; GFX900-NEXT:    v_mov_b32_e32 v2, v11331; GFX900-NEXT:    global_store_dwordx3 v0, v[0:2], s[16:17]1332; GFX900-NEXT:    s_waitcnt vmcnt(0)1333; GFX900-NEXT:    s_setpc_b64 s[30:31]1334;1335; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_0_0:1336; GFX90A:       ; %bb.0:1337; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1338; GFX90A-NEXT:    v_mov_b32_e32 v0, 01339; GFX90A-NEXT:    ;;#ASMSTART1340; GFX90A-NEXT:    ; def v[2:5]1341; GFX90A-NEXT:    ;;#ASMEND1342; GFX90A-NEXT:    v_mov_b32_e32 v1, v21343; GFX90A-NEXT:    global_store_dwordx3 v0, v[0:2], s[16:17]1344; GFX90A-NEXT:    s_waitcnt vmcnt(0)1345; GFX90A-NEXT:    s_setpc_b64 s[30:31]1346;1347; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_0_0:1348; GFX942:       ; %bb.0:1349; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1350; GFX942-NEXT:    v_mov_b32_e32 v0, 01351; GFX942-NEXT:    ;;#ASMSTART1352; GFX942-NEXT:    ; def v[2:5]1353; GFX942-NEXT:    ;;#ASMEND1354; GFX942-NEXT:    s_nop 01355; GFX942-NEXT:    v_mov_b32_e32 v1, v21356; GFX942-NEXT:    global_store_dwordx3 v0, v[0:2], s[0:1]1357; GFX942-NEXT:    s_waitcnt vmcnt(0)1358; GFX942-NEXT:    s_setpc_b64 s[30:31]1359  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1360  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 0, i32 0>1361  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161362  ret void1363}1364 1365define void @v_shuffle_v3p3_v4p3__5_0_0(ptr addrspace(1) inreg %ptr) {1366; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_0_0:1367; GFX900:       ; %bb.0:1368; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1369; GFX900-NEXT:    ;;#ASMSTART1370; GFX900-NEXT:    ; def v[0:3]1371; GFX900-NEXT:    ;;#ASMEND1372; GFX900-NEXT:    ;;#ASMSTART1373; GFX900-NEXT:    ; def v[1:4]1374; GFX900-NEXT:    ;;#ASMEND1375; GFX900-NEXT:    v_mov_b32_e32 v5, 01376; GFX900-NEXT:    v_mov_b32_e32 v3, v01377; GFX900-NEXT:    v_mov_b32_e32 v4, v01378; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]1379; GFX900-NEXT:    s_waitcnt vmcnt(0)1380; GFX900-NEXT:    s_setpc_b64 s[30:31]1381;1382; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_0_0:1383; GFX90A:       ; %bb.0:1384; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1385; GFX90A-NEXT:    ;;#ASMSTART1386; GFX90A-NEXT:    ; def v[2:5]1387; GFX90A-NEXT:    ;;#ASMEND1388; GFX90A-NEXT:    v_mov_b32_e32 v8, 01389; GFX90A-NEXT:    ;;#ASMSTART1390; GFX90A-NEXT:    ; def v[4:7]1391; GFX90A-NEXT:    ;;#ASMEND1392; GFX90A-NEXT:    v_mov_b32_e32 v0, v51393; GFX90A-NEXT:    v_mov_b32_e32 v1, v21394; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]1395; GFX90A-NEXT:    s_waitcnt vmcnt(0)1396; GFX90A-NEXT:    s_setpc_b64 s[30:31]1397;1398; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_0_0:1399; GFX942:       ; %bb.0:1400; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1401; GFX942-NEXT:    ;;#ASMSTART1402; GFX942-NEXT:    ; def v[2:5]1403; GFX942-NEXT:    ;;#ASMEND1404; GFX942-NEXT:    v_mov_b32_e32 v8, 01405; GFX942-NEXT:    ;;#ASMSTART1406; GFX942-NEXT:    ; def v[4:7]1407; GFX942-NEXT:    ;;#ASMEND1408; GFX942-NEXT:    v_mov_b32_e32 v1, v21409; GFX942-NEXT:    v_mov_b32_e32 v0, v51410; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]1411; GFX942-NEXT:    s_waitcnt vmcnt(0)1412; GFX942-NEXT:    s_setpc_b64 s[30:31]1413  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1414  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1415  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 0, i32 0>1416  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161417  ret void1418}1419 1420define void @v_shuffle_v3p3_v4p3__6_0_0(ptr addrspace(1) inreg %ptr) {1421; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_0_0:1422; GFX900:       ; %bb.0:1423; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1424; GFX900-NEXT:    ;;#ASMSTART1425; GFX900-NEXT:    ; def v[0:3]1426; GFX900-NEXT:    ;;#ASMEND1427; GFX900-NEXT:    v_mov_b32_e32 v8, 01428; GFX900-NEXT:    ;;#ASMSTART1429; GFX900-NEXT:    ; def v[4:7]1430; GFX900-NEXT:    ;;#ASMEND1431; GFX900-NEXT:    v_mov_b32_e32 v3, v41432; GFX900-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]1433; GFX900-NEXT:    s_waitcnt vmcnt(0)1434; GFX900-NEXT:    s_setpc_b64 s[30:31]1435;1436; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_0_0:1437; GFX90A:       ; %bb.0:1438; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1439; GFX90A-NEXT:    ;;#ASMSTART1440; GFX90A-NEXT:    ; def v[0:3]1441; GFX90A-NEXT:    ;;#ASMEND1442; GFX90A-NEXT:    v_mov_b32_e32 v8, 01443; GFX90A-NEXT:    ;;#ASMSTART1444; GFX90A-NEXT:    ; def v[4:7]1445; GFX90A-NEXT:    ;;#ASMEND1446; GFX90A-NEXT:    v_mov_b32_e32 v3, v41447; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]1448; GFX90A-NEXT:    s_waitcnt vmcnt(0)1449; GFX90A-NEXT:    s_setpc_b64 s[30:31]1450;1451; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_0_0:1452; GFX942:       ; %bb.0:1453; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1454; GFX942-NEXT:    ;;#ASMSTART1455; GFX942-NEXT:    ; def v[0:3]1456; GFX942-NEXT:    ;;#ASMEND1457; GFX942-NEXT:    v_mov_b32_e32 v8, 01458; GFX942-NEXT:    ;;#ASMSTART1459; GFX942-NEXT:    ; def v[4:7]1460; GFX942-NEXT:    ;;#ASMEND1461; GFX942-NEXT:    s_nop 01462; GFX942-NEXT:    v_mov_b32_e32 v3, v41463; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]1464; GFX942-NEXT:    s_waitcnt vmcnt(0)1465; GFX942-NEXT:    s_setpc_b64 s[30:31]1466  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1467  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1468  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 0, i32 0>1469  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161470  ret void1471}1472 1473define void @v_shuffle_v3p3_v4p3__7_0_0(ptr addrspace(1) inreg %ptr) {1474; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_0:1475; GFX900:       ; %bb.0:1476; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1477; GFX900-NEXT:    ;;#ASMSTART1478; GFX900-NEXT:    ; def v[4:7]1479; GFX900-NEXT:    ;;#ASMEND1480; GFX900-NEXT:    v_mov_b32_e32 v8, 01481; GFX900-NEXT:    v_mov_b32_e32 v5, v41482; GFX900-NEXT:    ;;#ASMSTART1483; GFX900-NEXT:    ; def v[0:3]1484; GFX900-NEXT:    ;;#ASMEND1485; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]1486; GFX900-NEXT:    s_waitcnt vmcnt(0)1487; GFX900-NEXT:    s_setpc_b64 s[30:31]1488;1489; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_0:1490; GFX90A:       ; %bb.0:1491; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1492; GFX90A-NEXT:    ;;#ASMSTART1493; GFX90A-NEXT:    ; def v[2:5]1494; GFX90A-NEXT:    ;;#ASMEND1495; GFX90A-NEXT:    v_mov_b32_e32 v8, 01496; GFX90A-NEXT:    ;;#ASMSTART1497; GFX90A-NEXT:    ; def v[4:7]1498; GFX90A-NEXT:    ;;#ASMEND1499; GFX90A-NEXT:    v_mov_b32_e32 v0, v71500; GFX90A-NEXT:    v_mov_b32_e32 v1, v21501; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]1502; GFX90A-NEXT:    s_waitcnt vmcnt(0)1503; GFX90A-NEXT:    s_setpc_b64 s[30:31]1504;1505; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_0:1506; GFX942:       ; %bb.0:1507; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1508; GFX942-NEXT:    ;;#ASMSTART1509; GFX942-NEXT:    ; def v[2:5]1510; GFX942-NEXT:    ;;#ASMEND1511; GFX942-NEXT:    v_mov_b32_e32 v8, 01512; GFX942-NEXT:    ;;#ASMSTART1513; GFX942-NEXT:    ; def v[4:7]1514; GFX942-NEXT:    ;;#ASMEND1515; GFX942-NEXT:    v_mov_b32_e32 v1, v21516; GFX942-NEXT:    v_mov_b32_e32 v0, v71517; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]1518; GFX942-NEXT:    s_waitcnt vmcnt(0)1519; GFX942-NEXT:    s_setpc_b64 s[30:31]1520  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1521  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1522  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 0>1523  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161524  ret void1525}1526 1527define void @v_shuffle_v3p3_v4p3__7_u_0(ptr addrspace(1) inreg %ptr) {1528; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_0:1529; GFX900:       ; %bb.0:1530; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1531; GFX900-NEXT:    v_mov_b32_e32 v4, 01532; GFX900-NEXT:    ;;#ASMSTART1533; GFX900-NEXT:    ; def v[5:8]1534; GFX900-NEXT:    ;;#ASMEND1535; GFX900-NEXT:    ;;#ASMSTART1536; GFX900-NEXT:    ; def v[0:3]1537; GFX900-NEXT:    ;;#ASMEND1538; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]1539; GFX900-NEXT:    s_waitcnt vmcnt(0)1540; GFX900-NEXT:    s_setpc_b64 s[30:31]1541;1542; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_0:1543; GFX90A:       ; %bb.0:1544; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1545; GFX90A-NEXT:    ;;#ASMSTART1546; GFX90A-NEXT:    ; def v[2:5]1547; GFX90A-NEXT:    ;;#ASMEND1548; GFX90A-NEXT:    v_mov_b32_e32 v1, 01549; GFX90A-NEXT:    ;;#ASMSTART1550; GFX90A-NEXT:    ; def v[4:7]1551; GFX90A-NEXT:    ;;#ASMEND1552; GFX90A-NEXT:    v_mov_b32_e32 v0, v71553; GFX90A-NEXT:    global_store_dwordx3 v1, v[0:2], s[16:17]1554; GFX90A-NEXT:    s_waitcnt vmcnt(0)1555; GFX90A-NEXT:    s_setpc_b64 s[30:31]1556;1557; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_0:1558; GFX942:       ; %bb.0:1559; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1560; GFX942-NEXT:    ;;#ASMSTART1561; GFX942-NEXT:    ; def v[2:5]1562; GFX942-NEXT:    ;;#ASMEND1563; GFX942-NEXT:    v_mov_b32_e32 v1, 01564; GFX942-NEXT:    ;;#ASMSTART1565; GFX942-NEXT:    ; def v[4:7]1566; GFX942-NEXT:    ;;#ASMEND1567; GFX942-NEXT:    s_nop 01568; GFX942-NEXT:    v_mov_b32_e32 v0, v71569; GFX942-NEXT:    global_store_dwordx3 v1, v[0:2], s[0:1]1570; GFX942-NEXT:    s_waitcnt vmcnt(0)1571; GFX942-NEXT:    s_setpc_b64 s[30:31]1572  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1573  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1574  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>1575  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161576  ret void1577}1578 1579define void @v_shuffle_v3p3_v4p3__7_1_0(ptr addrspace(1) inreg %ptr) {1580; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_0:1581; GFX900:       ; %bb.0:1582; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1583; GFX900-NEXT:    v_mov_b32_e32 v9, 01584; GFX900-NEXT:    ;;#ASMSTART1585; GFX900-NEXT:    ; def v[5:8]1586; GFX900-NEXT:    ;;#ASMEND1587; GFX900-NEXT:    v_mov_b32_e32 v4, v61588; GFX900-NEXT:    ;;#ASMSTART1589; GFX900-NEXT:    ; def v[0:3]1590; GFX900-NEXT:    ;;#ASMEND1591; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1592; GFX900-NEXT:    s_waitcnt vmcnt(0)1593; GFX900-NEXT:    s_setpc_b64 s[30:31]1594;1595; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_0:1596; GFX90A:       ; %bb.0:1597; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1598; GFX90A-NEXT:    ;;#ASMSTART1599; GFX90A-NEXT:    ; def v[2:5]1600; GFX90A-NEXT:    ;;#ASMEND1601; GFX90A-NEXT:    v_mov_b32_e32 v8, 01602; GFX90A-NEXT:    ;;#ASMSTART1603; GFX90A-NEXT:    ; def v[4:7]1604; GFX90A-NEXT:    ;;#ASMEND1605; GFX90A-NEXT:    v_mov_b32_e32 v0, v71606; GFX90A-NEXT:    v_mov_b32_e32 v1, v31607; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]1608; GFX90A-NEXT:    s_waitcnt vmcnt(0)1609; GFX90A-NEXT:    s_setpc_b64 s[30:31]1610;1611; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_0:1612; GFX942:       ; %bb.0:1613; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1614; GFX942-NEXT:    ;;#ASMSTART1615; GFX942-NEXT:    ; def v[2:5]1616; GFX942-NEXT:    ;;#ASMEND1617; GFX942-NEXT:    v_mov_b32_e32 v8, 01618; GFX942-NEXT:    ;;#ASMSTART1619; GFX942-NEXT:    ; def v[4:7]1620; GFX942-NEXT:    ;;#ASMEND1621; GFX942-NEXT:    v_mov_b32_e32 v1, v31622; GFX942-NEXT:    v_mov_b32_e32 v0, v71623; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]1624; GFX942-NEXT:    s_waitcnt vmcnt(0)1625; GFX942-NEXT:    s_setpc_b64 s[30:31]1626  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1627  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1628  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 0>1629  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161630  ret void1631}1632 1633define void @v_shuffle_v3p3_v4p3__7_2_0(ptr addrspace(1) inreg %ptr) {1634; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_0:1635; GFX900:       ; %bb.0:1636; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1637; GFX900-NEXT:    v_mov_b32_e32 v9, 01638; GFX900-NEXT:    ;;#ASMSTART1639; GFX900-NEXT:    ; def v[5:8]1640; GFX900-NEXT:    ;;#ASMEND1641; GFX900-NEXT:    v_mov_b32_e32 v4, v71642; GFX900-NEXT:    ;;#ASMSTART1643; GFX900-NEXT:    ; def v[0:3]1644; GFX900-NEXT:    ;;#ASMEND1645; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1646; GFX900-NEXT:    s_waitcnt vmcnt(0)1647; GFX900-NEXT:    s_setpc_b64 s[30:31]1648;1649; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_0:1650; GFX90A:       ; %bb.0:1651; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1652; GFX90A-NEXT:    v_mov_b32_e32 v10, 01653; GFX90A-NEXT:    ;;#ASMSTART1654; GFX90A-NEXT:    ; def v[2:5]1655; GFX90A-NEXT:    ;;#ASMEND1656; GFX90A-NEXT:    ;;#ASMSTART1657; GFX90A-NEXT:    ; def v[6:9]1658; GFX90A-NEXT:    ;;#ASMEND1659; GFX90A-NEXT:    v_mov_b32_e32 v0, v91660; GFX90A-NEXT:    v_mov_b32_e32 v1, v41661; GFX90A-NEXT:    global_store_dwordx3 v10, v[0:2], s[16:17]1662; GFX90A-NEXT:    s_waitcnt vmcnt(0)1663; GFX90A-NEXT:    s_setpc_b64 s[30:31]1664;1665; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_0:1666; GFX942:       ; %bb.0:1667; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1668; GFX942-NEXT:    v_mov_b32_e32 v10, 01669; GFX942-NEXT:    ;;#ASMSTART1670; GFX942-NEXT:    ; def v[2:5]1671; GFX942-NEXT:    ;;#ASMEND1672; GFX942-NEXT:    ;;#ASMSTART1673; GFX942-NEXT:    ; def v[6:9]1674; GFX942-NEXT:    ;;#ASMEND1675; GFX942-NEXT:    s_nop 01676; GFX942-NEXT:    v_mov_b32_e32 v0, v91677; GFX942-NEXT:    v_mov_b32_e32 v1, v41678; GFX942-NEXT:    global_store_dwordx3 v10, v[0:2], s[0:1]1679; GFX942-NEXT:    s_waitcnt vmcnt(0)1680; GFX942-NEXT:    s_setpc_b64 s[30:31]1681  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1682  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1683  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 0>1684  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161685  ret void1686}1687 1688define void @v_shuffle_v3p3_v4p3__7_3_0(ptr addrspace(1) inreg %ptr) {1689; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_0:1690; GFX900:       ; %bb.0:1691; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1692; GFX900-NEXT:    v_mov_b32_e32 v9, 01693; GFX900-NEXT:    ;;#ASMSTART1694; GFX900-NEXT:    ; def v[5:8]1695; GFX900-NEXT:    ;;#ASMEND1696; GFX900-NEXT:    v_mov_b32_e32 v4, v81697; GFX900-NEXT:    ;;#ASMSTART1698; GFX900-NEXT:    ; def v[0:3]1699; GFX900-NEXT:    ;;#ASMEND1700; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1701; GFX900-NEXT:    s_waitcnt vmcnt(0)1702; GFX900-NEXT:    s_setpc_b64 s[30:31]1703;1704; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_0:1705; GFX90A:       ; %bb.0:1706; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1707; GFX90A-NEXT:    ;;#ASMSTART1708; GFX90A-NEXT:    ; def v[0:3]1709; GFX90A-NEXT:    ;;#ASMEND1710; GFX90A-NEXT:    ;;#ASMSTART1711; GFX90A-NEXT:    ; def v[4:7]1712; GFX90A-NEXT:    ;;#ASMEND1713; GFX90A-NEXT:    v_mov_b32_e32 v8, 01714; GFX90A-NEXT:    v_mov_b32_e32 v2, v71715; GFX90A-NEXT:    v_mov_b32_e32 v4, v01716; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]1717; GFX90A-NEXT:    s_waitcnt vmcnt(0)1718; GFX90A-NEXT:    s_setpc_b64 s[30:31]1719;1720; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_0:1721; GFX942:       ; %bb.0:1722; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1723; GFX942-NEXT:    ;;#ASMSTART1724; GFX942-NEXT:    ; def v[0:3]1725; GFX942-NEXT:    ;;#ASMEND1726; GFX942-NEXT:    ;;#ASMSTART1727; GFX942-NEXT:    ; def v[4:7]1728; GFX942-NEXT:    ;;#ASMEND1729; GFX942-NEXT:    v_mov_b32_e32 v8, 01730; GFX942-NEXT:    v_mov_b32_e32 v2, v71731; GFX942-NEXT:    v_mov_b32_e32 v4, v01732; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]1733; GFX942-NEXT:    s_waitcnt vmcnt(0)1734; GFX942-NEXT:    s_setpc_b64 s[30:31]1735  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1736  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1737  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 0>1738  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161739  ret void1740}1741 1742define void @v_shuffle_v3p3_v4p3__7_4_0(ptr addrspace(1) inreg %ptr) {1743; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_0:1744; GFX900:       ; %bb.0:1745; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1746; GFX900-NEXT:    v_mov_b32_e32 v9, 01747; GFX900-NEXT:    ;;#ASMSTART1748; GFX900-NEXT:    ; def v[0:3]1749; GFX900-NEXT:    ;;#ASMEND1750; GFX900-NEXT:    v_mov_b32_e32 v4, v01751; GFX900-NEXT:    ;;#ASMSTART1752; GFX900-NEXT:    ; def v[5:8]1753; GFX900-NEXT:    ;;#ASMEND1754; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1755; GFX900-NEXT:    s_waitcnt vmcnt(0)1756; GFX900-NEXT:    s_setpc_b64 s[30:31]1757;1758; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_0:1759; GFX90A:       ; %bb.0:1760; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1761; GFX90A-NEXT:    ;;#ASMSTART1762; GFX90A-NEXT:    ; def v[2:5]1763; GFX90A-NEXT:    ;;#ASMEND1764; GFX90A-NEXT:    v_mov_b32_e32 v8, 01765; GFX90A-NEXT:    ;;#ASMSTART1766; GFX90A-NEXT:    ; def v[4:7]1767; GFX90A-NEXT:    ;;#ASMEND1768; GFX90A-NEXT:    v_mov_b32_e32 v0, v71769; GFX90A-NEXT:    v_mov_b32_e32 v1, v41770; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]1771; GFX90A-NEXT:    s_waitcnt vmcnt(0)1772; GFX90A-NEXT:    s_setpc_b64 s[30:31]1773;1774; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_0:1775; GFX942:       ; %bb.0:1776; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1777; GFX942-NEXT:    ;;#ASMSTART1778; GFX942-NEXT:    ; def v[2:5]1779; GFX942-NEXT:    ;;#ASMEND1780; GFX942-NEXT:    v_mov_b32_e32 v8, 01781; GFX942-NEXT:    ;;#ASMSTART1782; GFX942-NEXT:    ; def v[4:7]1783; GFX942-NEXT:    ;;#ASMEND1784; GFX942-NEXT:    s_nop 01785; GFX942-NEXT:    v_mov_b32_e32 v0, v71786; GFX942-NEXT:    v_mov_b32_e32 v1, v41787; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]1788; GFX942-NEXT:    s_waitcnt vmcnt(0)1789; GFX942-NEXT:    s_setpc_b64 s[30:31]1790  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1791  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1792  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 0>1793  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161794  ret void1795}1796 1797define void @v_shuffle_v3p3_v4p3__7_5_0(ptr addrspace(1) inreg %ptr) {1798; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_0:1799; GFX900:       ; %bb.0:1800; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1801; GFX900-NEXT:    v_mov_b32_e32 v9, 01802; GFX900-NEXT:    ;;#ASMSTART1803; GFX900-NEXT:    ; def v[0:3]1804; GFX900-NEXT:    ;;#ASMEND1805; GFX900-NEXT:    v_mov_b32_e32 v4, v11806; GFX900-NEXT:    ;;#ASMSTART1807; GFX900-NEXT:    ; def v[5:8]1808; GFX900-NEXT:    ;;#ASMEND1809; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1810; GFX900-NEXT:    s_waitcnt vmcnt(0)1811; GFX900-NEXT:    s_setpc_b64 s[30:31]1812;1813; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_0:1814; GFX90A:       ; %bb.0:1815; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1816; GFX90A-NEXT:    ;;#ASMSTART1817; GFX90A-NEXT:    ; def v[0:3]1818; GFX90A-NEXT:    ;;#ASMEND1819; GFX90A-NEXT:    ;;#ASMSTART1820; GFX90A-NEXT:    ; def v[2:5]1821; GFX90A-NEXT:    ;;#ASMEND1822; GFX90A-NEXT:    v_mov_b32_e32 v6, 01823; GFX90A-NEXT:    v_mov_b32_e32 v2, v51824; GFX90A-NEXT:    v_mov_b32_e32 v4, v01825; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]1826; GFX90A-NEXT:    s_waitcnt vmcnt(0)1827; GFX90A-NEXT:    s_setpc_b64 s[30:31]1828;1829; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_0:1830; GFX942:       ; %bb.0:1831; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1832; GFX942-NEXT:    ;;#ASMSTART1833; GFX942-NEXT:    ; def v[0:3]1834; GFX942-NEXT:    ;;#ASMEND1835; GFX942-NEXT:    v_mov_b32_e32 v6, 01836; GFX942-NEXT:    ;;#ASMSTART1837; GFX942-NEXT:    ; def v[2:5]1838; GFX942-NEXT:    ;;#ASMEND1839; GFX942-NEXT:    s_nop 01840; GFX942-NEXT:    v_mov_b32_e32 v2, v51841; GFX942-NEXT:    v_mov_b32_e32 v4, v01842; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]1843; GFX942-NEXT:    s_waitcnt vmcnt(0)1844; GFX942-NEXT:    s_setpc_b64 s[30:31]1845  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1846  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1847  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 0>1848  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161849  ret void1850}1851 1852define void @v_shuffle_v3p3_v4p3__7_6_0(ptr addrspace(1) inreg %ptr) {1853; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_0:1854; GFX900:       ; %bb.0:1855; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1856; GFX900-NEXT:    v_mov_b32_e32 v9, 01857; GFX900-NEXT:    ;;#ASMSTART1858; GFX900-NEXT:    ; def v[0:3]1859; GFX900-NEXT:    ;;#ASMEND1860; GFX900-NEXT:    v_mov_b32_e32 v4, v21861; GFX900-NEXT:    ;;#ASMSTART1862; GFX900-NEXT:    ; def v[5:8]1863; GFX900-NEXT:    ;;#ASMEND1864; GFX900-NEXT:    global_store_dwordx3 v9, v[3:5], s[16:17]1865; GFX900-NEXT:    s_waitcnt vmcnt(0)1866; GFX900-NEXT:    s_setpc_b64 s[30:31]1867;1868; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_0:1869; GFX90A:       ; %bb.0:1870; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1871; GFX90A-NEXT:    ;;#ASMSTART1872; GFX90A-NEXT:    ; def v[2:5]1873; GFX90A-NEXT:    ;;#ASMEND1874; GFX90A-NEXT:    v_mov_b32_e32 v8, 01875; GFX90A-NEXT:    ;;#ASMSTART1876; GFX90A-NEXT:    ; def v[4:7]1877; GFX90A-NEXT:    ;;#ASMEND1878; GFX90A-NEXT:    v_mov_b32_e32 v0, v71879; GFX90A-NEXT:    v_mov_b32_e32 v1, v61880; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]1881; GFX90A-NEXT:    s_waitcnt vmcnt(0)1882; GFX90A-NEXT:    s_setpc_b64 s[30:31]1883;1884; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_0:1885; GFX942:       ; %bb.0:1886; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1887; GFX942-NEXT:    ;;#ASMSTART1888; GFX942-NEXT:    ; def v[2:5]1889; GFX942-NEXT:    ;;#ASMEND1890; GFX942-NEXT:    v_mov_b32_e32 v8, 01891; GFX942-NEXT:    ;;#ASMSTART1892; GFX942-NEXT:    ; def v[4:7]1893; GFX942-NEXT:    ;;#ASMEND1894; GFX942-NEXT:    s_nop 01895; GFX942-NEXT:    v_mov_b32_e32 v0, v71896; GFX942-NEXT:    v_mov_b32_e32 v1, v61897; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]1898; GFX942-NEXT:    s_waitcnt vmcnt(0)1899; GFX942-NEXT:    s_setpc_b64 s[30:31]1900  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1901  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1902  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 0>1903  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161904  ret void1905}1906 1907define void @v_shuffle_v3p3_v4p3__u_1_1(ptr addrspace(1) inreg %ptr) {1908; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_1_1:1909; GFX900:       ; %bb.0:1910; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1911; GFX900-NEXT:    ;;#ASMSTART1912; GFX900-NEXT:    ; def v[0:3]1913; GFX900-NEXT:    ;;#ASMEND1914; GFX900-NEXT:    v_mov_b32_e32 v4, 01915; GFX900-NEXT:    v_mov_b32_e32 v2, v11916; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1917; GFX900-NEXT:    s_waitcnt vmcnt(0)1918; GFX900-NEXT:    s_setpc_b64 s[30:31]1919;1920; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_1_1:1921; GFX90A:       ; %bb.0:1922; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1923; GFX90A-NEXT:    ;;#ASMSTART1924; GFX90A-NEXT:    ; def v[0:3]1925; GFX90A-NEXT:    ;;#ASMEND1926; GFX90A-NEXT:    v_mov_b32_e32 v4, 01927; GFX90A-NEXT:    v_mov_b32_e32 v2, v11928; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1929; GFX90A-NEXT:    s_waitcnt vmcnt(0)1930; GFX90A-NEXT:    s_setpc_b64 s[30:31]1931;1932; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_1_1:1933; GFX942:       ; %bb.0:1934; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1935; GFX942-NEXT:    ;;#ASMSTART1936; GFX942-NEXT:    ; def v[0:3]1937; GFX942-NEXT:    ;;#ASMEND1938; GFX942-NEXT:    v_mov_b32_e32 v4, 01939; GFX942-NEXT:    v_mov_b32_e32 v2, v11940; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]1941; GFX942-NEXT:    s_waitcnt vmcnt(0)1942; GFX942-NEXT:    s_setpc_b64 s[30:31]1943  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1944  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 1, i32 1>1945  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161946  ret void1947}1948 1949define void @v_shuffle_v3p3_v4p3__0_1_1(ptr addrspace(1) inreg %ptr) {1950; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_1_1:1951; GFX900:       ; %bb.0:1952; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1953; GFX900-NEXT:    ;;#ASMSTART1954; GFX900-NEXT:    ; def v[0:3]1955; GFX900-NEXT:    ;;#ASMEND1956; GFX900-NEXT:    v_mov_b32_e32 v4, 01957; GFX900-NEXT:    v_mov_b32_e32 v2, v11958; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1959; GFX900-NEXT:    s_waitcnt vmcnt(0)1960; GFX900-NEXT:    s_setpc_b64 s[30:31]1961;1962; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_1_1:1963; GFX90A:       ; %bb.0:1964; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1965; GFX90A-NEXT:    ;;#ASMSTART1966; GFX90A-NEXT:    ; def v[0:3]1967; GFX90A-NEXT:    ;;#ASMEND1968; GFX90A-NEXT:    v_mov_b32_e32 v4, 01969; GFX90A-NEXT:    v_mov_b32_e32 v2, v11970; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]1971; GFX90A-NEXT:    s_waitcnt vmcnt(0)1972; GFX90A-NEXT:    s_setpc_b64 s[30:31]1973;1974; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_1_1:1975; GFX942:       ; %bb.0:1976; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1977; GFX942-NEXT:    ;;#ASMSTART1978; GFX942-NEXT:    ; def v[0:3]1979; GFX942-NEXT:    ;;#ASMEND1980; GFX942-NEXT:    v_mov_b32_e32 v4, 01981; GFX942-NEXT:    v_mov_b32_e32 v2, v11982; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]1983; GFX942-NEXT:    s_waitcnt vmcnt(0)1984; GFX942-NEXT:    s_setpc_b64 s[30:31]1985  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()1986  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 1, i32 1>1987  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 161988  ret void1989}1990 1991define void @v_shuffle_v3p3_v4p3__1_1_1(ptr addrspace(1) inreg %ptr) {1992; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_1_1:1993; GFX900:       ; %bb.0:1994; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1995; GFX900-NEXT:    ;;#ASMSTART1996; GFX900-NEXT:    ; def v[0:3]1997; GFX900-NEXT:    ;;#ASMEND1998; GFX900-NEXT:    v_mov_b32_e32 v4, 01999; GFX900-NEXT:    v_mov_b32_e32 v2, v12000; GFX900-NEXT:    v_mov_b32_e32 v3, v12001; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]2002; GFX900-NEXT:    s_waitcnt vmcnt(0)2003; GFX900-NEXT:    s_setpc_b64 s[30:31]2004;2005; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_1_1:2006; GFX90A:       ; %bb.0:2007; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2008; GFX90A-NEXT:    ;;#ASMSTART2009; GFX90A-NEXT:    ; def v[0:3]2010; GFX90A-NEXT:    ;;#ASMEND2011; GFX90A-NEXT:    v_mov_b32_e32 v4, 02012; GFX90A-NEXT:    v_mov_b32_e32 v0, v12013; GFX90A-NEXT:    v_mov_b32_e32 v2, v12014; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2015; GFX90A-NEXT:    s_waitcnt vmcnt(0)2016; GFX90A-NEXT:    s_setpc_b64 s[30:31]2017;2018; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_1_1:2019; GFX942:       ; %bb.0:2020; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2021; GFX942-NEXT:    ;;#ASMSTART2022; GFX942-NEXT:    ; def v[0:3]2023; GFX942-NEXT:    ;;#ASMEND2024; GFX942-NEXT:    v_mov_b32_e32 v4, 02025; GFX942-NEXT:    v_mov_b32_e32 v0, v12026; GFX942-NEXT:    v_mov_b32_e32 v2, v12027; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2028; GFX942-NEXT:    s_waitcnt vmcnt(0)2029; GFX942-NEXT:    s_setpc_b64 s[30:31]2030  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2031  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 1, i32 1>2032  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162033  ret void2034}2035 2036define void @v_shuffle_v3p3_v4p3__2_1_1(ptr addrspace(1) inreg %ptr) {2037; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_1_1:2038; GFX900:       ; %bb.0:2039; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2040; GFX900-NEXT:    ;;#ASMSTART2041; GFX900-NEXT:    ; def v[0:3]2042; GFX900-NEXT:    ;;#ASMEND2043; GFX900-NEXT:    v_mov_b32_e32 v5, 02044; GFX900-NEXT:    v_mov_b32_e32 v3, v12045; GFX900-NEXT:    v_mov_b32_e32 v4, v12046; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]2047; GFX900-NEXT:    s_waitcnt vmcnt(0)2048; GFX900-NEXT:    s_setpc_b64 s[30:31]2049;2050; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_1_1:2051; GFX90A:       ; %bb.0:2052; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2053; GFX90A-NEXT:    ;;#ASMSTART2054; GFX90A-NEXT:    ; def v[0:3]2055; GFX90A-NEXT:    ;;#ASMEND2056; GFX90A-NEXT:    v_mov_b32_e32 v5, 02057; GFX90A-NEXT:    v_mov_b32_e32 v3, v12058; GFX90A-NEXT:    v_mov_b32_e32 v4, v12059; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]2060; GFX90A-NEXT:    s_waitcnt vmcnt(0)2061; GFX90A-NEXT:    s_setpc_b64 s[30:31]2062;2063; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_1_1:2064; GFX942:       ; %bb.0:2065; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2066; GFX942-NEXT:    ;;#ASMSTART2067; GFX942-NEXT:    ; def v[0:3]2068; GFX942-NEXT:    ;;#ASMEND2069; GFX942-NEXT:    v_mov_b32_e32 v5, 02070; GFX942-NEXT:    v_mov_b32_e32 v3, v12071; GFX942-NEXT:    v_mov_b32_e32 v4, v12072; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]2073; GFX942-NEXT:    s_waitcnt vmcnt(0)2074; GFX942-NEXT:    s_setpc_b64 s[30:31]2075  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2076  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 1, i32 1>2077  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162078  ret void2079}2080 2081define void @v_shuffle_v3p3_v4p3__3_1_1(ptr addrspace(1) inreg %ptr) {2082; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_1_1:2083; GFX900:       ; %bb.0:2084; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2085; GFX900-NEXT:    v_mov_b32_e32 v6, 02086; GFX900-NEXT:    ;;#ASMSTART2087; GFX900-NEXT:    ; def v[0:3]2088; GFX900-NEXT:    ;;#ASMEND2089; GFX900-NEXT:    v_mov_b32_e32 v4, v12090; GFX900-NEXT:    v_mov_b32_e32 v5, v12091; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]2092; GFX900-NEXT:    s_waitcnt vmcnt(0)2093; GFX900-NEXT:    s_setpc_b64 s[30:31]2094;2095; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_1_1:2096; GFX90A:       ; %bb.0:2097; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2098; GFX90A-NEXT:    ;;#ASMSTART2099; GFX90A-NEXT:    ; def v[0:3]2100; GFX90A-NEXT:    ;;#ASMEND2101; GFX90A-NEXT:    v_mov_b32_e32 v4, 02102; GFX90A-NEXT:    v_mov_b32_e32 v0, v32103; GFX90A-NEXT:    v_mov_b32_e32 v2, v12104; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2105; GFX90A-NEXT:    s_waitcnt vmcnt(0)2106; GFX90A-NEXT:    s_setpc_b64 s[30:31]2107;2108; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_1_1:2109; GFX942:       ; %bb.0:2110; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2111; GFX942-NEXT:    ;;#ASMSTART2112; GFX942-NEXT:    ; def v[0:3]2113; GFX942-NEXT:    ;;#ASMEND2114; GFX942-NEXT:    v_mov_b32_e32 v4, 02115; GFX942-NEXT:    v_mov_b32_e32 v0, v32116; GFX942-NEXT:    v_mov_b32_e32 v2, v12117; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2118; GFX942-NEXT:    s_waitcnt vmcnt(0)2119; GFX942-NEXT:    s_setpc_b64 s[30:31]2120  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2121  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 1, i32 1>2122  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162123  ret void2124}2125 2126define void @v_shuffle_v3p3_v4p3__4_1_1(ptr addrspace(1) inreg %ptr) {2127; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_1_1:2128; GFX900:       ; %bb.0:2129; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2130; GFX900-NEXT:    ;;#ASMSTART2131; GFX900-NEXT:    ; def v[0:3]2132; GFX900-NEXT:    ;;#ASMEND2133; GFX900-NEXT:    v_mov_b32_e32 v4, 02134; GFX900-NEXT:    v_mov_b32_e32 v2, v12135; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2136; GFX900-NEXT:    s_waitcnt vmcnt(0)2137; GFX900-NEXT:    s_setpc_b64 s[30:31]2138;2139; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_1_1:2140; GFX90A:       ; %bb.0:2141; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2142; GFX90A-NEXT:    ;;#ASMSTART2143; GFX90A-NEXT:    ; def v[0:3]2144; GFX90A-NEXT:    ;;#ASMEND2145; GFX90A-NEXT:    v_mov_b32_e32 v4, 02146; GFX90A-NEXT:    v_mov_b32_e32 v2, v12147; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2148; GFX90A-NEXT:    s_waitcnt vmcnt(0)2149; GFX90A-NEXT:    s_setpc_b64 s[30:31]2150;2151; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_1_1:2152; GFX942:       ; %bb.0:2153; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2154; GFX942-NEXT:    ;;#ASMSTART2155; GFX942-NEXT:    ; def v[0:3]2156; GFX942-NEXT:    ;;#ASMEND2157; GFX942-NEXT:    v_mov_b32_e32 v4, 02158; GFX942-NEXT:    v_mov_b32_e32 v2, v12159; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2160; GFX942-NEXT:    s_waitcnt vmcnt(0)2161; GFX942-NEXT:    s_setpc_b64 s[30:31]2162  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2163  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 1, i32 1>2164  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162165  ret void2166}2167 2168define void @v_shuffle_v3p3_v4p3__5_1_1(ptr addrspace(1) inreg %ptr) {2169; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_1_1:2170; GFX900:       ; %bb.0:2171; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2172; GFX900-NEXT:    ;;#ASMSTART2173; GFX900-NEXT:    ; def v[0:3]2174; GFX900-NEXT:    ;;#ASMEND2175; GFX900-NEXT:    ;;#ASMSTART2176; GFX900-NEXT:    ; def v[2:5]2177; GFX900-NEXT:    ;;#ASMEND2178; GFX900-NEXT:    v_mov_b32_e32 v6, 02179; GFX900-NEXT:    v_mov_b32_e32 v4, v12180; GFX900-NEXT:    v_mov_b32_e32 v5, v12181; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]2182; GFX900-NEXT:    s_waitcnt vmcnt(0)2183; GFX900-NEXT:    s_setpc_b64 s[30:31]2184;2185; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_1_1:2186; GFX90A:       ; %bb.0:2187; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2188; GFX90A-NEXT:    ;;#ASMSTART2189; GFX90A-NEXT:    ; def v[0:3]2190; GFX90A-NEXT:    ;;#ASMEND2191; GFX90A-NEXT:    ;;#ASMSTART2192; GFX90A-NEXT:    ; def v[2:5]2193; GFX90A-NEXT:    ;;#ASMEND2194; GFX90A-NEXT:    v_mov_b32_e32 v6, 02195; GFX90A-NEXT:    v_mov_b32_e32 v0, v32196; GFX90A-NEXT:    v_mov_b32_e32 v2, v12197; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]2198; GFX90A-NEXT:    s_waitcnt vmcnt(0)2199; GFX90A-NEXT:    s_setpc_b64 s[30:31]2200;2201; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_1_1:2202; GFX942:       ; %bb.0:2203; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2204; GFX942-NEXT:    ;;#ASMSTART2205; GFX942-NEXT:    ; def v[0:3]2206; GFX942-NEXT:    ;;#ASMEND2207; GFX942-NEXT:    v_mov_b32_e32 v6, 02208; GFX942-NEXT:    ;;#ASMSTART2209; GFX942-NEXT:    ; def v[2:5]2210; GFX942-NEXT:    ;;#ASMEND2211; GFX942-NEXT:    s_nop 02212; GFX942-NEXT:    v_mov_b32_e32 v0, v32213; GFX942-NEXT:    v_mov_b32_e32 v2, v12214; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]2215; GFX942-NEXT:    s_waitcnt vmcnt(0)2216; GFX942-NEXT:    s_setpc_b64 s[30:31]2217  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2218  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2219  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 1, i32 1>2220  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162221  ret void2222}2223 2224define void @v_shuffle_v3p3_v4p3__6_1_1(ptr addrspace(1) inreg %ptr) {2225; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_1_1:2226; GFX900:       ; %bb.0:2227; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2228; GFX900-NEXT:    ;;#ASMSTART2229; GFX900-NEXT:    ; def v[3:6]2230; GFX900-NEXT:    ;;#ASMEND2231; GFX900-NEXT:    ;;#ASMSTART2232; GFX900-NEXT:    ; def v[0:3]2233; GFX900-NEXT:    ;;#ASMEND2234; GFX900-NEXT:    v_mov_b32_e32 v7, 02235; GFX900-NEXT:    v_mov_b32_e32 v3, v42236; GFX900-NEXT:    global_store_dwordx3 v7, v[2:4], s[16:17]2237; GFX900-NEXT:    s_waitcnt vmcnt(0)2238; GFX900-NEXT:    s_setpc_b64 s[30:31]2239;2240; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_1_1:2241; GFX90A:       ; %bb.0:2242; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2243; GFX90A-NEXT:    ;;#ASMSTART2244; GFX90A-NEXT:    ; def v[4:7]2245; GFX90A-NEXT:    ;;#ASMEND2246; GFX90A-NEXT:    ;;#ASMSTART2247; GFX90A-NEXT:    ; def v[0:3]2248; GFX90A-NEXT:    ;;#ASMEND2249; GFX90A-NEXT:    v_mov_b32_e32 v8, 02250; GFX90A-NEXT:    v_mov_b32_e32 v3, v52251; GFX90A-NEXT:    v_mov_b32_e32 v4, v52252; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]2253; GFX90A-NEXT:    s_waitcnt vmcnt(0)2254; GFX90A-NEXT:    s_setpc_b64 s[30:31]2255;2256; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_1_1:2257; GFX942:       ; %bb.0:2258; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2259; GFX942-NEXT:    ;;#ASMSTART2260; GFX942-NEXT:    ; def v[4:7]2261; GFX942-NEXT:    ;;#ASMEND2262; GFX942-NEXT:    ;;#ASMSTART2263; GFX942-NEXT:    ; def v[0:3]2264; GFX942-NEXT:    ;;#ASMEND2265; GFX942-NEXT:    v_mov_b32_e32 v8, 02266; GFX942-NEXT:    v_mov_b32_e32 v3, v52267; GFX942-NEXT:    v_mov_b32_e32 v4, v52268; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]2269; GFX942-NEXT:    s_waitcnt vmcnt(0)2270; GFX942-NEXT:    s_setpc_b64 s[30:31]2271  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2272  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2273  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 1, i32 1>2274  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162275  ret void2276}2277 2278define void @v_shuffle_v3p3_v4p3__7_1_1(ptr addrspace(1) inreg %ptr) {2279; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_1:2280; GFX900:       ; %bb.0:2281; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2282; GFX900-NEXT:    ;;#ASMSTART2283; GFX900-NEXT:    ; def v[3:6]2284; GFX900-NEXT:    ;;#ASMEND2285; GFX900-NEXT:    v_mov_b32_e32 v7, 02286; GFX900-NEXT:    v_mov_b32_e32 v5, v42287; GFX900-NEXT:    ;;#ASMSTART2288; GFX900-NEXT:    ; def v[0:3]2289; GFX900-NEXT:    ;;#ASMEND2290; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]2291; GFX900-NEXT:    s_waitcnt vmcnt(0)2292; GFX900-NEXT:    s_setpc_b64 s[30:31]2293;2294; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_1:2295; GFX90A:       ; %bb.0:2296; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2297; GFX90A-NEXT:    ;;#ASMSTART2298; GFX90A-NEXT:    ; def v[0:3]2299; GFX90A-NEXT:    ;;#ASMEND2300; GFX90A-NEXT:    ;;#ASMSTART2301; GFX90A-NEXT:    ; def v[2:5]2302; GFX90A-NEXT:    ;;#ASMEND2303; GFX90A-NEXT:    v_mov_b32_e32 v6, 02304; GFX90A-NEXT:    v_mov_b32_e32 v0, v52305; GFX90A-NEXT:    v_mov_b32_e32 v2, v12306; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]2307; GFX90A-NEXT:    s_waitcnt vmcnt(0)2308; GFX90A-NEXT:    s_setpc_b64 s[30:31]2309;2310; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_1:2311; GFX942:       ; %bb.0:2312; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2313; GFX942-NEXT:    ;;#ASMSTART2314; GFX942-NEXT:    ; def v[0:3]2315; GFX942-NEXT:    ;;#ASMEND2316; GFX942-NEXT:    v_mov_b32_e32 v6, 02317; GFX942-NEXT:    ;;#ASMSTART2318; GFX942-NEXT:    ; def v[2:5]2319; GFX942-NEXT:    ;;#ASMEND2320; GFX942-NEXT:    s_nop 02321; GFX942-NEXT:    v_mov_b32_e32 v0, v52322; GFX942-NEXT:    v_mov_b32_e32 v2, v12323; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]2324; GFX942-NEXT:    s_waitcnt vmcnt(0)2325; GFX942-NEXT:    s_setpc_b64 s[30:31]2326  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2327  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2328  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 1>2329  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162330  ret void2331}2332 2333define void @v_shuffle_v3p3_v4p3__7_u_1(ptr addrspace(1) inreg %ptr) {2334; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_1:2335; GFX900:       ; %bb.0:2336; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2337; GFX900-NEXT:    v_mov_b32_e32 v8, 02338; GFX900-NEXT:    ;;#ASMSTART2339; GFX900-NEXT:    ; def v[4:7]2340; GFX900-NEXT:    ;;#ASMEND2341; GFX900-NEXT:    ;;#ASMSTART2342; GFX900-NEXT:    ; def v[0:3]2343; GFX900-NEXT:    ;;#ASMEND2344; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2345; GFX900-NEXT:    s_waitcnt vmcnt(0)2346; GFX900-NEXT:    s_setpc_b64 s[30:31]2347;2348; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_1:2349; GFX90A:       ; %bb.0:2350; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2351; GFX90A-NEXT:    ;;#ASMSTART2352; GFX90A-NEXT:    ; def v[0:3]2353; GFX90A-NEXT:    ;;#ASMEND2354; GFX90A-NEXT:    ;;#ASMSTART2355; GFX90A-NEXT:    ; def v[2:5]2356; GFX90A-NEXT:    ;;#ASMEND2357; GFX90A-NEXT:    v_mov_b32_e32 v6, 02358; GFX90A-NEXT:    v_mov_b32_e32 v0, v52359; GFX90A-NEXT:    v_mov_b32_e32 v2, v12360; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]2361; GFX90A-NEXT:    s_waitcnt vmcnt(0)2362; GFX90A-NEXT:    s_setpc_b64 s[30:31]2363;2364; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_1:2365; GFX942:       ; %bb.0:2366; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2367; GFX942-NEXT:    ;;#ASMSTART2368; GFX942-NEXT:    ; def v[0:3]2369; GFX942-NEXT:    ;;#ASMEND2370; GFX942-NEXT:    v_mov_b32_e32 v6, 02371; GFX942-NEXT:    ;;#ASMSTART2372; GFX942-NEXT:    ; def v[2:5]2373; GFX942-NEXT:    ;;#ASMEND2374; GFX942-NEXT:    s_nop 02375; GFX942-NEXT:    v_mov_b32_e32 v0, v52376; GFX942-NEXT:    v_mov_b32_e32 v2, v12377; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]2378; GFX942-NEXT:    s_waitcnt vmcnt(0)2379; GFX942-NEXT:    s_setpc_b64 s[30:31]2380  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2381  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2382  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>2383  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162384  ret void2385}2386 2387define void @v_shuffle_v3p3_v4p3__7_0_1(ptr addrspace(1) inreg %ptr) {2388; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_1:2389; GFX900:       ; %bb.0:2390; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2391; GFX900-NEXT:    v_mov_b32_e32 v8, 02392; GFX900-NEXT:    ;;#ASMSTART2393; GFX900-NEXT:    ; def v[4:7]2394; GFX900-NEXT:    ;;#ASMEND2395; GFX900-NEXT:    ;;#ASMSTART2396; GFX900-NEXT:    ; def v[0:3]2397; GFX900-NEXT:    ;;#ASMEND2398; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2399; GFX900-NEXT:    s_waitcnt vmcnt(0)2400; GFX900-NEXT:    s_setpc_b64 s[30:31]2401;2402; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_1:2403; GFX90A:       ; %bb.0:2404; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2405; GFX90A-NEXT:    ;;#ASMSTART2406; GFX90A-NEXT:    ; def v[0:3]2407; GFX90A-NEXT:    ;;#ASMEND2408; GFX90A-NEXT:    ;;#ASMSTART2409; GFX90A-NEXT:    ; def v[2:5]2410; GFX90A-NEXT:    ;;#ASMEND2411; GFX90A-NEXT:    v_mov_b32_e32 v6, 02412; GFX90A-NEXT:    v_mov_b32_e32 v2, v52413; GFX90A-NEXT:    v_mov_b32_e32 v3, v02414; GFX90A-NEXT:    v_mov_b32_e32 v4, v12415; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]2416; GFX90A-NEXT:    s_waitcnt vmcnt(0)2417; GFX90A-NEXT:    s_setpc_b64 s[30:31]2418;2419; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_1:2420; GFX942:       ; %bb.0:2421; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2422; GFX942-NEXT:    ;;#ASMSTART2423; GFX942-NEXT:    ; def v[0:3]2424; GFX942-NEXT:    ;;#ASMEND2425; GFX942-NEXT:    v_mov_b32_e32 v6, 02426; GFX942-NEXT:    ;;#ASMSTART2427; GFX942-NEXT:    ; def v[2:5]2428; GFX942-NEXT:    ;;#ASMEND2429; GFX942-NEXT:    s_nop 02430; GFX942-NEXT:    v_mov_b32_e32 v2, v52431; GFX942-NEXT:    v_mov_b32_e32 v3, v02432; GFX942-NEXT:    v_mov_b32_e32 v4, v12433; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]2434; GFX942-NEXT:    s_waitcnt vmcnt(0)2435; GFX942-NEXT:    s_setpc_b64 s[30:31]2436  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2437  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2438  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 1>2439  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162440  ret void2441}2442 2443define void @v_shuffle_v3p3_v4p3__7_2_1(ptr addrspace(1) inreg %ptr) {2444; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_1:2445; GFX900:       ; %bb.0:2446; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2447; GFX900-NEXT:    ;;#ASMSTART2448; GFX900-NEXT:    ; def v[4:7]2449; GFX900-NEXT:    ;;#ASMEND2450; GFX900-NEXT:    v_mov_b32_e32 v8, 02451; GFX900-NEXT:    v_mov_b32_e32 v4, v62452; GFX900-NEXT:    ;;#ASMSTART2453; GFX900-NEXT:    ; def v[0:3]2454; GFX900-NEXT:    ;;#ASMEND2455; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2456; GFX900-NEXT:    s_waitcnt vmcnt(0)2457; GFX900-NEXT:    s_setpc_b64 s[30:31]2458;2459; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_1:2460; GFX90A:       ; %bb.0:2461; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2462; GFX90A-NEXT:    ;;#ASMSTART2463; GFX90A-NEXT:    ; def v[4:7]2464; GFX90A-NEXT:    ;;#ASMEND2465; GFX90A-NEXT:    v_mov_b32_e32 v8, 02466; GFX90A-NEXT:    ;;#ASMSTART2467; GFX90A-NEXT:    ; def v[0:3]2468; GFX90A-NEXT:    ;;#ASMEND2469; GFX90A-NEXT:    v_mov_b32_e32 v4, v72470; GFX90A-NEXT:    v_mov_b32_e32 v5, v22471; GFX90A-NEXT:    v_mov_b32_e32 v6, v12472; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]2473; GFX90A-NEXT:    s_waitcnt vmcnt(0)2474; GFX90A-NEXT:    s_setpc_b64 s[30:31]2475;2476; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_1:2477; GFX942:       ; %bb.0:2478; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2479; GFX942-NEXT:    ;;#ASMSTART2480; GFX942-NEXT:    ; def v[4:7]2481; GFX942-NEXT:    ;;#ASMEND2482; GFX942-NEXT:    v_mov_b32_e32 v8, 02483; GFX942-NEXT:    ;;#ASMSTART2484; GFX942-NEXT:    ; def v[0:3]2485; GFX942-NEXT:    ;;#ASMEND2486; GFX942-NEXT:    v_mov_b32_e32 v4, v72487; GFX942-NEXT:    v_mov_b32_e32 v5, v22488; GFX942-NEXT:    v_mov_b32_e32 v6, v12489; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]2490; GFX942-NEXT:    s_waitcnt vmcnt(0)2491; GFX942-NEXT:    s_setpc_b64 s[30:31]2492  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2493  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2494  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 1>2495  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162496  ret void2497}2498 2499define void @v_shuffle_v3p3_v4p3__7_3_1(ptr addrspace(1) inreg %ptr) {2500; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_1:2501; GFX900:       ; %bb.0:2502; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2503; GFX900-NEXT:    ;;#ASMSTART2504; GFX900-NEXT:    ; def v[4:7]2505; GFX900-NEXT:    ;;#ASMEND2506; GFX900-NEXT:    v_mov_b32_e32 v8, 02507; GFX900-NEXT:    v_mov_b32_e32 v4, v72508; GFX900-NEXT:    ;;#ASMSTART2509; GFX900-NEXT:    ; def v[0:3]2510; GFX900-NEXT:    ;;#ASMEND2511; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2512; GFX900-NEXT:    s_waitcnt vmcnt(0)2513; GFX900-NEXT:    s_setpc_b64 s[30:31]2514;2515; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_1:2516; GFX90A:       ; %bb.0:2517; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2518; GFX90A-NEXT:    ;;#ASMSTART2519; GFX90A-NEXT:    ; def v[0:3]2520; GFX90A-NEXT:    ;;#ASMEND2521; GFX90A-NEXT:    ;;#ASMSTART2522; GFX90A-NEXT:    ; def v[4:7]2523; GFX90A-NEXT:    ;;#ASMEND2524; GFX90A-NEXT:    v_mov_b32_e32 v8, 02525; GFX90A-NEXT:    v_mov_b32_e32 v2, v72526; GFX90A-NEXT:    v_mov_b32_e32 v4, v12527; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]2528; GFX90A-NEXT:    s_waitcnt vmcnt(0)2529; GFX90A-NEXT:    s_setpc_b64 s[30:31]2530;2531; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_1:2532; GFX942:       ; %bb.0:2533; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2534; GFX942-NEXT:    ;;#ASMSTART2535; GFX942-NEXT:    ; def v[0:3]2536; GFX942-NEXT:    ;;#ASMEND2537; GFX942-NEXT:    ;;#ASMSTART2538; GFX942-NEXT:    ; def v[4:7]2539; GFX942-NEXT:    ;;#ASMEND2540; GFX942-NEXT:    v_mov_b32_e32 v8, 02541; GFX942-NEXT:    v_mov_b32_e32 v2, v72542; GFX942-NEXT:    v_mov_b32_e32 v4, v12543; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]2544; GFX942-NEXT:    s_waitcnt vmcnt(0)2545; GFX942-NEXT:    s_setpc_b64 s[30:31]2546  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2547  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2548  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 1>2549  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162550  ret void2551}2552 2553define void @v_shuffle_v3p3_v4p3__7_4_1(ptr addrspace(1) inreg %ptr) {2554; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_1:2555; GFX900:       ; %bb.0:2556; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2557; GFX900-NEXT:    ;;#ASMSTART2558; GFX900-NEXT:    ; def v[4:7]2559; GFX900-NEXT:    ;;#ASMEND2560; GFX900-NEXT:    v_mov_b32_e32 v8, 02561; GFX900-NEXT:    ;;#ASMSTART2562; GFX900-NEXT:    ; def v[0:3]2563; GFX900-NEXT:    ;;#ASMEND2564; GFX900-NEXT:    v_mov_b32_e32 v4, v02565; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2566; GFX900-NEXT:    s_waitcnt vmcnt(0)2567; GFX900-NEXT:    s_setpc_b64 s[30:31]2568;2569; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_1:2570; GFX90A:       ; %bb.0:2571; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2572; GFX90A-NEXT:    ;;#ASMSTART2573; GFX90A-NEXT:    ; def v[0:3]2574; GFX90A-NEXT:    ;;#ASMEND2575; GFX90A-NEXT:    v_mov_b32_e32 v6, 02576; GFX90A-NEXT:    ;;#ASMSTART2577; GFX90A-NEXT:    ; def v[2:5]2578; GFX90A-NEXT:    ;;#ASMEND2579; GFX90A-NEXT:    v_mov_b32_e32 v8, v52580; GFX90A-NEXT:    v_mov_b32_e32 v9, v22581; GFX90A-NEXT:    v_mov_b32_e32 v10, v12582; GFX90A-NEXT:    global_store_dwordx3 v6, v[8:10], s[16:17]2583; GFX90A-NEXT:    s_waitcnt vmcnt(0)2584; GFX90A-NEXT:    s_setpc_b64 s[30:31]2585;2586; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_1:2587; GFX942:       ; %bb.0:2588; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2589; GFX942-NEXT:    ;;#ASMSTART2590; GFX942-NEXT:    ; def v[0:3]2591; GFX942-NEXT:    ;;#ASMEND2592; GFX942-NEXT:    v_mov_b32_e32 v6, 02593; GFX942-NEXT:    ;;#ASMSTART2594; GFX942-NEXT:    ; def v[2:5]2595; GFX942-NEXT:    ;;#ASMEND2596; GFX942-NEXT:    v_mov_b32_e32 v10, v12597; GFX942-NEXT:    v_mov_b32_e32 v8, v52598; GFX942-NEXT:    v_mov_b32_e32 v9, v22599; GFX942-NEXT:    global_store_dwordx3 v6, v[8:10], s[0:1]2600; GFX942-NEXT:    s_waitcnt vmcnt(0)2601; GFX942-NEXT:    s_setpc_b64 s[30:31]2602  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2603  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2604  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 1>2605  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162606  ret void2607}2608 2609define void @v_shuffle_v3p3_v4p3__7_5_1(ptr addrspace(1) inreg %ptr) {2610; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_1:2611; GFX900:       ; %bb.0:2612; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2613; GFX900-NEXT:    ;;#ASMSTART2614; GFX900-NEXT:    ; def v[4:7]2615; GFX900-NEXT:    ;;#ASMEND2616; GFX900-NEXT:    v_mov_b32_e32 v8, 02617; GFX900-NEXT:    ;;#ASMSTART2618; GFX900-NEXT:    ; def v[0:3]2619; GFX900-NEXT:    ;;#ASMEND2620; GFX900-NEXT:    v_mov_b32_e32 v4, v12621; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2622; GFX900-NEXT:    s_waitcnt vmcnt(0)2623; GFX900-NEXT:    s_setpc_b64 s[30:31]2624;2625; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_1:2626; GFX90A:       ; %bb.0:2627; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2628; GFX90A-NEXT:    ;;#ASMSTART2629; GFX90A-NEXT:    ; def v[0:3]2630; GFX90A-NEXT:    ;;#ASMEND2631; GFX90A-NEXT:    ;;#ASMSTART2632; GFX90A-NEXT:    ; def v[2:5]2633; GFX90A-NEXT:    ;;#ASMEND2634; GFX90A-NEXT:    v_mov_b32_e32 v6, 02635; GFX90A-NEXT:    v_mov_b32_e32 v2, v52636; GFX90A-NEXT:    v_mov_b32_e32 v4, v12637; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]2638; GFX90A-NEXT:    s_waitcnt vmcnt(0)2639; GFX90A-NEXT:    s_setpc_b64 s[30:31]2640;2641; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_1:2642; GFX942:       ; %bb.0:2643; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2644; GFX942-NEXT:    ;;#ASMSTART2645; GFX942-NEXT:    ; def v[0:3]2646; GFX942-NEXT:    ;;#ASMEND2647; GFX942-NEXT:    v_mov_b32_e32 v6, 02648; GFX942-NEXT:    ;;#ASMSTART2649; GFX942-NEXT:    ; def v[2:5]2650; GFX942-NEXT:    ;;#ASMEND2651; GFX942-NEXT:    s_nop 02652; GFX942-NEXT:    v_mov_b32_e32 v2, v52653; GFX942-NEXT:    v_mov_b32_e32 v4, v12654; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]2655; GFX942-NEXT:    s_waitcnt vmcnt(0)2656; GFX942-NEXT:    s_setpc_b64 s[30:31]2657  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2658  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2659  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 1>2660  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162661  ret void2662}2663 2664define void @v_shuffle_v3p3_v4p3__7_6_1(ptr addrspace(1) inreg %ptr) {2665; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_1:2666; GFX900:       ; %bb.0:2667; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2668; GFX900-NEXT:    ;;#ASMSTART2669; GFX900-NEXT:    ; def v[4:7]2670; GFX900-NEXT:    ;;#ASMEND2671; GFX900-NEXT:    v_mov_b32_e32 v8, 02672; GFX900-NEXT:    ;;#ASMSTART2673; GFX900-NEXT:    ; def v[0:3]2674; GFX900-NEXT:    ;;#ASMEND2675; GFX900-NEXT:    v_mov_b32_e32 v4, v22676; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]2677; GFX900-NEXT:    s_waitcnt vmcnt(0)2678; GFX900-NEXT:    s_setpc_b64 s[30:31]2679;2680; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_1:2681; GFX90A:       ; %bb.0:2682; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2683; GFX90A-NEXT:    ;;#ASMSTART2684; GFX90A-NEXT:    ; def v[0:3]2685; GFX90A-NEXT:    ;;#ASMEND2686; GFX90A-NEXT:    ;;#ASMSTART2687; GFX90A-NEXT:    ; def v[2:5]2688; GFX90A-NEXT:    ;;#ASMEND2689; GFX90A-NEXT:    v_mov_b32_e32 v6, 02690; GFX90A-NEXT:    v_mov_b32_e32 v2, v52691; GFX90A-NEXT:    v_mov_b32_e32 v3, v42692; GFX90A-NEXT:    v_mov_b32_e32 v4, v12693; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]2694; GFX90A-NEXT:    s_waitcnt vmcnt(0)2695; GFX90A-NEXT:    s_setpc_b64 s[30:31]2696;2697; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_1:2698; GFX942:       ; %bb.0:2699; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2700; GFX942-NEXT:    ;;#ASMSTART2701; GFX942-NEXT:    ; def v[0:3]2702; GFX942-NEXT:    ;;#ASMEND2703; GFX942-NEXT:    v_mov_b32_e32 v6, 02704; GFX942-NEXT:    ;;#ASMSTART2705; GFX942-NEXT:    ; def v[2:5]2706; GFX942-NEXT:    ;;#ASMEND2707; GFX942-NEXT:    s_nop 02708; GFX942-NEXT:    v_mov_b32_e32 v2, v52709; GFX942-NEXT:    v_mov_b32_e32 v3, v42710; GFX942-NEXT:    v_mov_b32_e32 v4, v12711; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]2712; GFX942-NEXT:    s_waitcnt vmcnt(0)2713; GFX942-NEXT:    s_setpc_b64 s[30:31]2714  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2715  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2716  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 1>2717  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162718  ret void2719}2720 2721define void @v_shuffle_v3p3_v4p3__u_2_2(ptr addrspace(1) inreg %ptr) {2722; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_2_2:2723; GFX900:       ; %bb.0:2724; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2725; GFX900-NEXT:    ;;#ASMSTART2726; GFX900-NEXT:    ; def v[0:3]2727; GFX900-NEXT:    ;;#ASMEND2728; GFX900-NEXT:    v_mov_b32_e32 v4, 02729; GFX900-NEXT:    v_mov_b32_e32 v3, v22730; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]2731; GFX900-NEXT:    s_waitcnt vmcnt(0)2732; GFX900-NEXT:    s_setpc_b64 s[30:31]2733;2734; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_2_2:2735; GFX90A:       ; %bb.0:2736; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2737; GFX90A-NEXT:    ;;#ASMSTART2738; GFX90A-NEXT:    ; def v[0:3]2739; GFX90A-NEXT:    ;;#ASMEND2740; GFX90A-NEXT:    v_mov_b32_e32 v4, 02741; GFX90A-NEXT:    v_mov_b32_e32 v1, v22742; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2743; GFX90A-NEXT:    s_waitcnt vmcnt(0)2744; GFX90A-NEXT:    s_setpc_b64 s[30:31]2745;2746; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_2_2:2747; GFX942:       ; %bb.0:2748; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2749; GFX942-NEXT:    ;;#ASMSTART2750; GFX942-NEXT:    ; def v[0:3]2751; GFX942-NEXT:    ;;#ASMEND2752; GFX942-NEXT:    v_mov_b32_e32 v4, 02753; GFX942-NEXT:    v_mov_b32_e32 v1, v22754; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2755; GFX942-NEXT:    s_waitcnt vmcnt(0)2756; GFX942-NEXT:    s_setpc_b64 s[30:31]2757  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2758  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 2, i32 2>2759  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162760  ret void2761}2762 2763define void @v_shuffle_v3p3_v4p3__0_2_2(ptr addrspace(1) inreg %ptr) {2764; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_2_2:2765; GFX900:       ; %bb.0:2766; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2767; GFX900-NEXT:    ;;#ASMSTART2768; GFX900-NEXT:    ; def v[0:3]2769; GFX900-NEXT:    ;;#ASMEND2770; GFX900-NEXT:    v_mov_b32_e32 v4, 02771; GFX900-NEXT:    v_mov_b32_e32 v1, v22772; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2773; GFX900-NEXT:    s_waitcnt vmcnt(0)2774; GFX900-NEXT:    s_setpc_b64 s[30:31]2775;2776; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_2_2:2777; GFX90A:       ; %bb.0:2778; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2779; GFX90A-NEXT:    ;;#ASMSTART2780; GFX90A-NEXT:    ; def v[0:3]2781; GFX90A-NEXT:    ;;#ASMEND2782; GFX90A-NEXT:    v_mov_b32_e32 v4, 02783; GFX90A-NEXT:    v_mov_b32_e32 v1, v22784; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2785; GFX90A-NEXT:    s_waitcnt vmcnt(0)2786; GFX90A-NEXT:    s_setpc_b64 s[30:31]2787;2788; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_2_2:2789; GFX942:       ; %bb.0:2790; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2791; GFX942-NEXT:    ;;#ASMSTART2792; GFX942-NEXT:    ; def v[0:3]2793; GFX942-NEXT:    ;;#ASMEND2794; GFX942-NEXT:    v_mov_b32_e32 v4, 02795; GFX942-NEXT:    v_mov_b32_e32 v1, v22796; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2797; GFX942-NEXT:    s_waitcnt vmcnt(0)2798; GFX942-NEXT:    s_setpc_b64 s[30:31]2799  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2800  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 2, i32 2>2801  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162802  ret void2803}2804 2805define void @v_shuffle_v3p3_v4p3__1_2_2(ptr addrspace(1) inreg %ptr) {2806; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_2_2:2807; GFX900:       ; %bb.0:2808; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2809; GFX900-NEXT:    ;;#ASMSTART2810; GFX900-NEXT:    ; def v[0:3]2811; GFX900-NEXT:    ;;#ASMEND2812; GFX900-NEXT:    v_mov_b32_e32 v4, 02813; GFX900-NEXT:    v_mov_b32_e32 v3, v22814; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]2815; GFX900-NEXT:    s_waitcnt vmcnt(0)2816; GFX900-NEXT:    s_setpc_b64 s[30:31]2817;2818; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_2_2:2819; GFX90A:       ; %bb.0:2820; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2821; GFX90A-NEXT:    ;;#ASMSTART2822; GFX90A-NEXT:    ; def v[0:3]2823; GFX90A-NEXT:    ;;#ASMEND2824; GFX90A-NEXT:    v_mov_b32_e32 v4, 02825; GFX90A-NEXT:    v_mov_b32_e32 v0, v12826; GFX90A-NEXT:    v_mov_b32_e32 v1, v22827; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2828; GFX90A-NEXT:    s_waitcnt vmcnt(0)2829; GFX90A-NEXT:    s_setpc_b64 s[30:31]2830;2831; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_2_2:2832; GFX942:       ; %bb.0:2833; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2834; GFX942-NEXT:    ;;#ASMSTART2835; GFX942-NEXT:    ; def v[0:3]2836; GFX942-NEXT:    ;;#ASMEND2837; GFX942-NEXT:    v_mov_b32_e32 v4, 02838; GFX942-NEXT:    v_mov_b32_e32 v0, v12839; GFX942-NEXT:    v_mov_b32_e32 v1, v22840; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2841; GFX942-NEXT:    s_waitcnt vmcnt(0)2842; GFX942-NEXT:    s_setpc_b64 s[30:31]2843  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2844  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 2, i32 2>2845  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162846  ret void2847}2848 2849define void @v_shuffle_v3p3_v4p3__2_2_2(ptr addrspace(1) inreg %ptr) {2850; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_2_2:2851; GFX900:       ; %bb.0:2852; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2853; GFX900-NEXT:    ;;#ASMSTART2854; GFX900-NEXT:    ; def v[0:3]2855; GFX900-NEXT:    ;;#ASMEND2856; GFX900-NEXT:    v_mov_b32_e32 v5, 02857; GFX900-NEXT:    v_mov_b32_e32 v3, v22858; GFX900-NEXT:    v_mov_b32_e32 v4, v22859; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]2860; GFX900-NEXT:    s_waitcnt vmcnt(0)2861; GFX900-NEXT:    s_setpc_b64 s[30:31]2862;2863; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_2_2:2864; GFX90A:       ; %bb.0:2865; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2866; GFX90A-NEXT:    ;;#ASMSTART2867; GFX90A-NEXT:    ; def v[0:3]2868; GFX90A-NEXT:    ;;#ASMEND2869; GFX90A-NEXT:    v_mov_b32_e32 v5, 02870; GFX90A-NEXT:    v_mov_b32_e32 v3, v22871; GFX90A-NEXT:    v_mov_b32_e32 v4, v22872; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]2873; GFX90A-NEXT:    s_waitcnt vmcnt(0)2874; GFX90A-NEXT:    s_setpc_b64 s[30:31]2875;2876; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_2_2:2877; GFX942:       ; %bb.0:2878; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2879; GFX942-NEXT:    ;;#ASMSTART2880; GFX942-NEXT:    ; def v[0:3]2881; GFX942-NEXT:    ;;#ASMEND2882; GFX942-NEXT:    v_mov_b32_e32 v5, 02883; GFX942-NEXT:    v_mov_b32_e32 v3, v22884; GFX942-NEXT:    v_mov_b32_e32 v4, v22885; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]2886; GFX942-NEXT:    s_waitcnt vmcnt(0)2887; GFX942-NEXT:    s_setpc_b64 s[30:31]2888  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2889  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 2, i32 2>2890  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162891  ret void2892}2893 2894define void @v_shuffle_v3p3_v4p3__3_2_2(ptr addrspace(1) inreg %ptr) {2895; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_2_2:2896; GFX900:       ; %bb.0:2897; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2898; GFX900-NEXT:    v_mov_b32_e32 v6, 02899; GFX900-NEXT:    ;;#ASMSTART2900; GFX900-NEXT:    ; def v[0:3]2901; GFX900-NEXT:    ;;#ASMEND2902; GFX900-NEXT:    v_mov_b32_e32 v4, v22903; GFX900-NEXT:    v_mov_b32_e32 v5, v22904; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]2905; GFX900-NEXT:    s_waitcnt vmcnt(0)2906; GFX900-NEXT:    s_setpc_b64 s[30:31]2907;2908; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_2_2:2909; GFX90A:       ; %bb.0:2910; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2911; GFX90A-NEXT:    ;;#ASMSTART2912; GFX90A-NEXT:    ; def v[0:3]2913; GFX90A-NEXT:    ;;#ASMEND2914; GFX90A-NEXT:    v_mov_b32_e32 v4, 02915; GFX90A-NEXT:    v_mov_b32_e32 v0, v32916; GFX90A-NEXT:    v_mov_b32_e32 v1, v22917; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2918; GFX90A-NEXT:    s_waitcnt vmcnt(0)2919; GFX90A-NEXT:    s_setpc_b64 s[30:31]2920;2921; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_2_2:2922; GFX942:       ; %bb.0:2923; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2924; GFX942-NEXT:    ;;#ASMSTART2925; GFX942-NEXT:    ; def v[0:3]2926; GFX942-NEXT:    ;;#ASMEND2927; GFX942-NEXT:    v_mov_b32_e32 v4, 02928; GFX942-NEXT:    v_mov_b32_e32 v0, v32929; GFX942-NEXT:    v_mov_b32_e32 v1, v22930; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2931; GFX942-NEXT:    s_waitcnt vmcnt(0)2932; GFX942-NEXT:    s_setpc_b64 s[30:31]2933  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2934  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 2, i32 2>2935  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162936  ret void2937}2938 2939define void @v_shuffle_v3p3_v4p3__4_2_2(ptr addrspace(1) inreg %ptr) {2940; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_2_2:2941; GFX900:       ; %bb.0:2942; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2943; GFX900-NEXT:    ;;#ASMSTART2944; GFX900-NEXT:    ; def v[0:3]2945; GFX900-NEXT:    ;;#ASMEND2946; GFX900-NEXT:    v_mov_b32_e32 v4, 02947; GFX900-NEXT:    v_mov_b32_e32 v3, v22948; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]2949; GFX900-NEXT:    s_waitcnt vmcnt(0)2950; GFX900-NEXT:    s_setpc_b64 s[30:31]2951;2952; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_2_2:2953; GFX90A:       ; %bb.0:2954; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2955; GFX90A-NEXT:    ;;#ASMSTART2956; GFX90A-NEXT:    ; def v[0:3]2957; GFX90A-NEXT:    ;;#ASMEND2958; GFX90A-NEXT:    v_mov_b32_e32 v4, 02959; GFX90A-NEXT:    v_mov_b32_e32 v1, v22960; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]2961; GFX90A-NEXT:    s_waitcnt vmcnt(0)2962; GFX90A-NEXT:    s_setpc_b64 s[30:31]2963;2964; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_2_2:2965; GFX942:       ; %bb.0:2966; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2967; GFX942-NEXT:    ;;#ASMSTART2968; GFX942-NEXT:    ; def v[0:3]2969; GFX942-NEXT:    ;;#ASMEND2970; GFX942-NEXT:    v_mov_b32_e32 v4, 02971; GFX942-NEXT:    v_mov_b32_e32 v1, v22972; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]2973; GFX942-NEXT:    s_waitcnt vmcnt(0)2974; GFX942-NEXT:    s_setpc_b64 s[30:31]2975  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()2976  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 2, i32 2>2977  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 162978  ret void2979}2980 2981define void @v_shuffle_v3p3_v4p3__5_2_2(ptr addrspace(1) inreg %ptr) {2982; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_2_2:2983; GFX900:       ; %bb.0:2984; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2985; GFX900-NEXT:    ;;#ASMSTART2986; GFX900-NEXT:    ; def v[0:3]2987; GFX900-NEXT:    ;;#ASMEND2988; GFX900-NEXT:    ;;#ASMSTART2989; GFX900-NEXT:    ; def v[3:6]2990; GFX900-NEXT:    ;;#ASMEND2991; GFX900-NEXT:    v_mov_b32_e32 v7, 02992; GFX900-NEXT:    v_mov_b32_e32 v5, v22993; GFX900-NEXT:    v_mov_b32_e32 v6, v22994; GFX900-NEXT:    global_store_dwordx3 v7, v[4:6], s[16:17]2995; GFX900-NEXT:    s_waitcnt vmcnt(0)2996; GFX900-NEXT:    s_setpc_b64 s[30:31]2997;2998; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_2_2:2999; GFX90A:       ; %bb.0:3000; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3001; GFX90A-NEXT:    ;;#ASMSTART3002; GFX90A-NEXT:    ; def v[0:3]3003; GFX90A-NEXT:    ;;#ASMEND3004; GFX90A-NEXT:    v_mov_b32_e32 v8, 03005; GFX90A-NEXT:    ;;#ASMSTART3006; GFX90A-NEXT:    ; def v[4:7]3007; GFX90A-NEXT:    ;;#ASMEND3008; GFX90A-NEXT:    v_mov_b32_e32 v0, v53009; GFX90A-NEXT:    v_mov_b32_e32 v1, v23010; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3011; GFX90A-NEXT:    s_waitcnt vmcnt(0)3012; GFX90A-NEXT:    s_setpc_b64 s[30:31]3013;3014; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_2_2:3015; GFX942:       ; %bb.0:3016; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3017; GFX942-NEXT:    ;;#ASMSTART3018; GFX942-NEXT:    ; def v[0:3]3019; GFX942-NEXT:    ;;#ASMEND3020; GFX942-NEXT:    v_mov_b32_e32 v8, 03021; GFX942-NEXT:    ;;#ASMSTART3022; GFX942-NEXT:    ; def v[4:7]3023; GFX942-NEXT:    ;;#ASMEND3024; GFX942-NEXT:    v_mov_b32_e32 v1, v23025; GFX942-NEXT:    v_mov_b32_e32 v0, v53026; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3027; GFX942-NEXT:    s_waitcnt vmcnt(0)3028; GFX942-NEXT:    s_setpc_b64 s[30:31]3029  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3030  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3031  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 2, i32 2>3032  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163033  ret void3034}3035 3036define void @v_shuffle_v3p3_v4p3__6_2_2(ptr addrspace(1) inreg %ptr) {3037; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_2_2:3038; GFX900:       ; %bb.0:3039; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3040; GFX900-NEXT:    ;;#ASMSTART3041; GFX900-NEXT:    ; def v[2:5]3042; GFX900-NEXT:    ;;#ASMEND3043; GFX900-NEXT:    ;;#ASMSTART3044; GFX900-NEXT:    ; def v[0:3]3045; GFX900-NEXT:    ;;#ASMEND3046; GFX900-NEXT:    v_mov_b32_e32 v6, 03047; GFX900-NEXT:    v_mov_b32_e32 v3, v43048; GFX900-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]3049; GFX900-NEXT:    s_waitcnt vmcnt(0)3050; GFX900-NEXT:    s_setpc_b64 s[30:31]3051;3052; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_2_2:3053; GFX90A:       ; %bb.0:3054; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3055; GFX90A-NEXT:    ;;#ASMSTART3056; GFX90A-NEXT:    ; def v[2:5]3057; GFX90A-NEXT:    ;;#ASMEND3058; GFX90A-NEXT:    ;;#ASMSTART3059; GFX90A-NEXT:    ; def v[0:3]3060; GFX90A-NEXT:    ;;#ASMEND3061; GFX90A-NEXT:    v_mov_b32_e32 v6, 03062; GFX90A-NEXT:    v_mov_b32_e32 v3, v43063; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]3064; GFX90A-NEXT:    s_waitcnt vmcnt(0)3065; GFX90A-NEXT:    s_setpc_b64 s[30:31]3066;3067; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_2_2:3068; GFX942:       ; %bb.0:3069; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3070; GFX942-NEXT:    ;;#ASMSTART3071; GFX942-NEXT:    ; def v[2:5]3072; GFX942-NEXT:    ;;#ASMEND3073; GFX942-NEXT:    v_mov_b32_e32 v6, 03074; GFX942-NEXT:    ;;#ASMSTART3075; GFX942-NEXT:    ; def v[0:3]3076; GFX942-NEXT:    ;;#ASMEND3077; GFX942-NEXT:    s_nop 03078; GFX942-NEXT:    v_mov_b32_e32 v3, v43079; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]3080; GFX942-NEXT:    s_waitcnt vmcnt(0)3081; GFX942-NEXT:    s_setpc_b64 s[30:31]3082  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3083  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3084  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 2, i32 2>3085  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163086  ret void3087}3088 3089define void @v_shuffle_v3p3_v4p3__7_2_2(ptr addrspace(1) inreg %ptr) {3090; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_2:3091; GFX900:       ; %bb.0:3092; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3093; GFX900-NEXT:    ;;#ASMSTART3094; GFX900-NEXT:    ; def v[2:5]3095; GFX900-NEXT:    ;;#ASMEND3096; GFX900-NEXT:    v_mov_b32_e32 v6, 03097; GFX900-NEXT:    v_mov_b32_e32 v5, v43098; GFX900-NEXT:    ;;#ASMSTART3099; GFX900-NEXT:    ; def v[0:3]3100; GFX900-NEXT:    ;;#ASMEND3101; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]3102; GFX900-NEXT:    s_waitcnt vmcnt(0)3103; GFX900-NEXT:    s_setpc_b64 s[30:31]3104;3105; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_2:3106; GFX90A:       ; %bb.0:3107; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3108; GFX90A-NEXT:    ;;#ASMSTART3109; GFX90A-NEXT:    ; def v[0:3]3110; GFX90A-NEXT:    ;;#ASMEND3111; GFX90A-NEXT:    v_mov_b32_e32 v8, 03112; GFX90A-NEXT:    ;;#ASMSTART3113; GFX90A-NEXT:    ; def v[4:7]3114; GFX90A-NEXT:    ;;#ASMEND3115; GFX90A-NEXT:    v_mov_b32_e32 v0, v73116; GFX90A-NEXT:    v_mov_b32_e32 v1, v23117; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3118; GFX90A-NEXT:    s_waitcnt vmcnt(0)3119; GFX90A-NEXT:    s_setpc_b64 s[30:31]3120;3121; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_2:3122; GFX942:       ; %bb.0:3123; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3124; GFX942-NEXT:    ;;#ASMSTART3125; GFX942-NEXT:    ; def v[0:3]3126; GFX942-NEXT:    ;;#ASMEND3127; GFX942-NEXT:    v_mov_b32_e32 v8, 03128; GFX942-NEXT:    ;;#ASMSTART3129; GFX942-NEXT:    ; def v[4:7]3130; GFX942-NEXT:    ;;#ASMEND3131; GFX942-NEXT:    v_mov_b32_e32 v1, v23132; GFX942-NEXT:    v_mov_b32_e32 v0, v73133; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3134; GFX942-NEXT:    s_waitcnt vmcnt(0)3135; GFX942-NEXT:    s_setpc_b64 s[30:31]3136  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3137  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3138  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 2>3139  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163140  ret void3141}3142 3143define void @v_shuffle_v3p3_v4p3__7_u_2(ptr addrspace(1) inreg %ptr) {3144; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_2:3145; GFX900:       ; %bb.0:3146; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3147; GFX900-NEXT:    v_mov_b32_e32 v7, 03148; GFX900-NEXT:    ;;#ASMSTART3149; GFX900-NEXT:    ; def v[3:6]3150; GFX900-NEXT:    ;;#ASMEND3151; GFX900-NEXT:    ;;#ASMSTART3152; GFX900-NEXT:    ; def v[0:3]3153; GFX900-NEXT:    ;;#ASMEND3154; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3155; GFX900-NEXT:    s_waitcnt vmcnt(0)3156; GFX900-NEXT:    s_setpc_b64 s[30:31]3157;3158; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_2:3159; GFX90A:       ; %bb.0:3160; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3161; GFX90A-NEXT:    ;;#ASMSTART3162; GFX90A-NEXT:    ; def v[0:3]3163; GFX90A-NEXT:    ;;#ASMEND3164; GFX90A-NEXT:    v_mov_b32_e32 v8, 03165; GFX90A-NEXT:    ;;#ASMSTART3166; GFX90A-NEXT:    ; def v[4:7]3167; GFX90A-NEXT:    ;;#ASMEND3168; GFX90A-NEXT:    v_mov_b32_e32 v0, v73169; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3170; GFX90A-NEXT:    s_waitcnt vmcnt(0)3171; GFX90A-NEXT:    s_setpc_b64 s[30:31]3172;3173; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_2:3174; GFX942:       ; %bb.0:3175; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3176; GFX942-NEXT:    ;;#ASMSTART3177; GFX942-NEXT:    ; def v[0:3]3178; GFX942-NEXT:    ;;#ASMEND3179; GFX942-NEXT:    v_mov_b32_e32 v8, 03180; GFX942-NEXT:    ;;#ASMSTART3181; GFX942-NEXT:    ; def v[4:7]3182; GFX942-NEXT:    ;;#ASMEND3183; GFX942-NEXT:    s_nop 03184; GFX942-NEXT:    v_mov_b32_e32 v0, v73185; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3186; GFX942-NEXT:    s_waitcnt vmcnt(0)3187; GFX942-NEXT:    s_setpc_b64 s[30:31]3188  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3189  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3190  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>3191  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163192  ret void3193}3194 3195define void @v_shuffle_v3p3_v4p3__7_0_2(ptr addrspace(1) inreg %ptr) {3196; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_2:3197; GFX900:       ; %bb.0:3198; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3199; GFX900-NEXT:    ;;#ASMSTART3200; GFX900-NEXT:    ; def v[4:7]3201; GFX900-NEXT:    ;;#ASMEND3202; GFX900-NEXT:    v_mov_b32_e32 v8, 03203; GFX900-NEXT:    v_mov_b32_e32 v5, v63204; GFX900-NEXT:    ;;#ASMSTART3205; GFX900-NEXT:    ; def v[0:3]3206; GFX900-NEXT:    ;;#ASMEND3207; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]3208; GFX900-NEXT:    s_waitcnt vmcnt(0)3209; GFX900-NEXT:    s_setpc_b64 s[30:31]3210;3211; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_2:3212; GFX90A:       ; %bb.0:3213; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3214; GFX90A-NEXT:    ;;#ASMSTART3215; GFX90A-NEXT:    ; def v[4:7]3216; GFX90A-NEXT:    ;;#ASMEND3217; GFX90A-NEXT:    v_mov_b32_e32 v8, 03218; GFX90A-NEXT:    ;;#ASMSTART3219; GFX90A-NEXT:    ; def v[0:3]3220; GFX90A-NEXT:    ;;#ASMEND3221; GFX90A-NEXT:    v_mov_b32_e32 v4, v73222; GFX90A-NEXT:    v_mov_b32_e32 v5, v03223; GFX90A-NEXT:    v_mov_b32_e32 v6, v23224; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]3225; GFX90A-NEXT:    s_waitcnt vmcnt(0)3226; GFX90A-NEXT:    s_setpc_b64 s[30:31]3227;3228; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_2:3229; GFX942:       ; %bb.0:3230; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3231; GFX942-NEXT:    ;;#ASMSTART3232; GFX942-NEXT:    ; def v[4:7]3233; GFX942-NEXT:    ;;#ASMEND3234; GFX942-NEXT:    v_mov_b32_e32 v8, 03235; GFX942-NEXT:    ;;#ASMSTART3236; GFX942-NEXT:    ; def v[0:3]3237; GFX942-NEXT:    ;;#ASMEND3238; GFX942-NEXT:    v_mov_b32_e32 v4, v73239; GFX942-NEXT:    v_mov_b32_e32 v5, v03240; GFX942-NEXT:    v_mov_b32_e32 v6, v23241; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]3242; GFX942-NEXT:    s_waitcnt vmcnt(0)3243; GFX942-NEXT:    s_setpc_b64 s[30:31]3244  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3245  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3246  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 2>3247  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163248  ret void3249}3250 3251define void @v_shuffle_v3p3_v4p3__7_1_2(ptr addrspace(1) inreg %ptr) {3252; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_2:3253; GFX900:       ; %bb.0:3254; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3255; GFX900-NEXT:    v_mov_b32_e32 v7, 03256; GFX900-NEXT:    ;;#ASMSTART3257; GFX900-NEXT:    ; def v[3:6]3258; GFX900-NEXT:    ;;#ASMEND3259; GFX900-NEXT:    ;;#ASMSTART3260; GFX900-NEXT:    ; def v[0:3]3261; GFX900-NEXT:    ;;#ASMEND3262; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3263; GFX900-NEXT:    s_waitcnt vmcnt(0)3264; GFX900-NEXT:    s_setpc_b64 s[30:31]3265;3266; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_2:3267; GFX90A:       ; %bb.0:3268; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3269; GFX90A-NEXT:    ;;#ASMSTART3270; GFX90A-NEXT:    ; def v[0:3]3271; GFX90A-NEXT:    ;;#ASMEND3272; GFX90A-NEXT:    v_mov_b32_e32 v8, 03273; GFX90A-NEXT:    ;;#ASMSTART3274; GFX90A-NEXT:    ; def v[4:7]3275; GFX90A-NEXT:    ;;#ASMEND3276; GFX90A-NEXT:    v_mov_b32_e32 v0, v73277; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3278; GFX90A-NEXT:    s_waitcnt vmcnt(0)3279; GFX90A-NEXT:    s_setpc_b64 s[30:31]3280;3281; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_2:3282; GFX942:       ; %bb.0:3283; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3284; GFX942-NEXT:    ;;#ASMSTART3285; GFX942-NEXT:    ; def v[0:3]3286; GFX942-NEXT:    ;;#ASMEND3287; GFX942-NEXT:    v_mov_b32_e32 v8, 03288; GFX942-NEXT:    ;;#ASMSTART3289; GFX942-NEXT:    ; def v[4:7]3290; GFX942-NEXT:    ;;#ASMEND3291; GFX942-NEXT:    s_nop 03292; GFX942-NEXT:    v_mov_b32_e32 v0, v73293; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3294; GFX942-NEXT:    s_waitcnt vmcnt(0)3295; GFX942-NEXT:    s_setpc_b64 s[30:31]3296  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3297  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3298  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 2>3299  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163300  ret void3301}3302 3303define void @v_shuffle_v3p3_v4p3__7_3_2(ptr addrspace(1) inreg %ptr) {3304; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_2:3305; GFX900:       ; %bb.0:3306; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3307; GFX900-NEXT:    ;;#ASMSTART3308; GFX900-NEXT:    ; def v[3:6]3309; GFX900-NEXT:    ;;#ASMEND3310; GFX900-NEXT:    v_mov_b32_e32 v7, 03311; GFX900-NEXT:    v_mov_b32_e32 v4, v63312; GFX900-NEXT:    ;;#ASMSTART3313; GFX900-NEXT:    ; def v[0:3]3314; GFX900-NEXT:    ;;#ASMEND3315; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3316; GFX900-NEXT:    s_waitcnt vmcnt(0)3317; GFX900-NEXT:    s_setpc_b64 s[30:31]3318;3319; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_2:3320; GFX90A:       ; %bb.0:3321; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3322; GFX90A-NEXT:    ;;#ASMSTART3323; GFX90A-NEXT:    ; def v[0:3]3324; GFX90A-NEXT:    ;;#ASMEND3325; GFX90A-NEXT:    v_mov_b32_e32 v8, 03326; GFX90A-NEXT:    ;;#ASMSTART3327; GFX90A-NEXT:    ; def v[4:7]3328; GFX90A-NEXT:    ;;#ASMEND3329; GFX90A-NEXT:    v_mov_b32_e32 v0, v73330; GFX90A-NEXT:    v_mov_b32_e32 v1, v33331; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3332; GFX90A-NEXT:    s_waitcnt vmcnt(0)3333; GFX90A-NEXT:    s_setpc_b64 s[30:31]3334;3335; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_2:3336; GFX942:       ; %bb.0:3337; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3338; GFX942-NEXT:    ;;#ASMSTART3339; GFX942-NEXT:    ; def v[0:3]3340; GFX942-NEXT:    ;;#ASMEND3341; GFX942-NEXT:    v_mov_b32_e32 v8, 03342; GFX942-NEXT:    ;;#ASMSTART3343; GFX942-NEXT:    ; def v[4:7]3344; GFX942-NEXT:    ;;#ASMEND3345; GFX942-NEXT:    v_mov_b32_e32 v1, v33346; GFX942-NEXT:    v_mov_b32_e32 v0, v73347; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3348; GFX942-NEXT:    s_waitcnt vmcnt(0)3349; GFX942-NEXT:    s_setpc_b64 s[30:31]3350  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3351  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3352  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 2>3353  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163354  ret void3355}3356 3357define void @v_shuffle_v3p3_v4p3__7_4_2(ptr addrspace(1) inreg %ptr) {3358; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_2:3359; GFX900:       ; %bb.0:3360; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3361; GFX900-NEXT:    ;;#ASMSTART3362; GFX900-NEXT:    ; def v[3:6]3363; GFX900-NEXT:    ;;#ASMEND3364; GFX900-NEXT:    v_mov_b32_e32 v7, 03365; GFX900-NEXT:    ;;#ASMSTART3366; GFX900-NEXT:    ; def v[0:3]3367; GFX900-NEXT:    ;;#ASMEND3368; GFX900-NEXT:    v_mov_b32_e32 v4, v03369; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3370; GFX900-NEXT:    s_waitcnt vmcnt(0)3371; GFX900-NEXT:    s_setpc_b64 s[30:31]3372;3373; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_2:3374; GFX90A:       ; %bb.0:3375; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3376; GFX90A-NEXT:    ;;#ASMSTART3377; GFX90A-NEXT:    ; def v[0:3]3378; GFX90A-NEXT:    ;;#ASMEND3379; GFX90A-NEXT:    v_mov_b32_e32 v8, 03380; GFX90A-NEXT:    ;;#ASMSTART3381; GFX90A-NEXT:    ; def v[4:7]3382; GFX90A-NEXT:    ;;#ASMEND3383; GFX90A-NEXT:    v_mov_b32_e32 v0, v73384; GFX90A-NEXT:    v_mov_b32_e32 v1, v43385; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3386; GFX90A-NEXT:    s_waitcnt vmcnt(0)3387; GFX90A-NEXT:    s_setpc_b64 s[30:31]3388;3389; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_2:3390; GFX942:       ; %bb.0:3391; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3392; GFX942-NEXT:    ;;#ASMSTART3393; GFX942-NEXT:    ; def v[0:3]3394; GFX942-NEXT:    ;;#ASMEND3395; GFX942-NEXT:    v_mov_b32_e32 v8, 03396; GFX942-NEXT:    ;;#ASMSTART3397; GFX942-NEXT:    ; def v[4:7]3398; GFX942-NEXT:    ;;#ASMEND3399; GFX942-NEXT:    s_nop 03400; GFX942-NEXT:    v_mov_b32_e32 v0, v73401; GFX942-NEXT:    v_mov_b32_e32 v1, v43402; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3403; GFX942-NEXT:    s_waitcnt vmcnt(0)3404; GFX942-NEXT:    s_setpc_b64 s[30:31]3405  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3406  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3407  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 2>3408  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163409  ret void3410}3411 3412define void @v_shuffle_v3p3_v4p3__7_5_2(ptr addrspace(1) inreg %ptr) {3413; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_2:3414; GFX900:       ; %bb.0:3415; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3416; GFX900-NEXT:    ;;#ASMSTART3417; GFX900-NEXT:    ; def v[3:6]3418; GFX900-NEXT:    ;;#ASMEND3419; GFX900-NEXT:    v_mov_b32_e32 v7, 03420; GFX900-NEXT:    ;;#ASMSTART3421; GFX900-NEXT:    ; def v[0:3]3422; GFX900-NEXT:    ;;#ASMEND3423; GFX900-NEXT:    v_mov_b32_e32 v4, v13424; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3425; GFX900-NEXT:    s_waitcnt vmcnt(0)3426; GFX900-NEXT:    s_setpc_b64 s[30:31]3427;3428; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_2:3429; GFX90A:       ; %bb.0:3430; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3431; GFX90A-NEXT:    ;;#ASMSTART3432; GFX90A-NEXT:    ; def v[4:7]3433; GFX90A-NEXT:    ;;#ASMEND3434; GFX90A-NEXT:    v_mov_b32_e32 v8, 03435; GFX90A-NEXT:    ;;#ASMSTART3436; GFX90A-NEXT:    ; def v[0:3]3437; GFX90A-NEXT:    ;;#ASMEND3438; GFX90A-NEXT:    v_mov_b32_e32 v4, v73439; GFX90A-NEXT:    v_mov_b32_e32 v6, v23440; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]3441; GFX90A-NEXT:    s_waitcnt vmcnt(0)3442; GFX90A-NEXT:    s_setpc_b64 s[30:31]3443;3444; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_2:3445; GFX942:       ; %bb.0:3446; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3447; GFX942-NEXT:    ;;#ASMSTART3448; GFX942-NEXT:    ; def v[4:7]3449; GFX942-NEXT:    ;;#ASMEND3450; GFX942-NEXT:    v_mov_b32_e32 v8, 03451; GFX942-NEXT:    ;;#ASMSTART3452; GFX942-NEXT:    ; def v[0:3]3453; GFX942-NEXT:    ;;#ASMEND3454; GFX942-NEXT:    v_mov_b32_e32 v4, v73455; GFX942-NEXT:    v_mov_b32_e32 v6, v23456; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]3457; GFX942-NEXT:    s_waitcnt vmcnt(0)3458; GFX942-NEXT:    s_setpc_b64 s[30:31]3459  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3460  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3461  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 2>3462  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163463  ret void3464}3465 3466define void @v_shuffle_v3p3_v4p3__7_6_2(ptr addrspace(1) inreg %ptr) {3467; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_2:3468; GFX900:       ; %bb.0:3469; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3470; GFX900-NEXT:    ;;#ASMSTART3471; GFX900-NEXT:    ; def v[3:6]3472; GFX900-NEXT:    ;;#ASMEND3473; GFX900-NEXT:    v_mov_b32_e32 v7, 03474; GFX900-NEXT:    ;;#ASMSTART3475; GFX900-NEXT:    ; def v[0:3]3476; GFX900-NEXT:    ;;#ASMEND3477; GFX900-NEXT:    v_mov_b32_e32 v4, v23478; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]3479; GFX900-NEXT:    s_waitcnt vmcnt(0)3480; GFX900-NEXT:    s_setpc_b64 s[30:31]3481;3482; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_2:3483; GFX90A:       ; %bb.0:3484; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3485; GFX90A-NEXT:    ;;#ASMSTART3486; GFX90A-NEXT:    ; def v[0:3]3487; GFX90A-NEXT:    ;;#ASMEND3488; GFX90A-NEXT:    v_mov_b32_e32 v8, 03489; GFX90A-NEXT:    ;;#ASMSTART3490; GFX90A-NEXT:    ; def v[4:7]3491; GFX90A-NEXT:    ;;#ASMEND3492; GFX90A-NEXT:    v_mov_b32_e32 v0, v73493; GFX90A-NEXT:    v_mov_b32_e32 v1, v63494; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3495; GFX90A-NEXT:    s_waitcnt vmcnt(0)3496; GFX90A-NEXT:    s_setpc_b64 s[30:31]3497;3498; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_2:3499; GFX942:       ; %bb.0:3500; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3501; GFX942-NEXT:    ;;#ASMSTART3502; GFX942-NEXT:    ; def v[0:3]3503; GFX942-NEXT:    ;;#ASMEND3504; GFX942-NEXT:    v_mov_b32_e32 v8, 03505; GFX942-NEXT:    ;;#ASMSTART3506; GFX942-NEXT:    ; def v[4:7]3507; GFX942-NEXT:    ;;#ASMEND3508; GFX942-NEXT:    s_nop 03509; GFX942-NEXT:    v_mov_b32_e32 v0, v73510; GFX942-NEXT:    v_mov_b32_e32 v1, v63511; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3512; GFX942-NEXT:    s_waitcnt vmcnt(0)3513; GFX942-NEXT:    s_setpc_b64 s[30:31]3514  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3515  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3516  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 2>3517  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163518  ret void3519}3520 3521define void @v_shuffle_v3p3_v4p3__u_3_3(ptr addrspace(1) inreg %ptr) {3522; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_3_3:3523; GFX900:       ; %bb.0:3524; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3525; GFX900-NEXT:    v_mov_b32_e32 v5, 03526; GFX900-NEXT:    ;;#ASMSTART3527; GFX900-NEXT:    ; def v[0:3]3528; GFX900-NEXT:    ;;#ASMEND3529; GFX900-NEXT:    v_mov_b32_e32 v4, v33530; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3531; GFX900-NEXT:    s_waitcnt vmcnt(0)3532; GFX900-NEXT:    s_setpc_b64 s[30:31]3533;3534; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_3_3:3535; GFX90A:       ; %bb.0:3536; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3537; GFX90A-NEXT:    v_mov_b32_e32 v5, 03538; GFX90A-NEXT:    ;;#ASMSTART3539; GFX90A-NEXT:    ; def v[0:3]3540; GFX90A-NEXT:    ;;#ASMEND3541; GFX90A-NEXT:    v_mov_b32_e32 v4, v33542; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3543; GFX90A-NEXT:    s_waitcnt vmcnt(0)3544; GFX90A-NEXT:    s_setpc_b64 s[30:31]3545;3546; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_3_3:3547; GFX942:       ; %bb.0:3548; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3549; GFX942-NEXT:    v_mov_b32_e32 v5, 03550; GFX942-NEXT:    ;;#ASMSTART3551; GFX942-NEXT:    ; def v[0:3]3552; GFX942-NEXT:    ;;#ASMEND3553; GFX942-NEXT:    s_nop 03554; GFX942-NEXT:    v_mov_b32_e32 v4, v33555; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]3556; GFX942-NEXT:    s_waitcnt vmcnt(0)3557; GFX942-NEXT:    s_setpc_b64 s[30:31]3558  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3559  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 3, i32 3>3560  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163561  ret void3562}3563 3564define void @v_shuffle_v3p3_v4p3__0_3_3(ptr addrspace(1) inreg %ptr) {3565; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_3_3:3566; GFX900:       ; %bb.0:3567; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3568; GFX900-NEXT:    ;;#ASMSTART3569; GFX900-NEXT:    ; def v[0:3]3570; GFX900-NEXT:    ;;#ASMEND3571; GFX900-NEXT:    v_mov_b32_e32 v4, 03572; GFX900-NEXT:    v_mov_b32_e32 v1, v33573; GFX900-NEXT:    v_mov_b32_e32 v2, v33574; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]3575; GFX900-NEXT:    s_waitcnt vmcnt(0)3576; GFX900-NEXT:    s_setpc_b64 s[30:31]3577;3578; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_3_3:3579; GFX90A:       ; %bb.0:3580; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3581; GFX90A-NEXT:    ;;#ASMSTART3582; GFX90A-NEXT:    ; def v[0:3]3583; GFX90A-NEXT:    ;;#ASMEND3584; GFX90A-NEXT:    v_mov_b32_e32 v4, 03585; GFX90A-NEXT:    v_mov_b32_e32 v1, v33586; GFX90A-NEXT:    v_mov_b32_e32 v2, v33587; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]3588; GFX90A-NEXT:    s_waitcnt vmcnt(0)3589; GFX90A-NEXT:    s_setpc_b64 s[30:31]3590;3591; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_3_3:3592; GFX942:       ; %bb.0:3593; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3594; GFX942-NEXT:    ;;#ASMSTART3595; GFX942-NEXT:    ; def v[0:3]3596; GFX942-NEXT:    ;;#ASMEND3597; GFX942-NEXT:    v_mov_b32_e32 v4, 03598; GFX942-NEXT:    v_mov_b32_e32 v1, v33599; GFX942-NEXT:    v_mov_b32_e32 v2, v33600; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]3601; GFX942-NEXT:    s_waitcnt vmcnt(0)3602; GFX942-NEXT:    s_setpc_b64 s[30:31]3603  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3604  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 3, i32 3>3605  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163606  ret void3607}3608 3609define void @v_shuffle_v3p3_v4p3__1_3_3(ptr addrspace(1) inreg %ptr) {3610; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_3_3:3611; GFX900:       ; %bb.0:3612; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3613; GFX900-NEXT:    ;;#ASMSTART3614; GFX900-NEXT:    ; def v[0:3]3615; GFX900-NEXT:    ;;#ASMEND3616; GFX900-NEXT:    v_mov_b32_e32 v4, 03617; GFX900-NEXT:    v_mov_b32_e32 v2, v33618; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]3619; GFX900-NEXT:    s_waitcnt vmcnt(0)3620; GFX900-NEXT:    s_setpc_b64 s[30:31]3621;3622; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_3_3:3623; GFX90A:       ; %bb.0:3624; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3625; GFX90A-NEXT:    ;;#ASMSTART3626; GFX90A-NEXT:    ; def v[0:3]3627; GFX90A-NEXT:    ;;#ASMEND3628; GFX90A-NEXT:    v_mov_b32_e32 v5, 03629; GFX90A-NEXT:    v_mov_b32_e32 v2, v13630; GFX90A-NEXT:    v_mov_b32_e32 v4, v33631; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3632; GFX90A-NEXT:    s_waitcnt vmcnt(0)3633; GFX90A-NEXT:    s_setpc_b64 s[30:31]3634;3635; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_3_3:3636; GFX942:       ; %bb.0:3637; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3638; GFX942-NEXT:    ;;#ASMSTART3639; GFX942-NEXT:    ; def v[0:3]3640; GFX942-NEXT:    ;;#ASMEND3641; GFX942-NEXT:    v_mov_b32_e32 v5, 03642; GFX942-NEXT:    v_mov_b32_e32 v2, v13643; GFX942-NEXT:    v_mov_b32_e32 v4, v33644; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]3645; GFX942-NEXT:    s_waitcnt vmcnt(0)3646; GFX942-NEXT:    s_setpc_b64 s[30:31]3647  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3648  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 3, i32 3>3649  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163650  ret void3651}3652 3653define void @v_shuffle_v3p3_v4p3__2_3_3(ptr addrspace(1) inreg %ptr) {3654; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_3_3:3655; GFX900:       ; %bb.0:3656; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3657; GFX900-NEXT:    v_mov_b32_e32 v5, 03658; GFX900-NEXT:    ;;#ASMSTART3659; GFX900-NEXT:    ; def v[0:3]3660; GFX900-NEXT:    ;;#ASMEND3661; GFX900-NEXT:    v_mov_b32_e32 v4, v33662; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3663; GFX900-NEXT:    s_waitcnt vmcnt(0)3664; GFX900-NEXT:    s_setpc_b64 s[30:31]3665;3666; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_3_3:3667; GFX90A:       ; %bb.0:3668; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3669; GFX90A-NEXT:    v_mov_b32_e32 v5, 03670; GFX90A-NEXT:    ;;#ASMSTART3671; GFX90A-NEXT:    ; def v[0:3]3672; GFX90A-NEXT:    ;;#ASMEND3673; GFX90A-NEXT:    v_mov_b32_e32 v4, v33674; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3675; GFX90A-NEXT:    s_waitcnt vmcnt(0)3676; GFX90A-NEXT:    s_setpc_b64 s[30:31]3677;3678; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_3_3:3679; GFX942:       ; %bb.0:3680; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3681; GFX942-NEXT:    v_mov_b32_e32 v5, 03682; GFX942-NEXT:    ;;#ASMSTART3683; GFX942-NEXT:    ; def v[0:3]3684; GFX942-NEXT:    ;;#ASMEND3685; GFX942-NEXT:    s_nop 03686; GFX942-NEXT:    v_mov_b32_e32 v4, v33687; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]3688; GFX942-NEXT:    s_waitcnt vmcnt(0)3689; GFX942-NEXT:    s_setpc_b64 s[30:31]3690  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3691  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 3, i32 3>3692  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163693  ret void3694}3695 3696define void @v_shuffle_v3p3_v4p3__3_3_3(ptr addrspace(1) inreg %ptr) {3697; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_3_3:3698; GFX900:       ; %bb.0:3699; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3700; GFX900-NEXT:    v_mov_b32_e32 v6, 03701; GFX900-NEXT:    ;;#ASMSTART3702; GFX900-NEXT:    ; def v[0:3]3703; GFX900-NEXT:    ;;#ASMEND3704; GFX900-NEXT:    v_mov_b32_e32 v4, v33705; GFX900-NEXT:    v_mov_b32_e32 v5, v33706; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]3707; GFX900-NEXT:    s_waitcnt vmcnt(0)3708; GFX900-NEXT:    s_setpc_b64 s[30:31]3709;3710; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_3_3:3711; GFX90A:       ; %bb.0:3712; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3713; GFX90A-NEXT:    ;;#ASMSTART3714; GFX90A-NEXT:    ; def v[0:3]3715; GFX90A-NEXT:    ;;#ASMEND3716; GFX90A-NEXT:    v_mov_b32_e32 v5, 03717; GFX90A-NEXT:    v_mov_b32_e32 v2, v33718; GFX90A-NEXT:    v_mov_b32_e32 v4, v33719; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3720; GFX90A-NEXT:    s_waitcnt vmcnt(0)3721; GFX90A-NEXT:    s_setpc_b64 s[30:31]3722;3723; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_3_3:3724; GFX942:       ; %bb.0:3725; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3726; GFX942-NEXT:    ;;#ASMSTART3727; GFX942-NEXT:    ; def v[0:3]3728; GFX942-NEXT:    ;;#ASMEND3729; GFX942-NEXT:    v_mov_b32_e32 v5, 03730; GFX942-NEXT:    v_mov_b32_e32 v2, v33731; GFX942-NEXT:    v_mov_b32_e32 v4, v33732; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]3733; GFX942-NEXT:    s_waitcnt vmcnt(0)3734; GFX942-NEXT:    s_setpc_b64 s[30:31]3735  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3736  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 3, i32 3>3737  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163738  ret void3739}3740 3741define void @v_shuffle_v3p3_v4p3__4_3_3(ptr addrspace(1) inreg %ptr) {3742; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_3_3:3743; GFX900:       ; %bb.0:3744; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3745; GFX900-NEXT:    v_mov_b32_e32 v5, 03746; GFX900-NEXT:    ;;#ASMSTART3747; GFX900-NEXT:    ; def v[0:3]3748; GFX900-NEXT:    ;;#ASMEND3749; GFX900-NEXT:    v_mov_b32_e32 v4, v33750; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3751; GFX900-NEXT:    s_waitcnt vmcnt(0)3752; GFX900-NEXT:    s_setpc_b64 s[30:31]3753;3754; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_3_3:3755; GFX90A:       ; %bb.0:3756; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3757; GFX90A-NEXT:    v_mov_b32_e32 v5, 03758; GFX90A-NEXT:    ;;#ASMSTART3759; GFX90A-NEXT:    ; def v[0:3]3760; GFX90A-NEXT:    ;;#ASMEND3761; GFX90A-NEXT:    v_mov_b32_e32 v4, v33762; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3763; GFX90A-NEXT:    s_waitcnt vmcnt(0)3764; GFX90A-NEXT:    s_setpc_b64 s[30:31]3765;3766; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_3_3:3767; GFX942:       ; %bb.0:3768; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3769; GFX942-NEXT:    v_mov_b32_e32 v5, 03770; GFX942-NEXT:    ;;#ASMSTART3771; GFX942-NEXT:    ; def v[0:3]3772; GFX942-NEXT:    ;;#ASMEND3773; GFX942-NEXT:    s_nop 03774; GFX942-NEXT:    v_mov_b32_e32 v4, v33775; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]3776; GFX942-NEXT:    s_waitcnt vmcnt(0)3777; GFX942-NEXT:    s_setpc_b64 s[30:31]3778  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3779  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 3, i32 3>3780  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163781  ret void3782}3783 3784define void @v_shuffle_v3p3_v4p3__5_3_3(ptr addrspace(1) inreg %ptr) {3785; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_3_3:3786; GFX900:       ; %bb.0:3787; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3788; GFX900-NEXT:    ;;#ASMSTART3789; GFX900-NEXT:    ; def v[4:7]3790; GFX900-NEXT:    ;;#ASMEND3791; GFX900-NEXT:    v_mov_b32_e32 v8, 03792; GFX900-NEXT:    ;;#ASMSTART3793; GFX900-NEXT:    ; def v[0:3]3794; GFX900-NEXT:    ;;#ASMEND3795; GFX900-NEXT:    v_mov_b32_e32 v6, v33796; GFX900-NEXT:    v_mov_b32_e32 v7, v33797; GFX900-NEXT:    global_store_dwordx3 v8, v[5:7], s[16:17]3798; GFX900-NEXT:    s_waitcnt vmcnt(0)3799; GFX900-NEXT:    s_setpc_b64 s[30:31]3800;3801; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_3_3:3802; GFX90A:       ; %bb.0:3803; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3804; GFX90A-NEXT:    ;;#ASMSTART3805; GFX90A-NEXT:    ; def v[0:3]3806; GFX90A-NEXT:    ;;#ASMEND3807; GFX90A-NEXT:    ;;#ASMSTART3808; GFX90A-NEXT:    ; def v[4:7]3809; GFX90A-NEXT:    ;;#ASMEND3810; GFX90A-NEXT:    v_mov_b32_e32 v8, 03811; GFX90A-NEXT:    v_mov_b32_e32 v2, v53812; GFX90A-NEXT:    v_mov_b32_e32 v4, v33813; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]3814; GFX90A-NEXT:    s_waitcnt vmcnt(0)3815; GFX90A-NEXT:    s_setpc_b64 s[30:31]3816;3817; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_3_3:3818; GFX942:       ; %bb.0:3819; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3820; GFX942-NEXT:    ;;#ASMSTART3821; GFX942-NEXT:    ; def v[0:3]3822; GFX942-NEXT:    ;;#ASMEND3823; GFX942-NEXT:    ;;#ASMSTART3824; GFX942-NEXT:    ; def v[4:7]3825; GFX942-NEXT:    ;;#ASMEND3826; GFX942-NEXT:    v_mov_b32_e32 v8, 03827; GFX942-NEXT:    v_mov_b32_e32 v2, v53828; GFX942-NEXT:    v_mov_b32_e32 v4, v33829; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]3830; GFX942-NEXT:    s_waitcnt vmcnt(0)3831; GFX942-NEXT:    s_setpc_b64 s[30:31]3832  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3833  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3834  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 3, i32 3>3835  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163836  ret void3837}3838 3839define void @v_shuffle_v3p3_v4p3__6_3_3(ptr addrspace(1) inreg %ptr) {3840; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_3_3:3841; GFX900:       ; %bb.0:3842; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3843; GFX900-NEXT:    ;;#ASMSTART3844; GFX900-NEXT:    ; def v[1:4]3845; GFX900-NEXT:    ;;#ASMEND3846; GFX900-NEXT:    ;;#ASMSTART3847; GFX900-NEXT:    ; def v[0:3]3848; GFX900-NEXT:    ;;#ASMEND3849; GFX900-NEXT:    v_mov_b32_e32 v5, 03850; GFX900-NEXT:    v_mov_b32_e32 v3, v43851; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]3852; GFX900-NEXT:    s_waitcnt vmcnt(0)3853; GFX900-NEXT:    s_setpc_b64 s[30:31]3854;3855; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_3_3:3856; GFX90A:       ; %bb.0:3857; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3858; GFX90A-NEXT:    ;;#ASMSTART3859; GFX90A-NEXT:    ; def v[2:5]3860; GFX90A-NEXT:    ;;#ASMEND3861; GFX90A-NEXT:    ;;#ASMSTART3862; GFX90A-NEXT:    ; def v[0:3]3863; GFX90A-NEXT:    ;;#ASMEND3864; GFX90A-NEXT:    v_mov_b32_e32 v6, 03865; GFX90A-NEXT:    v_mov_b32_e32 v3, v53866; GFX90A-NEXT:    v_mov_b32_e32 v4, v53867; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]3868; GFX90A-NEXT:    s_waitcnt vmcnt(0)3869; GFX90A-NEXT:    s_setpc_b64 s[30:31]3870;3871; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_3_3:3872; GFX942:       ; %bb.0:3873; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3874; GFX942-NEXT:    ;;#ASMSTART3875; GFX942-NEXT:    ; def v[2:5]3876; GFX942-NEXT:    ;;#ASMEND3877; GFX942-NEXT:    v_mov_b32_e32 v6, 03878; GFX942-NEXT:    ;;#ASMSTART3879; GFX942-NEXT:    ; def v[0:3]3880; GFX942-NEXT:    ;;#ASMEND3881; GFX942-NEXT:    v_mov_b32_e32 v4, v53882; GFX942-NEXT:    v_mov_b32_e32 v3, v53883; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]3884; GFX942-NEXT:    s_waitcnt vmcnt(0)3885; GFX942-NEXT:    s_setpc_b64 s[30:31]3886  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3887  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3888  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 3, i32 3>3889  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163890  ret void3891}3892 3893define void @v_shuffle_v3p3_v4p3__7_3_3(ptr addrspace(1) inreg %ptr) {3894; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_3:3895; GFX900:       ; %bb.0:3896; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3897; GFX900-NEXT:    v_mov_b32_e32 v6, 03898; GFX900-NEXT:    ;;#ASMSTART3899; GFX900-NEXT:    ; def v[1:4]3900; GFX900-NEXT:    ;;#ASMEND3901; GFX900-NEXT:    v_mov_b32_e32 v5, v43902; GFX900-NEXT:    ;;#ASMSTART3903; GFX900-NEXT:    ; def v[0:3]3904; GFX900-NEXT:    ;;#ASMEND3905; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]3906; GFX900-NEXT:    s_waitcnt vmcnt(0)3907; GFX900-NEXT:    s_setpc_b64 s[30:31]3908;3909; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_3:3910; GFX90A:       ; %bb.0:3911; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3912; GFX90A-NEXT:    ;;#ASMSTART3913; GFX90A-NEXT:    ; def v[0:3]3914; GFX90A-NEXT:    ;;#ASMEND3915; GFX90A-NEXT:    ;;#ASMSTART3916; GFX90A-NEXT:    ; def v[4:7]3917; GFX90A-NEXT:    ;;#ASMEND3918; GFX90A-NEXT:    v_mov_b32_e32 v8, 03919; GFX90A-NEXT:    v_mov_b32_e32 v2, v73920; GFX90A-NEXT:    v_mov_b32_e32 v4, v33921; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]3922; GFX90A-NEXT:    s_waitcnt vmcnt(0)3923; GFX90A-NEXT:    s_setpc_b64 s[30:31]3924;3925; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_3:3926; GFX942:       ; %bb.0:3927; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3928; GFX942-NEXT:    ;;#ASMSTART3929; GFX942-NEXT:    ; def v[0:3]3930; GFX942-NEXT:    ;;#ASMEND3931; GFX942-NEXT:    ;;#ASMSTART3932; GFX942-NEXT:    ; def v[4:7]3933; GFX942-NEXT:    ;;#ASMEND3934; GFX942-NEXT:    v_mov_b32_e32 v8, 03935; GFX942-NEXT:    v_mov_b32_e32 v2, v73936; GFX942-NEXT:    v_mov_b32_e32 v4, v33937; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]3938; GFX942-NEXT:    s_waitcnt vmcnt(0)3939; GFX942-NEXT:    s_setpc_b64 s[30:31]3940  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3941  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3942  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 3>3943  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163944  ret void3945}3946 3947define void @v_shuffle_v3p3_v4p3__7_u_3(ptr addrspace(1) inreg %ptr) {3948; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_3:3949; GFX900:       ; %bb.0:3950; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3951; GFX900-NEXT:    v_mov_b32_e32 v6, 03952; GFX900-NEXT:    ;;#ASMSTART3953; GFX900-NEXT:    ; def v[2:5]3954; GFX900-NEXT:    ;;#ASMEND3955; GFX900-NEXT:    ;;#ASMSTART3956; GFX900-NEXT:    ; def v[0:3]3957; GFX900-NEXT:    ;;#ASMEND3958; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]3959; GFX900-NEXT:    s_waitcnt vmcnt(0)3960; GFX900-NEXT:    s_setpc_b64 s[30:31]3961;3962; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_3:3963; GFX90A:       ; %bb.0:3964; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3965; GFX90A-NEXT:    ;;#ASMSTART3966; GFX90A-NEXT:    ; def v[0:3]3967; GFX90A-NEXT:    ;;#ASMEND3968; GFX90A-NEXT:    v_mov_b32_e32 v8, 03969; GFX90A-NEXT:    ;;#ASMSTART3970; GFX90A-NEXT:    ; def v[4:7]3971; GFX90A-NEXT:    ;;#ASMEND3972; GFX90A-NEXT:    v_mov_b32_e32 v0, v73973; GFX90A-NEXT:    v_mov_b32_e32 v2, v33974; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]3975; GFX90A-NEXT:    s_waitcnt vmcnt(0)3976; GFX90A-NEXT:    s_setpc_b64 s[30:31]3977;3978; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_3:3979; GFX942:       ; %bb.0:3980; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3981; GFX942-NEXT:    ;;#ASMSTART3982; GFX942-NEXT:    ; def v[0:3]3983; GFX942-NEXT:    ;;#ASMEND3984; GFX942-NEXT:    v_mov_b32_e32 v8, 03985; GFX942-NEXT:    ;;#ASMSTART3986; GFX942-NEXT:    ; def v[4:7]3987; GFX942-NEXT:    ;;#ASMEND3988; GFX942-NEXT:    v_mov_b32_e32 v2, v33989; GFX942-NEXT:    v_mov_b32_e32 v0, v73990; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]3991; GFX942-NEXT:    s_waitcnt vmcnt(0)3992; GFX942-NEXT:    s_setpc_b64 s[30:31]3993  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3994  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()3995  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>3996  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 163997  ret void3998}3999 4000define void @v_shuffle_v3p3_v4p3__7_0_3(ptr addrspace(1) inreg %ptr) {4001; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_3:4002; GFX900:       ; %bb.0:4003; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4004; GFX900-NEXT:    ;;#ASMSTART4005; GFX900-NEXT:    ; def v[4:7]4006; GFX900-NEXT:    ;;#ASMEND4007; GFX900-NEXT:    v_mov_b32_e32 v8, 04008; GFX900-NEXT:    v_mov_b32_e32 v5, v74009; GFX900-NEXT:    ;;#ASMSTART4010; GFX900-NEXT:    ; def v[0:3]4011; GFX900-NEXT:    ;;#ASMEND4012; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]4013; GFX900-NEXT:    s_waitcnt vmcnt(0)4014; GFX900-NEXT:    s_setpc_b64 s[30:31]4015;4016; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_3:4017; GFX90A:       ; %bb.0:4018; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4019; GFX90A-NEXT:    ;;#ASMSTART4020; GFX90A-NEXT:    ; def v[4:7]4021; GFX90A-NEXT:    ;;#ASMEND4022; GFX90A-NEXT:    v_mov_b32_e32 v8, 04023; GFX90A-NEXT:    ;;#ASMSTART4024; GFX90A-NEXT:    ; def v[0:3]4025; GFX90A-NEXT:    ;;#ASMEND4026; GFX90A-NEXT:    v_mov_b32_e32 v4, v74027; GFX90A-NEXT:    v_mov_b32_e32 v5, v04028; GFX90A-NEXT:    v_mov_b32_e32 v6, v34029; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]4030; GFX90A-NEXT:    s_waitcnt vmcnt(0)4031; GFX90A-NEXT:    s_setpc_b64 s[30:31]4032;4033; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_3:4034; GFX942:       ; %bb.0:4035; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4036; GFX942-NEXT:    ;;#ASMSTART4037; GFX942-NEXT:    ; def v[4:7]4038; GFX942-NEXT:    ;;#ASMEND4039; GFX942-NEXT:    v_mov_b32_e32 v8, 04040; GFX942-NEXT:    ;;#ASMSTART4041; GFX942-NEXT:    ; def v[0:3]4042; GFX942-NEXT:    ;;#ASMEND4043; GFX942-NEXT:    v_mov_b32_e32 v4, v74044; GFX942-NEXT:    v_mov_b32_e32 v5, v04045; GFX942-NEXT:    v_mov_b32_e32 v6, v34046; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]4047; GFX942-NEXT:    s_waitcnt vmcnt(0)4048; GFX942-NEXT:    s_setpc_b64 s[30:31]4049  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4050  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4051  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 3>4052  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164053  ret void4054}4055 4056define void @v_shuffle_v3p3_v4p3__7_1_3(ptr addrspace(1) inreg %ptr) {4057; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_3:4058; GFX900:       ; %bb.0:4059; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4060; GFX900-NEXT:    ;;#ASMSTART4061; GFX900-NEXT:    ; def v[3:6]4062; GFX900-NEXT:    ;;#ASMEND4063; GFX900-NEXT:    v_mov_b32_e32 v7, 04064; GFX900-NEXT:    v_mov_b32_e32 v5, v64065; GFX900-NEXT:    ;;#ASMSTART4066; GFX900-NEXT:    ; def v[0:3]4067; GFX900-NEXT:    ;;#ASMEND4068; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]4069; GFX900-NEXT:    s_waitcnt vmcnt(0)4070; GFX900-NEXT:    s_setpc_b64 s[30:31]4071;4072; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_3:4073; GFX90A:       ; %bb.0:4074; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4075; GFX90A-NEXT:    ;;#ASMSTART4076; GFX90A-NEXT:    ; def v[0:3]4077; GFX90A-NEXT:    ;;#ASMEND4078; GFX90A-NEXT:    v_mov_b32_e32 v8, 04079; GFX90A-NEXT:    ;;#ASMSTART4080; GFX90A-NEXT:    ; def v[4:7]4081; GFX90A-NEXT:    ;;#ASMEND4082; GFX90A-NEXT:    v_mov_b32_e32 v0, v74083; GFX90A-NEXT:    v_mov_b32_e32 v2, v34084; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]4085; GFX90A-NEXT:    s_waitcnt vmcnt(0)4086; GFX90A-NEXT:    s_setpc_b64 s[30:31]4087;4088; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_3:4089; GFX942:       ; %bb.0:4090; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4091; GFX942-NEXT:    ;;#ASMSTART4092; GFX942-NEXT:    ; def v[0:3]4093; GFX942-NEXT:    ;;#ASMEND4094; GFX942-NEXT:    v_mov_b32_e32 v8, 04095; GFX942-NEXT:    ;;#ASMSTART4096; GFX942-NEXT:    ; def v[4:7]4097; GFX942-NEXT:    ;;#ASMEND4098; GFX942-NEXT:    v_mov_b32_e32 v2, v34099; GFX942-NEXT:    v_mov_b32_e32 v0, v74100; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]4101; GFX942-NEXT:    s_waitcnt vmcnt(0)4102; GFX942-NEXT:    s_setpc_b64 s[30:31]4103  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4104  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4105  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 3>4106  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164107  ret void4108}4109 4110define void @v_shuffle_v3p3_v4p3__7_2_3(ptr addrspace(1) inreg %ptr) {4111; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_3:4112; GFX900:       ; %bb.0:4113; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4114; GFX900-NEXT:    v_mov_b32_e32 v6, 04115; GFX900-NEXT:    ;;#ASMSTART4116; GFX900-NEXT:    ; def v[2:5]4117; GFX900-NEXT:    ;;#ASMEND4118; GFX900-NEXT:    ;;#ASMSTART4119; GFX900-NEXT:    ; def v[0:3]4120; GFX900-NEXT:    ;;#ASMEND4121; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4122; GFX900-NEXT:    s_waitcnt vmcnt(0)4123; GFX900-NEXT:    s_setpc_b64 s[30:31]4124;4125; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_3:4126; GFX90A:       ; %bb.0:4127; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4128; GFX90A-NEXT:    ;;#ASMSTART4129; GFX90A-NEXT:    ; def v[0:3]4130; GFX90A-NEXT:    ;;#ASMEND4131; GFX90A-NEXT:    v_mov_b32_e32 v8, 04132; GFX90A-NEXT:    ;;#ASMSTART4133; GFX90A-NEXT:    ; def v[4:7]4134; GFX90A-NEXT:    ;;#ASMEND4135; GFX90A-NEXT:    v_mov_b32_e32 v0, v74136; GFX90A-NEXT:    v_mov_b32_e32 v1, v24137; GFX90A-NEXT:    v_mov_b32_e32 v2, v34138; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]4139; GFX90A-NEXT:    s_waitcnt vmcnt(0)4140; GFX90A-NEXT:    s_setpc_b64 s[30:31]4141;4142; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_3:4143; GFX942:       ; %bb.0:4144; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4145; GFX942-NEXT:    ;;#ASMSTART4146; GFX942-NEXT:    ; def v[0:3]4147; GFX942-NEXT:    ;;#ASMEND4148; GFX942-NEXT:    v_mov_b32_e32 v8, 04149; GFX942-NEXT:    ;;#ASMSTART4150; GFX942-NEXT:    ; def v[4:7]4151; GFX942-NEXT:    ;;#ASMEND4152; GFX942-NEXT:    v_mov_b32_e32 v1, v24153; GFX942-NEXT:    v_mov_b32_e32 v0, v74154; GFX942-NEXT:    v_mov_b32_e32 v2, v34155; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]4156; GFX942-NEXT:    s_waitcnt vmcnt(0)4157; GFX942-NEXT:    s_setpc_b64 s[30:31]4158  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4159  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4160  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 3>4161  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164162  ret void4163}4164 4165define void @v_shuffle_v3p3_v4p3__7_4_3(ptr addrspace(1) inreg %ptr) {4166; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_3:4167; GFX900:       ; %bb.0:4168; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4169; GFX900-NEXT:    ;;#ASMSTART4170; GFX900-NEXT:    ; def v[2:5]4171; GFX900-NEXT:    ;;#ASMEND4172; GFX900-NEXT:    v_mov_b32_e32 v6, 04173; GFX900-NEXT:    ;;#ASMSTART4174; GFX900-NEXT:    ; def v[0:3]4175; GFX900-NEXT:    ;;#ASMEND4176; GFX900-NEXT:    v_mov_b32_e32 v4, v04177; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4178; GFX900-NEXT:    s_waitcnt vmcnt(0)4179; GFX900-NEXT:    s_setpc_b64 s[30:31]4180;4181; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_3:4182; GFX90A:       ; %bb.0:4183; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4184; GFX90A-NEXT:    ;;#ASMSTART4185; GFX90A-NEXT:    ; def v[0:3]4186; GFX90A-NEXT:    ;;#ASMEND4187; GFX90A-NEXT:    v_mov_b32_e32 v8, 04188; GFX90A-NEXT:    ;;#ASMSTART4189; GFX90A-NEXT:    ; def v[4:7]4190; GFX90A-NEXT:    ;;#ASMEND4191; GFX90A-NEXT:    v_mov_b32_e32 v0, v74192; GFX90A-NEXT:    v_mov_b32_e32 v1, v44193; GFX90A-NEXT:    v_mov_b32_e32 v2, v34194; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]4195; GFX90A-NEXT:    s_waitcnt vmcnt(0)4196; GFX90A-NEXT:    s_setpc_b64 s[30:31]4197;4198; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_3:4199; GFX942:       ; %bb.0:4200; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4201; GFX942-NEXT:    ;;#ASMSTART4202; GFX942-NEXT:    ; def v[0:3]4203; GFX942-NEXT:    ;;#ASMEND4204; GFX942-NEXT:    v_mov_b32_e32 v8, 04205; GFX942-NEXT:    ;;#ASMSTART4206; GFX942-NEXT:    ; def v[4:7]4207; GFX942-NEXT:    ;;#ASMEND4208; GFX942-NEXT:    v_mov_b32_e32 v2, v34209; GFX942-NEXT:    v_mov_b32_e32 v0, v74210; GFX942-NEXT:    v_mov_b32_e32 v1, v44211; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]4212; GFX942-NEXT:    s_waitcnt vmcnt(0)4213; GFX942-NEXT:    s_setpc_b64 s[30:31]4214  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4215  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4216  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 3>4217  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164218  ret void4219}4220 4221define void @v_shuffle_v3p3_v4p3__7_5_3(ptr addrspace(1) inreg %ptr) {4222; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_3:4223; GFX900:       ; %bb.0:4224; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4225; GFX900-NEXT:    ;;#ASMSTART4226; GFX900-NEXT:    ; def v[2:5]4227; GFX900-NEXT:    ;;#ASMEND4228; GFX900-NEXT:    v_mov_b32_e32 v6, 04229; GFX900-NEXT:    ;;#ASMSTART4230; GFX900-NEXT:    ; def v[0:3]4231; GFX900-NEXT:    ;;#ASMEND4232; GFX900-NEXT:    v_mov_b32_e32 v4, v14233; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4234; GFX900-NEXT:    s_waitcnt vmcnt(0)4235; GFX900-NEXT:    s_setpc_b64 s[30:31]4236;4237; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_3:4238; GFX90A:       ; %bb.0:4239; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4240; GFX90A-NEXT:    ;;#ASMSTART4241; GFX90A-NEXT:    ; def v[4:7]4242; GFX90A-NEXT:    ;;#ASMEND4243; GFX90A-NEXT:    v_mov_b32_e32 v8, 04244; GFX90A-NEXT:    ;;#ASMSTART4245; GFX90A-NEXT:    ; def v[0:3]4246; GFX90A-NEXT:    ;;#ASMEND4247; GFX90A-NEXT:    v_mov_b32_e32 v4, v74248; GFX90A-NEXT:    v_mov_b32_e32 v6, v34249; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]4250; GFX90A-NEXT:    s_waitcnt vmcnt(0)4251; GFX90A-NEXT:    s_setpc_b64 s[30:31]4252;4253; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_3:4254; GFX942:       ; %bb.0:4255; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4256; GFX942-NEXT:    ;;#ASMSTART4257; GFX942-NEXT:    ; def v[4:7]4258; GFX942-NEXT:    ;;#ASMEND4259; GFX942-NEXT:    v_mov_b32_e32 v8, 04260; GFX942-NEXT:    ;;#ASMSTART4261; GFX942-NEXT:    ; def v[0:3]4262; GFX942-NEXT:    ;;#ASMEND4263; GFX942-NEXT:    v_mov_b32_e32 v4, v74264; GFX942-NEXT:    v_mov_b32_e32 v6, v34265; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]4266; GFX942-NEXT:    s_waitcnt vmcnt(0)4267; GFX942-NEXT:    s_setpc_b64 s[30:31]4268  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4269  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4270  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 3>4271  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164272  ret void4273}4274 4275define void @v_shuffle_v3p3_v4p3__7_6_3(ptr addrspace(1) inreg %ptr) {4276; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_3:4277; GFX900:       ; %bb.0:4278; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4279; GFX900-NEXT:    ;;#ASMSTART4280; GFX900-NEXT:    ; def v[2:5]4281; GFX900-NEXT:    ;;#ASMEND4282; GFX900-NEXT:    v_mov_b32_e32 v6, 04283; GFX900-NEXT:    ;;#ASMSTART4284; GFX900-NEXT:    ; def v[0:3]4285; GFX900-NEXT:    ;;#ASMEND4286; GFX900-NEXT:    v_mov_b32_e32 v4, v24287; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4288; GFX900-NEXT:    s_waitcnt vmcnt(0)4289; GFX900-NEXT:    s_setpc_b64 s[30:31]4290;4291; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_3:4292; GFX90A:       ; %bb.0:4293; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4294; GFX90A-NEXT:    ;;#ASMSTART4295; GFX90A-NEXT:    ; def v[0:3]4296; GFX90A-NEXT:    ;;#ASMEND4297; GFX90A-NEXT:    v_mov_b32_e32 v8, 04298; GFX90A-NEXT:    ;;#ASMSTART4299; GFX90A-NEXT:    ; def v[4:7]4300; GFX90A-NEXT:    ;;#ASMEND4301; GFX90A-NEXT:    v_mov_b32_e32 v0, v74302; GFX90A-NEXT:    v_mov_b32_e32 v1, v64303; GFX90A-NEXT:    v_mov_b32_e32 v2, v34304; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]4305; GFX90A-NEXT:    s_waitcnt vmcnt(0)4306; GFX90A-NEXT:    s_setpc_b64 s[30:31]4307;4308; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_3:4309; GFX942:       ; %bb.0:4310; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4311; GFX942-NEXT:    ;;#ASMSTART4312; GFX942-NEXT:    ; def v[0:3]4313; GFX942-NEXT:    ;;#ASMEND4314; GFX942-NEXT:    v_mov_b32_e32 v8, 04315; GFX942-NEXT:    ;;#ASMSTART4316; GFX942-NEXT:    ; def v[4:7]4317; GFX942-NEXT:    ;;#ASMEND4318; GFX942-NEXT:    v_mov_b32_e32 v2, v34319; GFX942-NEXT:    v_mov_b32_e32 v0, v74320; GFX942-NEXT:    v_mov_b32_e32 v1, v64321; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]4322; GFX942-NEXT:    s_waitcnt vmcnt(0)4323; GFX942-NEXT:    s_setpc_b64 s[30:31]4324  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4325  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4326  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 3>4327  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164328  ret void4329}4330 4331define void @v_shuffle_v3p3_v4p3__u_4_4(ptr addrspace(1) inreg %ptr) {4332; GFX9-LABEL: v_shuffle_v3p3_v4p3__u_4_4:4333; GFX9:       ; %bb.0:4334; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4335; GFX9-NEXT:    s_setpc_b64 s[30:31]4336  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4337  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 4, i32 4>4338  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164339  ret void4340}4341 4342define void @v_shuffle_v3p3_v4p3__0_4_4(ptr addrspace(1) inreg %ptr) {4343; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_4_4:4344; GFX900:       ; %bb.0:4345; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4346; GFX900-NEXT:    v_mov_b32_e32 v4, 04347; GFX900-NEXT:    ;;#ASMSTART4348; GFX900-NEXT:    ; def v[0:3]4349; GFX900-NEXT:    ;;#ASMEND4350; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]4351; GFX900-NEXT:    s_waitcnt vmcnt(0)4352; GFX900-NEXT:    s_setpc_b64 s[30:31]4353;4354; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_4_4:4355; GFX90A:       ; %bb.0:4356; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4357; GFX90A-NEXT:    v_mov_b32_e32 v4, 04358; GFX90A-NEXT:    ;;#ASMSTART4359; GFX90A-NEXT:    ; def v[0:3]4360; GFX90A-NEXT:    ;;#ASMEND4361; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]4362; GFX90A-NEXT:    s_waitcnt vmcnt(0)4363; GFX90A-NEXT:    s_setpc_b64 s[30:31]4364;4365; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_4_4:4366; GFX942:       ; %bb.0:4367; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4368; GFX942-NEXT:    v_mov_b32_e32 v4, 04369; GFX942-NEXT:    ;;#ASMSTART4370; GFX942-NEXT:    ; def v[0:3]4371; GFX942-NEXT:    ;;#ASMEND4372; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]4373; GFX942-NEXT:    s_waitcnt vmcnt(0)4374; GFX942-NEXT:    s_setpc_b64 s[30:31]4375  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4376  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 4, i32 4>4377  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164378  ret void4379}4380 4381define void @v_shuffle_v3p3_v4p3__1_4_4(ptr addrspace(1) inreg %ptr) {4382; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_4_4:4383; GFX900:       ; %bb.0:4384; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4385; GFX900-NEXT:    v_mov_b32_e32 v4, 04386; GFX900-NEXT:    ;;#ASMSTART4387; GFX900-NEXT:    ; def v[0:3]4388; GFX900-NEXT:    ;;#ASMEND4389; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]4390; GFX900-NEXT:    s_waitcnt vmcnt(0)4391; GFX900-NEXT:    s_setpc_b64 s[30:31]4392;4393; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_4_4:4394; GFX90A:       ; %bb.0:4395; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4396; GFX90A-NEXT:    ;;#ASMSTART4397; GFX90A-NEXT:    ; def v[0:3]4398; GFX90A-NEXT:    ;;#ASMEND4399; GFX90A-NEXT:    v_mov_b32_e32 v4, 04400; GFX90A-NEXT:    v_mov_b32_e32 v0, v14401; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]4402; GFX90A-NEXT:    s_waitcnt vmcnt(0)4403; GFX90A-NEXT:    s_setpc_b64 s[30:31]4404;4405; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_4_4:4406; GFX942:       ; %bb.0:4407; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4408; GFX942-NEXT:    ;;#ASMSTART4409; GFX942-NEXT:    ; def v[0:3]4410; GFX942-NEXT:    ;;#ASMEND4411; GFX942-NEXT:    v_mov_b32_e32 v4, 04412; GFX942-NEXT:    v_mov_b32_e32 v0, v14413; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]4414; GFX942-NEXT:    s_waitcnt vmcnt(0)4415; GFX942-NEXT:    s_setpc_b64 s[30:31]4416  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4417  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 4, i32 4>4418  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164419  ret void4420}4421 4422define void @v_shuffle_v3p3_v4p3__2_4_4(ptr addrspace(1) inreg %ptr) {4423; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_4_4:4424; GFX900:       ; %bb.0:4425; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4426; GFX900-NEXT:    v_mov_b32_e32 v4, 04427; GFX900-NEXT:    ;;#ASMSTART4428; GFX900-NEXT:    ; def v[0:3]4429; GFX900-NEXT:    ;;#ASMEND4430; GFX900-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]4431; GFX900-NEXT:    s_waitcnt vmcnt(0)4432; GFX900-NEXT:    s_setpc_b64 s[30:31]4433;4434; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_4_4:4435; GFX90A:       ; %bb.0:4436; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4437; GFX90A-NEXT:    v_mov_b32_e32 v4, 04438; GFX90A-NEXT:    ;;#ASMSTART4439; GFX90A-NEXT:    ; def v[0:3]4440; GFX90A-NEXT:    ;;#ASMEND4441; GFX90A-NEXT:    global_store_dwordx3 v4, v[2:4], s[16:17]4442; GFX90A-NEXT:    s_waitcnt vmcnt(0)4443; GFX90A-NEXT:    s_setpc_b64 s[30:31]4444;4445; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_4_4:4446; GFX942:       ; %bb.0:4447; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4448; GFX942-NEXT:    v_mov_b32_e32 v4, 04449; GFX942-NEXT:    ;;#ASMSTART4450; GFX942-NEXT:    ; def v[0:3]4451; GFX942-NEXT:    ;;#ASMEND4452; GFX942-NEXT:    global_store_dwordx3 v4, v[2:4], s[0:1]4453; GFX942-NEXT:    s_waitcnt vmcnt(0)4454; GFX942-NEXT:    s_setpc_b64 s[30:31]4455  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4456  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 4, i32 4>4457  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164458  ret void4459}4460 4461define void @v_shuffle_v3p3_v4p3__3_4_4(ptr addrspace(1) inreg %ptr) {4462; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_4_4:4463; GFX900:       ; %bb.0:4464; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4465; GFX900-NEXT:    v_mov_b32_e32 v4, 04466; GFX900-NEXT:    ;;#ASMSTART4467; GFX900-NEXT:    ; def v[0:3]4468; GFX900-NEXT:    ;;#ASMEND4469; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]4470; GFX900-NEXT:    s_waitcnt vmcnt(0)4471; GFX900-NEXT:    s_setpc_b64 s[30:31]4472;4473; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_4_4:4474; GFX90A:       ; %bb.0:4475; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4476; GFX90A-NEXT:    ;;#ASMSTART4477; GFX90A-NEXT:    ; def v[0:3]4478; GFX90A-NEXT:    ;;#ASMEND4479; GFX90A-NEXT:    v_mov_b32_e32 v4, 04480; GFX90A-NEXT:    v_mov_b32_e32 v0, v34481; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]4482; GFX90A-NEXT:    s_waitcnt vmcnt(0)4483; GFX90A-NEXT:    s_setpc_b64 s[30:31]4484;4485; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_4_4:4486; GFX942:       ; %bb.0:4487; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4488; GFX942-NEXT:    ;;#ASMSTART4489; GFX942-NEXT:    ; def v[0:3]4490; GFX942-NEXT:    ;;#ASMEND4491; GFX942-NEXT:    v_mov_b32_e32 v4, 04492; GFX942-NEXT:    v_mov_b32_e32 v0, v34493; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]4494; GFX942-NEXT:    s_waitcnt vmcnt(0)4495; GFX942-NEXT:    s_setpc_b64 s[30:31]4496  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4497  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 4, i32 4>4498  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164499  ret void4500}4501 4502define void @v_shuffle_v3p3_v4p3__4_4_4(ptr addrspace(1) inreg %ptr) {4503; GFX9-LABEL: v_shuffle_v3p3_v4p3__4_4_4:4504; GFX9:       ; %bb.0:4505; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4506; GFX9-NEXT:    s_setpc_b64 s[30:31]4507  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4508  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 4, i32 4>4509  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164510  ret void4511}4512 4513define void @v_shuffle_v3p3_v4p3__5_4_4(ptr addrspace(1) inreg %ptr) {4514; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_4_4:4515; GFX900:       ; %bb.0:4516; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4517; GFX900-NEXT:    ;;#ASMSTART4518; GFX900-NEXT:    ; def v[0:3]4519; GFX900-NEXT:    ;;#ASMEND4520; GFX900-NEXT:    v_mov_b32_e32 v4, 04521; GFX900-NEXT:    v_mov_b32_e32 v2, v04522; GFX900-NEXT:    v_mov_b32_e32 v3, v04523; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]4524; GFX900-NEXT:    s_waitcnt vmcnt(0)4525; GFX900-NEXT:    s_setpc_b64 s[30:31]4526;4527; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_4_4:4528; GFX90A:       ; %bb.0:4529; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4530; GFX90A-NEXT:    v_mov_b32_e32 v6, 04531; GFX90A-NEXT:    ;;#ASMSTART4532; GFX90A-NEXT:    ; def v[2:5]4533; GFX90A-NEXT:    ;;#ASMEND4534; GFX90A-NEXT:    v_mov_b32_e32 v0, v34535; GFX90A-NEXT:    v_mov_b32_e32 v1, v24536; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]4537; GFX90A-NEXT:    s_waitcnt vmcnt(0)4538; GFX90A-NEXT:    s_setpc_b64 s[30:31]4539;4540; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_4_4:4541; GFX942:       ; %bb.0:4542; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4543; GFX942-NEXT:    v_mov_b32_e32 v6, 04544; GFX942-NEXT:    ;;#ASMSTART4545; GFX942-NEXT:    ; def v[2:5]4546; GFX942-NEXT:    ;;#ASMEND4547; GFX942-NEXT:    s_nop 04548; GFX942-NEXT:    v_mov_b32_e32 v0, v34549; GFX942-NEXT:    v_mov_b32_e32 v1, v24550; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]4551; GFX942-NEXT:    s_waitcnt vmcnt(0)4552; GFX942-NEXT:    s_setpc_b64 s[30:31]4553  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4554  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4555  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 4, i32 4>4556  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164557  ret void4558}4559 4560define void @v_shuffle_v3p3_v4p3__6_4_4(ptr addrspace(1) inreg %ptr) {4561; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_4_4:4562; GFX900:       ; %bb.0:4563; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4564; GFX900-NEXT:    ;;#ASMSTART4565; GFX900-NEXT:    ; def v[0:3]4566; GFX900-NEXT:    ;;#ASMEND4567; GFX900-NEXT:    v_mov_b32_e32 v5, 04568; GFX900-NEXT:    v_mov_b32_e32 v3, v04569; GFX900-NEXT:    v_mov_b32_e32 v4, v04570; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]4571; GFX900-NEXT:    s_waitcnt vmcnt(0)4572; GFX900-NEXT:    s_setpc_b64 s[30:31]4573;4574; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_4_4:4575; GFX90A:       ; %bb.0:4576; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4577; GFX90A-NEXT:    ;;#ASMSTART4578; GFX90A-NEXT:    ; def v[0:3]4579; GFX90A-NEXT:    ;;#ASMEND4580; GFX90A-NEXT:    v_mov_b32_e32 v5, 04581; GFX90A-NEXT:    v_mov_b32_e32 v3, v04582; GFX90A-NEXT:    v_mov_b32_e32 v4, v04583; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]4584; GFX90A-NEXT:    s_waitcnt vmcnt(0)4585; GFX90A-NEXT:    s_setpc_b64 s[30:31]4586;4587; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_4_4:4588; GFX942:       ; %bb.0:4589; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4590; GFX942-NEXT:    ;;#ASMSTART4591; GFX942-NEXT:    ; def v[0:3]4592; GFX942-NEXT:    ;;#ASMEND4593; GFX942-NEXT:    v_mov_b32_e32 v5, 04594; GFX942-NEXT:    v_mov_b32_e32 v3, v04595; GFX942-NEXT:    v_mov_b32_e32 v4, v04596; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]4597; GFX942-NEXT:    s_waitcnt vmcnt(0)4598; GFX942-NEXT:    s_setpc_b64 s[30:31]4599  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4600  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4601  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 4, i32 4>4602  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164603  ret void4604}4605 4606define void @v_shuffle_v3p3_v4p3__7_4_4(ptr addrspace(1) inreg %ptr) {4607; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_4:4608; GFX900:       ; %bb.0:4609; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4610; GFX900-NEXT:    v_mov_b32_e32 v6, 04611; GFX900-NEXT:    ;;#ASMSTART4612; GFX900-NEXT:    ; def v[0:3]4613; GFX900-NEXT:    ;;#ASMEND4614; GFX900-NEXT:    v_mov_b32_e32 v4, v04615; GFX900-NEXT:    v_mov_b32_e32 v5, v04616; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4617; GFX900-NEXT:    s_waitcnt vmcnt(0)4618; GFX900-NEXT:    s_setpc_b64 s[30:31]4619;4620; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_4:4621; GFX90A:       ; %bb.0:4622; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4623; GFX90A-NEXT:    v_mov_b32_e32 v6, 04624; GFX90A-NEXT:    ;;#ASMSTART4625; GFX90A-NEXT:    ; def v[2:5]4626; GFX90A-NEXT:    ;;#ASMEND4627; GFX90A-NEXT:    v_mov_b32_e32 v0, v54628; GFX90A-NEXT:    v_mov_b32_e32 v1, v24629; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]4630; GFX90A-NEXT:    s_waitcnt vmcnt(0)4631; GFX90A-NEXT:    s_setpc_b64 s[30:31]4632;4633; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_4:4634; GFX942:       ; %bb.0:4635; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4636; GFX942-NEXT:    v_mov_b32_e32 v6, 04637; GFX942-NEXT:    ;;#ASMSTART4638; GFX942-NEXT:    ; def v[2:5]4639; GFX942-NEXT:    ;;#ASMEND4640; GFX942-NEXT:    s_nop 04641; GFX942-NEXT:    v_mov_b32_e32 v0, v54642; GFX942-NEXT:    v_mov_b32_e32 v1, v24643; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]4644; GFX942-NEXT:    s_waitcnt vmcnt(0)4645; GFX942-NEXT:    s_setpc_b64 s[30:31]4646  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4647  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4648  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 4>4649  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164650  ret void4651}4652 4653define void @v_shuffle_v3p3_v4p3__7_u_4(ptr addrspace(1) inreg %ptr) {4654; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_4:4655; GFX900:       ; %bb.0:4656; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4657; GFX900-NEXT:    v_mov_b32_e32 v4, 04658; GFX900-NEXT:    ;;#ASMSTART4659; GFX900-NEXT:    ; def v[0:3]4660; GFX900-NEXT:    ;;#ASMEND4661; GFX900-NEXT:    v_mov_b32_e32 v5, v04662; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]4663; GFX900-NEXT:    s_waitcnt vmcnt(0)4664; GFX900-NEXT:    s_setpc_b64 s[30:31]4665;4666; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_4:4667; GFX90A:       ; %bb.0:4668; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4669; GFX90A-NEXT:    v_mov_b32_e32 v1, 04670; GFX90A-NEXT:    ;;#ASMSTART4671; GFX90A-NEXT:    ; def v[2:5]4672; GFX90A-NEXT:    ;;#ASMEND4673; GFX90A-NEXT:    v_mov_b32_e32 v0, v54674; GFX90A-NEXT:    global_store_dwordx3 v1, v[0:2], s[16:17]4675; GFX90A-NEXT:    s_waitcnt vmcnt(0)4676; GFX90A-NEXT:    s_setpc_b64 s[30:31]4677;4678; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_4:4679; GFX942:       ; %bb.0:4680; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4681; GFX942-NEXT:    v_mov_b32_e32 v1, 04682; GFX942-NEXT:    ;;#ASMSTART4683; GFX942-NEXT:    ; def v[2:5]4684; GFX942-NEXT:    ;;#ASMEND4685; GFX942-NEXT:    s_nop 04686; GFX942-NEXT:    v_mov_b32_e32 v0, v54687; GFX942-NEXT:    global_store_dwordx3 v1, v[0:2], s[0:1]4688; GFX942-NEXT:    s_waitcnt vmcnt(0)4689; GFX942-NEXT:    s_setpc_b64 s[30:31]4690  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4691  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4692  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>4693  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164694  ret void4695}4696 4697define void @v_shuffle_v3p3_v4p3__7_0_4(ptr addrspace(1) inreg %ptr) {4698; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_4:4699; GFX900:       ; %bb.0:4700; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4701; GFX900-NEXT:    ;;#ASMSTART4702; GFX900-NEXT:    ; def v[4:7]4703; GFX900-NEXT:    ;;#ASMEND4704; GFX900-NEXT:    v_mov_b32_e32 v8, 04705; GFX900-NEXT:    ;;#ASMSTART4706; GFX900-NEXT:    ; def v[0:3]4707; GFX900-NEXT:    ;;#ASMEND4708; GFX900-NEXT:    v_mov_b32_e32 v5, v04709; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]4710; GFX900-NEXT:    s_waitcnt vmcnt(0)4711; GFX900-NEXT:    s_setpc_b64 s[30:31]4712;4713; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_4:4714; GFX90A:       ; %bb.0:4715; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4716; GFX90A-NEXT:    v_mov_b32_e32 v10, 04717; GFX90A-NEXT:    ;;#ASMSTART4718; GFX90A-NEXT:    ; def v[6:9]4719; GFX90A-NEXT:    ;;#ASMEND4720; GFX90A-NEXT:    ;;#ASMSTART4721; GFX90A-NEXT:    ; def v[2:5]4722; GFX90A-NEXT:    ;;#ASMEND4723; GFX90A-NEXT:    v_mov_b32_e32 v0, v54724; GFX90A-NEXT:    v_mov_b32_e32 v1, v64725; GFX90A-NEXT:    global_store_dwordx3 v10, v[0:2], s[16:17]4726; GFX90A-NEXT:    s_waitcnt vmcnt(0)4727; GFX90A-NEXT:    s_setpc_b64 s[30:31]4728;4729; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_4:4730; GFX942:       ; %bb.0:4731; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4732; GFX942-NEXT:    v_mov_b32_e32 v10, 04733; GFX942-NEXT:    ;;#ASMSTART4734; GFX942-NEXT:    ; def v[6:9]4735; GFX942-NEXT:    ;;#ASMEND4736; GFX942-NEXT:    ;;#ASMSTART4737; GFX942-NEXT:    ; def v[2:5]4738; GFX942-NEXT:    ;;#ASMEND4739; GFX942-NEXT:    s_nop 04740; GFX942-NEXT:    v_mov_b32_e32 v0, v54741; GFX942-NEXT:    v_mov_b32_e32 v1, v64742; GFX942-NEXT:    global_store_dwordx3 v10, v[0:2], s[0:1]4743; GFX942-NEXT:    s_waitcnt vmcnt(0)4744; GFX942-NEXT:    s_setpc_b64 s[30:31]4745  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4746  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4747  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 4>4748  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164749  ret void4750}4751 4752define void @v_shuffle_v3p3_v4p3__7_1_4(ptr addrspace(1) inreg %ptr) {4753; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_4:4754; GFX900:       ; %bb.0:4755; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4756; GFX900-NEXT:    ;;#ASMSTART4757; GFX900-NEXT:    ; def v[3:6]4758; GFX900-NEXT:    ;;#ASMEND4759; GFX900-NEXT:    v_mov_b32_e32 v7, 04760; GFX900-NEXT:    ;;#ASMSTART4761; GFX900-NEXT:    ; def v[0:3]4762; GFX900-NEXT:    ;;#ASMEND4763; GFX900-NEXT:    v_mov_b32_e32 v5, v04764; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]4765; GFX900-NEXT:    s_waitcnt vmcnt(0)4766; GFX900-NEXT:    s_setpc_b64 s[30:31]4767;4768; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_4:4769; GFX90A:       ; %bb.0:4770; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4771; GFX90A-NEXT:    ;;#ASMSTART4772; GFX90A-NEXT:    ; def v[0:3]4773; GFX90A-NEXT:    ;;#ASMEND4774; GFX90A-NEXT:    v_mov_b32_e32 v6, 04775; GFX90A-NEXT:    ;;#ASMSTART4776; GFX90A-NEXT:    ; def v[2:5]4777; GFX90A-NEXT:    ;;#ASMEND4778; GFX90A-NEXT:    v_mov_b32_e32 v0, v54779; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]4780; GFX90A-NEXT:    s_waitcnt vmcnt(0)4781; GFX90A-NEXT:    s_setpc_b64 s[30:31]4782;4783; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_4:4784; GFX942:       ; %bb.0:4785; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4786; GFX942-NEXT:    ;;#ASMSTART4787; GFX942-NEXT:    ; def v[0:3]4788; GFX942-NEXT:    ;;#ASMEND4789; GFX942-NEXT:    v_mov_b32_e32 v6, 04790; GFX942-NEXT:    ;;#ASMSTART4791; GFX942-NEXT:    ; def v[2:5]4792; GFX942-NEXT:    ;;#ASMEND4793; GFX942-NEXT:    s_nop 04794; GFX942-NEXT:    v_mov_b32_e32 v0, v54795; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]4796; GFX942-NEXT:    s_waitcnt vmcnt(0)4797; GFX942-NEXT:    s_setpc_b64 s[30:31]4798  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4799  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4800  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 4>4801  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164802  ret void4803}4804 4805define void @v_shuffle_v3p3_v4p3__7_2_4(ptr addrspace(1) inreg %ptr) {4806; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_4:4807; GFX900:       ; %bb.0:4808; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4809; GFX900-NEXT:    ;;#ASMSTART4810; GFX900-NEXT:    ; def v[2:5]4811; GFX900-NEXT:    ;;#ASMEND4812; GFX900-NEXT:    v_mov_b32_e32 v6, 04813; GFX900-NEXT:    ;;#ASMSTART4814; GFX900-NEXT:    ; def v[0:3]4815; GFX900-NEXT:    ;;#ASMEND4816; GFX900-NEXT:    v_mov_b32_e32 v5, v04817; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4818; GFX900-NEXT:    s_waitcnt vmcnt(0)4819; GFX900-NEXT:    s_setpc_b64 s[30:31]4820;4821; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_4:4822; GFX90A:       ; %bb.0:4823; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4824; GFX90A-NEXT:    ;;#ASMSTART4825; GFX90A-NEXT:    ; def v[4:7]4826; GFX90A-NEXT:    ;;#ASMEND4827; GFX90A-NEXT:    v_mov_b32_e32 v8, 04828; GFX90A-NEXT:    ;;#ASMSTART4829; GFX90A-NEXT:    ; def v[2:5]4830; GFX90A-NEXT:    ;;#ASMEND4831; GFX90A-NEXT:    v_mov_b32_e32 v0, v54832; GFX90A-NEXT:    v_mov_b32_e32 v1, v64833; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]4834; GFX90A-NEXT:    s_waitcnt vmcnt(0)4835; GFX90A-NEXT:    s_setpc_b64 s[30:31]4836;4837; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_4:4838; GFX942:       ; %bb.0:4839; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4840; GFX942-NEXT:    ;;#ASMSTART4841; GFX942-NEXT:    ; def v[4:7]4842; GFX942-NEXT:    ;;#ASMEND4843; GFX942-NEXT:    v_mov_b32_e32 v8, 04844; GFX942-NEXT:    ;;#ASMSTART4845; GFX942-NEXT:    ; def v[2:5]4846; GFX942-NEXT:    ;;#ASMEND4847; GFX942-NEXT:    v_mov_b32_e32 v1, v64848; GFX942-NEXT:    v_mov_b32_e32 v0, v54849; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]4850; GFX942-NEXT:    s_waitcnt vmcnt(0)4851; GFX942-NEXT:    s_setpc_b64 s[30:31]4852  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4853  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4854  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 4>4855  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164856  ret void4857}4858 4859define void @v_shuffle_v3p3_v4p3__7_3_4(ptr addrspace(1) inreg %ptr) {4860; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_4:4861; GFX900:       ; %bb.0:4862; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4863; GFX900-NEXT:    ;;#ASMSTART4864; GFX900-NEXT:    ; def v[1:4]4865; GFX900-NEXT:    ;;#ASMEND4866; GFX900-NEXT:    v_mov_b32_e32 v6, 04867; GFX900-NEXT:    ;;#ASMSTART4868; GFX900-NEXT:    ; def v[0:3]4869; GFX900-NEXT:    ;;#ASMEND4870; GFX900-NEXT:    v_mov_b32_e32 v5, v04871; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4872; GFX900-NEXT:    s_waitcnt vmcnt(0)4873; GFX900-NEXT:    s_setpc_b64 s[30:31]4874;4875; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_4:4876; GFX90A:       ; %bb.0:4877; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4878; GFX90A-NEXT:    ;;#ASMSTART4879; GFX90A-NEXT:    ; def v[0:3]4880; GFX90A-NEXT:    ;;#ASMEND4881; GFX90A-NEXT:    v_mov_b32_e32 v8, 04882; GFX90A-NEXT:    ;;#ASMSTART4883; GFX90A-NEXT:    ; def v[4:7]4884; GFX90A-NEXT:    ;;#ASMEND4885; GFX90A-NEXT:    v_mov_b32_e32 v2, v74886; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]4887; GFX90A-NEXT:    s_waitcnt vmcnt(0)4888; GFX90A-NEXT:    s_setpc_b64 s[30:31]4889;4890; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_4:4891; GFX942:       ; %bb.0:4892; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4893; GFX942-NEXT:    ;;#ASMSTART4894; GFX942-NEXT:    ; def v[0:3]4895; GFX942-NEXT:    ;;#ASMEND4896; GFX942-NEXT:    v_mov_b32_e32 v8, 04897; GFX942-NEXT:    ;;#ASMSTART4898; GFX942-NEXT:    ; def v[4:7]4899; GFX942-NEXT:    ;;#ASMEND4900; GFX942-NEXT:    s_nop 04901; GFX942-NEXT:    v_mov_b32_e32 v2, v74902; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]4903; GFX942-NEXT:    s_waitcnt vmcnt(0)4904; GFX942-NEXT:    s_setpc_b64 s[30:31]4905  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4906  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4907  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 4>4908  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164909  ret void4910}4911 4912define void @v_shuffle_v3p3_v4p3__7_5_4(ptr addrspace(1) inreg %ptr) {4913; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_4:4914; GFX900:       ; %bb.0:4915; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4916; GFX900-NEXT:    v_mov_b32_e32 v6, 04917; GFX900-NEXT:    ;;#ASMSTART4918; GFX900-NEXT:    ; def v[0:3]4919; GFX900-NEXT:    ;;#ASMEND4920; GFX900-NEXT:    v_mov_b32_e32 v4, v14921; GFX900-NEXT:    v_mov_b32_e32 v5, v04922; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4923; GFX900-NEXT:    s_waitcnt vmcnt(0)4924; GFX900-NEXT:    s_setpc_b64 s[30:31]4925;4926; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_4:4927; GFX90A:       ; %bb.0:4928; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4929; GFX90A-NEXT:    v_mov_b32_e32 v6, 04930; GFX90A-NEXT:    ;;#ASMSTART4931; GFX90A-NEXT:    ; def v[2:5]4932; GFX90A-NEXT:    ;;#ASMEND4933; GFX90A-NEXT:    v_mov_b32_e32 v0, v54934; GFX90A-NEXT:    v_mov_b32_e32 v1, v34935; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]4936; GFX90A-NEXT:    s_waitcnt vmcnt(0)4937; GFX90A-NEXT:    s_setpc_b64 s[30:31]4938;4939; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_4:4940; GFX942:       ; %bb.0:4941; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4942; GFX942-NEXT:    v_mov_b32_e32 v6, 04943; GFX942-NEXT:    ;;#ASMSTART4944; GFX942-NEXT:    ; def v[2:5]4945; GFX942-NEXT:    ;;#ASMEND4946; GFX942-NEXT:    s_nop 04947; GFX942-NEXT:    v_mov_b32_e32 v0, v54948; GFX942-NEXT:    v_mov_b32_e32 v1, v34949; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]4950; GFX942-NEXT:    s_waitcnt vmcnt(0)4951; GFX942-NEXT:    s_setpc_b64 s[30:31]4952  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4953  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()4954  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 4>4955  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 164956  ret void4957}4958 4959define void @v_shuffle_v3p3_v4p3__7_6_4(ptr addrspace(1) inreg %ptr) {4960; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_4:4961; GFX900:       ; %bb.0:4962; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4963; GFX900-NEXT:    v_mov_b32_e32 v6, 04964; GFX900-NEXT:    ;;#ASMSTART4965; GFX900-NEXT:    ; def v[0:3]4966; GFX900-NEXT:    ;;#ASMEND4967; GFX900-NEXT:    v_mov_b32_e32 v4, v24968; GFX900-NEXT:    v_mov_b32_e32 v5, v04969; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]4970; GFX900-NEXT:    s_waitcnt vmcnt(0)4971; GFX900-NEXT:    s_setpc_b64 s[30:31]4972;4973; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_4:4974; GFX90A:       ; %bb.0:4975; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4976; GFX90A-NEXT:    v_mov_b32_e32 v6, 04977; GFX90A-NEXT:    ;;#ASMSTART4978; GFX90A-NEXT:    ; def v[2:5]4979; GFX90A-NEXT:    ;;#ASMEND4980; GFX90A-NEXT:    v_mov_b32_e32 v0, v54981; GFX90A-NEXT:    v_mov_b32_e32 v1, v44982; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]4983; GFX90A-NEXT:    s_waitcnt vmcnt(0)4984; GFX90A-NEXT:    s_setpc_b64 s[30:31]4985;4986; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_4:4987; GFX942:       ; %bb.0:4988; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4989; GFX942-NEXT:    v_mov_b32_e32 v6, 04990; GFX942-NEXT:    ;;#ASMSTART4991; GFX942-NEXT:    ; def v[2:5]4992; GFX942-NEXT:    ;;#ASMEND4993; GFX942-NEXT:    s_nop 04994; GFX942-NEXT:    v_mov_b32_e32 v0, v54995; GFX942-NEXT:    v_mov_b32_e32 v1, v44996; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]4997; GFX942-NEXT:    s_waitcnt vmcnt(0)4998; GFX942-NEXT:    s_setpc_b64 s[30:31]4999  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5000  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5001  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 4>5002  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165003  ret void5004}5005 5006define void @v_shuffle_v3p3_v4p3__u_5_5(ptr addrspace(1) inreg %ptr) {5007; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_5_5:5008; GFX900:       ; %bb.0:5009; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5010; GFX900-NEXT:    ;;#ASMSTART5011; GFX900-NEXT:    ; def v[0:3]5012; GFX900-NEXT:    ;;#ASMEND5013; GFX900-NEXT:    v_mov_b32_e32 v4, 05014; GFX900-NEXT:    v_mov_b32_e32 v2, v15015; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5016; GFX900-NEXT:    s_waitcnt vmcnt(0)5017; GFX900-NEXT:    s_setpc_b64 s[30:31]5018;5019; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_5_5:5020; GFX90A:       ; %bb.0:5021; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5022; GFX90A-NEXT:    ;;#ASMSTART5023; GFX90A-NEXT:    ; def v[0:3]5024; GFX90A-NEXT:    ;;#ASMEND5025; GFX90A-NEXT:    v_mov_b32_e32 v4, 05026; GFX90A-NEXT:    v_mov_b32_e32 v2, v15027; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5028; GFX90A-NEXT:    s_waitcnt vmcnt(0)5029; GFX90A-NEXT:    s_setpc_b64 s[30:31]5030;5031; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_5_5:5032; GFX942:       ; %bb.0:5033; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5034; GFX942-NEXT:    ;;#ASMSTART5035; GFX942-NEXT:    ; def v[0:3]5036; GFX942-NEXT:    ;;#ASMEND5037; GFX942-NEXT:    v_mov_b32_e32 v4, 05038; GFX942-NEXT:    v_mov_b32_e32 v2, v15039; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5040; GFX942-NEXT:    s_waitcnt vmcnt(0)5041; GFX942-NEXT:    s_setpc_b64 s[30:31]5042  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5043  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5044  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>5045  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165046  ret void5047}5048 5049define void @v_shuffle_v3p3_v4p3__0_5_5(ptr addrspace(1) inreg %ptr) {5050; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_5_5:5051; GFX900:       ; %bb.0:5052; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5053; GFX900-NEXT:    ;;#ASMSTART5054; GFX900-NEXT:    ; def v[0:3]5055; GFX900-NEXT:    ;;#ASMEND5056; GFX900-NEXT:    ;;#ASMSTART5057; GFX900-NEXT:    ; def v[1:4]5058; GFX900-NEXT:    ;;#ASMEND5059; GFX900-NEXT:    v_mov_b32_e32 v5, 05060; GFX900-NEXT:    v_mov_b32_e32 v1, v25061; GFX900-NEXT:    global_store_dwordx3 v5, v[0:2], s[16:17]5062; GFX900-NEXT:    s_waitcnt vmcnt(0)5063; GFX900-NEXT:    s_setpc_b64 s[30:31]5064;5065; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_5_5:5066; GFX90A:       ; %bb.0:5067; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5068; GFX90A-NEXT:    ;;#ASMSTART5069; GFX90A-NEXT:    ; def v[0:3]5070; GFX90A-NEXT:    ;;#ASMEND5071; GFX90A-NEXT:    ;;#ASMSTART5072; GFX90A-NEXT:    ; def v[2:5]5073; GFX90A-NEXT:    ;;#ASMEND5074; GFX90A-NEXT:    v_mov_b32_e32 v6, 05075; GFX90A-NEXT:    v_mov_b32_e32 v1, v35076; GFX90A-NEXT:    v_mov_b32_e32 v2, v35077; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]5078; GFX90A-NEXT:    s_waitcnt vmcnt(0)5079; GFX90A-NEXT:    s_setpc_b64 s[30:31]5080;5081; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_5_5:5082; GFX942:       ; %bb.0:5083; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5084; GFX942-NEXT:    ;;#ASMSTART5085; GFX942-NEXT:    ; def v[0:3]5086; GFX942-NEXT:    ;;#ASMEND5087; GFX942-NEXT:    v_mov_b32_e32 v6, 05088; GFX942-NEXT:    ;;#ASMSTART5089; GFX942-NEXT:    ; def v[2:5]5090; GFX942-NEXT:    ;;#ASMEND5091; GFX942-NEXT:    s_nop 05092; GFX942-NEXT:    v_mov_b32_e32 v1, v35093; GFX942-NEXT:    v_mov_b32_e32 v2, v35094; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]5095; GFX942-NEXT:    s_waitcnt vmcnt(0)5096; GFX942-NEXT:    s_setpc_b64 s[30:31]5097  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5098  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5099  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 5, i32 5>5100  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165101  ret void5102}5103 5104define void @v_shuffle_v3p3_v4p3__1_5_5(ptr addrspace(1) inreg %ptr) {5105; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_5_5:5106; GFX900:       ; %bb.0:5107; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5108; GFX900-NEXT:    ;;#ASMSTART5109; GFX900-NEXT:    ; def v[0:3]5110; GFX900-NEXT:    ;;#ASMEND5111; GFX900-NEXT:    ;;#ASMSTART5112; GFX900-NEXT:    ; def v[2:5]5113; GFX900-NEXT:    ;;#ASMEND5114; GFX900-NEXT:    v_mov_b32_e32 v6, 05115; GFX900-NEXT:    v_mov_b32_e32 v2, v35116; GFX900-NEXT:    global_store_dwordx3 v6, v[1:3], s[16:17]5117; GFX900-NEXT:    s_waitcnt vmcnt(0)5118; GFX900-NEXT:    s_setpc_b64 s[30:31]5119;5120; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_5_5:5121; GFX90A:       ; %bb.0:5122; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5123; GFX90A-NEXT:    ;;#ASMSTART5124; GFX90A-NEXT:    ; def v[0:3]5125; GFX90A-NEXT:    ;;#ASMEND5126; GFX90A-NEXT:    ;;#ASMSTART5127; GFX90A-NEXT:    ; def v[2:5]5128; GFX90A-NEXT:    ;;#ASMEND5129; GFX90A-NEXT:    v_mov_b32_e32 v6, 05130; GFX90A-NEXT:    v_mov_b32_e32 v2, v15131; GFX90A-NEXT:    v_mov_b32_e32 v4, v35132; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]5133; GFX90A-NEXT:    s_waitcnt vmcnt(0)5134; GFX90A-NEXT:    s_setpc_b64 s[30:31]5135;5136; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_5_5:5137; GFX942:       ; %bb.0:5138; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5139; GFX942-NEXT:    ;;#ASMSTART5140; GFX942-NEXT:    ; def v[0:3]5141; GFX942-NEXT:    ;;#ASMEND5142; GFX942-NEXT:    v_mov_b32_e32 v6, 05143; GFX942-NEXT:    ;;#ASMSTART5144; GFX942-NEXT:    ; def v[2:5]5145; GFX942-NEXT:    ;;#ASMEND5146; GFX942-NEXT:    s_nop 05147; GFX942-NEXT:    v_mov_b32_e32 v2, v15148; GFX942-NEXT:    v_mov_b32_e32 v4, v35149; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]5150; GFX942-NEXT:    s_waitcnt vmcnt(0)5151; GFX942-NEXT:    s_setpc_b64 s[30:31]5152  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5153  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5154  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 5, i32 5>5155  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165156  ret void5157}5158 5159define void @v_shuffle_v3p3_v4p3__2_5_5(ptr addrspace(1) inreg %ptr) {5160; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_5_5:5161; GFX900:       ; %bb.0:5162; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5163; GFX900-NEXT:    ;;#ASMSTART5164; GFX900-NEXT:    ; def v[0:3]5165; GFX900-NEXT:    ;;#ASMEND5166; GFX900-NEXT:    ;;#ASMSTART5167; GFX900-NEXT:    ; def v[3:6]5168; GFX900-NEXT:    ;;#ASMEND5169; GFX900-NEXT:    v_mov_b32_e32 v7, 05170; GFX900-NEXT:    v_mov_b32_e32 v3, v45171; GFX900-NEXT:    global_store_dwordx3 v7, v[2:4], s[16:17]5172; GFX900-NEXT:    s_waitcnt vmcnt(0)5173; GFX900-NEXT:    s_setpc_b64 s[30:31]5174;5175; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_5_5:5176; GFX90A:       ; %bb.0:5177; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5178; GFX90A-NEXT:    ;;#ASMSTART5179; GFX90A-NEXT:    ; def v[0:3]5180; GFX90A-NEXT:    ;;#ASMEND5181; GFX90A-NEXT:    ;;#ASMSTART5182; GFX90A-NEXT:    ; def v[4:7]5183; GFX90A-NEXT:    ;;#ASMEND5184; GFX90A-NEXT:    v_mov_b32_e32 v8, 05185; GFX90A-NEXT:    v_mov_b32_e32 v3, v55186; GFX90A-NEXT:    v_mov_b32_e32 v4, v55187; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]5188; GFX90A-NEXT:    s_waitcnt vmcnt(0)5189; GFX90A-NEXT:    s_setpc_b64 s[30:31]5190;5191; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_5_5:5192; GFX942:       ; %bb.0:5193; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5194; GFX942-NEXT:    ;;#ASMSTART5195; GFX942-NEXT:    ; def v[0:3]5196; GFX942-NEXT:    ;;#ASMEND5197; GFX942-NEXT:    ;;#ASMSTART5198; GFX942-NEXT:    ; def v[4:7]5199; GFX942-NEXT:    ;;#ASMEND5200; GFX942-NEXT:    v_mov_b32_e32 v8, 05201; GFX942-NEXT:    v_mov_b32_e32 v3, v55202; GFX942-NEXT:    v_mov_b32_e32 v4, v55203; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]5204; GFX942-NEXT:    s_waitcnt vmcnt(0)5205; GFX942-NEXT:    s_setpc_b64 s[30:31]5206  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5207  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5208  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 5, i32 5>5209  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165210  ret void5211}5212 5213define void @v_shuffle_v3p3_v4p3__3_5_5(ptr addrspace(1) inreg %ptr) {5214; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_5_5:5215; GFX900:       ; %bb.0:5216; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5217; GFX900-NEXT:    ;;#ASMSTART5218; GFX900-NEXT:    ; def v[4:7]5219; GFX900-NEXT:    ;;#ASMEND5220; GFX900-NEXT:    v_mov_b32_e32 v8, 05221; GFX900-NEXT:    v_mov_b32_e32 v4, v55222; GFX900-NEXT:    ;;#ASMSTART5223; GFX900-NEXT:    ; def v[0:3]5224; GFX900-NEXT:    ;;#ASMEND5225; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]5226; GFX900-NEXT:    s_waitcnt vmcnt(0)5227; GFX900-NEXT:    s_setpc_b64 s[30:31]5228;5229; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_5_5:5230; GFX90A:       ; %bb.0:5231; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5232; GFX90A-NEXT:    ;;#ASMSTART5233; GFX90A-NEXT:    ; def v[4:7]5234; GFX90A-NEXT:    ;;#ASMEND5235; GFX90A-NEXT:    v_mov_b32_e32 v8, 05236; GFX90A-NEXT:    ;;#ASMSTART5237; GFX90A-NEXT:    ; def v[0:3]5238; GFX90A-NEXT:    ;;#ASMEND5239; GFX90A-NEXT:    v_mov_b32_e32 v4, v35240; GFX90A-NEXT:    v_mov_b32_e32 v6, v55241; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]5242; GFX90A-NEXT:    s_waitcnt vmcnt(0)5243; GFX90A-NEXT:    s_setpc_b64 s[30:31]5244;5245; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_5_5:5246; GFX942:       ; %bb.0:5247; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5248; GFX942-NEXT:    ;;#ASMSTART5249; GFX942-NEXT:    ; def v[4:7]5250; GFX942-NEXT:    ;;#ASMEND5251; GFX942-NEXT:    v_mov_b32_e32 v8, 05252; GFX942-NEXT:    ;;#ASMSTART5253; GFX942-NEXT:    ; def v[0:3]5254; GFX942-NEXT:    ;;#ASMEND5255; GFX942-NEXT:    v_mov_b32_e32 v6, v55256; GFX942-NEXT:    v_mov_b32_e32 v4, v35257; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]5258; GFX942-NEXT:    s_waitcnt vmcnt(0)5259; GFX942-NEXT:    s_setpc_b64 s[30:31]5260  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5261  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5262  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 5, i32 5>5263  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165264  ret void5265}5266 5267define void @v_shuffle_v3p3_v4p3__4_5_5(ptr addrspace(1) inreg %ptr) {5268; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_5_5:5269; GFX900:       ; %bb.0:5270; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5271; GFX900-NEXT:    ;;#ASMSTART5272; GFX900-NEXT:    ; def v[0:3]5273; GFX900-NEXT:    ;;#ASMEND5274; GFX900-NEXT:    v_mov_b32_e32 v4, 05275; GFX900-NEXT:    v_mov_b32_e32 v2, v15276; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5277; GFX900-NEXT:    s_waitcnt vmcnt(0)5278; GFX900-NEXT:    s_setpc_b64 s[30:31]5279;5280; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_5_5:5281; GFX90A:       ; %bb.0:5282; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5283; GFX90A-NEXT:    ;;#ASMSTART5284; GFX90A-NEXT:    ; def v[0:3]5285; GFX90A-NEXT:    ;;#ASMEND5286; GFX90A-NEXT:    v_mov_b32_e32 v4, 05287; GFX90A-NEXT:    v_mov_b32_e32 v2, v15288; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5289; GFX90A-NEXT:    s_waitcnt vmcnt(0)5290; GFX90A-NEXT:    s_setpc_b64 s[30:31]5291;5292; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_5_5:5293; GFX942:       ; %bb.0:5294; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5295; GFX942-NEXT:    ;;#ASMSTART5296; GFX942-NEXT:    ; def v[0:3]5297; GFX942-NEXT:    ;;#ASMEND5298; GFX942-NEXT:    v_mov_b32_e32 v4, 05299; GFX942-NEXT:    v_mov_b32_e32 v2, v15300; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5301; GFX942-NEXT:    s_waitcnt vmcnt(0)5302; GFX942-NEXT:    s_setpc_b64 s[30:31]5303  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5304  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5305  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 5, i32 5>5306  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165307  ret void5308}5309 5310define void @v_shuffle_v3p3_v4p3__5_5_5(ptr addrspace(1) inreg %ptr) {5311; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_5_5:5312; GFX900:       ; %bb.0:5313; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5314; GFX900-NEXT:    ;;#ASMSTART5315; GFX900-NEXT:    ; def v[0:3]5316; GFX900-NEXT:    ;;#ASMEND5317; GFX900-NEXT:    v_mov_b32_e32 v4, 05318; GFX900-NEXT:    v_mov_b32_e32 v2, v15319; GFX900-NEXT:    v_mov_b32_e32 v3, v15320; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]5321; GFX900-NEXT:    s_waitcnt vmcnt(0)5322; GFX900-NEXT:    s_setpc_b64 s[30:31]5323;5324; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_5_5:5325; GFX90A:       ; %bb.0:5326; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5327; GFX90A-NEXT:    ;;#ASMSTART5328; GFX90A-NEXT:    ; def v[0:3]5329; GFX90A-NEXT:    ;;#ASMEND5330; GFX90A-NEXT:    v_mov_b32_e32 v4, 05331; GFX90A-NEXT:    v_mov_b32_e32 v0, v15332; GFX90A-NEXT:    v_mov_b32_e32 v2, v15333; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5334; GFX90A-NEXT:    s_waitcnt vmcnt(0)5335; GFX90A-NEXT:    s_setpc_b64 s[30:31]5336;5337; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_5_5:5338; GFX942:       ; %bb.0:5339; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5340; GFX942-NEXT:    ;;#ASMSTART5341; GFX942-NEXT:    ; def v[0:3]5342; GFX942-NEXT:    ;;#ASMEND5343; GFX942-NEXT:    v_mov_b32_e32 v4, 05344; GFX942-NEXT:    v_mov_b32_e32 v0, v15345; GFX942-NEXT:    v_mov_b32_e32 v2, v15346; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5347; GFX942-NEXT:    s_waitcnt vmcnt(0)5348; GFX942-NEXT:    s_setpc_b64 s[30:31]5349  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5350  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5351  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 5, i32 5>5352  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165353  ret void5354}5355 5356define void @v_shuffle_v3p3_v4p3__6_5_5(ptr addrspace(1) inreg %ptr) {5357; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_5_5:5358; GFX900:       ; %bb.0:5359; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5360; GFX900-NEXT:    ;;#ASMSTART5361; GFX900-NEXT:    ; def v[0:3]5362; GFX900-NEXT:    ;;#ASMEND5363; GFX900-NEXT:    v_mov_b32_e32 v5, 05364; GFX900-NEXT:    v_mov_b32_e32 v3, v15365; GFX900-NEXT:    v_mov_b32_e32 v4, v15366; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]5367; GFX900-NEXT:    s_waitcnt vmcnt(0)5368; GFX900-NEXT:    s_setpc_b64 s[30:31]5369;5370; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_5_5:5371; GFX90A:       ; %bb.0:5372; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5373; GFX90A-NEXT:    ;;#ASMSTART5374; GFX90A-NEXT:    ; def v[0:3]5375; GFX90A-NEXT:    ;;#ASMEND5376; GFX90A-NEXT:    v_mov_b32_e32 v5, 05377; GFX90A-NEXT:    v_mov_b32_e32 v3, v15378; GFX90A-NEXT:    v_mov_b32_e32 v4, v15379; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]5380; GFX90A-NEXT:    s_waitcnt vmcnt(0)5381; GFX90A-NEXT:    s_setpc_b64 s[30:31]5382;5383; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_5_5:5384; GFX942:       ; %bb.0:5385; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5386; GFX942-NEXT:    ;;#ASMSTART5387; GFX942-NEXT:    ; def v[0:3]5388; GFX942-NEXT:    ;;#ASMEND5389; GFX942-NEXT:    v_mov_b32_e32 v5, 05390; GFX942-NEXT:    v_mov_b32_e32 v3, v15391; GFX942-NEXT:    v_mov_b32_e32 v4, v15392; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]5393; GFX942-NEXT:    s_waitcnt vmcnt(0)5394; GFX942-NEXT:    s_setpc_b64 s[30:31]5395  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5396  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5397  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 5, i32 5>5398  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165399  ret void5400}5401 5402define void @v_shuffle_v3p3_v4p3__7_5_5(ptr addrspace(1) inreg %ptr) {5403; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_5:5404; GFX900:       ; %bb.0:5405; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5406; GFX900-NEXT:    v_mov_b32_e32 v6, 05407; GFX900-NEXT:    ;;#ASMSTART5408; GFX900-NEXT:    ; def v[0:3]5409; GFX900-NEXT:    ;;#ASMEND5410; GFX900-NEXT:    v_mov_b32_e32 v4, v15411; GFX900-NEXT:    v_mov_b32_e32 v5, v15412; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]5413; GFX900-NEXT:    s_waitcnt vmcnt(0)5414; GFX900-NEXT:    s_setpc_b64 s[30:31]5415;5416; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_5:5417; GFX90A:       ; %bb.0:5418; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5419; GFX90A-NEXT:    ;;#ASMSTART5420; GFX90A-NEXT:    ; def v[0:3]5421; GFX90A-NEXT:    ;;#ASMEND5422; GFX90A-NEXT:    v_mov_b32_e32 v4, 05423; GFX90A-NEXT:    v_mov_b32_e32 v0, v35424; GFX90A-NEXT:    v_mov_b32_e32 v2, v15425; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5426; GFX90A-NEXT:    s_waitcnt vmcnt(0)5427; GFX90A-NEXT:    s_setpc_b64 s[30:31]5428;5429; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_5:5430; GFX942:       ; %bb.0:5431; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5432; GFX942-NEXT:    ;;#ASMSTART5433; GFX942-NEXT:    ; def v[0:3]5434; GFX942-NEXT:    ;;#ASMEND5435; GFX942-NEXT:    v_mov_b32_e32 v4, 05436; GFX942-NEXT:    v_mov_b32_e32 v0, v35437; GFX942-NEXT:    v_mov_b32_e32 v2, v15438; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5439; GFX942-NEXT:    s_waitcnt vmcnt(0)5440; GFX942-NEXT:    s_setpc_b64 s[30:31]5441  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5442  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5443  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 5>5444  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165445  ret void5446}5447 5448define void @v_shuffle_v3p3_v4p3__7_u_5(ptr addrspace(1) inreg %ptr) {5449; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_5:5450; GFX900:       ; %bb.0:5451; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5452; GFX900-NEXT:    v_mov_b32_e32 v4, 05453; GFX900-NEXT:    ;;#ASMSTART5454; GFX900-NEXT:    ; def v[0:3]5455; GFX900-NEXT:    ;;#ASMEND5456; GFX900-NEXT:    v_mov_b32_e32 v5, v15457; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]5458; GFX900-NEXT:    s_waitcnt vmcnt(0)5459; GFX900-NEXT:    s_setpc_b64 s[30:31]5460;5461; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_5:5462; GFX90A:       ; %bb.0:5463; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5464; GFX90A-NEXT:    ;;#ASMSTART5465; GFX90A-NEXT:    ; def v[0:3]5466; GFX90A-NEXT:    ;;#ASMEND5467; GFX90A-NEXT:    v_mov_b32_e32 v4, 05468; GFX90A-NEXT:    v_mov_b32_e32 v0, v35469; GFX90A-NEXT:    v_mov_b32_e32 v2, v15470; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5471; GFX90A-NEXT:    s_waitcnt vmcnt(0)5472; GFX90A-NEXT:    s_setpc_b64 s[30:31]5473;5474; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_5:5475; GFX942:       ; %bb.0:5476; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5477; GFX942-NEXT:    ;;#ASMSTART5478; GFX942-NEXT:    ; def v[0:3]5479; GFX942-NEXT:    ;;#ASMEND5480; GFX942-NEXT:    v_mov_b32_e32 v4, 05481; GFX942-NEXT:    v_mov_b32_e32 v0, v35482; GFX942-NEXT:    v_mov_b32_e32 v2, v15483; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5484; GFX942-NEXT:    s_waitcnt vmcnt(0)5485; GFX942-NEXT:    s_setpc_b64 s[30:31]5486  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5487  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5488  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>5489  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165490  ret void5491}5492 5493define void @v_shuffle_v3p3_v4p3__7_0_5(ptr addrspace(1) inreg %ptr) {5494; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_5:5495; GFX900:       ; %bb.0:5496; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5497; GFX900-NEXT:    ;;#ASMSTART5498; GFX900-NEXT:    ; def v[4:7]5499; GFX900-NEXT:    ;;#ASMEND5500; GFX900-NEXT:    v_mov_b32_e32 v8, 05501; GFX900-NEXT:    ;;#ASMSTART5502; GFX900-NEXT:    ; def v[0:3]5503; GFX900-NEXT:    ;;#ASMEND5504; GFX900-NEXT:    v_mov_b32_e32 v5, v15505; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]5506; GFX900-NEXT:    s_waitcnt vmcnt(0)5507; GFX900-NEXT:    s_setpc_b64 s[30:31]5508;5509; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_5:5510; GFX90A:       ; %bb.0:5511; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5512; GFX90A-NEXT:    ;;#ASMSTART5513; GFX90A-NEXT:    ; def v[0:3]5514; GFX90A-NEXT:    ;;#ASMEND5515; GFX90A-NEXT:    v_mov_b32_e32 v6, 05516; GFX90A-NEXT:    ;;#ASMSTART5517; GFX90A-NEXT:    ; def v[2:5]5518; GFX90A-NEXT:    ;;#ASMEND5519; GFX90A-NEXT:    v_mov_b32_e32 v8, v55520; GFX90A-NEXT:    v_mov_b32_e32 v9, v05521; GFX90A-NEXT:    v_mov_b32_e32 v10, v35522; GFX90A-NEXT:    global_store_dwordx3 v6, v[8:10], s[16:17]5523; GFX90A-NEXT:    s_waitcnt vmcnt(0)5524; GFX90A-NEXT:    s_setpc_b64 s[30:31]5525;5526; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_5:5527; GFX942:       ; %bb.0:5528; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5529; GFX942-NEXT:    ;;#ASMSTART5530; GFX942-NEXT:    ; def v[0:3]5531; GFX942-NEXT:    ;;#ASMEND5532; GFX942-NEXT:    v_mov_b32_e32 v6, 05533; GFX942-NEXT:    ;;#ASMSTART5534; GFX942-NEXT:    ; def v[2:5]5535; GFX942-NEXT:    ;;#ASMEND5536; GFX942-NEXT:    v_mov_b32_e32 v9, v05537; GFX942-NEXT:    v_mov_b32_e32 v8, v55538; GFX942-NEXT:    v_mov_b32_e32 v10, v35539; GFX942-NEXT:    global_store_dwordx3 v6, v[8:10], s[0:1]5540; GFX942-NEXT:    s_waitcnt vmcnt(0)5541; GFX942-NEXT:    s_setpc_b64 s[30:31]5542  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5543  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5544  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 5>5545  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165546  ret void5547}5548 5549define void @v_shuffle_v3p3_v4p3__7_1_5(ptr addrspace(1) inreg %ptr) {5550; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_5:5551; GFX900:       ; %bb.0:5552; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5553; GFX900-NEXT:    ;;#ASMSTART5554; GFX900-NEXT:    ; def v[3:6]5555; GFX900-NEXT:    ;;#ASMEND5556; GFX900-NEXT:    v_mov_b32_e32 v7, 05557; GFX900-NEXT:    ;;#ASMSTART5558; GFX900-NEXT:    ; def v[0:3]5559; GFX900-NEXT:    ;;#ASMEND5560; GFX900-NEXT:    v_mov_b32_e32 v5, v15561; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]5562; GFX900-NEXT:    s_waitcnt vmcnt(0)5563; GFX900-NEXT:    s_setpc_b64 s[30:31]5564;5565; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_5:5566; GFX90A:       ; %bb.0:5567; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5568; GFX90A-NEXT:    ;;#ASMSTART5569; GFX90A-NEXT:    ; def v[0:3]5570; GFX90A-NEXT:    ;;#ASMEND5571; GFX90A-NEXT:    ;;#ASMSTART5572; GFX90A-NEXT:    ; def v[2:5]5573; GFX90A-NEXT:    ;;#ASMEND5574; GFX90A-NEXT:    v_mov_b32_e32 v6, 05575; GFX90A-NEXT:    v_mov_b32_e32 v0, v55576; GFX90A-NEXT:    v_mov_b32_e32 v2, v35577; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]5578; GFX90A-NEXT:    s_waitcnt vmcnt(0)5579; GFX90A-NEXT:    s_setpc_b64 s[30:31]5580;5581; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_5:5582; GFX942:       ; %bb.0:5583; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5584; GFX942-NEXT:    ;;#ASMSTART5585; GFX942-NEXT:    ; def v[0:3]5586; GFX942-NEXT:    ;;#ASMEND5587; GFX942-NEXT:    v_mov_b32_e32 v6, 05588; GFX942-NEXT:    ;;#ASMSTART5589; GFX942-NEXT:    ; def v[2:5]5590; GFX942-NEXT:    ;;#ASMEND5591; GFX942-NEXT:    s_nop 05592; GFX942-NEXT:    v_mov_b32_e32 v0, v55593; GFX942-NEXT:    v_mov_b32_e32 v2, v35594; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]5595; GFX942-NEXT:    s_waitcnt vmcnt(0)5596; GFX942-NEXT:    s_setpc_b64 s[30:31]5597  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5598  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5599  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 5>5600  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165601  ret void5602}5603 5604define void @v_shuffle_v3p3_v4p3__7_2_5(ptr addrspace(1) inreg %ptr) {5605; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_5:5606; GFX900:       ; %bb.0:5607; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5608; GFX900-NEXT:    ;;#ASMSTART5609; GFX900-NEXT:    ; def v[2:5]5610; GFX900-NEXT:    ;;#ASMEND5611; GFX900-NEXT:    v_mov_b32_e32 v6, 05612; GFX900-NEXT:    ;;#ASMSTART5613; GFX900-NEXT:    ; def v[0:3]5614; GFX900-NEXT:    ;;#ASMEND5615; GFX900-NEXT:    v_mov_b32_e32 v5, v15616; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]5617; GFX900-NEXT:    s_waitcnt vmcnt(0)5618; GFX900-NEXT:    s_setpc_b64 s[30:31]5619;5620; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_5:5621; GFX90A:       ; %bb.0:5622; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5623; GFX90A-NEXT:    ;;#ASMSTART5624; GFX90A-NEXT:    ; def v[0:3]5625; GFX90A-NEXT:    ;;#ASMEND5626; GFX90A-NEXT:    v_mov_b32_e32 v8, 05627; GFX90A-NEXT:    ;;#ASMSTART5628; GFX90A-NEXT:    ; def v[4:7]5629; GFX90A-NEXT:    ;;#ASMEND5630; GFX90A-NEXT:    v_mov_b32_e32 v0, v75631; GFX90A-NEXT:    v_mov_b32_e32 v1, v25632; GFX90A-NEXT:    v_mov_b32_e32 v2, v55633; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]5634; GFX90A-NEXT:    s_waitcnt vmcnt(0)5635; GFX90A-NEXT:    s_setpc_b64 s[30:31]5636;5637; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_5:5638; GFX942:       ; %bb.0:5639; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5640; GFX942-NEXT:    ;;#ASMSTART5641; GFX942-NEXT:    ; def v[0:3]5642; GFX942-NEXT:    ;;#ASMEND5643; GFX942-NEXT:    v_mov_b32_e32 v8, 05644; GFX942-NEXT:    ;;#ASMSTART5645; GFX942-NEXT:    ; def v[4:7]5646; GFX942-NEXT:    ;;#ASMEND5647; GFX942-NEXT:    v_mov_b32_e32 v1, v25648; GFX942-NEXT:    v_mov_b32_e32 v0, v75649; GFX942-NEXT:    v_mov_b32_e32 v2, v55650; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]5651; GFX942-NEXT:    s_waitcnt vmcnt(0)5652; GFX942-NEXT:    s_setpc_b64 s[30:31]5653  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5654  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5655  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 5>5656  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165657  ret void5658}5659 5660define void @v_shuffle_v3p3_v4p3__7_3_5(ptr addrspace(1) inreg %ptr) {5661; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_5:5662; GFX900:       ; %bb.0:5663; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5664; GFX900-NEXT:    ;;#ASMSTART5665; GFX900-NEXT:    ; def v[1:4]5666; GFX900-NEXT:    ;;#ASMEND5667; GFX900-NEXT:    v_mov_b32_e32 v6, 05668; GFX900-NEXT:    ;;#ASMSTART5669; GFX900-NEXT:    ; def v[0:3]5670; GFX900-NEXT:    ;;#ASMEND5671; GFX900-NEXT:    v_mov_b32_e32 v5, v15672; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]5673; GFX900-NEXT:    s_waitcnt vmcnt(0)5674; GFX900-NEXT:    s_setpc_b64 s[30:31]5675;5676; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_5:5677; GFX90A:       ; %bb.0:5678; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5679; GFX90A-NEXT:    ;;#ASMSTART5680; GFX90A-NEXT:    ; def v[0:3]5681; GFX90A-NEXT:    ;;#ASMEND5682; GFX90A-NEXT:    ;;#ASMSTART5683; GFX90A-NEXT:    ; def v[4:7]5684; GFX90A-NEXT:    ;;#ASMEND5685; GFX90A-NEXT:    v_mov_b32_e32 v8, 05686; GFX90A-NEXT:    v_mov_b32_e32 v2, v75687; GFX90A-NEXT:    v_mov_b32_e32 v4, v55688; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]5689; GFX90A-NEXT:    s_waitcnt vmcnt(0)5690; GFX90A-NEXT:    s_setpc_b64 s[30:31]5691;5692; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_5:5693; GFX942:       ; %bb.0:5694; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5695; GFX942-NEXT:    ;;#ASMSTART5696; GFX942-NEXT:    ; def v[0:3]5697; GFX942-NEXT:    ;;#ASMEND5698; GFX942-NEXT:    ;;#ASMSTART5699; GFX942-NEXT:    ; def v[4:7]5700; GFX942-NEXT:    ;;#ASMEND5701; GFX942-NEXT:    v_mov_b32_e32 v8, 05702; GFX942-NEXT:    v_mov_b32_e32 v2, v75703; GFX942-NEXT:    v_mov_b32_e32 v4, v55704; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]5705; GFX942-NEXT:    s_waitcnt vmcnt(0)5706; GFX942-NEXT:    s_setpc_b64 s[30:31]5707  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5708  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5709  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 5>5710  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165711  ret void5712}5713 5714define void @v_shuffle_v3p3_v4p3__7_4_5(ptr addrspace(1) inreg %ptr) {5715; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_5:5716; GFX900:       ; %bb.0:5717; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5718; GFX900-NEXT:    v_mov_b32_e32 v6, 05719; GFX900-NEXT:    ;;#ASMSTART5720; GFX900-NEXT:    ; def v[0:3]5721; GFX900-NEXT:    ;;#ASMEND5722; GFX900-NEXT:    v_mov_b32_e32 v4, v05723; GFX900-NEXT:    v_mov_b32_e32 v5, v15724; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]5725; GFX900-NEXT:    s_waitcnt vmcnt(0)5726; GFX900-NEXT:    s_setpc_b64 s[30:31]5727;5728; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_5:5729; GFX90A:       ; %bb.0:5730; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5731; GFX90A-NEXT:    v_mov_b32_e32 v4, 05732; GFX90A-NEXT:    ;;#ASMSTART5733; GFX90A-NEXT:    ; def v[0:3]5734; GFX90A-NEXT:    ;;#ASMEND5735; GFX90A-NEXT:    v_mov_b32_e32 v6, v35736; GFX90A-NEXT:    v_mov_b32_e32 v7, v05737; GFX90A-NEXT:    v_mov_b32_e32 v8, v15738; GFX90A-NEXT:    global_store_dwordx3 v4, v[6:8], s[16:17]5739; GFX90A-NEXT:    s_waitcnt vmcnt(0)5740; GFX90A-NEXT:    s_setpc_b64 s[30:31]5741;5742; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_5:5743; GFX942:       ; %bb.0:5744; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5745; GFX942-NEXT:    v_mov_b32_e32 v4, 05746; GFX942-NEXT:    ;;#ASMSTART5747; GFX942-NEXT:    ; def v[0:3]5748; GFX942-NEXT:    ;;#ASMEND5749; GFX942-NEXT:    s_nop 05750; GFX942-NEXT:    v_mov_b32_e32 v6, v35751; GFX942-NEXT:    v_mov_b32_e32 v7, v05752; GFX942-NEXT:    v_mov_b32_e32 v8, v15753; GFX942-NEXT:    global_store_dwordx3 v4, v[6:8], s[0:1]5754; GFX942-NEXT:    s_waitcnt vmcnt(0)5755; GFX942-NEXT:    s_setpc_b64 s[30:31]5756  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5757  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5758  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 5>5759  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165760  ret void5761}5762 5763define void @v_shuffle_v3p3_v4p3__7_6_5(ptr addrspace(1) inreg %ptr) {5764; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_5:5765; GFX900:       ; %bb.0:5766; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5767; GFX900-NEXT:    v_mov_b32_e32 v6, 05768; GFX900-NEXT:    ;;#ASMSTART5769; GFX900-NEXT:    ; def v[0:3]5770; GFX900-NEXT:    ;;#ASMEND5771; GFX900-NEXT:    v_mov_b32_e32 v4, v25772; GFX900-NEXT:    v_mov_b32_e32 v5, v15773; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]5774; GFX900-NEXT:    s_waitcnt vmcnt(0)5775; GFX900-NEXT:    s_setpc_b64 s[30:31]5776;5777; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_5:5778; GFX90A:       ; %bb.0:5779; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5780; GFX90A-NEXT:    v_mov_b32_e32 v4, 05781; GFX90A-NEXT:    ;;#ASMSTART5782; GFX90A-NEXT:    ; def v[0:3]5783; GFX90A-NEXT:    ;;#ASMEND5784; GFX90A-NEXT:    v_mov_b32_e32 v6, v35785; GFX90A-NEXT:    v_mov_b32_e32 v7, v25786; GFX90A-NEXT:    v_mov_b32_e32 v8, v15787; GFX90A-NEXT:    global_store_dwordx3 v4, v[6:8], s[16:17]5788; GFX90A-NEXT:    s_waitcnt vmcnt(0)5789; GFX90A-NEXT:    s_setpc_b64 s[30:31]5790;5791; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_5:5792; GFX942:       ; %bb.0:5793; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5794; GFX942-NEXT:    v_mov_b32_e32 v4, 05795; GFX942-NEXT:    ;;#ASMSTART5796; GFX942-NEXT:    ; def v[0:3]5797; GFX942-NEXT:    ;;#ASMEND5798; GFX942-NEXT:    s_nop 05799; GFX942-NEXT:    v_mov_b32_e32 v6, v35800; GFX942-NEXT:    v_mov_b32_e32 v7, v25801; GFX942-NEXT:    v_mov_b32_e32 v8, v15802; GFX942-NEXT:    global_store_dwordx3 v4, v[6:8], s[0:1]5803; GFX942-NEXT:    s_waitcnt vmcnt(0)5804; GFX942-NEXT:    s_setpc_b64 s[30:31]5805  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5806  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5807  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 5>5808  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165809  ret void5810}5811 5812define void @v_shuffle_v3p3_v4p3__u_6_6(ptr addrspace(1) inreg %ptr) {5813; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_6_6:5814; GFX900:       ; %bb.0:5815; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5816; GFX900-NEXT:    ;;#ASMSTART5817; GFX900-NEXT:    ; def v[0:3]5818; GFX900-NEXT:    ;;#ASMEND5819; GFX900-NEXT:    v_mov_b32_e32 v4, 05820; GFX900-NEXT:    v_mov_b32_e32 v3, v25821; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]5822; GFX900-NEXT:    s_waitcnt vmcnt(0)5823; GFX900-NEXT:    s_setpc_b64 s[30:31]5824;5825; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_6_6:5826; GFX90A:       ; %bb.0:5827; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5828; GFX90A-NEXT:    ;;#ASMSTART5829; GFX90A-NEXT:    ; def v[0:3]5830; GFX90A-NEXT:    ;;#ASMEND5831; GFX90A-NEXT:    v_mov_b32_e32 v4, 05832; GFX90A-NEXT:    v_mov_b32_e32 v1, v25833; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]5834; GFX90A-NEXT:    s_waitcnt vmcnt(0)5835; GFX90A-NEXT:    s_setpc_b64 s[30:31]5836;5837; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_6_6:5838; GFX942:       ; %bb.0:5839; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5840; GFX942-NEXT:    ;;#ASMSTART5841; GFX942-NEXT:    ; def v[0:3]5842; GFX942-NEXT:    ;;#ASMEND5843; GFX942-NEXT:    v_mov_b32_e32 v4, 05844; GFX942-NEXT:    v_mov_b32_e32 v1, v25845; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]5846; GFX942-NEXT:    s_waitcnt vmcnt(0)5847; GFX942-NEXT:    s_setpc_b64 s[30:31]5848  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5849  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5850  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>5851  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165852  ret void5853}5854 5855define void @v_shuffle_v3p3_v4p3__0_6_6(ptr addrspace(1) inreg %ptr) {5856; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_6_6:5857; GFX900:       ; %bb.0:5858; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5859; GFX900-NEXT:    ;;#ASMSTART5860; GFX900-NEXT:    ; def v[0:3]5861; GFX900-NEXT:    ;;#ASMEND5862; GFX900-NEXT:    ;;#ASMSTART5863; GFX900-NEXT:    ; def v[1:4]5864; GFX900-NEXT:    ;;#ASMEND5865; GFX900-NEXT:    v_mov_b32_e32 v5, 05866; GFX900-NEXT:    v_mov_b32_e32 v1, v35867; GFX900-NEXT:    v_mov_b32_e32 v2, v35868; GFX900-NEXT:    global_store_dwordx3 v5, v[0:2], s[16:17]5869; GFX900-NEXT:    s_waitcnt vmcnt(0)5870; GFX900-NEXT:    s_setpc_b64 s[30:31]5871;5872; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_6_6:5873; GFX90A:       ; %bb.0:5874; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5875; GFX90A-NEXT:    ;;#ASMSTART5876; GFX90A-NEXT:    ; def v[0:3]5877; GFX90A-NEXT:    ;;#ASMEND5878; GFX90A-NEXT:    ;;#ASMSTART5879; GFX90A-NEXT:    ; def v[2:5]5880; GFX90A-NEXT:    ;;#ASMEND5881; GFX90A-NEXT:    v_mov_b32_e32 v6, 05882; GFX90A-NEXT:    v_mov_b32_e32 v1, v45883; GFX90A-NEXT:    v_mov_b32_e32 v2, v45884; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]5885; GFX90A-NEXT:    s_waitcnt vmcnt(0)5886; GFX90A-NEXT:    s_setpc_b64 s[30:31]5887;5888; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_6_6:5889; GFX942:       ; %bb.0:5890; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5891; GFX942-NEXT:    ;;#ASMSTART5892; GFX942-NEXT:    ; def v[0:3]5893; GFX942-NEXT:    ;;#ASMEND5894; GFX942-NEXT:    v_mov_b32_e32 v6, 05895; GFX942-NEXT:    ;;#ASMSTART5896; GFX942-NEXT:    ; def v[2:5]5897; GFX942-NEXT:    ;;#ASMEND5898; GFX942-NEXT:    s_nop 05899; GFX942-NEXT:    v_mov_b32_e32 v1, v45900; GFX942-NEXT:    v_mov_b32_e32 v2, v45901; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]5902; GFX942-NEXT:    s_waitcnt vmcnt(0)5903; GFX942-NEXT:    s_setpc_b64 s[30:31]5904  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5905  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5906  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 6, i32 6>5907  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165908  ret void5909}5910 5911define void @v_shuffle_v3p3_v4p3__1_6_6(ptr addrspace(1) inreg %ptr) {5912; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_6_6:5913; GFX900:       ; %bb.0:5914; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5915; GFX900-NEXT:    ;;#ASMSTART5916; GFX900-NEXT:    ; def v[0:3]5917; GFX900-NEXT:    ;;#ASMEND5918; GFX900-NEXT:    ;;#ASMSTART5919; GFX900-NEXT:    ; def v[2:5]5920; GFX900-NEXT:    ;;#ASMEND5921; GFX900-NEXT:    v_mov_b32_e32 v6, 05922; GFX900-NEXT:    v_mov_b32_e32 v2, v45923; GFX900-NEXT:    v_mov_b32_e32 v3, v45924; GFX900-NEXT:    global_store_dwordx3 v6, v[1:3], s[16:17]5925; GFX900-NEXT:    s_waitcnt vmcnt(0)5926; GFX900-NEXT:    s_setpc_b64 s[30:31]5927;5928; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_6_6:5929; GFX90A:       ; %bb.0:5930; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5931; GFX90A-NEXT:    ;;#ASMSTART5932; GFX90A-NEXT:    ; def v[0:3]5933; GFX90A-NEXT:    ;;#ASMEND5934; GFX90A-NEXT:    ;;#ASMSTART5935; GFX90A-NEXT:    ; def v[2:5]5936; GFX90A-NEXT:    ;;#ASMEND5937; GFX90A-NEXT:    v_mov_b32_e32 v6, 05938; GFX90A-NEXT:    v_mov_b32_e32 v2, v15939; GFX90A-NEXT:    v_mov_b32_e32 v3, v45940; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]5941; GFX90A-NEXT:    s_waitcnt vmcnt(0)5942; GFX90A-NEXT:    s_setpc_b64 s[30:31]5943;5944; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_6_6:5945; GFX942:       ; %bb.0:5946; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5947; GFX942-NEXT:    ;;#ASMSTART5948; GFX942-NEXT:    ; def v[0:3]5949; GFX942-NEXT:    ;;#ASMEND5950; GFX942-NEXT:    v_mov_b32_e32 v6, 05951; GFX942-NEXT:    ;;#ASMSTART5952; GFX942-NEXT:    ; def v[2:5]5953; GFX942-NEXT:    ;;#ASMEND5954; GFX942-NEXT:    s_nop 05955; GFX942-NEXT:    v_mov_b32_e32 v2, v15956; GFX942-NEXT:    v_mov_b32_e32 v3, v45957; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]5958; GFX942-NEXT:    s_waitcnt vmcnt(0)5959; GFX942-NEXT:    s_setpc_b64 s[30:31]5960  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5961  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()5962  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 6, i32 6>5963  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 165964  ret void5965}5966 5967define void @v_shuffle_v3p3_v4p3__2_6_6(ptr addrspace(1) inreg %ptr) {5968; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_6_6:5969; GFX900:       ; %bb.0:5970; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5971; GFX900-NEXT:    ;;#ASMSTART5972; GFX900-NEXT:    ; def v[0:3]5973; GFX900-NEXT:    ;;#ASMEND5974; GFX900-NEXT:    ;;#ASMSTART5975; GFX900-NEXT:    ; def v[3:6]5976; GFX900-NEXT:    ;;#ASMEND5977; GFX900-NEXT:    v_mov_b32_e32 v7, 05978; GFX900-NEXT:    v_mov_b32_e32 v3, v55979; GFX900-NEXT:    v_mov_b32_e32 v4, v55980; GFX900-NEXT:    global_store_dwordx3 v7, v[2:4], s[16:17]5981; GFX900-NEXT:    s_waitcnt vmcnt(0)5982; GFX900-NEXT:    s_setpc_b64 s[30:31]5983;5984; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_6_6:5985; GFX90A:       ; %bb.0:5986; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5987; GFX90A-NEXT:    ;;#ASMSTART5988; GFX90A-NEXT:    ; def v[0:3]5989; GFX90A-NEXT:    ;;#ASMEND5990; GFX90A-NEXT:    ;;#ASMSTART5991; GFX90A-NEXT:    ; def v[4:7]5992; GFX90A-NEXT:    ;;#ASMEND5993; GFX90A-NEXT:    v_mov_b32_e32 v8, 05994; GFX90A-NEXT:    v_mov_b32_e32 v3, v65995; GFX90A-NEXT:    v_mov_b32_e32 v4, v65996; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]5997; GFX90A-NEXT:    s_waitcnt vmcnt(0)5998; GFX90A-NEXT:    s_setpc_b64 s[30:31]5999;6000; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_6_6:6001; GFX942:       ; %bb.0:6002; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6003; GFX942-NEXT:    ;;#ASMSTART6004; GFX942-NEXT:    ; def v[0:3]6005; GFX942-NEXT:    ;;#ASMEND6006; GFX942-NEXT:    ;;#ASMSTART6007; GFX942-NEXT:    ; def v[4:7]6008; GFX942-NEXT:    ;;#ASMEND6009; GFX942-NEXT:    v_mov_b32_e32 v8, 06010; GFX942-NEXT:    v_mov_b32_e32 v3, v66011; GFX942-NEXT:    v_mov_b32_e32 v4, v66012; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]6013; GFX942-NEXT:    s_waitcnt vmcnt(0)6014; GFX942-NEXT:    s_setpc_b64 s[30:31]6015  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6016  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6017  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 6, i32 6>6018  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166019  ret void6020}6021 6022define void @v_shuffle_v3p3_v4p3__3_6_6(ptr addrspace(1) inreg %ptr) {6023; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_6_6:6024; GFX900:       ; %bb.0:6025; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6026; GFX900-NEXT:    ;;#ASMSTART6027; GFX900-NEXT:    ; def v[4:7]6028; GFX900-NEXT:    ;;#ASMEND6029; GFX900-NEXT:    v_mov_b32_e32 v8, 06030; GFX900-NEXT:    v_mov_b32_e32 v4, v66031; GFX900-NEXT:    v_mov_b32_e32 v5, v66032; GFX900-NEXT:    ;;#ASMSTART6033; GFX900-NEXT:    ; def v[0:3]6034; GFX900-NEXT:    ;;#ASMEND6035; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]6036; GFX900-NEXT:    s_waitcnt vmcnt(0)6037; GFX900-NEXT:    s_setpc_b64 s[30:31]6038;6039; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_6_6:6040; GFX90A:       ; %bb.0:6041; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6042; GFX90A-NEXT:    ;;#ASMSTART6043; GFX90A-NEXT:    ; def v[4:7]6044; GFX90A-NEXT:    ;;#ASMEND6045; GFX90A-NEXT:    v_mov_b32_e32 v8, 06046; GFX90A-NEXT:    ;;#ASMSTART6047; GFX90A-NEXT:    ; def v[0:3]6048; GFX90A-NEXT:    ;;#ASMEND6049; GFX90A-NEXT:    v_mov_b32_e32 v4, v36050; GFX90A-NEXT:    v_mov_b32_e32 v5, v66051; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]6052; GFX90A-NEXT:    s_waitcnt vmcnt(0)6053; GFX90A-NEXT:    s_setpc_b64 s[30:31]6054;6055; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_6_6:6056; GFX942:       ; %bb.0:6057; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6058; GFX942-NEXT:    ;;#ASMSTART6059; GFX942-NEXT:    ; def v[4:7]6060; GFX942-NEXT:    ;;#ASMEND6061; GFX942-NEXT:    v_mov_b32_e32 v8, 06062; GFX942-NEXT:    ;;#ASMSTART6063; GFX942-NEXT:    ; def v[0:3]6064; GFX942-NEXT:    ;;#ASMEND6065; GFX942-NEXT:    v_mov_b32_e32 v5, v66066; GFX942-NEXT:    v_mov_b32_e32 v4, v36067; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]6068; GFX942-NEXT:    s_waitcnt vmcnt(0)6069; GFX942-NEXT:    s_setpc_b64 s[30:31]6070  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6071  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6072  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 6, i32 6>6073  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166074  ret void6075}6076 6077define void @v_shuffle_v3p3_v4p3__4_6_6(ptr addrspace(1) inreg %ptr) {6078; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_6_6:6079; GFX900:       ; %bb.0:6080; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6081; GFX900-NEXT:    ;;#ASMSTART6082; GFX900-NEXT:    ; def v[0:3]6083; GFX900-NEXT:    ;;#ASMEND6084; GFX900-NEXT:    v_mov_b32_e32 v4, 06085; GFX900-NEXT:    v_mov_b32_e32 v1, v26086; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6087; GFX900-NEXT:    s_waitcnt vmcnt(0)6088; GFX900-NEXT:    s_setpc_b64 s[30:31]6089;6090; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_6_6:6091; GFX90A:       ; %bb.0:6092; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6093; GFX90A-NEXT:    ;;#ASMSTART6094; GFX90A-NEXT:    ; def v[0:3]6095; GFX90A-NEXT:    ;;#ASMEND6096; GFX90A-NEXT:    v_mov_b32_e32 v4, 06097; GFX90A-NEXT:    v_mov_b32_e32 v1, v26098; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6099; GFX90A-NEXT:    s_waitcnt vmcnt(0)6100; GFX90A-NEXT:    s_setpc_b64 s[30:31]6101;6102; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_6_6:6103; GFX942:       ; %bb.0:6104; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6105; GFX942-NEXT:    ;;#ASMSTART6106; GFX942-NEXT:    ; def v[0:3]6107; GFX942-NEXT:    ;;#ASMEND6108; GFX942-NEXT:    v_mov_b32_e32 v4, 06109; GFX942-NEXT:    v_mov_b32_e32 v1, v26110; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6111; GFX942-NEXT:    s_waitcnt vmcnt(0)6112; GFX942-NEXT:    s_setpc_b64 s[30:31]6113  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6114  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6115  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 6, i32 6>6116  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166117  ret void6118}6119 6120define void @v_shuffle_v3p3_v4p3__5_6_6(ptr addrspace(1) inreg %ptr) {6121; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_6_6:6122; GFX900:       ; %bb.0:6123; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6124; GFX900-NEXT:    ;;#ASMSTART6125; GFX900-NEXT:    ; def v[0:3]6126; GFX900-NEXT:    ;;#ASMEND6127; GFX900-NEXT:    v_mov_b32_e32 v4, 06128; GFX900-NEXT:    v_mov_b32_e32 v3, v26129; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]6130; GFX900-NEXT:    s_waitcnt vmcnt(0)6131; GFX900-NEXT:    s_setpc_b64 s[30:31]6132;6133; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_6_6:6134; GFX90A:       ; %bb.0:6135; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6136; GFX90A-NEXT:    ;;#ASMSTART6137; GFX90A-NEXT:    ; def v[0:3]6138; GFX90A-NEXT:    ;;#ASMEND6139; GFX90A-NEXT:    v_mov_b32_e32 v4, 06140; GFX90A-NEXT:    v_mov_b32_e32 v0, v16141; GFX90A-NEXT:    v_mov_b32_e32 v1, v26142; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6143; GFX90A-NEXT:    s_waitcnt vmcnt(0)6144; GFX90A-NEXT:    s_setpc_b64 s[30:31]6145;6146; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_6_6:6147; GFX942:       ; %bb.0:6148; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6149; GFX942-NEXT:    ;;#ASMSTART6150; GFX942-NEXT:    ; def v[0:3]6151; GFX942-NEXT:    ;;#ASMEND6152; GFX942-NEXT:    v_mov_b32_e32 v4, 06153; GFX942-NEXT:    v_mov_b32_e32 v0, v16154; GFX942-NEXT:    v_mov_b32_e32 v1, v26155; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6156; GFX942-NEXT:    s_waitcnt vmcnt(0)6157; GFX942-NEXT:    s_setpc_b64 s[30:31]6158  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6159  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6160  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 6, i32 6>6161  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166162  ret void6163}6164 6165define void @v_shuffle_v3p3_v4p3__6_6_6(ptr addrspace(1) inreg %ptr) {6166; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_6_6:6167; GFX900:       ; %bb.0:6168; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6169; GFX900-NEXT:    ;;#ASMSTART6170; GFX900-NEXT:    ; def v[0:3]6171; GFX900-NEXT:    ;;#ASMEND6172; GFX900-NEXT:    v_mov_b32_e32 v5, 06173; GFX900-NEXT:    v_mov_b32_e32 v3, v26174; GFX900-NEXT:    v_mov_b32_e32 v4, v26175; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6176; GFX900-NEXT:    s_waitcnt vmcnt(0)6177; GFX900-NEXT:    s_setpc_b64 s[30:31]6178;6179; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_6_6:6180; GFX90A:       ; %bb.0:6181; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6182; GFX90A-NEXT:    ;;#ASMSTART6183; GFX90A-NEXT:    ; def v[0:3]6184; GFX90A-NEXT:    ;;#ASMEND6185; GFX90A-NEXT:    v_mov_b32_e32 v5, 06186; GFX90A-NEXT:    v_mov_b32_e32 v3, v26187; GFX90A-NEXT:    v_mov_b32_e32 v4, v26188; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6189; GFX90A-NEXT:    s_waitcnt vmcnt(0)6190; GFX90A-NEXT:    s_setpc_b64 s[30:31]6191;6192; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_6_6:6193; GFX942:       ; %bb.0:6194; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6195; GFX942-NEXT:    ;;#ASMSTART6196; GFX942-NEXT:    ; def v[0:3]6197; GFX942-NEXT:    ;;#ASMEND6198; GFX942-NEXT:    v_mov_b32_e32 v5, 06199; GFX942-NEXT:    v_mov_b32_e32 v3, v26200; GFX942-NEXT:    v_mov_b32_e32 v4, v26201; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]6202; GFX942-NEXT:    s_waitcnt vmcnt(0)6203; GFX942-NEXT:    s_setpc_b64 s[30:31]6204  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6205  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6206  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 6, i32 6>6207  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166208  ret void6209}6210 6211define void @v_shuffle_v3p3_v4p3__7_6_6(ptr addrspace(1) inreg %ptr) {6212; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_6:6213; GFX900:       ; %bb.0:6214; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6215; GFX900-NEXT:    v_mov_b32_e32 v6, 06216; GFX900-NEXT:    ;;#ASMSTART6217; GFX900-NEXT:    ; def v[0:3]6218; GFX900-NEXT:    ;;#ASMEND6219; GFX900-NEXT:    v_mov_b32_e32 v4, v26220; GFX900-NEXT:    v_mov_b32_e32 v5, v26221; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]6222; GFX900-NEXT:    s_waitcnt vmcnt(0)6223; GFX900-NEXT:    s_setpc_b64 s[30:31]6224;6225; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_6:6226; GFX90A:       ; %bb.0:6227; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6228; GFX90A-NEXT:    ;;#ASMSTART6229; GFX90A-NEXT:    ; def v[0:3]6230; GFX90A-NEXT:    ;;#ASMEND6231; GFX90A-NEXT:    v_mov_b32_e32 v4, 06232; GFX90A-NEXT:    v_mov_b32_e32 v0, v36233; GFX90A-NEXT:    v_mov_b32_e32 v1, v26234; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6235; GFX90A-NEXT:    s_waitcnt vmcnt(0)6236; GFX90A-NEXT:    s_setpc_b64 s[30:31]6237;6238; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_6:6239; GFX942:       ; %bb.0:6240; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6241; GFX942-NEXT:    ;;#ASMSTART6242; GFX942-NEXT:    ; def v[0:3]6243; GFX942-NEXT:    ;;#ASMEND6244; GFX942-NEXT:    v_mov_b32_e32 v4, 06245; GFX942-NEXT:    v_mov_b32_e32 v0, v36246; GFX942-NEXT:    v_mov_b32_e32 v1, v26247; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6248; GFX942-NEXT:    s_waitcnt vmcnt(0)6249; GFX942-NEXT:    s_setpc_b64 s[30:31]6250  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6251  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6252  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 6>6253  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166254  ret void6255}6256 6257define void @v_shuffle_v3p3_v4p3__7_u_6(ptr addrspace(1) inreg %ptr) {6258; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_6:6259; GFX900:       ; %bb.0:6260; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6261; GFX900-NEXT:    v_mov_b32_e32 v4, 06262; GFX900-NEXT:    ;;#ASMSTART6263; GFX900-NEXT:    ; def v[0:3]6264; GFX900-NEXT:    ;;#ASMEND6265; GFX900-NEXT:    v_mov_b32_e32 v5, v26266; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]6267; GFX900-NEXT:    s_waitcnt vmcnt(0)6268; GFX900-NEXT:    s_setpc_b64 s[30:31]6269;6270; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_6:6271; GFX90A:       ; %bb.0:6272; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6273; GFX90A-NEXT:    ;;#ASMSTART6274; GFX90A-NEXT:    ; def v[0:3]6275; GFX90A-NEXT:    ;;#ASMEND6276; GFX90A-NEXT:    v_mov_b32_e32 v4, 06277; GFX90A-NEXT:    v_mov_b32_e32 v0, v36278; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6279; GFX90A-NEXT:    s_waitcnt vmcnt(0)6280; GFX90A-NEXT:    s_setpc_b64 s[30:31]6281;6282; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_6:6283; GFX942:       ; %bb.0:6284; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6285; GFX942-NEXT:    ;;#ASMSTART6286; GFX942-NEXT:    ; def v[0:3]6287; GFX942-NEXT:    ;;#ASMEND6288; GFX942-NEXT:    v_mov_b32_e32 v4, 06289; GFX942-NEXT:    v_mov_b32_e32 v0, v36290; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6291; GFX942-NEXT:    s_waitcnt vmcnt(0)6292; GFX942-NEXT:    s_setpc_b64 s[30:31]6293  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6294  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6295  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>6296  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166297  ret void6298}6299 6300define void @v_shuffle_v3p3_v4p3__7_0_6(ptr addrspace(1) inreg %ptr) {6301; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_6:6302; GFX900:       ; %bb.0:6303; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6304; GFX900-NEXT:    ;;#ASMSTART6305; GFX900-NEXT:    ; def v[4:7]6306; GFX900-NEXT:    ;;#ASMEND6307; GFX900-NEXT:    v_mov_b32_e32 v8, 06308; GFX900-NEXT:    ;;#ASMSTART6309; GFX900-NEXT:    ; def v[0:3]6310; GFX900-NEXT:    ;;#ASMEND6311; GFX900-NEXT:    v_mov_b32_e32 v5, v26312; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]6313; GFX900-NEXT:    s_waitcnt vmcnt(0)6314; GFX900-NEXT:    s_setpc_b64 s[30:31]6315;6316; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_6:6317; GFX90A:       ; %bb.0:6318; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6319; GFX90A-NEXT:    ;;#ASMSTART6320; GFX90A-NEXT:    ; def v[0:3]6321; GFX90A-NEXT:    ;;#ASMEND6322; GFX90A-NEXT:    ;;#ASMSTART6323; GFX90A-NEXT:    ; def v[2:5]6324; GFX90A-NEXT:    ;;#ASMEND6325; GFX90A-NEXT:    v_mov_b32_e32 v6, 06326; GFX90A-NEXT:    v_mov_b32_e32 v2, v56327; GFX90A-NEXT:    v_mov_b32_e32 v3, v06328; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]6329; GFX90A-NEXT:    s_waitcnt vmcnt(0)6330; GFX90A-NEXT:    s_setpc_b64 s[30:31]6331;6332; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_6:6333; GFX942:       ; %bb.0:6334; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6335; GFX942-NEXT:    ;;#ASMSTART6336; GFX942-NEXT:    ; def v[0:3]6337; GFX942-NEXT:    ;;#ASMEND6338; GFX942-NEXT:    v_mov_b32_e32 v6, 06339; GFX942-NEXT:    ;;#ASMSTART6340; GFX942-NEXT:    ; def v[2:5]6341; GFX942-NEXT:    ;;#ASMEND6342; GFX942-NEXT:    s_nop 06343; GFX942-NEXT:    v_mov_b32_e32 v2, v56344; GFX942-NEXT:    v_mov_b32_e32 v3, v06345; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]6346; GFX942-NEXT:    s_waitcnt vmcnt(0)6347; GFX942-NEXT:    s_setpc_b64 s[30:31]6348  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6349  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6350  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 6>6351  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166352  ret void6353}6354 6355define void @v_shuffle_v3p3_v4p3__7_1_6(ptr addrspace(1) inreg %ptr) {6356; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_6:6357; GFX900:       ; %bb.0:6358; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6359; GFX900-NEXT:    ;;#ASMSTART6360; GFX900-NEXT:    ; def v[3:6]6361; GFX900-NEXT:    ;;#ASMEND6362; GFX900-NEXT:    v_mov_b32_e32 v7, 06363; GFX900-NEXT:    ;;#ASMSTART6364; GFX900-NEXT:    ; def v[0:3]6365; GFX900-NEXT:    ;;#ASMEND6366; GFX900-NEXT:    v_mov_b32_e32 v5, v26367; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]6368; GFX900-NEXT:    s_waitcnt vmcnt(0)6369; GFX900-NEXT:    s_setpc_b64 s[30:31]6370;6371; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_6:6372; GFX90A:       ; %bb.0:6373; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6374; GFX90A-NEXT:    ;;#ASMSTART6375; GFX90A-NEXT:    ; def v[0:3]6376; GFX90A-NEXT:    ;;#ASMEND6377; GFX90A-NEXT:    ;;#ASMSTART6378; GFX90A-NEXT:    ; def v[2:5]6379; GFX90A-NEXT:    ;;#ASMEND6380; GFX90A-NEXT:    v_mov_b32_e32 v6, 06381; GFX90A-NEXT:    v_mov_b32_e32 v0, v56382; GFX90A-NEXT:    v_mov_b32_e32 v2, v46383; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]6384; GFX90A-NEXT:    s_waitcnt vmcnt(0)6385; GFX90A-NEXT:    s_setpc_b64 s[30:31]6386;6387; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_6:6388; GFX942:       ; %bb.0:6389; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6390; GFX942-NEXT:    ;;#ASMSTART6391; GFX942-NEXT:    ; def v[0:3]6392; GFX942-NEXT:    ;;#ASMEND6393; GFX942-NEXT:    v_mov_b32_e32 v6, 06394; GFX942-NEXT:    ;;#ASMSTART6395; GFX942-NEXT:    ; def v[2:5]6396; GFX942-NEXT:    ;;#ASMEND6397; GFX942-NEXT:    s_nop 06398; GFX942-NEXT:    v_mov_b32_e32 v0, v56399; GFX942-NEXT:    v_mov_b32_e32 v2, v46400; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]6401; GFX942-NEXT:    s_waitcnt vmcnt(0)6402; GFX942-NEXT:    s_setpc_b64 s[30:31]6403  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6404  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6405  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 6>6406  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166407  ret void6408}6409 6410define void @v_shuffle_v3p3_v4p3__7_2_6(ptr addrspace(1) inreg %ptr) {6411; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_6:6412; GFX900:       ; %bb.0:6413; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6414; GFX900-NEXT:    ;;#ASMSTART6415; GFX900-NEXT:    ; def v[2:5]6416; GFX900-NEXT:    ;;#ASMEND6417; GFX900-NEXT:    v_mov_b32_e32 v6, 06418; GFX900-NEXT:    ;;#ASMSTART6419; GFX900-NEXT:    ; def v[0:3]6420; GFX900-NEXT:    ;;#ASMEND6421; GFX900-NEXT:    v_mov_b32_e32 v5, v26422; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]6423; GFX900-NEXT:    s_waitcnt vmcnt(0)6424; GFX900-NEXT:    s_setpc_b64 s[30:31]6425;6426; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_6:6427; GFX90A:       ; %bb.0:6428; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6429; GFX90A-NEXT:    ;;#ASMSTART6430; GFX90A-NEXT:    ; def v[4:7]6431; GFX90A-NEXT:    ;;#ASMEND6432; GFX90A-NEXT:    v_mov_b32_e32 v8, 06433; GFX90A-NEXT:    ;;#ASMSTART6434; GFX90A-NEXT:    ; def v[0:3]6435; GFX90A-NEXT:    ;;#ASMEND6436; GFX90A-NEXT:    v_mov_b32_e32 v4, v76437; GFX90A-NEXT:    v_mov_b32_e32 v5, v26438; GFX90A-NEXT:    global_store_dwordx3 v8, v[4:6], s[16:17]6439; GFX90A-NEXT:    s_waitcnt vmcnt(0)6440; GFX90A-NEXT:    s_setpc_b64 s[30:31]6441;6442; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_6:6443; GFX942:       ; %bb.0:6444; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6445; GFX942-NEXT:    ;;#ASMSTART6446; GFX942-NEXT:    ; def v[4:7]6447; GFX942-NEXT:    ;;#ASMEND6448; GFX942-NEXT:    v_mov_b32_e32 v8, 06449; GFX942-NEXT:    ;;#ASMSTART6450; GFX942-NEXT:    ; def v[0:3]6451; GFX942-NEXT:    ;;#ASMEND6452; GFX942-NEXT:    v_mov_b32_e32 v4, v76453; GFX942-NEXT:    v_mov_b32_e32 v5, v26454; GFX942-NEXT:    global_store_dwordx3 v8, v[4:6], s[0:1]6455; GFX942-NEXT:    s_waitcnt vmcnt(0)6456; GFX942-NEXT:    s_setpc_b64 s[30:31]6457  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6458  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6459  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 6>6460  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166461  ret void6462}6463 6464define void @v_shuffle_v3p3_v4p3__7_3_6(ptr addrspace(1) inreg %ptr) {6465; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_6:6466; GFX900:       ; %bb.0:6467; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6468; GFX900-NEXT:    ;;#ASMSTART6469; GFX900-NEXT:    ; def v[1:4]6470; GFX900-NEXT:    ;;#ASMEND6471; GFX900-NEXT:    v_mov_b32_e32 v6, 06472; GFX900-NEXT:    ;;#ASMSTART6473; GFX900-NEXT:    ; def v[0:3]6474; GFX900-NEXT:    ;;#ASMEND6475; GFX900-NEXT:    v_mov_b32_e32 v5, v26476; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]6477; GFX900-NEXT:    s_waitcnt vmcnt(0)6478; GFX900-NEXT:    s_setpc_b64 s[30:31]6479;6480; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_6:6481; GFX90A:       ; %bb.0:6482; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6483; GFX90A-NEXT:    ;;#ASMSTART6484; GFX90A-NEXT:    ; def v[0:3]6485; GFX90A-NEXT:    ;;#ASMEND6486; GFX90A-NEXT:    ;;#ASMSTART6487; GFX90A-NEXT:    ; def v[4:7]6488; GFX90A-NEXT:    ;;#ASMEND6489; GFX90A-NEXT:    v_mov_b32_e32 v8, 06490; GFX90A-NEXT:    v_mov_b32_e32 v2, v76491; GFX90A-NEXT:    v_mov_b32_e32 v4, v66492; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]6493; GFX90A-NEXT:    s_waitcnt vmcnt(0)6494; GFX90A-NEXT:    s_setpc_b64 s[30:31]6495;6496; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_6:6497; GFX942:       ; %bb.0:6498; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6499; GFX942-NEXT:    ;;#ASMSTART6500; GFX942-NEXT:    ; def v[0:3]6501; GFX942-NEXT:    ;;#ASMEND6502; GFX942-NEXT:    ;;#ASMSTART6503; GFX942-NEXT:    ; def v[4:7]6504; GFX942-NEXT:    ;;#ASMEND6505; GFX942-NEXT:    v_mov_b32_e32 v8, 06506; GFX942-NEXT:    v_mov_b32_e32 v2, v76507; GFX942-NEXT:    v_mov_b32_e32 v4, v66508; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]6509; GFX942-NEXT:    s_waitcnt vmcnt(0)6510; GFX942-NEXT:    s_setpc_b64 s[30:31]6511  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6512  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6513  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 6>6514  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166515  ret void6516}6517 6518define void @v_shuffle_v3p3_v4p3__7_4_6(ptr addrspace(1) inreg %ptr) {6519; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_6:6520; GFX900:       ; %bb.0:6521; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6522; GFX900-NEXT:    v_mov_b32_e32 v6, 06523; GFX900-NEXT:    ;;#ASMSTART6524; GFX900-NEXT:    ; def v[0:3]6525; GFX900-NEXT:    ;;#ASMEND6526; GFX900-NEXT:    v_mov_b32_e32 v4, v06527; GFX900-NEXT:    v_mov_b32_e32 v5, v26528; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]6529; GFX900-NEXT:    s_waitcnt vmcnt(0)6530; GFX900-NEXT:    s_setpc_b64 s[30:31]6531;6532; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_6:6533; GFX90A:       ; %bb.0:6534; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6535; GFX90A-NEXT:    v_mov_b32_e32 v4, 06536; GFX90A-NEXT:    ;;#ASMSTART6537; GFX90A-NEXT:    ; def v[0:3]6538; GFX90A-NEXT:    ;;#ASMEND6539; GFX90A-NEXT:    v_mov_b32_e32 v6, v36540; GFX90A-NEXT:    v_mov_b32_e32 v7, v06541; GFX90A-NEXT:    v_mov_b32_e32 v8, v26542; GFX90A-NEXT:    global_store_dwordx3 v4, v[6:8], s[16:17]6543; GFX90A-NEXT:    s_waitcnt vmcnt(0)6544; GFX90A-NEXT:    s_setpc_b64 s[30:31]6545;6546; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_6:6547; GFX942:       ; %bb.0:6548; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6549; GFX942-NEXT:    v_mov_b32_e32 v4, 06550; GFX942-NEXT:    ;;#ASMSTART6551; GFX942-NEXT:    ; def v[0:3]6552; GFX942-NEXT:    ;;#ASMEND6553; GFX942-NEXT:    s_nop 06554; GFX942-NEXT:    v_mov_b32_e32 v6, v36555; GFX942-NEXT:    v_mov_b32_e32 v7, v06556; GFX942-NEXT:    v_mov_b32_e32 v8, v26557; GFX942-NEXT:    global_store_dwordx3 v4, v[6:8], s[0:1]6558; GFX942-NEXT:    s_waitcnt vmcnt(0)6559; GFX942-NEXT:    s_setpc_b64 s[30:31]6560  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6561  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6562  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 6>6563  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166564  ret void6565}6566 6567define void @v_shuffle_v3p3_v4p3__7_5_6(ptr addrspace(1) inreg %ptr) {6568; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_6:6569; GFX900:       ; %bb.0:6570; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6571; GFX900-NEXT:    v_mov_b32_e32 v6, 06572; GFX900-NEXT:    ;;#ASMSTART6573; GFX900-NEXT:    ; def v[0:3]6574; GFX900-NEXT:    ;;#ASMEND6575; GFX900-NEXT:    v_mov_b32_e32 v4, v16576; GFX900-NEXT:    v_mov_b32_e32 v5, v26577; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]6578; GFX900-NEXT:    s_waitcnt vmcnt(0)6579; GFX900-NEXT:    s_setpc_b64 s[30:31]6580;6581; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_6:6582; GFX90A:       ; %bb.0:6583; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6584; GFX90A-NEXT:    ;;#ASMSTART6585; GFX90A-NEXT:    ; def v[0:3]6586; GFX90A-NEXT:    ;;#ASMEND6587; GFX90A-NEXT:    v_mov_b32_e32 v4, 06588; GFX90A-NEXT:    v_mov_b32_e32 v0, v36589; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6590; GFX90A-NEXT:    s_waitcnt vmcnt(0)6591; GFX90A-NEXT:    s_setpc_b64 s[30:31]6592;6593; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_6:6594; GFX942:       ; %bb.0:6595; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6596; GFX942-NEXT:    ;;#ASMSTART6597; GFX942-NEXT:    ; def v[0:3]6598; GFX942-NEXT:    ;;#ASMEND6599; GFX942-NEXT:    v_mov_b32_e32 v4, 06600; GFX942-NEXT:    v_mov_b32_e32 v0, v36601; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6602; GFX942-NEXT:    s_waitcnt vmcnt(0)6603; GFX942-NEXT:    s_setpc_b64 s[30:31]6604  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6605  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6606  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 6>6607  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166608  ret void6609}6610 6611define void @v_shuffle_v3p3_v4p3__u_7_7(ptr addrspace(1) inreg %ptr) {6612; GFX900-LABEL: v_shuffle_v3p3_v4p3__u_7_7:6613; GFX900:       ; %bb.0:6614; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6615; GFX900-NEXT:    v_mov_b32_e32 v5, 06616; GFX900-NEXT:    ;;#ASMSTART6617; GFX900-NEXT:    ; def v[0:3]6618; GFX900-NEXT:    ;;#ASMEND6619; GFX900-NEXT:    v_mov_b32_e32 v4, v36620; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6621; GFX900-NEXT:    s_waitcnt vmcnt(0)6622; GFX900-NEXT:    s_setpc_b64 s[30:31]6623;6624; GFX90A-LABEL: v_shuffle_v3p3_v4p3__u_7_7:6625; GFX90A:       ; %bb.0:6626; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6627; GFX90A-NEXT:    v_mov_b32_e32 v5, 06628; GFX90A-NEXT:    ;;#ASMSTART6629; GFX90A-NEXT:    ; def v[0:3]6630; GFX90A-NEXT:    ;;#ASMEND6631; GFX90A-NEXT:    v_mov_b32_e32 v4, v36632; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6633; GFX90A-NEXT:    s_waitcnt vmcnt(0)6634; GFX90A-NEXT:    s_setpc_b64 s[30:31]6635;6636; GFX942-LABEL: v_shuffle_v3p3_v4p3__u_7_7:6637; GFX942:       ; %bb.0:6638; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6639; GFX942-NEXT:    v_mov_b32_e32 v5, 06640; GFX942-NEXT:    ;;#ASMSTART6641; GFX942-NEXT:    ; def v[0:3]6642; GFX942-NEXT:    ;;#ASMEND6643; GFX942-NEXT:    s_nop 06644; GFX942-NEXT:    v_mov_b32_e32 v4, v36645; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]6646; GFX942-NEXT:    s_waitcnt vmcnt(0)6647; GFX942-NEXT:    s_setpc_b64 s[30:31]6648  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6649  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6650  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>6651  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166652  ret void6653}6654 6655define void @v_shuffle_v3p3_v4p3__0_7_7(ptr addrspace(1) inreg %ptr) {6656; GFX900-LABEL: v_shuffle_v3p3_v4p3__0_7_7:6657; GFX900:       ; %bb.0:6658; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6659; GFX900-NEXT:    ;;#ASMSTART6660; GFX900-NEXT:    ; def v[0:3]6661; GFX900-NEXT:    ;;#ASMEND6662; GFX900-NEXT:    ;;#ASMSTART6663; GFX900-NEXT:    ; def v[1:4]6664; GFX900-NEXT:    ;;#ASMEND6665; GFX900-NEXT:    v_mov_b32_e32 v5, 06666; GFX900-NEXT:    v_mov_b32_e32 v1, v46667; GFX900-NEXT:    v_mov_b32_e32 v2, v46668; GFX900-NEXT:    global_store_dwordx3 v5, v[0:2], s[16:17]6669; GFX900-NEXT:    s_waitcnt vmcnt(0)6670; GFX900-NEXT:    s_setpc_b64 s[30:31]6671;6672; GFX90A-LABEL: v_shuffle_v3p3_v4p3__0_7_7:6673; GFX90A:       ; %bb.0:6674; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6675; GFX90A-NEXT:    ;;#ASMSTART6676; GFX90A-NEXT:    ; def v[0:3]6677; GFX90A-NEXT:    ;;#ASMEND6678; GFX90A-NEXT:    ;;#ASMSTART6679; GFX90A-NEXT:    ; def v[2:5]6680; GFX90A-NEXT:    ;;#ASMEND6681; GFX90A-NEXT:    v_mov_b32_e32 v6, 06682; GFX90A-NEXT:    v_mov_b32_e32 v1, v56683; GFX90A-NEXT:    v_mov_b32_e32 v2, v56684; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]6685; GFX90A-NEXT:    s_waitcnt vmcnt(0)6686; GFX90A-NEXT:    s_setpc_b64 s[30:31]6687;6688; GFX942-LABEL: v_shuffle_v3p3_v4p3__0_7_7:6689; GFX942:       ; %bb.0:6690; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6691; GFX942-NEXT:    ;;#ASMSTART6692; GFX942-NEXT:    ; def v[0:3]6693; GFX942-NEXT:    ;;#ASMEND6694; GFX942-NEXT:    v_mov_b32_e32 v6, 06695; GFX942-NEXT:    ;;#ASMSTART6696; GFX942-NEXT:    ; def v[2:5]6697; GFX942-NEXT:    ;;#ASMEND6698; GFX942-NEXT:    s_nop 06699; GFX942-NEXT:    v_mov_b32_e32 v1, v56700; GFX942-NEXT:    v_mov_b32_e32 v2, v56701; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]6702; GFX942-NEXT:    s_waitcnt vmcnt(0)6703; GFX942-NEXT:    s_setpc_b64 s[30:31]6704  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6705  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6706  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 7, i32 7>6707  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166708  ret void6709}6710 6711define void @v_shuffle_v3p3_v4p3__1_7_7(ptr addrspace(1) inreg %ptr) {6712; GFX900-LABEL: v_shuffle_v3p3_v4p3__1_7_7:6713; GFX900:       ; %bb.0:6714; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6715; GFX900-NEXT:    ;;#ASMSTART6716; GFX900-NEXT:    ; def v[0:3]6717; GFX900-NEXT:    ;;#ASMEND6718; GFX900-NEXT:    ;;#ASMSTART6719; GFX900-NEXT:    ; def v[2:5]6720; GFX900-NEXT:    ;;#ASMEND6721; GFX900-NEXT:    v_mov_b32_e32 v6, 06722; GFX900-NEXT:    v_mov_b32_e32 v2, v56723; GFX900-NEXT:    v_mov_b32_e32 v3, v56724; GFX900-NEXT:    global_store_dwordx3 v6, v[1:3], s[16:17]6725; GFX900-NEXT:    s_waitcnt vmcnt(0)6726; GFX900-NEXT:    s_setpc_b64 s[30:31]6727;6728; GFX90A-LABEL: v_shuffle_v3p3_v4p3__1_7_7:6729; GFX90A:       ; %bb.0:6730; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6731; GFX90A-NEXT:    ;;#ASMSTART6732; GFX90A-NEXT:    ; def v[4:7]6733; GFX90A-NEXT:    ;;#ASMEND6734; GFX90A-NEXT:    ;;#ASMSTART6735; GFX90A-NEXT:    ; def v[0:3]6736; GFX90A-NEXT:    ;;#ASMEND6737; GFX90A-NEXT:    v_mov_b32_e32 v8, 06738; GFX90A-NEXT:    v_mov_b32_e32 v2, v56739; GFX90A-NEXT:    v_mov_b32_e32 v4, v36740; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]6741; GFX90A-NEXT:    s_waitcnt vmcnt(0)6742; GFX90A-NEXT:    s_setpc_b64 s[30:31]6743;6744; GFX942-LABEL: v_shuffle_v3p3_v4p3__1_7_7:6745; GFX942:       ; %bb.0:6746; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6747; GFX942-NEXT:    ;;#ASMSTART6748; GFX942-NEXT:    ; def v[4:7]6749; GFX942-NEXT:    ;;#ASMEND6750; GFX942-NEXT:    ;;#ASMSTART6751; GFX942-NEXT:    ; def v[0:3]6752; GFX942-NEXT:    ;;#ASMEND6753; GFX942-NEXT:    v_mov_b32_e32 v8, 06754; GFX942-NEXT:    v_mov_b32_e32 v2, v56755; GFX942-NEXT:    v_mov_b32_e32 v4, v36756; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]6757; GFX942-NEXT:    s_waitcnt vmcnt(0)6758; GFX942-NEXT:    s_setpc_b64 s[30:31]6759  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6760  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6761  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 7, i32 7>6762  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166763  ret void6764}6765 6766define void @v_shuffle_v3p3_v4p3__2_7_7(ptr addrspace(1) inreg %ptr) {6767; GFX900-LABEL: v_shuffle_v3p3_v4p3__2_7_7:6768; GFX900:       ; %bb.0:6769; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6770; GFX900-NEXT:    ;;#ASMSTART6771; GFX900-NEXT:    ; def v[0:3]6772; GFX900-NEXT:    ;;#ASMEND6773; GFX900-NEXT:    ;;#ASMSTART6774; GFX900-NEXT:    ; def v[3:6]6775; GFX900-NEXT:    ;;#ASMEND6776; GFX900-NEXT:    v_mov_b32_e32 v7, 06777; GFX900-NEXT:    v_mov_b32_e32 v3, v66778; GFX900-NEXT:    v_mov_b32_e32 v4, v66779; GFX900-NEXT:    global_store_dwordx3 v7, v[2:4], s[16:17]6780; GFX900-NEXT:    s_waitcnt vmcnt(0)6781; GFX900-NEXT:    s_setpc_b64 s[30:31]6782;6783; GFX90A-LABEL: v_shuffle_v3p3_v4p3__2_7_7:6784; GFX90A:       ; %bb.0:6785; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6786; GFX90A-NEXT:    ;;#ASMSTART6787; GFX90A-NEXT:    ; def v[0:3]6788; GFX90A-NEXT:    ;;#ASMEND6789; GFX90A-NEXT:    ;;#ASMSTART6790; GFX90A-NEXT:    ; def v[4:7]6791; GFX90A-NEXT:    ;;#ASMEND6792; GFX90A-NEXT:    v_mov_b32_e32 v8, 06793; GFX90A-NEXT:    v_mov_b32_e32 v3, v76794; GFX90A-NEXT:    v_mov_b32_e32 v4, v76795; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]6796; GFX90A-NEXT:    s_waitcnt vmcnt(0)6797; GFX90A-NEXT:    s_setpc_b64 s[30:31]6798;6799; GFX942-LABEL: v_shuffle_v3p3_v4p3__2_7_7:6800; GFX942:       ; %bb.0:6801; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6802; GFX942-NEXT:    ;;#ASMSTART6803; GFX942-NEXT:    ; def v[0:3]6804; GFX942-NEXT:    ;;#ASMEND6805; GFX942-NEXT:    ;;#ASMSTART6806; GFX942-NEXT:    ; def v[4:7]6807; GFX942-NEXT:    ;;#ASMEND6808; GFX942-NEXT:    v_mov_b32_e32 v8, 06809; GFX942-NEXT:    v_mov_b32_e32 v3, v76810; GFX942-NEXT:    v_mov_b32_e32 v4, v76811; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]6812; GFX942-NEXT:    s_waitcnt vmcnt(0)6813; GFX942-NEXT:    s_setpc_b64 s[30:31]6814  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6815  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6816  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 7, i32 7>6817  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166818  ret void6819}6820 6821define void @v_shuffle_v3p3_v4p3__3_7_7(ptr addrspace(1) inreg %ptr) {6822; GFX900-LABEL: v_shuffle_v3p3_v4p3__3_7_7:6823; GFX900:       ; %bb.0:6824; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6825; GFX900-NEXT:    ;;#ASMSTART6826; GFX900-NEXT:    ; def v[4:7]6827; GFX900-NEXT:    ;;#ASMEND6828; GFX900-NEXT:    v_mov_b32_e32 v8, 06829; GFX900-NEXT:    v_mov_b32_e32 v4, v76830; GFX900-NEXT:    v_mov_b32_e32 v5, v76831; GFX900-NEXT:    ;;#ASMSTART6832; GFX900-NEXT:    ; def v[0:3]6833; GFX900-NEXT:    ;;#ASMEND6834; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]6835; GFX900-NEXT:    s_waitcnt vmcnt(0)6836; GFX900-NEXT:    s_setpc_b64 s[30:31]6837;6838; GFX90A-LABEL: v_shuffle_v3p3_v4p3__3_7_7:6839; GFX90A:       ; %bb.0:6840; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6841; GFX90A-NEXT:    ;;#ASMSTART6842; GFX90A-NEXT:    ; def v[2:5]6843; GFX90A-NEXT:    ;;#ASMEND6844; GFX90A-NEXT:    ;;#ASMSTART6845; GFX90A-NEXT:    ; def v[0:3]6846; GFX90A-NEXT:    ;;#ASMEND6847; GFX90A-NEXT:    v_mov_b32_e32 v6, 06848; GFX90A-NEXT:    v_mov_b32_e32 v2, v56849; GFX90A-NEXT:    v_mov_b32_e32 v4, v36850; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]6851; GFX90A-NEXT:    s_waitcnt vmcnt(0)6852; GFX90A-NEXT:    s_setpc_b64 s[30:31]6853;6854; GFX942-LABEL: v_shuffle_v3p3_v4p3__3_7_7:6855; GFX942:       ; %bb.0:6856; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6857; GFX942-NEXT:    ;;#ASMSTART6858; GFX942-NEXT:    ; def v[2:5]6859; GFX942-NEXT:    ;;#ASMEND6860; GFX942-NEXT:    v_mov_b32_e32 v6, 06861; GFX942-NEXT:    ;;#ASMSTART6862; GFX942-NEXT:    ; def v[0:3]6863; GFX942-NEXT:    ;;#ASMEND6864; GFX942-NEXT:    s_nop 06865; GFX942-NEXT:    v_mov_b32_e32 v2, v56866; GFX942-NEXT:    v_mov_b32_e32 v4, v36867; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]6868; GFX942-NEXT:    s_waitcnt vmcnt(0)6869; GFX942-NEXT:    s_setpc_b64 s[30:31]6870  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6871  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6872  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 7, i32 7>6873  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166874  ret void6875}6876 6877define void @v_shuffle_v3p3_v4p3__4_7_7(ptr addrspace(1) inreg %ptr) {6878; GFX900-LABEL: v_shuffle_v3p3_v4p3__4_7_7:6879; GFX900:       ; %bb.0:6880; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6881; GFX900-NEXT:    ;;#ASMSTART6882; GFX900-NEXT:    ; def v[0:3]6883; GFX900-NEXT:    ;;#ASMEND6884; GFX900-NEXT:    v_mov_b32_e32 v4, 06885; GFX900-NEXT:    v_mov_b32_e32 v1, v36886; GFX900-NEXT:    v_mov_b32_e32 v2, v36887; GFX900-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6888; GFX900-NEXT:    s_waitcnt vmcnt(0)6889; GFX900-NEXT:    s_setpc_b64 s[30:31]6890;6891; GFX90A-LABEL: v_shuffle_v3p3_v4p3__4_7_7:6892; GFX90A:       ; %bb.0:6893; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6894; GFX90A-NEXT:    ;;#ASMSTART6895; GFX90A-NEXT:    ; def v[0:3]6896; GFX90A-NEXT:    ;;#ASMEND6897; GFX90A-NEXT:    v_mov_b32_e32 v4, 06898; GFX90A-NEXT:    v_mov_b32_e32 v1, v36899; GFX90A-NEXT:    v_mov_b32_e32 v2, v36900; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]6901; GFX90A-NEXT:    s_waitcnt vmcnt(0)6902; GFX90A-NEXT:    s_setpc_b64 s[30:31]6903;6904; GFX942-LABEL: v_shuffle_v3p3_v4p3__4_7_7:6905; GFX942:       ; %bb.0:6906; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6907; GFX942-NEXT:    ;;#ASMSTART6908; GFX942-NEXT:    ; def v[0:3]6909; GFX942-NEXT:    ;;#ASMEND6910; GFX942-NEXT:    v_mov_b32_e32 v4, 06911; GFX942-NEXT:    v_mov_b32_e32 v1, v36912; GFX942-NEXT:    v_mov_b32_e32 v2, v36913; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]6914; GFX942-NEXT:    s_waitcnt vmcnt(0)6915; GFX942-NEXT:    s_setpc_b64 s[30:31]6916  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6917  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6918  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 7, i32 7>6919  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166920  ret void6921}6922 6923define void @v_shuffle_v3p3_v4p3__5_7_7(ptr addrspace(1) inreg %ptr) {6924; GFX900-LABEL: v_shuffle_v3p3_v4p3__5_7_7:6925; GFX900:       ; %bb.0:6926; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6927; GFX900-NEXT:    ;;#ASMSTART6928; GFX900-NEXT:    ; def v[0:3]6929; GFX900-NEXT:    ;;#ASMEND6930; GFX900-NEXT:    v_mov_b32_e32 v4, 06931; GFX900-NEXT:    v_mov_b32_e32 v2, v36932; GFX900-NEXT:    global_store_dwordx3 v4, v[1:3], s[16:17]6933; GFX900-NEXT:    s_waitcnt vmcnt(0)6934; GFX900-NEXT:    s_setpc_b64 s[30:31]6935;6936; GFX90A-LABEL: v_shuffle_v3p3_v4p3__5_7_7:6937; GFX90A:       ; %bb.0:6938; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6939; GFX90A-NEXT:    ;;#ASMSTART6940; GFX90A-NEXT:    ; def v[0:3]6941; GFX90A-NEXT:    ;;#ASMEND6942; GFX90A-NEXT:    v_mov_b32_e32 v5, 06943; GFX90A-NEXT:    v_mov_b32_e32 v2, v16944; GFX90A-NEXT:    v_mov_b32_e32 v4, v36945; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6946; GFX90A-NEXT:    s_waitcnt vmcnt(0)6947; GFX90A-NEXT:    s_setpc_b64 s[30:31]6948;6949; GFX942-LABEL: v_shuffle_v3p3_v4p3__5_7_7:6950; GFX942:       ; %bb.0:6951; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6952; GFX942-NEXT:    ;;#ASMSTART6953; GFX942-NEXT:    ; def v[0:3]6954; GFX942-NEXT:    ;;#ASMEND6955; GFX942-NEXT:    v_mov_b32_e32 v5, 06956; GFX942-NEXT:    v_mov_b32_e32 v2, v16957; GFX942-NEXT:    v_mov_b32_e32 v4, v36958; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]6959; GFX942-NEXT:    s_waitcnt vmcnt(0)6960; GFX942-NEXT:    s_setpc_b64 s[30:31]6961  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6962  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()6963  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 7, i32 7>6964  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 166965  ret void6966}6967 6968define void @v_shuffle_v3p3_v4p3__6_7_7(ptr addrspace(1) inreg %ptr) {6969; GFX900-LABEL: v_shuffle_v3p3_v4p3__6_7_7:6970; GFX900:       ; %bb.0:6971; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6972; GFX900-NEXT:    v_mov_b32_e32 v5, 06973; GFX900-NEXT:    ;;#ASMSTART6974; GFX900-NEXT:    ; def v[0:3]6975; GFX900-NEXT:    ;;#ASMEND6976; GFX900-NEXT:    v_mov_b32_e32 v4, v36977; GFX900-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6978; GFX900-NEXT:    s_waitcnt vmcnt(0)6979; GFX900-NEXT:    s_setpc_b64 s[30:31]6980;6981; GFX90A-LABEL: v_shuffle_v3p3_v4p3__6_7_7:6982; GFX90A:       ; %bb.0:6983; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6984; GFX90A-NEXT:    v_mov_b32_e32 v5, 06985; GFX90A-NEXT:    ;;#ASMSTART6986; GFX90A-NEXT:    ; def v[0:3]6987; GFX90A-NEXT:    ;;#ASMEND6988; GFX90A-NEXT:    v_mov_b32_e32 v4, v36989; GFX90A-NEXT:    global_store_dwordx3 v5, v[2:4], s[16:17]6990; GFX90A-NEXT:    s_waitcnt vmcnt(0)6991; GFX90A-NEXT:    s_setpc_b64 s[30:31]6992;6993; GFX942-LABEL: v_shuffle_v3p3_v4p3__6_7_7:6994; GFX942:       ; %bb.0:6995; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6996; GFX942-NEXT:    v_mov_b32_e32 v5, 06997; GFX942-NEXT:    ;;#ASMSTART6998; GFX942-NEXT:    ; def v[0:3]6999; GFX942-NEXT:    ;;#ASMEND7000; GFX942-NEXT:    s_nop 07001; GFX942-NEXT:    v_mov_b32_e32 v4, v37002; GFX942-NEXT:    global_store_dwordx3 v5, v[2:4], s[0:1]7003; GFX942-NEXT:    s_waitcnt vmcnt(0)7004; GFX942-NEXT:    s_setpc_b64 s[30:31]7005  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7006  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7007  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 7, i32 7>7008  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167009  ret void7010}7011 7012define void @v_shuffle_v3p3_v4p3__7_u_7(ptr addrspace(1) inreg %ptr) {7013; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_u_7:7014; GFX900:       ; %bb.0:7015; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7016; GFX900-NEXT:    v_mov_b32_e32 v4, 07017; GFX900-NEXT:    ;;#ASMSTART7018; GFX900-NEXT:    ; def v[0:3]7019; GFX900-NEXT:    ;;#ASMEND7020; GFX900-NEXT:    v_mov_b32_e32 v5, v37021; GFX900-NEXT:    global_store_dwordx3 v4, v[3:5], s[16:17]7022; GFX900-NEXT:    s_waitcnt vmcnt(0)7023; GFX900-NEXT:    s_setpc_b64 s[30:31]7024;7025; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_u_7:7026; GFX90A:       ; %bb.0:7027; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7028; GFX90A-NEXT:    ;;#ASMSTART7029; GFX90A-NEXT:    ; def v[0:3]7030; GFX90A-NEXT:    ;;#ASMEND7031; GFX90A-NEXT:    v_mov_b32_e32 v4, 07032; GFX90A-NEXT:    v_mov_b32_e32 v0, v37033; GFX90A-NEXT:    v_mov_b32_e32 v2, v37034; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]7035; GFX90A-NEXT:    s_waitcnt vmcnt(0)7036; GFX90A-NEXT:    s_setpc_b64 s[30:31]7037;7038; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_u_7:7039; GFX942:       ; %bb.0:7040; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7041; GFX942-NEXT:    ;;#ASMSTART7042; GFX942-NEXT:    ; def v[0:3]7043; GFX942-NEXT:    ;;#ASMEND7044; GFX942-NEXT:    v_mov_b32_e32 v4, 07045; GFX942-NEXT:    v_mov_b32_e32 v0, v37046; GFX942-NEXT:    v_mov_b32_e32 v2, v37047; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]7048; GFX942-NEXT:    s_waitcnt vmcnt(0)7049; GFX942-NEXT:    s_setpc_b64 s[30:31]7050  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7051  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7052  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>7053  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167054  ret void7055}7056 7057define void @v_shuffle_v3p3_v4p3__7_0_7(ptr addrspace(1) inreg %ptr) {7058; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_0_7:7059; GFX900:       ; %bb.0:7060; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7061; GFX900-NEXT:    ;;#ASMSTART7062; GFX900-NEXT:    ; def v[4:7]7063; GFX900-NEXT:    ;;#ASMEND7064; GFX900-NEXT:    v_mov_b32_e32 v8, 07065; GFX900-NEXT:    ;;#ASMSTART7066; GFX900-NEXT:    ; def v[0:3]7067; GFX900-NEXT:    ;;#ASMEND7068; GFX900-NEXT:    v_mov_b32_e32 v5, v37069; GFX900-NEXT:    global_store_dwordx3 v8, v[3:5], s[16:17]7070; GFX900-NEXT:    s_waitcnt vmcnt(0)7071; GFX900-NEXT:    s_setpc_b64 s[30:31]7072;7073; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_0_7:7074; GFX90A:       ; %bb.0:7075; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7076; GFX90A-NEXT:    ;;#ASMSTART7077; GFX90A-NEXT:    ; def v[0:3]7078; GFX90A-NEXT:    ;;#ASMEND7079; GFX90A-NEXT:    ;;#ASMSTART7080; GFX90A-NEXT:    ; def v[2:5]7081; GFX90A-NEXT:    ;;#ASMEND7082; GFX90A-NEXT:    v_mov_b32_e32 v6, 07083; GFX90A-NEXT:    v_mov_b32_e32 v2, v57084; GFX90A-NEXT:    v_mov_b32_e32 v3, v07085; GFX90A-NEXT:    v_mov_b32_e32 v4, v57086; GFX90A-NEXT:    global_store_dwordx3 v6, v[2:4], s[16:17]7087; GFX90A-NEXT:    s_waitcnt vmcnt(0)7088; GFX90A-NEXT:    s_setpc_b64 s[30:31]7089;7090; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_0_7:7091; GFX942:       ; %bb.0:7092; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7093; GFX942-NEXT:    ;;#ASMSTART7094; GFX942-NEXT:    ; def v[0:3]7095; GFX942-NEXT:    ;;#ASMEND7096; GFX942-NEXT:    v_mov_b32_e32 v6, 07097; GFX942-NEXT:    ;;#ASMSTART7098; GFX942-NEXT:    ; def v[2:5]7099; GFX942-NEXT:    ;;#ASMEND7100; GFX942-NEXT:    s_nop 07101; GFX942-NEXT:    v_mov_b32_e32 v2, v57102; GFX942-NEXT:    v_mov_b32_e32 v3, v07103; GFX942-NEXT:    v_mov_b32_e32 v4, v57104; GFX942-NEXT:    global_store_dwordx3 v6, v[2:4], s[0:1]7105; GFX942-NEXT:    s_waitcnt vmcnt(0)7106; GFX942-NEXT:    s_setpc_b64 s[30:31]7107  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7108  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7109  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 7>7110  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167111  ret void7112}7113 7114define void @v_shuffle_v3p3_v4p3__7_1_7(ptr addrspace(1) inreg %ptr) {7115; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_1_7:7116; GFX900:       ; %bb.0:7117; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7118; GFX900-NEXT:    ;;#ASMSTART7119; GFX900-NEXT:    ; def v[3:6]7120; GFX900-NEXT:    ;;#ASMEND7121; GFX900-NEXT:    v_mov_b32_e32 v7, 07122; GFX900-NEXT:    ;;#ASMSTART7123; GFX900-NEXT:    ; def v[0:3]7124; GFX900-NEXT:    ;;#ASMEND7125; GFX900-NEXT:    v_mov_b32_e32 v5, v37126; GFX900-NEXT:    global_store_dwordx3 v7, v[3:5], s[16:17]7127; GFX900-NEXT:    s_waitcnt vmcnt(0)7128; GFX900-NEXT:    s_setpc_b64 s[30:31]7129;7130; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_1_7:7131; GFX90A:       ; %bb.0:7132; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7133; GFX90A-NEXT:    ;;#ASMSTART7134; GFX90A-NEXT:    ; def v[0:3]7135; GFX90A-NEXT:    ;;#ASMEND7136; GFX90A-NEXT:    ;;#ASMSTART7137; GFX90A-NEXT:    ; def v[2:5]7138; GFX90A-NEXT:    ;;#ASMEND7139; GFX90A-NEXT:    v_mov_b32_e32 v6, 07140; GFX90A-NEXT:    v_mov_b32_e32 v0, v57141; GFX90A-NEXT:    v_mov_b32_e32 v2, v57142; GFX90A-NEXT:    global_store_dwordx3 v6, v[0:2], s[16:17]7143; GFX90A-NEXT:    s_waitcnt vmcnt(0)7144; GFX90A-NEXT:    s_setpc_b64 s[30:31]7145;7146; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_1_7:7147; GFX942:       ; %bb.0:7148; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7149; GFX942-NEXT:    ;;#ASMSTART7150; GFX942-NEXT:    ; def v[0:3]7151; GFX942-NEXT:    ;;#ASMEND7152; GFX942-NEXT:    v_mov_b32_e32 v6, 07153; GFX942-NEXT:    ;;#ASMSTART7154; GFX942-NEXT:    ; def v[2:5]7155; GFX942-NEXT:    ;;#ASMEND7156; GFX942-NEXT:    s_nop 07157; GFX942-NEXT:    v_mov_b32_e32 v0, v57158; GFX942-NEXT:    v_mov_b32_e32 v2, v57159; GFX942-NEXT:    global_store_dwordx3 v6, v[0:2], s[0:1]7160; GFX942-NEXT:    s_waitcnt vmcnt(0)7161; GFX942-NEXT:    s_setpc_b64 s[30:31]7162  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7163  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7164  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 7>7165  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167166  ret void7167}7168 7169define void @v_shuffle_v3p3_v4p3__7_2_7(ptr addrspace(1) inreg %ptr) {7170; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_2_7:7171; GFX900:       ; %bb.0:7172; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7173; GFX900-NEXT:    ;;#ASMSTART7174; GFX900-NEXT:    ; def v[2:5]7175; GFX900-NEXT:    ;;#ASMEND7176; GFX900-NEXT:    v_mov_b32_e32 v6, 07177; GFX900-NEXT:    ;;#ASMSTART7178; GFX900-NEXT:    ; def v[0:3]7179; GFX900-NEXT:    ;;#ASMEND7180; GFX900-NEXT:    v_mov_b32_e32 v5, v37181; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]7182; GFX900-NEXT:    s_waitcnt vmcnt(0)7183; GFX900-NEXT:    s_setpc_b64 s[30:31]7184;7185; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_2_7:7186; GFX90A:       ; %bb.0:7187; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7188; GFX90A-NEXT:    ;;#ASMSTART7189; GFX90A-NEXT:    ; def v[0:3]7190; GFX90A-NEXT:    ;;#ASMEND7191; GFX90A-NEXT:    v_mov_b32_e32 v8, 07192; GFX90A-NEXT:    ;;#ASMSTART7193; GFX90A-NEXT:    ; def v[4:7]7194; GFX90A-NEXT:    ;;#ASMEND7195; GFX90A-NEXT:    v_mov_b32_e32 v0, v77196; GFX90A-NEXT:    v_mov_b32_e32 v1, v27197; GFX90A-NEXT:    v_mov_b32_e32 v2, v77198; GFX90A-NEXT:    global_store_dwordx3 v8, v[0:2], s[16:17]7199; GFX90A-NEXT:    s_waitcnt vmcnt(0)7200; GFX90A-NEXT:    s_setpc_b64 s[30:31]7201;7202; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_2_7:7203; GFX942:       ; %bb.0:7204; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7205; GFX942-NEXT:    ;;#ASMSTART7206; GFX942-NEXT:    ; def v[0:3]7207; GFX942-NEXT:    ;;#ASMEND7208; GFX942-NEXT:    v_mov_b32_e32 v8, 07209; GFX942-NEXT:    ;;#ASMSTART7210; GFX942-NEXT:    ; def v[4:7]7211; GFX942-NEXT:    ;;#ASMEND7212; GFX942-NEXT:    v_mov_b32_e32 v1, v27213; GFX942-NEXT:    v_mov_b32_e32 v0, v77214; GFX942-NEXT:    v_mov_b32_e32 v2, v77215; GFX942-NEXT:    global_store_dwordx3 v8, v[0:2], s[0:1]7216; GFX942-NEXT:    s_waitcnt vmcnt(0)7217; GFX942-NEXT:    s_setpc_b64 s[30:31]7218  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7219  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7220  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 7>7221  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167222  ret void7223}7224 7225define void @v_shuffle_v3p3_v4p3__7_3_7(ptr addrspace(1) inreg %ptr) {7226; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_3_7:7227; GFX900:       ; %bb.0:7228; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7229; GFX900-NEXT:    ;;#ASMSTART7230; GFX900-NEXT:    ; def v[1:4]7231; GFX900-NEXT:    ;;#ASMEND7232; GFX900-NEXT:    v_mov_b32_e32 v6, 07233; GFX900-NEXT:    ;;#ASMSTART7234; GFX900-NEXT:    ; def v[0:3]7235; GFX900-NEXT:    ;;#ASMEND7236; GFX900-NEXT:    v_mov_b32_e32 v5, v37237; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]7238; GFX900-NEXT:    s_waitcnt vmcnt(0)7239; GFX900-NEXT:    s_setpc_b64 s[30:31]7240;7241; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_3_7:7242; GFX90A:       ; %bb.0:7243; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7244; GFX90A-NEXT:    ;;#ASMSTART7245; GFX90A-NEXT:    ; def v[0:3]7246; GFX90A-NEXT:    ;;#ASMEND7247; GFX90A-NEXT:    ;;#ASMSTART7248; GFX90A-NEXT:    ; def v[4:7]7249; GFX90A-NEXT:    ;;#ASMEND7250; GFX90A-NEXT:    v_mov_b32_e32 v8, 07251; GFX90A-NEXT:    v_mov_b32_e32 v2, v77252; GFX90A-NEXT:    v_mov_b32_e32 v4, v77253; GFX90A-NEXT:    global_store_dwordx3 v8, v[2:4], s[16:17]7254; GFX90A-NEXT:    s_waitcnt vmcnt(0)7255; GFX90A-NEXT:    s_setpc_b64 s[30:31]7256;7257; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_3_7:7258; GFX942:       ; %bb.0:7259; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7260; GFX942-NEXT:    ;;#ASMSTART7261; GFX942-NEXT:    ; def v[0:3]7262; GFX942-NEXT:    ;;#ASMEND7263; GFX942-NEXT:    ;;#ASMSTART7264; GFX942-NEXT:    ; def v[4:7]7265; GFX942-NEXT:    ;;#ASMEND7266; GFX942-NEXT:    v_mov_b32_e32 v8, 07267; GFX942-NEXT:    v_mov_b32_e32 v2, v77268; GFX942-NEXT:    v_mov_b32_e32 v4, v77269; GFX942-NEXT:    global_store_dwordx3 v8, v[2:4], s[0:1]7270; GFX942-NEXT:    s_waitcnt vmcnt(0)7271; GFX942-NEXT:    s_setpc_b64 s[30:31]7272  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7273  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7274  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 7>7275  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167276  ret void7277}7278 7279define void @v_shuffle_v3p3_v4p3__7_4_7(ptr addrspace(1) inreg %ptr) {7280; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_4_7:7281; GFX900:       ; %bb.0:7282; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7283; GFX900-NEXT:    v_mov_b32_e32 v6, 07284; GFX900-NEXT:    ;;#ASMSTART7285; GFX900-NEXT:    ; def v[0:3]7286; GFX900-NEXT:    ;;#ASMEND7287; GFX900-NEXT:    v_mov_b32_e32 v4, v07288; GFX900-NEXT:    v_mov_b32_e32 v5, v37289; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]7290; GFX900-NEXT:    s_waitcnt vmcnt(0)7291; GFX900-NEXT:    s_setpc_b64 s[30:31]7292;7293; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_4_7:7294; GFX90A:       ; %bb.0:7295; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7296; GFX90A-NEXT:    v_mov_b32_e32 v4, 07297; GFX90A-NEXT:    ;;#ASMSTART7298; GFX90A-NEXT:    ; def v[0:3]7299; GFX90A-NEXT:    ;;#ASMEND7300; GFX90A-NEXT:    v_mov_b32_e32 v6, v37301; GFX90A-NEXT:    v_mov_b32_e32 v7, v07302; GFX90A-NEXT:    v_mov_b32_e32 v8, v37303; GFX90A-NEXT:    global_store_dwordx3 v4, v[6:8], s[16:17]7304; GFX90A-NEXT:    s_waitcnt vmcnt(0)7305; GFX90A-NEXT:    s_setpc_b64 s[30:31]7306;7307; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_4_7:7308; GFX942:       ; %bb.0:7309; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7310; GFX942-NEXT:    v_mov_b32_e32 v4, 07311; GFX942-NEXT:    ;;#ASMSTART7312; GFX942-NEXT:    ; def v[0:3]7313; GFX942-NEXT:    ;;#ASMEND7314; GFX942-NEXT:    s_nop 07315; GFX942-NEXT:    v_mov_b32_e32 v6, v37316; GFX942-NEXT:    v_mov_b32_e32 v7, v07317; GFX942-NEXT:    v_mov_b32_e32 v8, v37318; GFX942-NEXT:    global_store_dwordx3 v4, v[6:8], s[0:1]7319; GFX942-NEXT:    s_waitcnt vmcnt(0)7320; GFX942-NEXT:    s_setpc_b64 s[30:31]7321  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7322  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7323  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 7>7324  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167325  ret void7326}7327 7328define void @v_shuffle_v3p3_v4p3__7_5_7(ptr addrspace(1) inreg %ptr) {7329; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_5_7:7330; GFX900:       ; %bb.0:7331; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7332; GFX900-NEXT:    v_mov_b32_e32 v6, 07333; GFX900-NEXT:    ;;#ASMSTART7334; GFX900-NEXT:    ; def v[0:3]7335; GFX900-NEXT:    ;;#ASMEND7336; GFX900-NEXT:    v_mov_b32_e32 v4, v17337; GFX900-NEXT:    v_mov_b32_e32 v5, v37338; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]7339; GFX900-NEXT:    s_waitcnt vmcnt(0)7340; GFX900-NEXT:    s_setpc_b64 s[30:31]7341;7342; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_5_7:7343; GFX90A:       ; %bb.0:7344; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7345; GFX90A-NEXT:    ;;#ASMSTART7346; GFX90A-NEXT:    ; def v[0:3]7347; GFX90A-NEXT:    ;;#ASMEND7348; GFX90A-NEXT:    v_mov_b32_e32 v4, 07349; GFX90A-NEXT:    v_mov_b32_e32 v0, v37350; GFX90A-NEXT:    v_mov_b32_e32 v2, v37351; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]7352; GFX90A-NEXT:    s_waitcnt vmcnt(0)7353; GFX90A-NEXT:    s_setpc_b64 s[30:31]7354;7355; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_5_7:7356; GFX942:       ; %bb.0:7357; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7358; GFX942-NEXT:    ;;#ASMSTART7359; GFX942-NEXT:    ; def v[0:3]7360; GFX942-NEXT:    ;;#ASMEND7361; GFX942-NEXT:    v_mov_b32_e32 v4, 07362; GFX942-NEXT:    v_mov_b32_e32 v0, v37363; GFX942-NEXT:    v_mov_b32_e32 v2, v37364; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]7365; GFX942-NEXT:    s_waitcnt vmcnt(0)7366; GFX942-NEXT:    s_setpc_b64 s[30:31]7367  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7368  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7369  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 7>7370  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167371  ret void7372}7373 7374define void @v_shuffle_v3p3_v4p3__7_6_7(ptr addrspace(1) inreg %ptr) {7375; GFX900-LABEL: v_shuffle_v3p3_v4p3__7_6_7:7376; GFX900:       ; %bb.0:7377; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7378; GFX900-NEXT:    v_mov_b32_e32 v6, 07379; GFX900-NEXT:    ;;#ASMSTART7380; GFX900-NEXT:    ; def v[0:3]7381; GFX900-NEXT:    ;;#ASMEND7382; GFX900-NEXT:    v_mov_b32_e32 v4, v27383; GFX900-NEXT:    v_mov_b32_e32 v5, v37384; GFX900-NEXT:    global_store_dwordx3 v6, v[3:5], s[16:17]7385; GFX900-NEXT:    s_waitcnt vmcnt(0)7386; GFX900-NEXT:    s_setpc_b64 s[30:31]7387;7388; GFX90A-LABEL: v_shuffle_v3p3_v4p3__7_6_7:7389; GFX90A:       ; %bb.0:7390; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7391; GFX90A-NEXT:    ;;#ASMSTART7392; GFX90A-NEXT:    ; def v[0:3]7393; GFX90A-NEXT:    ;;#ASMEND7394; GFX90A-NEXT:    v_mov_b32_e32 v4, 07395; GFX90A-NEXT:    v_mov_b32_e32 v0, v37396; GFX90A-NEXT:    v_mov_b32_e32 v1, v27397; GFX90A-NEXT:    v_mov_b32_e32 v2, v37398; GFX90A-NEXT:    global_store_dwordx3 v4, v[0:2], s[16:17]7399; GFX90A-NEXT:    s_waitcnt vmcnt(0)7400; GFX90A-NEXT:    s_setpc_b64 s[30:31]7401;7402; GFX942-LABEL: v_shuffle_v3p3_v4p3__7_6_7:7403; GFX942:       ; %bb.0:7404; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7405; GFX942-NEXT:    ;;#ASMSTART7406; GFX942-NEXT:    ; def v[0:3]7407; GFX942-NEXT:    ;;#ASMEND7408; GFX942-NEXT:    v_mov_b32_e32 v4, 07409; GFX942-NEXT:    v_mov_b32_e32 v0, v37410; GFX942-NEXT:    v_mov_b32_e32 v1, v27411; GFX942-NEXT:    v_mov_b32_e32 v2, v37412; GFX942-NEXT:    global_store_dwordx3 v4, v[0:2], s[0:1]7413; GFX942-NEXT:    s_waitcnt vmcnt(0)7414; GFX942-NEXT:    s_setpc_b64 s[30:31]7415  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7416  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()7417  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 7>7418  store <3 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 167419  ret void7420}7421 7422define void @s_shuffle_v3p3_v4p3__u_u_u() {7423; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_u_u:7424; GFX9:       ; %bb.0:7425; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7426; GFX9-NEXT:    ;;#ASMSTART7427; GFX9-NEXT:    ; use s[8:10]7428; GFX9-NEXT:    ;;#ASMEND7429; GFX9-NEXT:    s_setpc_b64 s[30:31]7430  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7431  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> poison7432  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7433  ret void7434}7435 7436define void @s_shuffle_v3p3_v4p3__0_u_u() {7437; GFX900-LABEL: s_shuffle_v3p3_v4p3__0_u_u:7438; GFX900:       ; %bb.0:7439; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7440; GFX900-NEXT:    ;;#ASMSTART7441; GFX900-NEXT:    ; def s[8:11]7442; GFX900-NEXT:    ;;#ASMEND7443; GFX900-NEXT:    ;;#ASMSTART7444; GFX900-NEXT:    ; use s[8:10]7445; GFX900-NEXT:    ;;#ASMEND7446; GFX900-NEXT:    s_setpc_b64 s[30:31]7447;7448; GFX90A-LABEL: s_shuffle_v3p3_v4p3__0_u_u:7449; GFX90A:       ; %bb.0:7450; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7451; GFX90A-NEXT:    ;;#ASMSTART7452; GFX90A-NEXT:    ; def s[8:11]7453; GFX90A-NEXT:    ;;#ASMEND7454; GFX90A-NEXT:    ;;#ASMSTART7455; GFX90A-NEXT:    ; use s[8:10]7456; GFX90A-NEXT:    ;;#ASMEND7457; GFX90A-NEXT:    s_setpc_b64 s[30:31]7458;7459; GFX942-LABEL: s_shuffle_v3p3_v4p3__0_u_u:7460; GFX942:       ; %bb.0:7461; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7462; GFX942-NEXT:    ;;#ASMSTART7463; GFX942-NEXT:    ; def s[8:11]7464; GFX942-NEXT:    ;;#ASMEND7465; GFX942-NEXT:    s_nop 07466; GFX942-NEXT:    ;;#ASMSTART7467; GFX942-NEXT:    ; use s[8:10]7468; GFX942-NEXT:    ;;#ASMEND7469; GFX942-NEXT:    s_setpc_b64 s[30:31]7470  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7471  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 poison, i32 poison>7472  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7473  ret void7474}7475 7476define void @s_shuffle_v3p3_v4p3__1_u_u() {7477; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_u_u:7478; GFX900:       ; %bb.0:7479; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7480; GFX900-NEXT:    ;;#ASMSTART7481; GFX900-NEXT:    ; def s[4:7]7482; GFX900-NEXT:    ;;#ASMEND7483; GFX900-NEXT:    s_mov_b32 s8, s57484; GFX900-NEXT:    ;;#ASMSTART7485; GFX900-NEXT:    ; use s[8:10]7486; GFX900-NEXT:    ;;#ASMEND7487; GFX900-NEXT:    s_setpc_b64 s[30:31]7488;7489; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_u_u:7490; GFX90A:       ; %bb.0:7491; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7492; GFX90A-NEXT:    ;;#ASMSTART7493; GFX90A-NEXT:    ; def s[4:7]7494; GFX90A-NEXT:    ;;#ASMEND7495; GFX90A-NEXT:    s_mov_b32 s8, s57496; GFX90A-NEXT:    ;;#ASMSTART7497; GFX90A-NEXT:    ; use s[8:10]7498; GFX90A-NEXT:    ;;#ASMEND7499; GFX90A-NEXT:    s_setpc_b64 s[30:31]7500;7501; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_u_u:7502; GFX942:       ; %bb.0:7503; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7504; GFX942-NEXT:    ;;#ASMSTART7505; GFX942-NEXT:    ; def s[0:3]7506; GFX942-NEXT:    ;;#ASMEND7507; GFX942-NEXT:    s_mov_b32 s8, s17508; GFX942-NEXT:    ;;#ASMSTART7509; GFX942-NEXT:    ; use s[8:10]7510; GFX942-NEXT:    ;;#ASMEND7511; GFX942-NEXT:    s_setpc_b64 s[30:31]7512  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7513  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 poison, i32 poison>7514  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7515  ret void7516}7517 7518define void @s_shuffle_v3p3_v4p3__2_u_u() {7519; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_u_u:7520; GFX900:       ; %bb.0:7521; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7522; GFX900-NEXT:    ;;#ASMSTART7523; GFX900-NEXT:    ; def s[4:7]7524; GFX900-NEXT:    ;;#ASMEND7525; GFX900-NEXT:    s_mov_b32 s8, s67526; GFX900-NEXT:    ;;#ASMSTART7527; GFX900-NEXT:    ; use s[8:10]7528; GFX900-NEXT:    ;;#ASMEND7529; GFX900-NEXT:    s_setpc_b64 s[30:31]7530;7531; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_u_u:7532; GFX90A:       ; %bb.0:7533; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7534; GFX90A-NEXT:    ;;#ASMSTART7535; GFX90A-NEXT:    ; def s[4:7]7536; GFX90A-NEXT:    ;;#ASMEND7537; GFX90A-NEXT:    s_mov_b32 s8, s67538; GFX90A-NEXT:    ;;#ASMSTART7539; GFX90A-NEXT:    ; use s[8:10]7540; GFX90A-NEXT:    ;;#ASMEND7541; GFX90A-NEXT:    s_setpc_b64 s[30:31]7542;7543; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_u_u:7544; GFX942:       ; %bb.0:7545; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7546; GFX942-NEXT:    ;;#ASMSTART7547; GFX942-NEXT:    ; def s[0:3]7548; GFX942-NEXT:    ;;#ASMEND7549; GFX942-NEXT:    s_mov_b32 s8, s27550; GFX942-NEXT:    ;;#ASMSTART7551; GFX942-NEXT:    ; use s[8:10]7552; GFX942-NEXT:    ;;#ASMEND7553; GFX942-NEXT:    s_setpc_b64 s[30:31]7554  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7555  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 poison, i32 poison>7556  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7557  ret void7558}7559 7560define void @s_shuffle_v3p3_v4p3__3_u_u() {7561; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_u_u:7562; GFX900:       ; %bb.0:7563; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7564; GFX900-NEXT:    ;;#ASMSTART7565; GFX900-NEXT:    ; def s[4:7]7566; GFX900-NEXT:    ;;#ASMEND7567; GFX900-NEXT:    s_mov_b32 s8, s77568; GFX900-NEXT:    ;;#ASMSTART7569; GFX900-NEXT:    ; use s[8:10]7570; GFX900-NEXT:    ;;#ASMEND7571; GFX900-NEXT:    s_setpc_b64 s[30:31]7572;7573; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_u_u:7574; GFX90A:       ; %bb.0:7575; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7576; GFX90A-NEXT:    ;;#ASMSTART7577; GFX90A-NEXT:    ; def s[4:7]7578; GFX90A-NEXT:    ;;#ASMEND7579; GFX90A-NEXT:    s_mov_b32 s8, s77580; GFX90A-NEXT:    ;;#ASMSTART7581; GFX90A-NEXT:    ; use s[8:10]7582; GFX90A-NEXT:    ;;#ASMEND7583; GFX90A-NEXT:    s_setpc_b64 s[30:31]7584;7585; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_u_u:7586; GFX942:       ; %bb.0:7587; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7588; GFX942-NEXT:    ;;#ASMSTART7589; GFX942-NEXT:    ; def s[0:3]7590; GFX942-NEXT:    ;;#ASMEND7591; GFX942-NEXT:    s_mov_b32 s8, s37592; GFX942-NEXT:    ;;#ASMSTART7593; GFX942-NEXT:    ; use s[8:10]7594; GFX942-NEXT:    ;;#ASMEND7595; GFX942-NEXT:    s_setpc_b64 s[30:31]7596  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7597  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 poison, i32 poison>7598  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7599  ret void7600}7601 7602define void @s_shuffle_v3p3_v4p3__4_u_u() {7603; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_u_u:7604; GFX9:       ; %bb.0:7605; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7606; GFX9-NEXT:    ;;#ASMSTART7607; GFX9-NEXT:    ; use s[8:10]7608; GFX9-NEXT:    ;;#ASMEND7609; GFX9-NEXT:    s_setpc_b64 s[30:31]7610  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7611  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 poison, i32 poison>7612  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7613  ret void7614}7615 7616define void @s_shuffle_v3p3_v4p3__5_u_u() {7617; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_u_u:7618; GFX900:       ; %bb.0:7619; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7620; GFX900-NEXT:    ;;#ASMSTART7621; GFX900-NEXT:    ; def s[4:7]7622; GFX900-NEXT:    ;;#ASMEND7623; GFX900-NEXT:    s_mov_b32 s8, s57624; GFX900-NEXT:    ;;#ASMSTART7625; GFX900-NEXT:    ; use s[8:10]7626; GFX900-NEXT:    ;;#ASMEND7627; GFX900-NEXT:    s_setpc_b64 s[30:31]7628;7629; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_u_u:7630; GFX90A:       ; %bb.0:7631; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7632; GFX90A-NEXT:    ;;#ASMSTART7633; GFX90A-NEXT:    ; def s[4:7]7634; GFX90A-NEXT:    ;;#ASMEND7635; GFX90A-NEXT:    s_mov_b32 s8, s57636; GFX90A-NEXT:    ;;#ASMSTART7637; GFX90A-NEXT:    ; use s[8:10]7638; GFX90A-NEXT:    ;;#ASMEND7639; GFX90A-NEXT:    s_setpc_b64 s[30:31]7640;7641; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_u_u:7642; GFX942:       ; %bb.0:7643; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7644; GFX942-NEXT:    ;;#ASMSTART7645; GFX942-NEXT:    ; def s[0:3]7646; GFX942-NEXT:    ;;#ASMEND7647; GFX942-NEXT:    s_mov_b32 s8, s17648; GFX942-NEXT:    ;;#ASMSTART7649; GFX942-NEXT:    ; use s[8:10]7650; GFX942-NEXT:    ;;#ASMEND7651; GFX942-NEXT:    s_setpc_b64 s[30:31]7652  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7653  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7654  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>7655  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7656  ret void7657}7658 7659define void @s_shuffle_v3p3_v4p3__6_u_u() {7660; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_u_u:7661; GFX900:       ; %bb.0:7662; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7663; GFX900-NEXT:    ;;#ASMSTART7664; GFX900-NEXT:    ; def s[4:7]7665; GFX900-NEXT:    ;;#ASMEND7666; GFX900-NEXT:    s_mov_b32 s8, s67667; GFX900-NEXT:    ;;#ASMSTART7668; GFX900-NEXT:    ; use s[8:10]7669; GFX900-NEXT:    ;;#ASMEND7670; GFX900-NEXT:    s_setpc_b64 s[30:31]7671;7672; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_u_u:7673; GFX90A:       ; %bb.0:7674; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7675; GFX90A-NEXT:    ;;#ASMSTART7676; GFX90A-NEXT:    ; def s[4:7]7677; GFX90A-NEXT:    ;;#ASMEND7678; GFX90A-NEXT:    s_mov_b32 s8, s67679; GFX90A-NEXT:    ;;#ASMSTART7680; GFX90A-NEXT:    ; use s[8:10]7681; GFX90A-NEXT:    ;;#ASMEND7682; GFX90A-NEXT:    s_setpc_b64 s[30:31]7683;7684; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_u_u:7685; GFX942:       ; %bb.0:7686; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7687; GFX942-NEXT:    ;;#ASMSTART7688; GFX942-NEXT:    ; def s[0:3]7689; GFX942-NEXT:    ;;#ASMEND7690; GFX942-NEXT:    s_mov_b32 s8, s27691; GFX942-NEXT:    ;;#ASMSTART7692; GFX942-NEXT:    ; use s[8:10]7693; GFX942-NEXT:    ;;#ASMEND7694; GFX942-NEXT:    s_setpc_b64 s[30:31]7695  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7696  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7697  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>7698  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7699  ret void7700}7701 7702define void @s_shuffle_v3p3_v4p3__7_u_u() {7703; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_u:7704; GFX900:       ; %bb.0:7705; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7706; GFX900-NEXT:    ;;#ASMSTART7707; GFX900-NEXT:    ; def s[4:7]7708; GFX900-NEXT:    ;;#ASMEND7709; GFX900-NEXT:    s_mov_b32 s8, s77710; GFX900-NEXT:    ;;#ASMSTART7711; GFX900-NEXT:    ; use s[8:10]7712; GFX900-NEXT:    ;;#ASMEND7713; GFX900-NEXT:    s_setpc_b64 s[30:31]7714;7715; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_u:7716; GFX90A:       ; %bb.0:7717; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7718; GFX90A-NEXT:    ;;#ASMSTART7719; GFX90A-NEXT:    ; def s[4:7]7720; GFX90A-NEXT:    ;;#ASMEND7721; GFX90A-NEXT:    s_mov_b32 s8, s77722; GFX90A-NEXT:    ;;#ASMSTART7723; GFX90A-NEXT:    ; use s[8:10]7724; GFX90A-NEXT:    ;;#ASMEND7725; GFX90A-NEXT:    s_setpc_b64 s[30:31]7726;7727; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_u:7728; GFX942:       ; %bb.0:7729; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7730; GFX942-NEXT:    ;;#ASMSTART7731; GFX942-NEXT:    ; def s[0:3]7732; GFX942-NEXT:    ;;#ASMEND7733; GFX942-NEXT:    s_mov_b32 s8, s37734; GFX942-NEXT:    ;;#ASMSTART7735; GFX942-NEXT:    ; use s[8:10]7736; GFX942-NEXT:    ;;#ASMEND7737; GFX942-NEXT:    s_setpc_b64 s[30:31]7738  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7739  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7740  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>7741  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7742  ret void7743}7744 7745define void @s_shuffle_v3p3_v4p3__7_0_u() {7746; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_u:7747; GFX900:       ; %bb.0:7748; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7749; GFX900-NEXT:    ;;#ASMSTART7750; GFX900-NEXT:    ; def s[8:11]7751; GFX900-NEXT:    ;;#ASMEND7752; GFX900-NEXT:    ;;#ASMSTART7753; GFX900-NEXT:    ; def s[4:7]7754; GFX900-NEXT:    ;;#ASMEND7755; GFX900-NEXT:    s_mov_b32 s8, s117756; GFX900-NEXT:    s_mov_b32 s9, s47757; GFX900-NEXT:    ;;#ASMSTART7758; GFX900-NEXT:    ; use s[8:10]7759; GFX900-NEXT:    ;;#ASMEND7760; GFX900-NEXT:    s_setpc_b64 s[30:31]7761;7762; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_u:7763; GFX90A:       ; %bb.0:7764; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7765; GFX90A-NEXT:    ;;#ASMSTART7766; GFX90A-NEXT:    ; def s[8:11]7767; GFX90A-NEXT:    ;;#ASMEND7768; GFX90A-NEXT:    ;;#ASMSTART7769; GFX90A-NEXT:    ; def s[4:7]7770; GFX90A-NEXT:    ;;#ASMEND7771; GFX90A-NEXT:    s_mov_b32 s8, s117772; GFX90A-NEXT:    s_mov_b32 s9, s47773; GFX90A-NEXT:    ;;#ASMSTART7774; GFX90A-NEXT:    ; use s[8:10]7775; GFX90A-NEXT:    ;;#ASMEND7776; GFX90A-NEXT:    s_setpc_b64 s[30:31]7777;7778; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_u:7779; GFX942:       ; %bb.0:7780; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7781; GFX942-NEXT:    ;;#ASMSTART7782; GFX942-NEXT:    ; def s[0:3]7783; GFX942-NEXT:    ;;#ASMEND7784; GFX942-NEXT:    ;;#ASMSTART7785; GFX942-NEXT:    ; def s[4:7]7786; GFX942-NEXT:    ;;#ASMEND7787; GFX942-NEXT:    s_mov_b32 s8, s77788; GFX942-NEXT:    s_mov_b32 s9, s07789; GFX942-NEXT:    ;;#ASMSTART7790; GFX942-NEXT:    ; use s[8:10]7791; GFX942-NEXT:    ;;#ASMEND7792; GFX942-NEXT:    s_setpc_b64 s[30:31]7793  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7794  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7795  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>7796  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7797  ret void7798}7799 7800define void @s_shuffle_v3p3_v4p3__7_1_u() {7801; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_u:7802; GFX900:       ; %bb.0:7803; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7804; GFX900-NEXT:    ;;#ASMSTART7805; GFX900-NEXT:    ; def s[8:11]7806; GFX900-NEXT:    ;;#ASMEND7807; GFX900-NEXT:    ;;#ASMSTART7808; GFX900-NEXT:    ; def s[4:7]7809; GFX900-NEXT:    ;;#ASMEND7810; GFX900-NEXT:    s_mov_b32 s8, s77811; GFX900-NEXT:    ;;#ASMSTART7812; GFX900-NEXT:    ; use s[8:10]7813; GFX900-NEXT:    ;;#ASMEND7814; GFX900-NEXT:    s_setpc_b64 s[30:31]7815;7816; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_u:7817; GFX90A:       ; %bb.0:7818; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7819; GFX90A-NEXT:    ;;#ASMSTART7820; GFX90A-NEXT:    ; def s[8:11]7821; GFX90A-NEXT:    ;;#ASMEND7822; GFX90A-NEXT:    ;;#ASMSTART7823; GFX90A-NEXT:    ; def s[4:7]7824; GFX90A-NEXT:    ;;#ASMEND7825; GFX90A-NEXT:    s_mov_b32 s8, s77826; GFX90A-NEXT:    ;;#ASMSTART7827; GFX90A-NEXT:    ; use s[8:10]7828; GFX90A-NEXT:    ;;#ASMEND7829; GFX90A-NEXT:    s_setpc_b64 s[30:31]7830;7831; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_u:7832; GFX942:       ; %bb.0:7833; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7834; GFX942-NEXT:    ;;#ASMSTART7835; GFX942-NEXT:    ; def s[8:11]7836; GFX942-NEXT:    ;;#ASMEND7837; GFX942-NEXT:    ;;#ASMSTART7838; GFX942-NEXT:    ; def s[0:3]7839; GFX942-NEXT:    ;;#ASMEND7840; GFX942-NEXT:    s_mov_b32 s8, s37841; GFX942-NEXT:    ;;#ASMSTART7842; GFX942-NEXT:    ; use s[8:10]7843; GFX942-NEXT:    ;;#ASMEND7844; GFX942-NEXT:    s_setpc_b64 s[30:31]7845  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7846  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7847  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>7848  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7849  ret void7850}7851 7852define void @s_shuffle_v3p3_v4p3__7_2_u() {7853; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_u:7854; GFX900:       ; %bb.0:7855; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7856; GFX900-NEXT:    ;;#ASMSTART7857; GFX900-NEXT:    ; def s[8:11]7858; GFX900-NEXT:    ;;#ASMEND7859; GFX900-NEXT:    ;;#ASMSTART7860; GFX900-NEXT:    ; def s[4:7]7861; GFX900-NEXT:    ;;#ASMEND7862; GFX900-NEXT:    s_mov_b32 s8, s117863; GFX900-NEXT:    s_mov_b32 s9, s67864; GFX900-NEXT:    ;;#ASMSTART7865; GFX900-NEXT:    ; use s[8:10]7866; GFX900-NEXT:    ;;#ASMEND7867; GFX900-NEXT:    s_setpc_b64 s[30:31]7868;7869; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_u:7870; GFX90A:       ; %bb.0:7871; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7872; GFX90A-NEXT:    ;;#ASMSTART7873; GFX90A-NEXT:    ; def s[8:11]7874; GFX90A-NEXT:    ;;#ASMEND7875; GFX90A-NEXT:    ;;#ASMSTART7876; GFX90A-NEXT:    ; def s[4:7]7877; GFX90A-NEXT:    ;;#ASMEND7878; GFX90A-NEXT:    s_mov_b32 s8, s117879; GFX90A-NEXT:    s_mov_b32 s9, s67880; GFX90A-NEXT:    ;;#ASMSTART7881; GFX90A-NEXT:    ; use s[8:10]7882; GFX90A-NEXT:    ;;#ASMEND7883; GFX90A-NEXT:    s_setpc_b64 s[30:31]7884;7885; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_u:7886; GFX942:       ; %bb.0:7887; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7888; GFX942-NEXT:    ;;#ASMSTART7889; GFX942-NEXT:    ; def s[0:3]7890; GFX942-NEXT:    ;;#ASMEND7891; GFX942-NEXT:    ;;#ASMSTART7892; GFX942-NEXT:    ; def s[4:7]7893; GFX942-NEXT:    ;;#ASMEND7894; GFX942-NEXT:    s_mov_b32 s8, s77895; GFX942-NEXT:    s_mov_b32 s9, s27896; GFX942-NEXT:    ;;#ASMSTART7897; GFX942-NEXT:    ; use s[8:10]7898; GFX942-NEXT:    ;;#ASMEND7899; GFX942-NEXT:    s_setpc_b64 s[30:31]7900  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7901  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7902  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>7903  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7904  ret void7905}7906 7907define void @s_shuffle_v3p3_v4p3__7_3_u() {7908; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_u:7909; GFX900:       ; %bb.0:7910; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7911; GFX900-NEXT:    ;;#ASMSTART7912; GFX900-NEXT:    ; def s[8:11]7913; GFX900-NEXT:    ;;#ASMEND7914; GFX900-NEXT:    ;;#ASMSTART7915; GFX900-NEXT:    ; def s[4:7]7916; GFX900-NEXT:    ;;#ASMEND7917; GFX900-NEXT:    s_mov_b32 s8, s117918; GFX900-NEXT:    s_mov_b32 s9, s77919; GFX900-NEXT:    ;;#ASMSTART7920; GFX900-NEXT:    ; use s[8:10]7921; GFX900-NEXT:    ;;#ASMEND7922; GFX900-NEXT:    s_setpc_b64 s[30:31]7923;7924; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_u:7925; GFX90A:       ; %bb.0:7926; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7927; GFX90A-NEXT:    ;;#ASMSTART7928; GFX90A-NEXT:    ; def s[8:11]7929; GFX90A-NEXT:    ;;#ASMEND7930; GFX90A-NEXT:    ;;#ASMSTART7931; GFX90A-NEXT:    ; def s[4:7]7932; GFX90A-NEXT:    ;;#ASMEND7933; GFX90A-NEXT:    s_mov_b32 s8, s117934; GFX90A-NEXT:    s_mov_b32 s9, s77935; GFX90A-NEXT:    ;;#ASMSTART7936; GFX90A-NEXT:    ; use s[8:10]7937; GFX90A-NEXT:    ;;#ASMEND7938; GFX90A-NEXT:    s_setpc_b64 s[30:31]7939;7940; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_u:7941; GFX942:       ; %bb.0:7942; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7943; GFX942-NEXT:    ;;#ASMSTART7944; GFX942-NEXT:    ; def s[0:3]7945; GFX942-NEXT:    ;;#ASMEND7946; GFX942-NEXT:    ;;#ASMSTART7947; GFX942-NEXT:    ; def s[4:7]7948; GFX942-NEXT:    ;;#ASMEND7949; GFX942-NEXT:    s_mov_b32 s8, s77950; GFX942-NEXT:    s_mov_b32 s9, s37951; GFX942-NEXT:    ;;#ASMSTART7952; GFX942-NEXT:    ; use s[8:10]7953; GFX942-NEXT:    ;;#ASMEND7954; GFX942-NEXT:    s_setpc_b64 s[30:31]7955  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7956  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()7957  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>7958  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)7959  ret void7960}7961 7962define void @s_shuffle_v3p3_v4p3__7_4_u() {7963; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_u:7964; GFX900:       ; %bb.0:7965; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7966; GFX900-NEXT:    ;;#ASMSTART7967; GFX900-NEXT:    ; def s[4:7]7968; GFX900-NEXT:    ;;#ASMEND7969; GFX900-NEXT:    s_mov_b32 s8, s77970; GFX900-NEXT:    s_mov_b32 s9, s47971; GFX900-NEXT:    ;;#ASMSTART7972; GFX900-NEXT:    ; use s[8:10]7973; GFX900-NEXT:    ;;#ASMEND7974; GFX900-NEXT:    s_setpc_b64 s[30:31]7975;7976; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_u:7977; GFX90A:       ; %bb.0:7978; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7979; GFX90A-NEXT:    ;;#ASMSTART7980; GFX90A-NEXT:    ; def s[4:7]7981; GFX90A-NEXT:    ;;#ASMEND7982; GFX90A-NEXT:    s_mov_b32 s8, s77983; GFX90A-NEXT:    s_mov_b32 s9, s47984; GFX90A-NEXT:    ;;#ASMSTART7985; GFX90A-NEXT:    ; use s[8:10]7986; GFX90A-NEXT:    ;;#ASMEND7987; GFX90A-NEXT:    s_setpc_b64 s[30:31]7988;7989; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_u:7990; GFX942:       ; %bb.0:7991; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7992; GFX942-NEXT:    ;;#ASMSTART7993; GFX942-NEXT:    ; def s[0:3]7994; GFX942-NEXT:    ;;#ASMEND7995; GFX942-NEXT:    s_mov_b32 s8, s37996; GFX942-NEXT:    s_mov_b32 s9, s07997; GFX942-NEXT:    ;;#ASMSTART7998; GFX942-NEXT:    ; use s[8:10]7999; GFX942-NEXT:    ;;#ASMEND8000; GFX942-NEXT:    s_setpc_b64 s[30:31]8001  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8002  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8003  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>8004  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8005  ret void8006}8007 8008define void @s_shuffle_v3p3_v4p3__7_5_u() {8009; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_5_u:8010; GFX9:       ; %bb.0:8011; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8012; GFX9-NEXT:    ;;#ASMSTART8013; GFX9-NEXT:    ; def s[8:11]8014; GFX9-NEXT:    ;;#ASMEND8015; GFX9-NEXT:    s_mov_b32 s8, s118016; GFX9-NEXT:    ;;#ASMSTART8017; GFX9-NEXT:    ; use s[8:10]8018; GFX9-NEXT:    ;;#ASMEND8019; GFX9-NEXT:    s_setpc_b64 s[30:31]8020  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8021  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8022  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>8023  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8024  ret void8025}8026 8027define void @s_shuffle_v3p3_v4p3__7_6_u() {8028; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_u:8029; GFX900:       ; %bb.0:8030; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8031; GFX900-NEXT:    ;;#ASMSTART8032; GFX900-NEXT:    ; def s[4:7]8033; GFX900-NEXT:    ;;#ASMEND8034; GFX900-NEXT:    s_mov_b32 s8, s78035; GFX900-NEXT:    s_mov_b32 s9, s68036; GFX900-NEXT:    ;;#ASMSTART8037; GFX900-NEXT:    ; use s[8:10]8038; GFX900-NEXT:    ;;#ASMEND8039; GFX900-NEXT:    s_setpc_b64 s[30:31]8040;8041; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_u:8042; GFX90A:       ; %bb.0:8043; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8044; GFX90A-NEXT:    ;;#ASMSTART8045; GFX90A-NEXT:    ; def s[4:7]8046; GFX90A-NEXT:    ;;#ASMEND8047; GFX90A-NEXT:    s_mov_b32 s8, s78048; GFX90A-NEXT:    s_mov_b32 s9, s68049; GFX90A-NEXT:    ;;#ASMSTART8050; GFX90A-NEXT:    ; use s[8:10]8051; GFX90A-NEXT:    ;;#ASMEND8052; GFX90A-NEXT:    s_setpc_b64 s[30:31]8053;8054; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_u:8055; GFX942:       ; %bb.0:8056; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8057; GFX942-NEXT:    ;;#ASMSTART8058; GFX942-NEXT:    ; def s[0:3]8059; GFX942-NEXT:    ;;#ASMEND8060; GFX942-NEXT:    s_mov_b32 s8, s38061; GFX942-NEXT:    s_mov_b32 s9, s28062; GFX942-NEXT:    ;;#ASMSTART8063; GFX942-NEXT:    ; use s[8:10]8064; GFX942-NEXT:    ;;#ASMEND8065; GFX942-NEXT:    s_setpc_b64 s[30:31]8066  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8067  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8068  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>8069  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8070  ret void8071}8072 8073define void @s_shuffle_v3p3_v4p3__7_7_u() {8074; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_u:8075; GFX900:       ; %bb.0:8076; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8077; GFX900-NEXT:    ;;#ASMSTART8078; GFX900-NEXT:    ; def s[4:7]8079; GFX900-NEXT:    ;;#ASMEND8080; GFX900-NEXT:    s_mov_b32 s8, s78081; GFX900-NEXT:    s_mov_b32 s9, s78082; GFX900-NEXT:    ;;#ASMSTART8083; GFX900-NEXT:    ; use s[8:10]8084; GFX900-NEXT:    ;;#ASMEND8085; GFX900-NEXT:    s_setpc_b64 s[30:31]8086;8087; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_u:8088; GFX90A:       ; %bb.0:8089; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8090; GFX90A-NEXT:    ;;#ASMSTART8091; GFX90A-NEXT:    ; def s[4:7]8092; GFX90A-NEXT:    ;;#ASMEND8093; GFX90A-NEXT:    s_mov_b32 s8, s78094; GFX90A-NEXT:    s_mov_b32 s9, s78095; GFX90A-NEXT:    ;;#ASMSTART8096; GFX90A-NEXT:    ; use s[8:10]8097; GFX90A-NEXT:    ;;#ASMEND8098; GFX90A-NEXT:    s_setpc_b64 s[30:31]8099;8100; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_u:8101; GFX942:       ; %bb.0:8102; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8103; GFX942-NEXT:    ;;#ASMSTART8104; GFX942-NEXT:    ; def s[0:3]8105; GFX942-NEXT:    ;;#ASMEND8106; GFX942-NEXT:    s_mov_b32 s8, s38107; GFX942-NEXT:    s_mov_b32 s9, s38108; GFX942-NEXT:    ;;#ASMSTART8109; GFX942-NEXT:    ; use s[8:10]8110; GFX942-NEXT:    ;;#ASMEND8111; GFX942-NEXT:    s_setpc_b64 s[30:31]8112  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8113  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8114  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>8115  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8116  ret void8117}8118 8119define void @s_shuffle_v3p3_v4p3__7_7_0() {8120; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_0:8121; GFX900:       ; %bb.0:8122; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8123; GFX900-NEXT:    ;;#ASMSTART8124; GFX900-NEXT:    ; def s[8:11]8125; GFX900-NEXT:    ;;#ASMEND8126; GFX900-NEXT:    ;;#ASMSTART8127; GFX900-NEXT:    ; def s[4:7]8128; GFX900-NEXT:    ;;#ASMEND8129; GFX900-NEXT:    s_mov_b32 s8, s118130; GFX900-NEXT:    s_mov_b32 s9, s118131; GFX900-NEXT:    s_mov_b32 s10, s48132; GFX900-NEXT:    ;;#ASMSTART8133; GFX900-NEXT:    ; use s[8:10]8134; GFX900-NEXT:    ;;#ASMEND8135; GFX900-NEXT:    s_setpc_b64 s[30:31]8136;8137; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_0:8138; GFX90A:       ; %bb.0:8139; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8140; GFX90A-NEXT:    ;;#ASMSTART8141; GFX90A-NEXT:    ; def s[8:11]8142; GFX90A-NEXT:    ;;#ASMEND8143; GFX90A-NEXT:    ;;#ASMSTART8144; GFX90A-NEXT:    ; def s[4:7]8145; GFX90A-NEXT:    ;;#ASMEND8146; GFX90A-NEXT:    s_mov_b32 s8, s118147; GFX90A-NEXT:    s_mov_b32 s9, s118148; GFX90A-NEXT:    s_mov_b32 s10, s48149; GFX90A-NEXT:    ;;#ASMSTART8150; GFX90A-NEXT:    ; use s[8:10]8151; GFX90A-NEXT:    ;;#ASMEND8152; GFX90A-NEXT:    s_setpc_b64 s[30:31]8153;8154; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_0:8155; GFX942:       ; %bb.0:8156; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8157; GFX942-NEXT:    ;;#ASMSTART8158; GFX942-NEXT:    ; def s[0:3]8159; GFX942-NEXT:    ;;#ASMEND8160; GFX942-NEXT:    ;;#ASMSTART8161; GFX942-NEXT:    ; def s[4:7]8162; GFX942-NEXT:    ;;#ASMEND8163; GFX942-NEXT:    s_mov_b32 s8, s78164; GFX942-NEXT:    s_mov_b32 s9, s78165; GFX942-NEXT:    s_mov_b32 s10, s08166; GFX942-NEXT:    ;;#ASMSTART8167; GFX942-NEXT:    ; use s[8:10]8168; GFX942-NEXT:    ;;#ASMEND8169; GFX942-NEXT:    s_setpc_b64 s[30:31]8170  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8171  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8172  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 0>8173  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8174  ret void8175}8176 8177define void @s_shuffle_v3p3_v4p3__7_7_1() {8178; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_1:8179; GFX900:       ; %bb.0:8180; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8181; GFX900-NEXT:    ;;#ASMSTART8182; GFX900-NEXT:    ; def s[8:11]8183; GFX900-NEXT:    ;;#ASMEND8184; GFX900-NEXT:    ;;#ASMSTART8185; GFX900-NEXT:    ; def s[4:7]8186; GFX900-NEXT:    ;;#ASMEND8187; GFX900-NEXT:    s_mov_b32 s8, s118188; GFX900-NEXT:    s_mov_b32 s9, s118189; GFX900-NEXT:    s_mov_b32 s10, s58190; GFX900-NEXT:    ;;#ASMSTART8191; GFX900-NEXT:    ; use s[8:10]8192; GFX900-NEXT:    ;;#ASMEND8193; GFX900-NEXT:    s_setpc_b64 s[30:31]8194;8195; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_1:8196; GFX90A:       ; %bb.0:8197; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8198; GFX90A-NEXT:    ;;#ASMSTART8199; GFX90A-NEXT:    ; def s[8:11]8200; GFX90A-NEXT:    ;;#ASMEND8201; GFX90A-NEXT:    ;;#ASMSTART8202; GFX90A-NEXT:    ; def s[4:7]8203; GFX90A-NEXT:    ;;#ASMEND8204; GFX90A-NEXT:    s_mov_b32 s8, s118205; GFX90A-NEXT:    s_mov_b32 s9, s118206; GFX90A-NEXT:    s_mov_b32 s10, s58207; GFX90A-NEXT:    ;;#ASMSTART8208; GFX90A-NEXT:    ; use s[8:10]8209; GFX90A-NEXT:    ;;#ASMEND8210; GFX90A-NEXT:    s_setpc_b64 s[30:31]8211;8212; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_1:8213; GFX942:       ; %bb.0:8214; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8215; GFX942-NEXT:    ;;#ASMSTART8216; GFX942-NEXT:    ; def s[0:3]8217; GFX942-NEXT:    ;;#ASMEND8218; GFX942-NEXT:    ;;#ASMSTART8219; GFX942-NEXT:    ; def s[4:7]8220; GFX942-NEXT:    ;;#ASMEND8221; GFX942-NEXT:    s_mov_b32 s8, s78222; GFX942-NEXT:    s_mov_b32 s9, s78223; GFX942-NEXT:    s_mov_b32 s10, s18224; GFX942-NEXT:    ;;#ASMSTART8225; GFX942-NEXT:    ; use s[8:10]8226; GFX942-NEXT:    ;;#ASMEND8227; GFX942-NEXT:    s_setpc_b64 s[30:31]8228  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8229  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8230  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 1>8231  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8232  ret void8233}8234 8235define void @s_shuffle_v3p3_v4p3__7_7_2() {8236; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_2:8237; GFX900:       ; %bb.0:8238; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8239; GFX900-NEXT:    ;;#ASMSTART8240; GFX900-NEXT:    ; def s[8:11]8241; GFX900-NEXT:    ;;#ASMEND8242; GFX900-NEXT:    ;;#ASMSTART8243; GFX900-NEXT:    ; def s[4:7]8244; GFX900-NEXT:    ;;#ASMEND8245; GFX900-NEXT:    s_mov_b32 s8, s78246; GFX900-NEXT:    s_mov_b32 s9, s78247; GFX900-NEXT:    ;;#ASMSTART8248; GFX900-NEXT:    ; use s[8:10]8249; GFX900-NEXT:    ;;#ASMEND8250; GFX900-NEXT:    s_setpc_b64 s[30:31]8251;8252; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_2:8253; GFX90A:       ; %bb.0:8254; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8255; GFX90A-NEXT:    ;;#ASMSTART8256; GFX90A-NEXT:    ; def s[8:11]8257; GFX90A-NEXT:    ;;#ASMEND8258; GFX90A-NEXT:    ;;#ASMSTART8259; GFX90A-NEXT:    ; def s[4:7]8260; GFX90A-NEXT:    ;;#ASMEND8261; GFX90A-NEXT:    s_mov_b32 s8, s78262; GFX90A-NEXT:    s_mov_b32 s9, s78263; GFX90A-NEXT:    ;;#ASMSTART8264; GFX90A-NEXT:    ; use s[8:10]8265; GFX90A-NEXT:    ;;#ASMEND8266; GFX90A-NEXT:    s_setpc_b64 s[30:31]8267;8268; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_2:8269; GFX942:       ; %bb.0:8270; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8271; GFX942-NEXT:    ;;#ASMSTART8272; GFX942-NEXT:    ; def s[8:11]8273; GFX942-NEXT:    ;;#ASMEND8274; GFX942-NEXT:    ;;#ASMSTART8275; GFX942-NEXT:    ; def s[0:3]8276; GFX942-NEXT:    ;;#ASMEND8277; GFX942-NEXT:    s_mov_b32 s8, s38278; GFX942-NEXT:    s_mov_b32 s9, s38279; GFX942-NEXT:    ;;#ASMSTART8280; GFX942-NEXT:    ; use s[8:10]8281; GFX942-NEXT:    ;;#ASMEND8282; GFX942-NEXT:    s_setpc_b64 s[30:31]8283  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8284  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8285  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 2>8286  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8287  ret void8288}8289 8290define void @s_shuffle_v3p3_v4p3__7_7_3() {8291; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_3:8292; GFX900:       ; %bb.0:8293; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8294; GFX900-NEXT:    ;;#ASMSTART8295; GFX900-NEXT:    ; def s[8:11]8296; GFX900-NEXT:    ;;#ASMEND8297; GFX900-NEXT:    ;;#ASMSTART8298; GFX900-NEXT:    ; def s[4:7]8299; GFX900-NEXT:    ;;#ASMEND8300; GFX900-NEXT:    s_mov_b32 s8, s118301; GFX900-NEXT:    s_mov_b32 s9, s118302; GFX900-NEXT:    s_mov_b32 s10, s78303; GFX900-NEXT:    ;;#ASMSTART8304; GFX900-NEXT:    ; use s[8:10]8305; GFX900-NEXT:    ;;#ASMEND8306; GFX900-NEXT:    s_setpc_b64 s[30:31]8307;8308; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_3:8309; GFX90A:       ; %bb.0:8310; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8311; GFX90A-NEXT:    ;;#ASMSTART8312; GFX90A-NEXT:    ; def s[8:11]8313; GFX90A-NEXT:    ;;#ASMEND8314; GFX90A-NEXT:    ;;#ASMSTART8315; GFX90A-NEXT:    ; def s[4:7]8316; GFX90A-NEXT:    ;;#ASMEND8317; GFX90A-NEXT:    s_mov_b32 s8, s118318; GFX90A-NEXT:    s_mov_b32 s9, s118319; GFX90A-NEXT:    s_mov_b32 s10, s78320; GFX90A-NEXT:    ;;#ASMSTART8321; GFX90A-NEXT:    ; use s[8:10]8322; GFX90A-NEXT:    ;;#ASMEND8323; GFX90A-NEXT:    s_setpc_b64 s[30:31]8324;8325; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_3:8326; GFX942:       ; %bb.0:8327; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8328; GFX942-NEXT:    ;;#ASMSTART8329; GFX942-NEXT:    ; def s[0:3]8330; GFX942-NEXT:    ;;#ASMEND8331; GFX942-NEXT:    ;;#ASMSTART8332; GFX942-NEXT:    ; def s[4:7]8333; GFX942-NEXT:    ;;#ASMEND8334; GFX942-NEXT:    s_mov_b32 s8, s78335; GFX942-NEXT:    s_mov_b32 s9, s78336; GFX942-NEXT:    s_mov_b32 s10, s38337; GFX942-NEXT:    ;;#ASMSTART8338; GFX942-NEXT:    ; use s[8:10]8339; GFX942-NEXT:    ;;#ASMEND8340; GFX942-NEXT:    s_setpc_b64 s[30:31]8341  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8342  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8343  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 3>8344  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8345  ret void8346}8347 8348define void @s_shuffle_v3p3_v4p3__7_7_4() {8349; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_4:8350; GFX900:       ; %bb.0:8351; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8352; GFX900-NEXT:    ;;#ASMSTART8353; GFX900-NEXT:    ; def s[4:7]8354; GFX900-NEXT:    ;;#ASMEND8355; GFX900-NEXT:    s_mov_b32 s8, s78356; GFX900-NEXT:    s_mov_b32 s9, s78357; GFX900-NEXT:    s_mov_b32 s10, s48358; GFX900-NEXT:    ;;#ASMSTART8359; GFX900-NEXT:    ; use s[8:10]8360; GFX900-NEXT:    ;;#ASMEND8361; GFX900-NEXT:    s_setpc_b64 s[30:31]8362;8363; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_4:8364; GFX90A:       ; %bb.0:8365; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8366; GFX90A-NEXT:    ;;#ASMSTART8367; GFX90A-NEXT:    ; def s[4:7]8368; GFX90A-NEXT:    ;;#ASMEND8369; GFX90A-NEXT:    s_mov_b32 s8, s78370; GFX90A-NEXT:    s_mov_b32 s9, s78371; GFX90A-NEXT:    s_mov_b32 s10, s48372; GFX90A-NEXT:    ;;#ASMSTART8373; GFX90A-NEXT:    ; use s[8:10]8374; GFX90A-NEXT:    ;;#ASMEND8375; GFX90A-NEXT:    s_setpc_b64 s[30:31]8376;8377; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_4:8378; GFX942:       ; %bb.0:8379; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8380; GFX942-NEXT:    ;;#ASMSTART8381; GFX942-NEXT:    ; def s[0:3]8382; GFX942-NEXT:    ;;#ASMEND8383; GFX942-NEXT:    s_mov_b32 s8, s38384; GFX942-NEXT:    s_mov_b32 s9, s38385; GFX942-NEXT:    s_mov_b32 s10, s08386; GFX942-NEXT:    ;;#ASMSTART8387; GFX942-NEXT:    ; use s[8:10]8388; GFX942-NEXT:    ;;#ASMEND8389; GFX942-NEXT:    s_setpc_b64 s[30:31]8390  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8391  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8392  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 4>8393  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8394  ret void8395}8396 8397define void @s_shuffle_v3p3_v4p3__7_7_5() {8398; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_5:8399; GFX900:       ; %bb.0:8400; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8401; GFX900-NEXT:    ;;#ASMSTART8402; GFX900-NEXT:    ; def s[4:7]8403; GFX900-NEXT:    ;;#ASMEND8404; GFX900-NEXT:    s_mov_b32 s8, s78405; GFX900-NEXT:    s_mov_b32 s9, s78406; GFX900-NEXT:    s_mov_b32 s10, s58407; GFX900-NEXT:    ;;#ASMSTART8408; GFX900-NEXT:    ; use s[8:10]8409; GFX900-NEXT:    ;;#ASMEND8410; GFX900-NEXT:    s_setpc_b64 s[30:31]8411;8412; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_5:8413; GFX90A:       ; %bb.0:8414; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8415; GFX90A-NEXT:    ;;#ASMSTART8416; GFX90A-NEXT:    ; def s[4:7]8417; GFX90A-NEXT:    ;;#ASMEND8418; GFX90A-NEXT:    s_mov_b32 s8, s78419; GFX90A-NEXT:    s_mov_b32 s9, s78420; GFX90A-NEXT:    s_mov_b32 s10, s58421; GFX90A-NEXT:    ;;#ASMSTART8422; GFX90A-NEXT:    ; use s[8:10]8423; GFX90A-NEXT:    ;;#ASMEND8424; GFX90A-NEXT:    s_setpc_b64 s[30:31]8425;8426; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_5:8427; GFX942:       ; %bb.0:8428; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8429; GFX942-NEXT:    ;;#ASMSTART8430; GFX942-NEXT:    ; def s[0:3]8431; GFX942-NEXT:    ;;#ASMEND8432; GFX942-NEXT:    s_mov_b32 s8, s38433; GFX942-NEXT:    s_mov_b32 s9, s38434; GFX942-NEXT:    s_mov_b32 s10, s18435; GFX942-NEXT:    ;;#ASMSTART8436; GFX942-NEXT:    ; use s[8:10]8437; GFX942-NEXT:    ;;#ASMEND8438; GFX942-NEXT:    s_setpc_b64 s[30:31]8439  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8440  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8441  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 5>8442  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8443  ret void8444}8445 8446define void @s_shuffle_v3p3_v4p3__7_7_6() {8447; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_7_6:8448; GFX9:       ; %bb.0:8449; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8450; GFX9-NEXT:    ;;#ASMSTART8451; GFX9-NEXT:    ; def s[8:11]8452; GFX9-NEXT:    ;;#ASMEND8453; GFX9-NEXT:    s_mov_b32 s8, s118454; GFX9-NEXT:    s_mov_b32 s9, s118455; GFX9-NEXT:    ;;#ASMSTART8456; GFX9-NEXT:    ; use s[8:10]8457; GFX9-NEXT:    ;;#ASMEND8458; GFX9-NEXT:    s_setpc_b64 s[30:31]8459  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8460  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8461  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 6>8462  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8463  ret void8464}8465 8466define void @s_shuffle_v3p3_v4p3__7_7_7() {8467; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_7_7:8468; GFX900:       ; %bb.0:8469; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8470; GFX900-NEXT:    ;;#ASMSTART8471; GFX900-NEXT:    ; def s[4:7]8472; GFX900-NEXT:    ;;#ASMEND8473; GFX900-NEXT:    s_mov_b32 s8, s78474; GFX900-NEXT:    s_mov_b32 s9, s78475; GFX900-NEXT:    s_mov_b32 s10, s78476; GFX900-NEXT:    ;;#ASMSTART8477; GFX900-NEXT:    ; use s[8:10]8478; GFX900-NEXT:    ;;#ASMEND8479; GFX900-NEXT:    s_setpc_b64 s[30:31]8480;8481; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_7_7:8482; GFX90A:       ; %bb.0:8483; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8484; GFX90A-NEXT:    ;;#ASMSTART8485; GFX90A-NEXT:    ; def s[4:7]8486; GFX90A-NEXT:    ;;#ASMEND8487; GFX90A-NEXT:    s_mov_b32 s8, s78488; GFX90A-NEXT:    s_mov_b32 s9, s78489; GFX90A-NEXT:    s_mov_b32 s10, s78490; GFX90A-NEXT:    ;;#ASMSTART8491; GFX90A-NEXT:    ; use s[8:10]8492; GFX90A-NEXT:    ;;#ASMEND8493; GFX90A-NEXT:    s_setpc_b64 s[30:31]8494;8495; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_7_7:8496; GFX942:       ; %bb.0:8497; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8498; GFX942-NEXT:    ;;#ASMSTART8499; GFX942-NEXT:    ; def s[0:3]8500; GFX942-NEXT:    ;;#ASMEND8501; GFX942-NEXT:    s_mov_b32 s8, s38502; GFX942-NEXT:    s_mov_b32 s9, s38503; GFX942-NEXT:    s_mov_b32 s10, s38504; GFX942-NEXT:    ;;#ASMSTART8505; GFX942-NEXT:    ; use s[8:10]8506; GFX942-NEXT:    ;;#ASMEND8507; GFX942-NEXT:    s_setpc_b64 s[30:31]8508  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8509  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8510  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 7, i32 7>8511  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8512  ret void8513}8514 8515define void @s_shuffle_v3p3_v4p3__u_0_0() {8516; GFX900-LABEL: s_shuffle_v3p3_v4p3__u_0_0:8517; GFX900:       ; %bb.0:8518; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8519; GFX900-NEXT:    ;;#ASMSTART8520; GFX900-NEXT:    ; def s[4:7]8521; GFX900-NEXT:    ;;#ASMEND8522; GFX900-NEXT:    s_mov_b32 s9, s48523; GFX900-NEXT:    s_mov_b32 s10, s48524; GFX900-NEXT:    ;;#ASMSTART8525; GFX900-NEXT:    ; use s[8:10]8526; GFX900-NEXT:    ;;#ASMEND8527; GFX900-NEXT:    s_setpc_b64 s[30:31]8528;8529; GFX90A-LABEL: s_shuffle_v3p3_v4p3__u_0_0:8530; GFX90A:       ; %bb.0:8531; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8532; GFX90A-NEXT:    ;;#ASMSTART8533; GFX90A-NEXT:    ; def s[4:7]8534; GFX90A-NEXT:    ;;#ASMEND8535; GFX90A-NEXT:    s_mov_b32 s9, s48536; GFX90A-NEXT:    s_mov_b32 s10, s48537; GFX90A-NEXT:    ;;#ASMSTART8538; GFX90A-NEXT:    ; use s[8:10]8539; GFX90A-NEXT:    ;;#ASMEND8540; GFX90A-NEXT:    s_setpc_b64 s[30:31]8541;8542; GFX942-LABEL: s_shuffle_v3p3_v4p3__u_0_0:8543; GFX942:       ; %bb.0:8544; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8545; GFX942-NEXT:    ;;#ASMSTART8546; GFX942-NEXT:    ; def s[0:3]8547; GFX942-NEXT:    ;;#ASMEND8548; GFX942-NEXT:    s_mov_b32 s9, s08549; GFX942-NEXT:    s_mov_b32 s10, s08550; GFX942-NEXT:    ;;#ASMSTART8551; GFX942-NEXT:    ; use s[8:10]8552; GFX942-NEXT:    ;;#ASMEND8553; GFX942-NEXT:    s_setpc_b64 s[30:31]8554  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8555  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 0, i32 0>8556  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8557  ret void8558}8559 8560define void @s_shuffle_v3p3_v4p3__0_0_0() {8561; GFX9-LABEL: s_shuffle_v3p3_v4p3__0_0_0:8562; GFX9:       ; %bb.0:8563; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8564; GFX9-NEXT:    ;;#ASMSTART8565; GFX9-NEXT:    ; def s[8:11]8566; GFX9-NEXT:    ;;#ASMEND8567; GFX9-NEXT:    s_mov_b32 s9, s88568; GFX9-NEXT:    s_mov_b32 s10, s88569; GFX9-NEXT:    ;;#ASMSTART8570; GFX9-NEXT:    ; use s[8:10]8571; GFX9-NEXT:    ;;#ASMEND8572; GFX9-NEXT:    s_setpc_b64 s[30:31]8573  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8574  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> zeroinitializer8575  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8576  ret void8577}8578 8579define void @s_shuffle_v3p3_v4p3__1_0_0() {8580; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_0_0:8581; GFX900:       ; %bb.0:8582; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8583; GFX900-NEXT:    ;;#ASMSTART8584; GFX900-NEXT:    ; def s[4:7]8585; GFX900-NEXT:    ;;#ASMEND8586; GFX900-NEXT:    s_mov_b32 s8, s58587; GFX900-NEXT:    s_mov_b32 s9, s48588; GFX900-NEXT:    s_mov_b32 s10, s48589; GFX900-NEXT:    ;;#ASMSTART8590; GFX900-NEXT:    ; use s[8:10]8591; GFX900-NEXT:    ;;#ASMEND8592; GFX900-NEXT:    s_setpc_b64 s[30:31]8593;8594; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_0_0:8595; GFX90A:       ; %bb.0:8596; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8597; GFX90A-NEXT:    ;;#ASMSTART8598; GFX90A-NEXT:    ; def s[4:7]8599; GFX90A-NEXT:    ;;#ASMEND8600; GFX90A-NEXT:    s_mov_b32 s8, s58601; GFX90A-NEXT:    s_mov_b32 s9, s48602; GFX90A-NEXT:    s_mov_b32 s10, s48603; GFX90A-NEXT:    ;;#ASMSTART8604; GFX90A-NEXT:    ; use s[8:10]8605; GFX90A-NEXT:    ;;#ASMEND8606; GFX90A-NEXT:    s_setpc_b64 s[30:31]8607;8608; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_0_0:8609; GFX942:       ; %bb.0:8610; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8611; GFX942-NEXT:    ;;#ASMSTART8612; GFX942-NEXT:    ; def s[0:3]8613; GFX942-NEXT:    ;;#ASMEND8614; GFX942-NEXT:    s_mov_b32 s8, s18615; GFX942-NEXT:    s_mov_b32 s9, s08616; GFX942-NEXT:    s_mov_b32 s10, s08617; GFX942-NEXT:    ;;#ASMSTART8618; GFX942-NEXT:    ; use s[8:10]8619; GFX942-NEXT:    ;;#ASMEND8620; GFX942-NEXT:    s_setpc_b64 s[30:31]8621  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8622  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 0, i32 0>8623  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8624  ret void8625}8626 8627define void @s_shuffle_v3p3_v4p3__2_0_0() {8628; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_0_0:8629; GFX900:       ; %bb.0:8630; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8631; GFX900-NEXT:    ;;#ASMSTART8632; GFX900-NEXT:    ; def s[4:7]8633; GFX900-NEXT:    ;;#ASMEND8634; GFX900-NEXT:    s_mov_b32 s8, s68635; GFX900-NEXT:    s_mov_b32 s9, s48636; GFX900-NEXT:    s_mov_b32 s10, s48637; GFX900-NEXT:    ;;#ASMSTART8638; GFX900-NEXT:    ; use s[8:10]8639; GFX900-NEXT:    ;;#ASMEND8640; GFX900-NEXT:    s_setpc_b64 s[30:31]8641;8642; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_0_0:8643; GFX90A:       ; %bb.0:8644; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8645; GFX90A-NEXT:    ;;#ASMSTART8646; GFX90A-NEXT:    ; def s[4:7]8647; GFX90A-NEXT:    ;;#ASMEND8648; GFX90A-NEXT:    s_mov_b32 s8, s68649; GFX90A-NEXT:    s_mov_b32 s9, s48650; GFX90A-NEXT:    s_mov_b32 s10, s48651; GFX90A-NEXT:    ;;#ASMSTART8652; GFX90A-NEXT:    ; use s[8:10]8653; GFX90A-NEXT:    ;;#ASMEND8654; GFX90A-NEXT:    s_setpc_b64 s[30:31]8655;8656; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_0_0:8657; GFX942:       ; %bb.0:8658; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8659; GFX942-NEXT:    ;;#ASMSTART8660; GFX942-NEXT:    ; def s[0:3]8661; GFX942-NEXT:    ;;#ASMEND8662; GFX942-NEXT:    s_mov_b32 s8, s28663; GFX942-NEXT:    s_mov_b32 s9, s08664; GFX942-NEXT:    s_mov_b32 s10, s08665; GFX942-NEXT:    ;;#ASMSTART8666; GFX942-NEXT:    ; use s[8:10]8667; GFX942-NEXT:    ;;#ASMEND8668; GFX942-NEXT:    s_setpc_b64 s[30:31]8669  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8670  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 0, i32 0>8671  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8672  ret void8673}8674 8675define void @s_shuffle_v3p3_v4p3__3_0_0() {8676; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_0_0:8677; GFX900:       ; %bb.0:8678; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8679; GFX900-NEXT:    ;;#ASMSTART8680; GFX900-NEXT:    ; def s[4:7]8681; GFX900-NEXT:    ;;#ASMEND8682; GFX900-NEXT:    s_mov_b32 s8, s78683; GFX900-NEXT:    s_mov_b32 s9, s48684; GFX900-NEXT:    s_mov_b32 s10, s48685; GFX900-NEXT:    ;;#ASMSTART8686; GFX900-NEXT:    ; use s[8:10]8687; GFX900-NEXT:    ;;#ASMEND8688; GFX900-NEXT:    s_setpc_b64 s[30:31]8689;8690; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_0_0:8691; GFX90A:       ; %bb.0:8692; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8693; GFX90A-NEXT:    ;;#ASMSTART8694; GFX90A-NEXT:    ; def s[4:7]8695; GFX90A-NEXT:    ;;#ASMEND8696; GFX90A-NEXT:    s_mov_b32 s8, s78697; GFX90A-NEXT:    s_mov_b32 s9, s48698; GFX90A-NEXT:    s_mov_b32 s10, s48699; GFX90A-NEXT:    ;;#ASMSTART8700; GFX90A-NEXT:    ; use s[8:10]8701; GFX90A-NEXT:    ;;#ASMEND8702; GFX90A-NEXT:    s_setpc_b64 s[30:31]8703;8704; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_0_0:8705; GFX942:       ; %bb.0:8706; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8707; GFX942-NEXT:    ;;#ASMSTART8708; GFX942-NEXT:    ; def s[0:3]8709; GFX942-NEXT:    ;;#ASMEND8710; GFX942-NEXT:    s_mov_b32 s8, s38711; GFX942-NEXT:    s_mov_b32 s9, s08712; GFX942-NEXT:    s_mov_b32 s10, s08713; GFX942-NEXT:    ;;#ASMSTART8714; GFX942-NEXT:    ; use s[8:10]8715; GFX942-NEXT:    ;;#ASMEND8716; GFX942-NEXT:    s_setpc_b64 s[30:31]8717  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8718  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 0, i32 0>8719  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8720  ret void8721}8722 8723define void @s_shuffle_v3p3_v4p3__4_0_0() {8724; GFX900-LABEL: s_shuffle_v3p3_v4p3__4_0_0:8725; GFX900:       ; %bb.0:8726; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8727; GFX900-NEXT:    ;;#ASMSTART8728; GFX900-NEXT:    ; def s[4:7]8729; GFX900-NEXT:    ;;#ASMEND8730; GFX900-NEXT:    s_mov_b32 s9, s48731; GFX900-NEXT:    s_mov_b32 s10, s48732; GFX900-NEXT:    ;;#ASMSTART8733; GFX900-NEXT:    ; use s[8:10]8734; GFX900-NEXT:    ;;#ASMEND8735; GFX900-NEXT:    s_setpc_b64 s[30:31]8736;8737; GFX90A-LABEL: s_shuffle_v3p3_v4p3__4_0_0:8738; GFX90A:       ; %bb.0:8739; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8740; GFX90A-NEXT:    ;;#ASMSTART8741; GFX90A-NEXT:    ; def s[4:7]8742; GFX90A-NEXT:    ;;#ASMEND8743; GFX90A-NEXT:    s_mov_b32 s9, s48744; GFX90A-NEXT:    s_mov_b32 s10, s48745; GFX90A-NEXT:    ;;#ASMSTART8746; GFX90A-NEXT:    ; use s[8:10]8747; GFX90A-NEXT:    ;;#ASMEND8748; GFX90A-NEXT:    s_setpc_b64 s[30:31]8749;8750; GFX942-LABEL: s_shuffle_v3p3_v4p3__4_0_0:8751; GFX942:       ; %bb.0:8752; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8753; GFX942-NEXT:    ;;#ASMSTART8754; GFX942-NEXT:    ; def s[0:3]8755; GFX942-NEXT:    ;;#ASMEND8756; GFX942-NEXT:    s_mov_b32 s9, s08757; GFX942-NEXT:    s_mov_b32 s10, s08758; GFX942-NEXT:    ;;#ASMSTART8759; GFX942-NEXT:    ; use s[8:10]8760; GFX942-NEXT:    ;;#ASMEND8761; GFX942-NEXT:    s_setpc_b64 s[30:31]8762  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8763  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 0, i32 0>8764  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8765  ret void8766}8767 8768define void @s_shuffle_v3p3_v4p3__5_0_0() {8769; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_0_0:8770; GFX900:       ; %bb.0:8771; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8772; GFX900-NEXT:    ;;#ASMSTART8773; GFX900-NEXT:    ; def s[8:11]8774; GFX900-NEXT:    ;;#ASMEND8775; GFX900-NEXT:    ;;#ASMSTART8776; GFX900-NEXT:    ; def s[4:7]8777; GFX900-NEXT:    ;;#ASMEND8778; GFX900-NEXT:    s_mov_b32 s8, s98779; GFX900-NEXT:    s_mov_b32 s9, s48780; GFX900-NEXT:    s_mov_b32 s10, s48781; GFX900-NEXT:    ;;#ASMSTART8782; GFX900-NEXT:    ; use s[8:10]8783; GFX900-NEXT:    ;;#ASMEND8784; GFX900-NEXT:    s_setpc_b64 s[30:31]8785;8786; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_0_0:8787; GFX90A:       ; %bb.0:8788; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8789; GFX90A-NEXT:    ;;#ASMSTART8790; GFX90A-NEXT:    ; def s[8:11]8791; GFX90A-NEXT:    ;;#ASMEND8792; GFX90A-NEXT:    ;;#ASMSTART8793; GFX90A-NEXT:    ; def s[4:7]8794; GFX90A-NEXT:    ;;#ASMEND8795; GFX90A-NEXT:    s_mov_b32 s8, s98796; GFX90A-NEXT:    s_mov_b32 s9, s48797; GFX90A-NEXT:    s_mov_b32 s10, s48798; GFX90A-NEXT:    ;;#ASMSTART8799; GFX90A-NEXT:    ; use s[8:10]8800; GFX90A-NEXT:    ;;#ASMEND8801; GFX90A-NEXT:    s_setpc_b64 s[30:31]8802;8803; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_0_0:8804; GFX942:       ; %bb.0:8805; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8806; GFX942-NEXT:    ;;#ASMSTART8807; GFX942-NEXT:    ; def s[0:3]8808; GFX942-NEXT:    ;;#ASMEND8809; GFX942-NEXT:    ;;#ASMSTART8810; GFX942-NEXT:    ; def s[4:7]8811; GFX942-NEXT:    ;;#ASMEND8812; GFX942-NEXT:    s_mov_b32 s8, s58813; GFX942-NEXT:    s_mov_b32 s9, s08814; GFX942-NEXT:    s_mov_b32 s10, s08815; GFX942-NEXT:    ;;#ASMSTART8816; GFX942-NEXT:    ; use s[8:10]8817; GFX942-NEXT:    ;;#ASMEND8818; GFX942-NEXT:    s_setpc_b64 s[30:31]8819  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8820  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8821  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 0, i32 0>8822  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8823  ret void8824}8825 8826define void @s_shuffle_v3p3_v4p3__6_0_0() {8827; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_0_0:8828; GFX900:       ; %bb.0:8829; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8830; GFX900-NEXT:    ;;#ASMSTART8831; GFX900-NEXT:    ; def s[8:11]8832; GFX900-NEXT:    ;;#ASMEND8833; GFX900-NEXT:    ;;#ASMSTART8834; GFX900-NEXT:    ; def s[4:7]8835; GFX900-NEXT:    ;;#ASMEND8836; GFX900-NEXT:    s_mov_b32 s8, s108837; GFX900-NEXT:    s_mov_b32 s9, s48838; GFX900-NEXT:    s_mov_b32 s10, s48839; GFX900-NEXT:    ;;#ASMSTART8840; GFX900-NEXT:    ; use s[8:10]8841; GFX900-NEXT:    ;;#ASMEND8842; GFX900-NEXT:    s_setpc_b64 s[30:31]8843;8844; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_0_0:8845; GFX90A:       ; %bb.0:8846; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8847; GFX90A-NEXT:    ;;#ASMSTART8848; GFX90A-NEXT:    ; def s[8:11]8849; GFX90A-NEXT:    ;;#ASMEND8850; GFX90A-NEXT:    ;;#ASMSTART8851; GFX90A-NEXT:    ; def s[4:7]8852; GFX90A-NEXT:    ;;#ASMEND8853; GFX90A-NEXT:    s_mov_b32 s8, s108854; GFX90A-NEXT:    s_mov_b32 s9, s48855; GFX90A-NEXT:    s_mov_b32 s10, s48856; GFX90A-NEXT:    ;;#ASMSTART8857; GFX90A-NEXT:    ; use s[8:10]8858; GFX90A-NEXT:    ;;#ASMEND8859; GFX90A-NEXT:    s_setpc_b64 s[30:31]8860;8861; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_0_0:8862; GFX942:       ; %bb.0:8863; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8864; GFX942-NEXT:    ;;#ASMSTART8865; GFX942-NEXT:    ; def s[0:3]8866; GFX942-NEXT:    ;;#ASMEND8867; GFX942-NEXT:    ;;#ASMSTART8868; GFX942-NEXT:    ; def s[4:7]8869; GFX942-NEXT:    ;;#ASMEND8870; GFX942-NEXT:    s_mov_b32 s8, s68871; GFX942-NEXT:    s_mov_b32 s9, s08872; GFX942-NEXT:    s_mov_b32 s10, s08873; GFX942-NEXT:    ;;#ASMSTART8874; GFX942-NEXT:    ; use s[8:10]8875; GFX942-NEXT:    ;;#ASMEND8876; GFX942-NEXT:    s_setpc_b64 s[30:31]8877  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8878  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8879  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 0, i32 0>8880  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8881  ret void8882}8883 8884define void @s_shuffle_v3p3_v4p3__7_0_0() {8885; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_0:8886; GFX900:       ; %bb.0:8887; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8888; GFX900-NEXT:    ;;#ASMSTART8889; GFX900-NEXT:    ; def s[8:11]8890; GFX900-NEXT:    ;;#ASMEND8891; GFX900-NEXT:    ;;#ASMSTART8892; GFX900-NEXT:    ; def s[4:7]8893; GFX900-NEXT:    ;;#ASMEND8894; GFX900-NEXT:    s_mov_b32 s8, s118895; GFX900-NEXT:    s_mov_b32 s9, s48896; GFX900-NEXT:    s_mov_b32 s10, s48897; GFX900-NEXT:    ;;#ASMSTART8898; GFX900-NEXT:    ; use s[8:10]8899; GFX900-NEXT:    ;;#ASMEND8900; GFX900-NEXT:    s_setpc_b64 s[30:31]8901;8902; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_0:8903; GFX90A:       ; %bb.0:8904; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8905; GFX90A-NEXT:    ;;#ASMSTART8906; GFX90A-NEXT:    ; def s[8:11]8907; GFX90A-NEXT:    ;;#ASMEND8908; GFX90A-NEXT:    ;;#ASMSTART8909; GFX90A-NEXT:    ; def s[4:7]8910; GFX90A-NEXT:    ;;#ASMEND8911; GFX90A-NEXT:    s_mov_b32 s8, s118912; GFX90A-NEXT:    s_mov_b32 s9, s48913; GFX90A-NEXT:    s_mov_b32 s10, s48914; GFX90A-NEXT:    ;;#ASMSTART8915; GFX90A-NEXT:    ; use s[8:10]8916; GFX90A-NEXT:    ;;#ASMEND8917; GFX90A-NEXT:    s_setpc_b64 s[30:31]8918;8919; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_0:8920; GFX942:       ; %bb.0:8921; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8922; GFX942-NEXT:    ;;#ASMSTART8923; GFX942-NEXT:    ; def s[0:3]8924; GFX942-NEXT:    ;;#ASMEND8925; GFX942-NEXT:    ;;#ASMSTART8926; GFX942-NEXT:    ; def s[4:7]8927; GFX942-NEXT:    ;;#ASMEND8928; GFX942-NEXT:    s_mov_b32 s8, s78929; GFX942-NEXT:    s_mov_b32 s9, s08930; GFX942-NEXT:    s_mov_b32 s10, s08931; GFX942-NEXT:    ;;#ASMSTART8932; GFX942-NEXT:    ; use s[8:10]8933; GFX942-NEXT:    ;;#ASMEND8934; GFX942-NEXT:    s_setpc_b64 s[30:31]8935  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8936  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8937  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 0>8938  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8939  ret void8940}8941 8942define void @s_shuffle_v3p3_v4p3__7_u_0() {8943; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_0:8944; GFX900:       ; %bb.0:8945; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8946; GFX900-NEXT:    ;;#ASMSTART8947; GFX900-NEXT:    ; def s[8:11]8948; GFX900-NEXT:    ;;#ASMEND8949; GFX900-NEXT:    ;;#ASMSTART8950; GFX900-NEXT:    ; def s[4:7]8951; GFX900-NEXT:    ;;#ASMEND8952; GFX900-NEXT:    s_mov_b32 s8, s118953; GFX900-NEXT:    s_mov_b32 s10, s48954; GFX900-NEXT:    ;;#ASMSTART8955; GFX900-NEXT:    ; use s[8:10]8956; GFX900-NEXT:    ;;#ASMEND8957; GFX900-NEXT:    s_setpc_b64 s[30:31]8958;8959; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_0:8960; GFX90A:       ; %bb.0:8961; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8962; GFX90A-NEXT:    ;;#ASMSTART8963; GFX90A-NEXT:    ; def s[8:11]8964; GFX90A-NEXT:    ;;#ASMEND8965; GFX90A-NEXT:    ;;#ASMSTART8966; GFX90A-NEXT:    ; def s[4:7]8967; GFX90A-NEXT:    ;;#ASMEND8968; GFX90A-NEXT:    s_mov_b32 s8, s118969; GFX90A-NEXT:    s_mov_b32 s10, s48970; GFX90A-NEXT:    ;;#ASMSTART8971; GFX90A-NEXT:    ; use s[8:10]8972; GFX90A-NEXT:    ;;#ASMEND8973; GFX90A-NEXT:    s_setpc_b64 s[30:31]8974;8975; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_0:8976; GFX942:       ; %bb.0:8977; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8978; GFX942-NEXT:    ;;#ASMSTART8979; GFX942-NEXT:    ; def s[0:3]8980; GFX942-NEXT:    ;;#ASMEND8981; GFX942-NEXT:    ;;#ASMSTART8982; GFX942-NEXT:    ; def s[4:7]8983; GFX942-NEXT:    ;;#ASMEND8984; GFX942-NEXT:    s_mov_b32 s8, s78985; GFX942-NEXT:    s_mov_b32 s10, s08986; GFX942-NEXT:    ;;#ASMSTART8987; GFX942-NEXT:    ; use s[8:10]8988; GFX942-NEXT:    ;;#ASMEND8989; GFX942-NEXT:    s_setpc_b64 s[30:31]8990  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8991  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()8992  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>8993  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)8994  ret void8995}8996 8997define void @s_shuffle_v3p3_v4p3__7_1_0() {8998; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_0:8999; GFX900:       ; %bb.0:9000; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9001; GFX900-NEXT:    ;;#ASMSTART9002; GFX900-NEXT:    ; def s[8:11]9003; GFX900-NEXT:    ;;#ASMEND9004; GFX900-NEXT:    ;;#ASMSTART9005; GFX900-NEXT:    ; def s[4:7]9006; GFX900-NEXT:    ;;#ASMEND9007; GFX900-NEXT:    s_mov_b32 s8, s119008; GFX900-NEXT:    s_mov_b32 s9, s59009; GFX900-NEXT:    s_mov_b32 s10, s49010; GFX900-NEXT:    ;;#ASMSTART9011; GFX900-NEXT:    ; use s[8:10]9012; GFX900-NEXT:    ;;#ASMEND9013; GFX900-NEXT:    s_setpc_b64 s[30:31]9014;9015; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_0:9016; GFX90A:       ; %bb.0:9017; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9018; GFX90A-NEXT:    ;;#ASMSTART9019; GFX90A-NEXT:    ; def s[8:11]9020; GFX90A-NEXT:    ;;#ASMEND9021; GFX90A-NEXT:    ;;#ASMSTART9022; GFX90A-NEXT:    ; def s[4:7]9023; GFX90A-NEXT:    ;;#ASMEND9024; GFX90A-NEXT:    s_mov_b32 s8, s119025; GFX90A-NEXT:    s_mov_b32 s9, s59026; GFX90A-NEXT:    s_mov_b32 s10, s49027; GFX90A-NEXT:    ;;#ASMSTART9028; GFX90A-NEXT:    ; use s[8:10]9029; GFX90A-NEXT:    ;;#ASMEND9030; GFX90A-NEXT:    s_setpc_b64 s[30:31]9031;9032; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_0:9033; GFX942:       ; %bb.0:9034; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9035; GFX942-NEXT:    ;;#ASMSTART9036; GFX942-NEXT:    ; def s[0:3]9037; GFX942-NEXT:    ;;#ASMEND9038; GFX942-NEXT:    ;;#ASMSTART9039; GFX942-NEXT:    ; def s[4:7]9040; GFX942-NEXT:    ;;#ASMEND9041; GFX942-NEXT:    s_mov_b32 s8, s79042; GFX942-NEXT:    s_mov_b32 s9, s19043; GFX942-NEXT:    s_mov_b32 s10, s09044; GFX942-NEXT:    ;;#ASMSTART9045; GFX942-NEXT:    ; use s[8:10]9046; GFX942-NEXT:    ;;#ASMEND9047; GFX942-NEXT:    s_setpc_b64 s[30:31]9048  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9049  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9050  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 0>9051  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9052  ret void9053}9054 9055define void @s_shuffle_v3p3_v4p3__7_2_0() {9056; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_0:9057; GFX900:       ; %bb.0:9058; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9059; GFX900-NEXT:    ;;#ASMSTART9060; GFX900-NEXT:    ; def s[8:11]9061; GFX900-NEXT:    ;;#ASMEND9062; GFX900-NEXT:    ;;#ASMSTART9063; GFX900-NEXT:    ; def s[4:7]9064; GFX900-NEXT:    ;;#ASMEND9065; GFX900-NEXT:    s_mov_b32 s8, s119066; GFX900-NEXT:    s_mov_b32 s9, s69067; GFX900-NEXT:    s_mov_b32 s10, s49068; GFX900-NEXT:    ;;#ASMSTART9069; GFX900-NEXT:    ; use s[8:10]9070; GFX900-NEXT:    ;;#ASMEND9071; GFX900-NEXT:    s_setpc_b64 s[30:31]9072;9073; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_0:9074; GFX90A:       ; %bb.0:9075; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9076; GFX90A-NEXT:    ;;#ASMSTART9077; GFX90A-NEXT:    ; def s[8:11]9078; GFX90A-NEXT:    ;;#ASMEND9079; GFX90A-NEXT:    ;;#ASMSTART9080; GFX90A-NEXT:    ; def s[4:7]9081; GFX90A-NEXT:    ;;#ASMEND9082; GFX90A-NEXT:    s_mov_b32 s8, s119083; GFX90A-NEXT:    s_mov_b32 s9, s69084; GFX90A-NEXT:    s_mov_b32 s10, s49085; GFX90A-NEXT:    ;;#ASMSTART9086; GFX90A-NEXT:    ; use s[8:10]9087; GFX90A-NEXT:    ;;#ASMEND9088; GFX90A-NEXT:    s_setpc_b64 s[30:31]9089;9090; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_0:9091; GFX942:       ; %bb.0:9092; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9093; GFX942-NEXT:    ;;#ASMSTART9094; GFX942-NEXT:    ; def s[0:3]9095; GFX942-NEXT:    ;;#ASMEND9096; GFX942-NEXT:    ;;#ASMSTART9097; GFX942-NEXT:    ; def s[4:7]9098; GFX942-NEXT:    ;;#ASMEND9099; GFX942-NEXT:    s_mov_b32 s8, s79100; GFX942-NEXT:    s_mov_b32 s9, s29101; GFX942-NEXT:    s_mov_b32 s10, s09102; GFX942-NEXT:    ;;#ASMSTART9103; GFX942-NEXT:    ; use s[8:10]9104; GFX942-NEXT:    ;;#ASMEND9105; GFX942-NEXT:    s_setpc_b64 s[30:31]9106  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9107  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9108  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 0>9109  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9110  ret void9111}9112 9113define void @s_shuffle_v3p3_v4p3__7_3_0() {9114; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_0:9115; GFX900:       ; %bb.0:9116; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9117; GFX900-NEXT:    ;;#ASMSTART9118; GFX900-NEXT:    ; def s[8:11]9119; GFX900-NEXT:    ;;#ASMEND9120; GFX900-NEXT:    ;;#ASMSTART9121; GFX900-NEXT:    ; def s[4:7]9122; GFX900-NEXT:    ;;#ASMEND9123; GFX900-NEXT:    s_mov_b32 s8, s119124; GFX900-NEXT:    s_mov_b32 s9, s79125; GFX900-NEXT:    s_mov_b32 s10, s49126; GFX900-NEXT:    ;;#ASMSTART9127; GFX900-NEXT:    ; use s[8:10]9128; GFX900-NEXT:    ;;#ASMEND9129; GFX900-NEXT:    s_setpc_b64 s[30:31]9130;9131; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_0:9132; GFX90A:       ; %bb.0:9133; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9134; GFX90A-NEXT:    ;;#ASMSTART9135; GFX90A-NEXT:    ; def s[8:11]9136; GFX90A-NEXT:    ;;#ASMEND9137; GFX90A-NEXT:    ;;#ASMSTART9138; GFX90A-NEXT:    ; def s[4:7]9139; GFX90A-NEXT:    ;;#ASMEND9140; GFX90A-NEXT:    s_mov_b32 s8, s119141; GFX90A-NEXT:    s_mov_b32 s9, s79142; GFX90A-NEXT:    s_mov_b32 s10, s49143; GFX90A-NEXT:    ;;#ASMSTART9144; GFX90A-NEXT:    ; use s[8:10]9145; GFX90A-NEXT:    ;;#ASMEND9146; GFX90A-NEXT:    s_setpc_b64 s[30:31]9147;9148; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_0:9149; GFX942:       ; %bb.0:9150; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9151; GFX942-NEXT:    ;;#ASMSTART9152; GFX942-NEXT:    ; def s[0:3]9153; GFX942-NEXT:    ;;#ASMEND9154; GFX942-NEXT:    ;;#ASMSTART9155; GFX942-NEXT:    ; def s[4:7]9156; GFX942-NEXT:    ;;#ASMEND9157; GFX942-NEXT:    s_mov_b32 s8, s79158; GFX942-NEXT:    s_mov_b32 s9, s39159; GFX942-NEXT:    s_mov_b32 s10, s09160; GFX942-NEXT:    ;;#ASMSTART9161; GFX942-NEXT:    ; use s[8:10]9162; GFX942-NEXT:    ;;#ASMEND9163; GFX942-NEXT:    s_setpc_b64 s[30:31]9164  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9165  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9166  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 0>9167  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9168  ret void9169}9170 9171define void @s_shuffle_v3p3_v4p3__7_4_0() {9172; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_0:9173; GFX900:       ; %bb.0:9174; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9175; GFX900-NEXT:    ;;#ASMSTART9176; GFX900-NEXT:    ; def s[4:7]9177; GFX900-NEXT:    ;;#ASMEND9178; GFX900-NEXT:    ;;#ASMSTART9179; GFX900-NEXT:    ; def s[12:15]9180; GFX900-NEXT:    ;;#ASMEND9181; GFX900-NEXT:    s_mov_b32 s8, s159182; GFX900-NEXT:    s_mov_b32 s9, s129183; GFX900-NEXT:    s_mov_b32 s10, s49184; GFX900-NEXT:    ;;#ASMSTART9185; GFX900-NEXT:    ; use s[8:10]9186; GFX900-NEXT:    ;;#ASMEND9187; GFX900-NEXT:    s_setpc_b64 s[30:31]9188;9189; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_0:9190; GFX90A:       ; %bb.0:9191; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9192; GFX90A-NEXT:    ;;#ASMSTART9193; GFX90A-NEXT:    ; def s[4:7]9194; GFX90A-NEXT:    ;;#ASMEND9195; GFX90A-NEXT:    ;;#ASMSTART9196; GFX90A-NEXT:    ; def s[12:15]9197; GFX90A-NEXT:    ;;#ASMEND9198; GFX90A-NEXT:    s_mov_b32 s8, s159199; GFX90A-NEXT:    s_mov_b32 s9, s129200; GFX90A-NEXT:    s_mov_b32 s10, s49201; GFX90A-NEXT:    ;;#ASMSTART9202; GFX90A-NEXT:    ; use s[8:10]9203; GFX90A-NEXT:    ;;#ASMEND9204; GFX90A-NEXT:    s_setpc_b64 s[30:31]9205;9206; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_0:9207; GFX942:       ; %bb.0:9208; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9209; GFX942-NEXT:    ;;#ASMSTART9210; GFX942-NEXT:    ; def s[0:3]9211; GFX942-NEXT:    ;;#ASMEND9212; GFX942-NEXT:    ;;#ASMSTART9213; GFX942-NEXT:    ; def s[4:7]9214; GFX942-NEXT:    ;;#ASMEND9215; GFX942-NEXT:    s_mov_b32 s8, s79216; GFX942-NEXT:    s_mov_b32 s9, s49217; GFX942-NEXT:    s_mov_b32 s10, s09218; GFX942-NEXT:    ;;#ASMSTART9219; GFX942-NEXT:    ; use s[8:10]9220; GFX942-NEXT:    ;;#ASMEND9221; GFX942-NEXT:    s_setpc_b64 s[30:31]9222  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9223  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9224  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 0>9225  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9226  ret void9227}9228 9229define void @s_shuffle_v3p3_v4p3__7_5_0() {9230; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_5_0:9231; GFX900:       ; %bb.0:9232; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9233; GFX900-NEXT:    ;;#ASMSTART9234; GFX900-NEXT:    ; def s[8:11]9235; GFX900-NEXT:    ;;#ASMEND9236; GFX900-NEXT:    ;;#ASMSTART9237; GFX900-NEXT:    ; def s[4:7]9238; GFX900-NEXT:    ;;#ASMEND9239; GFX900-NEXT:    s_mov_b32 s8, s119240; GFX900-NEXT:    s_mov_b32 s10, s49241; GFX900-NEXT:    ;;#ASMSTART9242; GFX900-NEXT:    ; use s[8:10]9243; GFX900-NEXT:    ;;#ASMEND9244; GFX900-NEXT:    s_setpc_b64 s[30:31]9245;9246; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_5_0:9247; GFX90A:       ; %bb.0:9248; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9249; GFX90A-NEXT:    ;;#ASMSTART9250; GFX90A-NEXT:    ; def s[8:11]9251; GFX90A-NEXT:    ;;#ASMEND9252; GFX90A-NEXT:    ;;#ASMSTART9253; GFX90A-NEXT:    ; def s[4:7]9254; GFX90A-NEXT:    ;;#ASMEND9255; GFX90A-NEXT:    s_mov_b32 s8, s119256; GFX90A-NEXT:    s_mov_b32 s10, s49257; GFX90A-NEXT:    ;;#ASMSTART9258; GFX90A-NEXT:    ; use s[8:10]9259; GFX90A-NEXT:    ;;#ASMEND9260; GFX90A-NEXT:    s_setpc_b64 s[30:31]9261;9262; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_5_0:9263; GFX942:       ; %bb.0:9264; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9265; GFX942-NEXT:    ;;#ASMSTART9266; GFX942-NEXT:    ; def s[8:11]9267; GFX942-NEXT:    ;;#ASMEND9268; GFX942-NEXT:    ;;#ASMSTART9269; GFX942-NEXT:    ; def s[0:3]9270; GFX942-NEXT:    ;;#ASMEND9271; GFX942-NEXT:    s_mov_b32 s8, s119272; GFX942-NEXT:    s_mov_b32 s10, s09273; GFX942-NEXT:    ;;#ASMSTART9274; GFX942-NEXT:    ; use s[8:10]9275; GFX942-NEXT:    ;;#ASMEND9276; GFX942-NEXT:    s_setpc_b64 s[30:31]9277  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9278  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9279  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 0>9280  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9281  ret void9282}9283 9284define void @s_shuffle_v3p3_v4p3__7_6_0() {9285; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_0:9286; GFX900:       ; %bb.0:9287; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9288; GFX900-NEXT:    ;;#ASMSTART9289; GFX900-NEXT:    ; def s[8:11]9290; GFX900-NEXT:    ;;#ASMEND9291; GFX900-NEXT:    ;;#ASMSTART9292; GFX900-NEXT:    ; def s[4:7]9293; GFX900-NEXT:    ;;#ASMEND9294; GFX900-NEXT:    s_mov_b32 s8, s119295; GFX900-NEXT:    s_mov_b32 s9, s109296; GFX900-NEXT:    s_mov_b32 s10, s49297; GFX900-NEXT:    ;;#ASMSTART9298; GFX900-NEXT:    ; use s[8:10]9299; GFX900-NEXT:    ;;#ASMEND9300; GFX900-NEXT:    s_setpc_b64 s[30:31]9301;9302; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_0:9303; GFX90A:       ; %bb.0:9304; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9305; GFX90A-NEXT:    ;;#ASMSTART9306; GFX90A-NEXT:    ; def s[8:11]9307; GFX90A-NEXT:    ;;#ASMEND9308; GFX90A-NEXT:    ;;#ASMSTART9309; GFX90A-NEXT:    ; def s[4:7]9310; GFX90A-NEXT:    ;;#ASMEND9311; GFX90A-NEXT:    s_mov_b32 s8, s119312; GFX90A-NEXT:    s_mov_b32 s9, s109313; GFX90A-NEXT:    s_mov_b32 s10, s49314; GFX90A-NEXT:    ;;#ASMSTART9315; GFX90A-NEXT:    ; use s[8:10]9316; GFX90A-NEXT:    ;;#ASMEND9317; GFX90A-NEXT:    s_setpc_b64 s[30:31]9318;9319; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_0:9320; GFX942:       ; %bb.0:9321; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9322; GFX942-NEXT:    ;;#ASMSTART9323; GFX942-NEXT:    ; def s[0:3]9324; GFX942-NEXT:    ;;#ASMEND9325; GFX942-NEXT:    ;;#ASMSTART9326; GFX942-NEXT:    ; def s[4:7]9327; GFX942-NEXT:    ;;#ASMEND9328; GFX942-NEXT:    s_mov_b32 s8, s79329; GFX942-NEXT:    s_mov_b32 s9, s69330; GFX942-NEXT:    s_mov_b32 s10, s09331; GFX942-NEXT:    ;;#ASMSTART9332; GFX942-NEXT:    ; use s[8:10]9333; GFX942-NEXT:    ;;#ASMEND9334; GFX942-NEXT:    s_setpc_b64 s[30:31]9335  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9336  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9337  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 0>9338  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9339  ret void9340}9341 9342define void @s_shuffle_v3p3_v4p3__u_1_1() {9343; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_1_1:9344; GFX9:       ; %bb.0:9345; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9346; GFX9-NEXT:    ;;#ASMSTART9347; GFX9-NEXT:    ; def s[8:11]9348; GFX9-NEXT:    ;;#ASMEND9349; GFX9-NEXT:    s_mov_b32 s10, s99350; GFX9-NEXT:    ;;#ASMSTART9351; GFX9-NEXT:    ; use s[8:10]9352; GFX9-NEXT:    ;;#ASMEND9353; GFX9-NEXT:    s_setpc_b64 s[30:31]9354  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9355  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 1, i32 1>9356  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9357  ret void9358}9359 9360define void @s_shuffle_v3p3_v4p3__0_1_1() {9361; GFX9-LABEL: s_shuffle_v3p3_v4p3__0_1_1:9362; GFX9:       ; %bb.0:9363; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9364; GFX9-NEXT:    ;;#ASMSTART9365; GFX9-NEXT:    ; def s[8:11]9366; GFX9-NEXT:    ;;#ASMEND9367; GFX9-NEXT:    s_mov_b32 s10, s99368; GFX9-NEXT:    ;;#ASMSTART9369; GFX9-NEXT:    ; use s[8:10]9370; GFX9-NEXT:    ;;#ASMEND9371; GFX9-NEXT:    s_setpc_b64 s[30:31]9372  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9373  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 1, i32 1>9374  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9375  ret void9376}9377 9378define void @s_shuffle_v3p3_v4p3__1_1_1() {9379; GFX9-LABEL: s_shuffle_v3p3_v4p3__1_1_1:9380; GFX9:       ; %bb.0:9381; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9382; GFX9-NEXT:    ;;#ASMSTART9383; GFX9-NEXT:    ; def s[8:11]9384; GFX9-NEXT:    ;;#ASMEND9385; GFX9-NEXT:    s_mov_b32 s8, s99386; GFX9-NEXT:    s_mov_b32 s10, s99387; GFX9-NEXT:    ;;#ASMSTART9388; GFX9-NEXT:    ; use s[8:10]9389; GFX9-NEXT:    ;;#ASMEND9390; GFX9-NEXT:    s_setpc_b64 s[30:31]9391  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9392  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 1, i32 1>9393  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9394  ret void9395}9396 9397define void @s_shuffle_v3p3_v4p3__2_1_1() {9398; GFX9-LABEL: s_shuffle_v3p3_v4p3__2_1_1:9399; GFX9:       ; %bb.0:9400; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9401; GFX9-NEXT:    ;;#ASMSTART9402; GFX9-NEXT:    ; def s[8:11]9403; GFX9-NEXT:    ;;#ASMEND9404; GFX9-NEXT:    s_mov_b32 s8, s109405; GFX9-NEXT:    s_mov_b32 s10, s99406; GFX9-NEXT:    ;;#ASMSTART9407; GFX9-NEXT:    ; use s[8:10]9408; GFX9-NEXT:    ;;#ASMEND9409; GFX9-NEXT:    s_setpc_b64 s[30:31]9410  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9411  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 1, i32 1>9412  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9413  ret void9414}9415 9416define void @s_shuffle_v3p3_v4p3__3_1_1() {9417; GFX9-LABEL: s_shuffle_v3p3_v4p3__3_1_1:9418; GFX9:       ; %bb.0:9419; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9420; GFX9-NEXT:    ;;#ASMSTART9421; GFX9-NEXT:    ; def s[8:11]9422; GFX9-NEXT:    ;;#ASMEND9423; GFX9-NEXT:    s_mov_b32 s8, s119424; GFX9-NEXT:    s_mov_b32 s10, s99425; GFX9-NEXT:    ;;#ASMSTART9426; GFX9-NEXT:    ; use s[8:10]9427; GFX9-NEXT:    ;;#ASMEND9428; GFX9-NEXT:    s_setpc_b64 s[30:31]9429  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9430  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 1, i32 1>9431  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9432  ret void9433}9434 9435define void @s_shuffle_v3p3_v4p3__4_1_1() {9436; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_1_1:9437; GFX9:       ; %bb.0:9438; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9439; GFX9-NEXT:    ;;#ASMSTART9440; GFX9-NEXT:    ; def s[8:11]9441; GFX9-NEXT:    ;;#ASMEND9442; GFX9-NEXT:    s_mov_b32 s10, s99443; GFX9-NEXT:    ;;#ASMSTART9444; GFX9-NEXT:    ; use s[8:10]9445; GFX9-NEXT:    ;;#ASMEND9446; GFX9-NEXT:    s_setpc_b64 s[30:31]9447  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9448  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 1, i32 1>9449  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9450  ret void9451}9452 9453define void @s_shuffle_v3p3_v4p3__5_1_1() {9454; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_1_1:9455; GFX900:       ; %bb.0:9456; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9457; GFX900-NEXT:    ;;#ASMSTART9458; GFX900-NEXT:    ; def s[8:11]9459; GFX900-NEXT:    ;;#ASMEND9460; GFX900-NEXT:    ;;#ASMSTART9461; GFX900-NEXT:    ; def s[4:7]9462; GFX900-NEXT:    ;;#ASMEND9463; GFX900-NEXT:    s_mov_b32 s8, s59464; GFX900-NEXT:    s_mov_b32 s10, s99465; GFX900-NEXT:    ;;#ASMSTART9466; GFX900-NEXT:    ; use s[8:10]9467; GFX900-NEXT:    ;;#ASMEND9468; GFX900-NEXT:    s_setpc_b64 s[30:31]9469;9470; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_1_1:9471; GFX90A:       ; %bb.0:9472; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9473; GFX90A-NEXT:    ;;#ASMSTART9474; GFX90A-NEXT:    ; def s[8:11]9475; GFX90A-NEXT:    ;;#ASMEND9476; GFX90A-NEXT:    ;;#ASMSTART9477; GFX90A-NEXT:    ; def s[4:7]9478; GFX90A-NEXT:    ;;#ASMEND9479; GFX90A-NEXT:    s_mov_b32 s8, s59480; GFX90A-NEXT:    s_mov_b32 s10, s99481; GFX90A-NEXT:    ;;#ASMSTART9482; GFX90A-NEXT:    ; use s[8:10]9483; GFX90A-NEXT:    ;;#ASMEND9484; GFX90A-NEXT:    s_setpc_b64 s[30:31]9485;9486; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_1_1:9487; GFX942:       ; %bb.0:9488; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9489; GFX942-NEXT:    ;;#ASMSTART9490; GFX942-NEXT:    ; def s[8:11]9491; GFX942-NEXT:    ;;#ASMEND9492; GFX942-NEXT:    ;;#ASMSTART9493; GFX942-NEXT:    ; def s[0:3]9494; GFX942-NEXT:    ;;#ASMEND9495; GFX942-NEXT:    s_mov_b32 s8, s19496; GFX942-NEXT:    s_mov_b32 s10, s99497; GFX942-NEXT:    ;;#ASMSTART9498; GFX942-NEXT:    ; use s[8:10]9499; GFX942-NEXT:    ;;#ASMEND9500; GFX942-NEXT:    s_setpc_b64 s[30:31]9501  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9502  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9503  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 1, i32 1>9504  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9505  ret void9506}9507 9508define void @s_shuffle_v3p3_v4p3__6_1_1() {9509; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_1_1:9510; GFX900:       ; %bb.0:9511; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9512; GFX900-NEXT:    ;;#ASMSTART9513; GFX900-NEXT:    ; def s[8:11]9514; GFX900-NEXT:    ;;#ASMEND9515; GFX900-NEXT:    ;;#ASMSTART9516; GFX900-NEXT:    ; def s[4:7]9517; GFX900-NEXT:    ;;#ASMEND9518; GFX900-NEXT:    s_mov_b32 s8, s69519; GFX900-NEXT:    s_mov_b32 s10, s99520; GFX900-NEXT:    ;;#ASMSTART9521; GFX900-NEXT:    ; use s[8:10]9522; GFX900-NEXT:    ;;#ASMEND9523; GFX900-NEXT:    s_setpc_b64 s[30:31]9524;9525; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_1_1:9526; GFX90A:       ; %bb.0:9527; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9528; GFX90A-NEXT:    ;;#ASMSTART9529; GFX90A-NEXT:    ; def s[8:11]9530; GFX90A-NEXT:    ;;#ASMEND9531; GFX90A-NEXT:    ;;#ASMSTART9532; GFX90A-NEXT:    ; def s[4:7]9533; GFX90A-NEXT:    ;;#ASMEND9534; GFX90A-NEXT:    s_mov_b32 s8, s69535; GFX90A-NEXT:    s_mov_b32 s10, s99536; GFX90A-NEXT:    ;;#ASMSTART9537; GFX90A-NEXT:    ; use s[8:10]9538; GFX90A-NEXT:    ;;#ASMEND9539; GFX90A-NEXT:    s_setpc_b64 s[30:31]9540;9541; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_1_1:9542; GFX942:       ; %bb.0:9543; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9544; GFX942-NEXT:    ;;#ASMSTART9545; GFX942-NEXT:    ; def s[8:11]9546; GFX942-NEXT:    ;;#ASMEND9547; GFX942-NEXT:    ;;#ASMSTART9548; GFX942-NEXT:    ; def s[0:3]9549; GFX942-NEXT:    ;;#ASMEND9550; GFX942-NEXT:    s_mov_b32 s8, s29551; GFX942-NEXT:    s_mov_b32 s10, s99552; GFX942-NEXT:    ;;#ASMSTART9553; GFX942-NEXT:    ; use s[8:10]9554; GFX942-NEXT:    ;;#ASMEND9555; GFX942-NEXT:    s_setpc_b64 s[30:31]9556  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9557  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9558  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 1, i32 1>9559  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9560  ret void9561}9562 9563define void @s_shuffle_v3p3_v4p3__7_1_1() {9564; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_1:9565; GFX900:       ; %bb.0:9566; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9567; GFX900-NEXT:    ;;#ASMSTART9568; GFX900-NEXT:    ; def s[8:11]9569; GFX900-NEXT:    ;;#ASMEND9570; GFX900-NEXT:    ;;#ASMSTART9571; GFX900-NEXT:    ; def s[4:7]9572; GFX900-NEXT:    ;;#ASMEND9573; GFX900-NEXT:    s_mov_b32 s8, s79574; GFX900-NEXT:    s_mov_b32 s10, s99575; GFX900-NEXT:    ;;#ASMSTART9576; GFX900-NEXT:    ; use s[8:10]9577; GFX900-NEXT:    ;;#ASMEND9578; GFX900-NEXT:    s_setpc_b64 s[30:31]9579;9580; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_1:9581; GFX90A:       ; %bb.0:9582; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9583; GFX90A-NEXT:    ;;#ASMSTART9584; GFX90A-NEXT:    ; def s[8:11]9585; GFX90A-NEXT:    ;;#ASMEND9586; GFX90A-NEXT:    ;;#ASMSTART9587; GFX90A-NEXT:    ; def s[4:7]9588; GFX90A-NEXT:    ;;#ASMEND9589; GFX90A-NEXT:    s_mov_b32 s8, s79590; GFX90A-NEXT:    s_mov_b32 s10, s99591; GFX90A-NEXT:    ;;#ASMSTART9592; GFX90A-NEXT:    ; use s[8:10]9593; GFX90A-NEXT:    ;;#ASMEND9594; GFX90A-NEXT:    s_setpc_b64 s[30:31]9595;9596; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_1:9597; GFX942:       ; %bb.0:9598; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9599; GFX942-NEXT:    ;;#ASMSTART9600; GFX942-NEXT:    ; def s[8:11]9601; GFX942-NEXT:    ;;#ASMEND9602; GFX942-NEXT:    ;;#ASMSTART9603; GFX942-NEXT:    ; def s[0:3]9604; GFX942-NEXT:    ;;#ASMEND9605; GFX942-NEXT:    s_mov_b32 s8, s39606; GFX942-NEXT:    s_mov_b32 s10, s99607; GFX942-NEXT:    ;;#ASMSTART9608; GFX942-NEXT:    ; use s[8:10]9609; GFX942-NEXT:    ;;#ASMEND9610; GFX942-NEXT:    s_setpc_b64 s[30:31]9611  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9612  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9613  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 1>9614  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9615  ret void9616}9617 9618define void @s_shuffle_v3p3_v4p3__7_u_1() {9619; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_1:9620; GFX900:       ; %bb.0:9621; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9622; GFX900-NEXT:    ;;#ASMSTART9623; GFX900-NEXT:    ; def s[8:11]9624; GFX900-NEXT:    ;;#ASMEND9625; GFX900-NEXT:    ;;#ASMSTART9626; GFX900-NEXT:    ; def s[4:7]9627; GFX900-NEXT:    ;;#ASMEND9628; GFX900-NEXT:    s_mov_b32 s8, s119629; GFX900-NEXT:    s_mov_b32 s10, s59630; GFX900-NEXT:    ;;#ASMSTART9631; GFX900-NEXT:    ; use s[8:10]9632; GFX900-NEXT:    ;;#ASMEND9633; GFX900-NEXT:    s_setpc_b64 s[30:31]9634;9635; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_1:9636; GFX90A:       ; %bb.0:9637; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9638; GFX90A-NEXT:    ;;#ASMSTART9639; GFX90A-NEXT:    ; def s[8:11]9640; GFX90A-NEXT:    ;;#ASMEND9641; GFX90A-NEXT:    ;;#ASMSTART9642; GFX90A-NEXT:    ; def s[4:7]9643; GFX90A-NEXT:    ;;#ASMEND9644; GFX90A-NEXT:    s_mov_b32 s8, s119645; GFX90A-NEXT:    s_mov_b32 s10, s59646; GFX90A-NEXT:    ;;#ASMSTART9647; GFX90A-NEXT:    ; use s[8:10]9648; GFX90A-NEXT:    ;;#ASMEND9649; GFX90A-NEXT:    s_setpc_b64 s[30:31]9650;9651; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_1:9652; GFX942:       ; %bb.0:9653; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9654; GFX942-NEXT:    ;;#ASMSTART9655; GFX942-NEXT:    ; def s[0:3]9656; GFX942-NEXT:    ;;#ASMEND9657; GFX942-NEXT:    ;;#ASMSTART9658; GFX942-NEXT:    ; def s[4:7]9659; GFX942-NEXT:    ;;#ASMEND9660; GFX942-NEXT:    s_mov_b32 s8, s79661; GFX942-NEXT:    s_mov_b32 s10, s19662; GFX942-NEXT:    ;;#ASMSTART9663; GFX942-NEXT:    ; use s[8:10]9664; GFX942-NEXT:    ;;#ASMEND9665; GFX942-NEXT:    s_setpc_b64 s[30:31]9666  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9667  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9668  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>9669  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9670  ret void9671}9672 9673define void @s_shuffle_v3p3_v4p3__7_0_1() {9674; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_1:9675; GFX900:       ; %bb.0:9676; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9677; GFX900-NEXT:    ;;#ASMSTART9678; GFX900-NEXT:    ; def s[8:11]9679; GFX900-NEXT:    ;;#ASMEND9680; GFX900-NEXT:    ;;#ASMSTART9681; GFX900-NEXT:    ; def s[4:7]9682; GFX900-NEXT:    ;;#ASMEND9683; GFX900-NEXT:    s_mov_b32 s8, s119684; GFX900-NEXT:    s_mov_b32 s9, s49685; GFX900-NEXT:    s_mov_b32 s10, s59686; GFX900-NEXT:    ;;#ASMSTART9687; GFX900-NEXT:    ; use s[8:10]9688; GFX900-NEXT:    ;;#ASMEND9689; GFX900-NEXT:    s_setpc_b64 s[30:31]9690;9691; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_1:9692; GFX90A:       ; %bb.0:9693; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9694; GFX90A-NEXT:    ;;#ASMSTART9695; GFX90A-NEXT:    ; def s[8:11]9696; GFX90A-NEXT:    ;;#ASMEND9697; GFX90A-NEXT:    ;;#ASMSTART9698; GFX90A-NEXT:    ; def s[4:7]9699; GFX90A-NEXT:    ;;#ASMEND9700; GFX90A-NEXT:    s_mov_b32 s8, s119701; GFX90A-NEXT:    s_mov_b32 s9, s49702; GFX90A-NEXT:    s_mov_b32 s10, s59703; GFX90A-NEXT:    ;;#ASMSTART9704; GFX90A-NEXT:    ; use s[8:10]9705; GFX90A-NEXT:    ;;#ASMEND9706; GFX90A-NEXT:    s_setpc_b64 s[30:31]9707;9708; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_1:9709; GFX942:       ; %bb.0:9710; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9711; GFX942-NEXT:    ;;#ASMSTART9712; GFX942-NEXT:    ; def s[0:3]9713; GFX942-NEXT:    ;;#ASMEND9714; GFX942-NEXT:    ;;#ASMSTART9715; GFX942-NEXT:    ; def s[4:7]9716; GFX942-NEXT:    ;;#ASMEND9717; GFX942-NEXT:    s_mov_b32 s8, s79718; GFX942-NEXT:    s_mov_b32 s9, s09719; GFX942-NEXT:    s_mov_b32 s10, s19720; GFX942-NEXT:    ;;#ASMSTART9721; GFX942-NEXT:    ; use s[8:10]9722; GFX942-NEXT:    ;;#ASMEND9723; GFX942-NEXT:    s_setpc_b64 s[30:31]9724  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9725  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9726  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 1>9727  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9728  ret void9729}9730 9731define void @s_shuffle_v3p3_v4p3__7_2_1() {9732; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_1:9733; GFX900:       ; %bb.0:9734; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9735; GFX900-NEXT:    ;;#ASMSTART9736; GFX900-NEXT:    ; def s[8:11]9737; GFX900-NEXT:    ;;#ASMEND9738; GFX900-NEXT:    ;;#ASMSTART9739; GFX900-NEXT:    ; def s[4:7]9740; GFX900-NEXT:    ;;#ASMEND9741; GFX900-NEXT:    s_mov_b32 s8, s119742; GFX900-NEXT:    s_mov_b32 s9, s69743; GFX900-NEXT:    s_mov_b32 s10, s59744; GFX900-NEXT:    ;;#ASMSTART9745; GFX900-NEXT:    ; use s[8:10]9746; GFX900-NEXT:    ;;#ASMEND9747; GFX900-NEXT:    s_setpc_b64 s[30:31]9748;9749; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_1:9750; GFX90A:       ; %bb.0:9751; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9752; GFX90A-NEXT:    ;;#ASMSTART9753; GFX90A-NEXT:    ; def s[8:11]9754; GFX90A-NEXT:    ;;#ASMEND9755; GFX90A-NEXT:    ;;#ASMSTART9756; GFX90A-NEXT:    ; def s[4:7]9757; GFX90A-NEXT:    ;;#ASMEND9758; GFX90A-NEXT:    s_mov_b32 s8, s119759; GFX90A-NEXT:    s_mov_b32 s9, s69760; GFX90A-NEXT:    s_mov_b32 s10, s59761; GFX90A-NEXT:    ;;#ASMSTART9762; GFX90A-NEXT:    ; use s[8:10]9763; GFX90A-NEXT:    ;;#ASMEND9764; GFX90A-NEXT:    s_setpc_b64 s[30:31]9765;9766; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_1:9767; GFX942:       ; %bb.0:9768; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9769; GFX942-NEXT:    ;;#ASMSTART9770; GFX942-NEXT:    ; def s[0:3]9771; GFX942-NEXT:    ;;#ASMEND9772; GFX942-NEXT:    ;;#ASMSTART9773; GFX942-NEXT:    ; def s[4:7]9774; GFX942-NEXT:    ;;#ASMEND9775; GFX942-NEXT:    s_mov_b32 s8, s79776; GFX942-NEXT:    s_mov_b32 s9, s29777; GFX942-NEXT:    s_mov_b32 s10, s19778; GFX942-NEXT:    ;;#ASMSTART9779; GFX942-NEXT:    ; use s[8:10]9780; GFX942-NEXT:    ;;#ASMEND9781; GFX942-NEXT:    s_setpc_b64 s[30:31]9782  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9783  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9784  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 1>9785  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9786  ret void9787}9788 9789define void @s_shuffle_v3p3_v4p3__7_3_1() {9790; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_1:9791; GFX900:       ; %bb.0:9792; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9793; GFX900-NEXT:    ;;#ASMSTART9794; GFX900-NEXT:    ; def s[8:11]9795; GFX900-NEXT:    ;;#ASMEND9796; GFX900-NEXT:    ;;#ASMSTART9797; GFX900-NEXT:    ; def s[4:7]9798; GFX900-NEXT:    ;;#ASMEND9799; GFX900-NEXT:    s_mov_b32 s8, s119800; GFX900-NEXT:    s_mov_b32 s9, s79801; GFX900-NEXT:    s_mov_b32 s10, s59802; GFX900-NEXT:    ;;#ASMSTART9803; GFX900-NEXT:    ; use s[8:10]9804; GFX900-NEXT:    ;;#ASMEND9805; GFX900-NEXT:    s_setpc_b64 s[30:31]9806;9807; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_1:9808; GFX90A:       ; %bb.0:9809; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9810; GFX90A-NEXT:    ;;#ASMSTART9811; GFX90A-NEXT:    ; def s[8:11]9812; GFX90A-NEXT:    ;;#ASMEND9813; GFX90A-NEXT:    ;;#ASMSTART9814; GFX90A-NEXT:    ; def s[4:7]9815; GFX90A-NEXT:    ;;#ASMEND9816; GFX90A-NEXT:    s_mov_b32 s8, s119817; GFX90A-NEXT:    s_mov_b32 s9, s79818; GFX90A-NEXT:    s_mov_b32 s10, s59819; GFX90A-NEXT:    ;;#ASMSTART9820; GFX90A-NEXT:    ; use s[8:10]9821; GFX90A-NEXT:    ;;#ASMEND9822; GFX90A-NEXT:    s_setpc_b64 s[30:31]9823;9824; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_1:9825; GFX942:       ; %bb.0:9826; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9827; GFX942-NEXT:    ;;#ASMSTART9828; GFX942-NEXT:    ; def s[0:3]9829; GFX942-NEXT:    ;;#ASMEND9830; GFX942-NEXT:    ;;#ASMSTART9831; GFX942-NEXT:    ; def s[4:7]9832; GFX942-NEXT:    ;;#ASMEND9833; GFX942-NEXT:    s_mov_b32 s8, s79834; GFX942-NEXT:    s_mov_b32 s9, s39835; GFX942-NEXT:    s_mov_b32 s10, s19836; GFX942-NEXT:    ;;#ASMSTART9837; GFX942-NEXT:    ; use s[8:10]9838; GFX942-NEXT:    ;;#ASMEND9839; GFX942-NEXT:    s_setpc_b64 s[30:31]9840  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9841  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9842  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 1>9843  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9844  ret void9845}9846 9847define void @s_shuffle_v3p3_v4p3__7_4_1() {9848; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_1:9849; GFX900:       ; %bb.0:9850; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9851; GFX900-NEXT:    ;;#ASMSTART9852; GFX900-NEXT:    ; def s[4:7]9853; GFX900-NEXT:    ;;#ASMEND9854; GFX900-NEXT:    ;;#ASMSTART9855; GFX900-NEXT:    ; def s[12:15]9856; GFX900-NEXT:    ;;#ASMEND9857; GFX900-NEXT:    s_mov_b32 s8, s159858; GFX900-NEXT:    s_mov_b32 s9, s129859; GFX900-NEXT:    s_mov_b32 s10, s59860; GFX900-NEXT:    ;;#ASMSTART9861; GFX900-NEXT:    ; use s[8:10]9862; GFX900-NEXT:    ;;#ASMEND9863; GFX900-NEXT:    s_setpc_b64 s[30:31]9864;9865; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_1:9866; GFX90A:       ; %bb.0:9867; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9868; GFX90A-NEXT:    ;;#ASMSTART9869; GFX90A-NEXT:    ; def s[4:7]9870; GFX90A-NEXT:    ;;#ASMEND9871; GFX90A-NEXT:    ;;#ASMSTART9872; GFX90A-NEXT:    ; def s[12:15]9873; GFX90A-NEXT:    ;;#ASMEND9874; GFX90A-NEXT:    s_mov_b32 s8, s159875; GFX90A-NEXT:    s_mov_b32 s9, s129876; GFX90A-NEXT:    s_mov_b32 s10, s59877; GFX90A-NEXT:    ;;#ASMSTART9878; GFX90A-NEXT:    ; use s[8:10]9879; GFX90A-NEXT:    ;;#ASMEND9880; GFX90A-NEXT:    s_setpc_b64 s[30:31]9881;9882; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_1:9883; GFX942:       ; %bb.0:9884; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9885; GFX942-NEXT:    ;;#ASMSTART9886; GFX942-NEXT:    ; def s[0:3]9887; GFX942-NEXT:    ;;#ASMEND9888; GFX942-NEXT:    ;;#ASMSTART9889; GFX942-NEXT:    ; def s[4:7]9890; GFX942-NEXT:    ;;#ASMEND9891; GFX942-NEXT:    s_mov_b32 s8, s79892; GFX942-NEXT:    s_mov_b32 s9, s49893; GFX942-NEXT:    s_mov_b32 s10, s19894; GFX942-NEXT:    ;;#ASMSTART9895; GFX942-NEXT:    ; use s[8:10]9896; GFX942-NEXT:    ;;#ASMEND9897; GFX942-NEXT:    s_setpc_b64 s[30:31]9898  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9899  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9900  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 1>9901  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9902  ret void9903}9904 9905define void @s_shuffle_v3p3_v4p3__7_5_1() {9906; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_5_1:9907; GFX900:       ; %bb.0:9908; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9909; GFX900-NEXT:    ;;#ASMSTART9910; GFX900-NEXT:    ; def s[8:11]9911; GFX900-NEXT:    ;;#ASMEND9912; GFX900-NEXT:    ;;#ASMSTART9913; GFX900-NEXT:    ; def s[4:7]9914; GFX900-NEXT:    ;;#ASMEND9915; GFX900-NEXT:    s_mov_b32 s8, s119916; GFX900-NEXT:    s_mov_b32 s10, s59917; GFX900-NEXT:    ;;#ASMSTART9918; GFX900-NEXT:    ; use s[8:10]9919; GFX900-NEXT:    ;;#ASMEND9920; GFX900-NEXT:    s_setpc_b64 s[30:31]9921;9922; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_5_1:9923; GFX90A:       ; %bb.0:9924; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9925; GFX90A-NEXT:    ;;#ASMSTART9926; GFX90A-NEXT:    ; def s[8:11]9927; GFX90A-NEXT:    ;;#ASMEND9928; GFX90A-NEXT:    ;;#ASMSTART9929; GFX90A-NEXT:    ; def s[4:7]9930; GFX90A-NEXT:    ;;#ASMEND9931; GFX90A-NEXT:    s_mov_b32 s8, s119932; GFX90A-NEXT:    s_mov_b32 s10, s59933; GFX90A-NEXT:    ;;#ASMSTART9934; GFX90A-NEXT:    ; use s[8:10]9935; GFX90A-NEXT:    ;;#ASMEND9936; GFX90A-NEXT:    s_setpc_b64 s[30:31]9937;9938; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_5_1:9939; GFX942:       ; %bb.0:9940; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9941; GFX942-NEXT:    ;;#ASMSTART9942; GFX942-NEXT:    ; def s[8:11]9943; GFX942-NEXT:    ;;#ASMEND9944; GFX942-NEXT:    ;;#ASMSTART9945; GFX942-NEXT:    ; def s[0:3]9946; GFX942-NEXT:    ;;#ASMEND9947; GFX942-NEXT:    s_mov_b32 s8, s119948; GFX942-NEXT:    s_mov_b32 s10, s19949; GFX942-NEXT:    ;;#ASMSTART9950; GFX942-NEXT:    ; use s[8:10]9951; GFX942-NEXT:    ;;#ASMEND9952; GFX942-NEXT:    s_setpc_b64 s[30:31]9953  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9954  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()9955  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 1>9956  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)9957  ret void9958}9959 9960define void @s_shuffle_v3p3_v4p3__7_6_1() {9961; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_1:9962; GFX900:       ; %bb.0:9963; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9964; GFX900-NEXT:    ;;#ASMSTART9965; GFX900-NEXT:    ; def s[8:11]9966; GFX900-NEXT:    ;;#ASMEND9967; GFX900-NEXT:    ;;#ASMSTART9968; GFX900-NEXT:    ; def s[4:7]9969; GFX900-NEXT:    ;;#ASMEND9970; GFX900-NEXT:    s_mov_b32 s8, s119971; GFX900-NEXT:    s_mov_b32 s9, s109972; GFX900-NEXT:    s_mov_b32 s10, s59973; GFX900-NEXT:    ;;#ASMSTART9974; GFX900-NEXT:    ; use s[8:10]9975; GFX900-NEXT:    ;;#ASMEND9976; GFX900-NEXT:    s_setpc_b64 s[30:31]9977;9978; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_1:9979; GFX90A:       ; %bb.0:9980; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9981; GFX90A-NEXT:    ;;#ASMSTART9982; GFX90A-NEXT:    ; def s[8:11]9983; GFX90A-NEXT:    ;;#ASMEND9984; GFX90A-NEXT:    ;;#ASMSTART9985; GFX90A-NEXT:    ; def s[4:7]9986; GFX90A-NEXT:    ;;#ASMEND9987; GFX90A-NEXT:    s_mov_b32 s8, s119988; GFX90A-NEXT:    s_mov_b32 s9, s109989; GFX90A-NEXT:    s_mov_b32 s10, s59990; GFX90A-NEXT:    ;;#ASMSTART9991; GFX90A-NEXT:    ; use s[8:10]9992; GFX90A-NEXT:    ;;#ASMEND9993; GFX90A-NEXT:    s_setpc_b64 s[30:31]9994;9995; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_1:9996; GFX942:       ; %bb.0:9997; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9998; GFX942-NEXT:    ;;#ASMSTART9999; GFX942-NEXT:    ; def s[0:3]10000; GFX942-NEXT:    ;;#ASMEND10001; GFX942-NEXT:    ;;#ASMSTART10002; GFX942-NEXT:    ; def s[4:7]10003; GFX942-NEXT:    ;;#ASMEND10004; GFX942-NEXT:    s_mov_b32 s8, s710005; GFX942-NEXT:    s_mov_b32 s9, s610006; GFX942-NEXT:    s_mov_b32 s10, s110007; GFX942-NEXT:    ;;#ASMSTART10008; GFX942-NEXT:    ; use s[8:10]10009; GFX942-NEXT:    ;;#ASMEND10010; GFX942-NEXT:    s_setpc_b64 s[30:31]10011  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10012  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10013  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 1>10014  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10015  ret void10016}10017 10018define void @s_shuffle_v3p3_v4p3__u_2_2() {10019; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_2_2:10020; GFX9:       ; %bb.0:10021; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10022; GFX9-NEXT:    ;;#ASMSTART10023; GFX9-NEXT:    ; def s[8:11]10024; GFX9-NEXT:    ;;#ASMEND10025; GFX9-NEXT:    s_mov_b32 s9, s1010026; GFX9-NEXT:    ;;#ASMSTART10027; GFX9-NEXT:    ; use s[8:10]10028; GFX9-NEXT:    ;;#ASMEND10029; GFX9-NEXT:    s_setpc_b64 s[30:31]10030  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10031  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 2, i32 2>10032  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10033  ret void10034}10035 10036define void @s_shuffle_v3p3_v4p3__0_2_2() {10037; GFX9-LABEL: s_shuffle_v3p3_v4p3__0_2_2:10038; GFX9:       ; %bb.0:10039; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10040; GFX9-NEXT:    ;;#ASMSTART10041; GFX9-NEXT:    ; def s[8:11]10042; GFX9-NEXT:    ;;#ASMEND10043; GFX9-NEXT:    s_mov_b32 s9, s1010044; GFX9-NEXT:    ;;#ASMSTART10045; GFX9-NEXT:    ; use s[8:10]10046; GFX9-NEXT:    ;;#ASMEND10047; GFX9-NEXT:    s_setpc_b64 s[30:31]10048  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10049  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 2, i32 2>10050  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10051  ret void10052}10053 10054define void @s_shuffle_v3p3_v4p3__1_2_2() {10055; GFX9-LABEL: s_shuffle_v3p3_v4p3__1_2_2:10056; GFX9:       ; %bb.0:10057; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10058; GFX9-NEXT:    ;;#ASMSTART10059; GFX9-NEXT:    ; def s[8:11]10060; GFX9-NEXT:    ;;#ASMEND10061; GFX9-NEXT:    s_mov_b32 s8, s910062; GFX9-NEXT:    s_mov_b32 s9, s1010063; GFX9-NEXT:    ;;#ASMSTART10064; GFX9-NEXT:    ; use s[8:10]10065; GFX9-NEXT:    ;;#ASMEND10066; GFX9-NEXT:    s_setpc_b64 s[30:31]10067  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10068  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 2, i32 2>10069  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10070  ret void10071}10072 10073define void @s_shuffle_v3p3_v4p3__2_2_2() {10074; GFX9-LABEL: s_shuffle_v3p3_v4p3__2_2_2:10075; GFX9:       ; %bb.0:10076; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10077; GFX9-NEXT:    ;;#ASMSTART10078; GFX9-NEXT:    ; def s[8:11]10079; GFX9-NEXT:    ;;#ASMEND10080; GFX9-NEXT:    s_mov_b32 s8, s1010081; GFX9-NEXT:    s_mov_b32 s9, s1010082; GFX9-NEXT:    ;;#ASMSTART10083; GFX9-NEXT:    ; use s[8:10]10084; GFX9-NEXT:    ;;#ASMEND10085; GFX9-NEXT:    s_setpc_b64 s[30:31]10086  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10087  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 2, i32 2>10088  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10089  ret void10090}10091 10092define void @s_shuffle_v3p3_v4p3__3_2_2() {10093; GFX9-LABEL: s_shuffle_v3p3_v4p3__3_2_2:10094; GFX9:       ; %bb.0:10095; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10096; GFX9-NEXT:    ;;#ASMSTART10097; GFX9-NEXT:    ; def s[8:11]10098; GFX9-NEXT:    ;;#ASMEND10099; GFX9-NEXT:    s_mov_b32 s8, s1110100; GFX9-NEXT:    s_mov_b32 s9, s1010101; GFX9-NEXT:    ;;#ASMSTART10102; GFX9-NEXT:    ; use s[8:10]10103; GFX9-NEXT:    ;;#ASMEND10104; GFX9-NEXT:    s_setpc_b64 s[30:31]10105  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10106  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 2, i32 2>10107  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10108  ret void10109}10110 10111define void @s_shuffle_v3p3_v4p3__4_2_2() {10112; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_2_2:10113; GFX9:       ; %bb.0:10114; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10115; GFX9-NEXT:    ;;#ASMSTART10116; GFX9-NEXT:    ; def s[8:11]10117; GFX9-NEXT:    ;;#ASMEND10118; GFX9-NEXT:    s_mov_b32 s9, s1010119; GFX9-NEXT:    ;;#ASMSTART10120; GFX9-NEXT:    ; use s[8:10]10121; GFX9-NEXT:    ;;#ASMEND10122; GFX9-NEXT:    s_setpc_b64 s[30:31]10123  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10124  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 2, i32 2>10125  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10126  ret void10127}10128 10129define void @s_shuffle_v3p3_v4p3__5_2_2() {10130; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_2_2:10131; GFX900:       ; %bb.0:10132; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10133; GFX900-NEXT:    ;;#ASMSTART10134; GFX900-NEXT:    ; def s[8:11]10135; GFX900-NEXT:    ;;#ASMEND10136; GFX900-NEXT:    ;;#ASMSTART10137; GFX900-NEXT:    ; def s[4:7]10138; GFX900-NEXT:    ;;#ASMEND10139; GFX900-NEXT:    s_mov_b32 s8, s510140; GFX900-NEXT:    s_mov_b32 s9, s1010141; GFX900-NEXT:    ;;#ASMSTART10142; GFX900-NEXT:    ; use s[8:10]10143; GFX900-NEXT:    ;;#ASMEND10144; GFX900-NEXT:    s_setpc_b64 s[30:31]10145;10146; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_2_2:10147; GFX90A:       ; %bb.0:10148; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10149; GFX90A-NEXT:    ;;#ASMSTART10150; GFX90A-NEXT:    ; def s[8:11]10151; GFX90A-NEXT:    ;;#ASMEND10152; GFX90A-NEXT:    ;;#ASMSTART10153; GFX90A-NEXT:    ; def s[4:7]10154; GFX90A-NEXT:    ;;#ASMEND10155; GFX90A-NEXT:    s_mov_b32 s8, s510156; GFX90A-NEXT:    s_mov_b32 s9, s1010157; GFX90A-NEXT:    ;;#ASMSTART10158; GFX90A-NEXT:    ; use s[8:10]10159; GFX90A-NEXT:    ;;#ASMEND10160; GFX90A-NEXT:    s_setpc_b64 s[30:31]10161;10162; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_2_2:10163; GFX942:       ; %bb.0:10164; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10165; GFX942-NEXT:    ;;#ASMSTART10166; GFX942-NEXT:    ; def s[8:11]10167; GFX942-NEXT:    ;;#ASMEND10168; GFX942-NEXT:    ;;#ASMSTART10169; GFX942-NEXT:    ; def s[0:3]10170; GFX942-NEXT:    ;;#ASMEND10171; GFX942-NEXT:    s_mov_b32 s8, s110172; GFX942-NEXT:    s_mov_b32 s9, s1010173; GFX942-NEXT:    ;;#ASMSTART10174; GFX942-NEXT:    ; use s[8:10]10175; GFX942-NEXT:    ;;#ASMEND10176; GFX942-NEXT:    s_setpc_b64 s[30:31]10177  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10178  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10179  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 2, i32 2>10180  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10181  ret void10182}10183 10184define void @s_shuffle_v3p3_v4p3__6_2_2() {10185; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_2_2:10186; GFX900:       ; %bb.0:10187; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10188; GFX900-NEXT:    ;;#ASMSTART10189; GFX900-NEXT:    ; def s[8:11]10190; GFX900-NEXT:    ;;#ASMEND10191; GFX900-NEXT:    ;;#ASMSTART10192; GFX900-NEXT:    ; def s[4:7]10193; GFX900-NEXT:    ;;#ASMEND10194; GFX900-NEXT:    s_mov_b32 s8, s610195; GFX900-NEXT:    s_mov_b32 s9, s1010196; GFX900-NEXT:    ;;#ASMSTART10197; GFX900-NEXT:    ; use s[8:10]10198; GFX900-NEXT:    ;;#ASMEND10199; GFX900-NEXT:    s_setpc_b64 s[30:31]10200;10201; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_2_2:10202; GFX90A:       ; %bb.0:10203; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10204; GFX90A-NEXT:    ;;#ASMSTART10205; GFX90A-NEXT:    ; def s[8:11]10206; GFX90A-NEXT:    ;;#ASMEND10207; GFX90A-NEXT:    ;;#ASMSTART10208; GFX90A-NEXT:    ; def s[4:7]10209; GFX90A-NEXT:    ;;#ASMEND10210; GFX90A-NEXT:    s_mov_b32 s8, s610211; GFX90A-NEXT:    s_mov_b32 s9, s1010212; GFX90A-NEXT:    ;;#ASMSTART10213; GFX90A-NEXT:    ; use s[8:10]10214; GFX90A-NEXT:    ;;#ASMEND10215; GFX90A-NEXT:    s_setpc_b64 s[30:31]10216;10217; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_2_2:10218; GFX942:       ; %bb.0:10219; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10220; GFX942-NEXT:    ;;#ASMSTART10221; GFX942-NEXT:    ; def s[8:11]10222; GFX942-NEXT:    ;;#ASMEND10223; GFX942-NEXT:    ;;#ASMSTART10224; GFX942-NEXT:    ; def s[0:3]10225; GFX942-NEXT:    ;;#ASMEND10226; GFX942-NEXT:    s_mov_b32 s8, s210227; GFX942-NEXT:    s_mov_b32 s9, s1010228; GFX942-NEXT:    ;;#ASMSTART10229; GFX942-NEXT:    ; use s[8:10]10230; GFX942-NEXT:    ;;#ASMEND10231; GFX942-NEXT:    s_setpc_b64 s[30:31]10232  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10233  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10234  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 2, i32 2>10235  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10236  ret void10237}10238 10239define void @s_shuffle_v3p3_v4p3__7_2_2() {10240; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_2:10241; GFX900:       ; %bb.0:10242; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10243; GFX900-NEXT:    ;;#ASMSTART10244; GFX900-NEXT:    ; def s[8:11]10245; GFX900-NEXT:    ;;#ASMEND10246; GFX900-NEXT:    ;;#ASMSTART10247; GFX900-NEXT:    ; def s[4:7]10248; GFX900-NEXT:    ;;#ASMEND10249; GFX900-NEXT:    s_mov_b32 s8, s710250; GFX900-NEXT:    s_mov_b32 s9, s1010251; GFX900-NEXT:    ;;#ASMSTART10252; GFX900-NEXT:    ; use s[8:10]10253; GFX900-NEXT:    ;;#ASMEND10254; GFX900-NEXT:    s_setpc_b64 s[30:31]10255;10256; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_2:10257; GFX90A:       ; %bb.0:10258; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10259; GFX90A-NEXT:    ;;#ASMSTART10260; GFX90A-NEXT:    ; def s[8:11]10261; GFX90A-NEXT:    ;;#ASMEND10262; GFX90A-NEXT:    ;;#ASMSTART10263; GFX90A-NEXT:    ; def s[4:7]10264; GFX90A-NEXT:    ;;#ASMEND10265; GFX90A-NEXT:    s_mov_b32 s8, s710266; GFX90A-NEXT:    s_mov_b32 s9, s1010267; GFX90A-NEXT:    ;;#ASMSTART10268; GFX90A-NEXT:    ; use s[8:10]10269; GFX90A-NEXT:    ;;#ASMEND10270; GFX90A-NEXT:    s_setpc_b64 s[30:31]10271;10272; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_2:10273; GFX942:       ; %bb.0:10274; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10275; GFX942-NEXT:    ;;#ASMSTART10276; GFX942-NEXT:    ; def s[8:11]10277; GFX942-NEXT:    ;;#ASMEND10278; GFX942-NEXT:    ;;#ASMSTART10279; GFX942-NEXT:    ; def s[0:3]10280; GFX942-NEXT:    ;;#ASMEND10281; GFX942-NEXT:    s_mov_b32 s8, s310282; GFX942-NEXT:    s_mov_b32 s9, s1010283; GFX942-NEXT:    ;;#ASMSTART10284; GFX942-NEXT:    ; use s[8:10]10285; GFX942-NEXT:    ;;#ASMEND10286; GFX942-NEXT:    s_setpc_b64 s[30:31]10287  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10288  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10289  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 2>10290  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10291  ret void10292}10293 10294define void @s_shuffle_v3p3_v4p3__7_u_2() {10295; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_2:10296; GFX900:       ; %bb.0:10297; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10298; GFX900-NEXT:    ;;#ASMSTART10299; GFX900-NEXT:    ; def s[8:11]10300; GFX900-NEXT:    ;;#ASMEND10301; GFX900-NEXT:    ;;#ASMSTART10302; GFX900-NEXT:    ; def s[4:7]10303; GFX900-NEXT:    ;;#ASMEND10304; GFX900-NEXT:    s_mov_b32 s8, s710305; GFX900-NEXT:    ;;#ASMSTART10306; GFX900-NEXT:    ; use s[8:10]10307; GFX900-NEXT:    ;;#ASMEND10308; GFX900-NEXT:    s_setpc_b64 s[30:31]10309;10310; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_2:10311; GFX90A:       ; %bb.0:10312; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10313; GFX90A-NEXT:    ;;#ASMSTART10314; GFX90A-NEXT:    ; def s[8:11]10315; GFX90A-NEXT:    ;;#ASMEND10316; GFX90A-NEXT:    ;;#ASMSTART10317; GFX90A-NEXT:    ; def s[4:7]10318; GFX90A-NEXT:    ;;#ASMEND10319; GFX90A-NEXT:    s_mov_b32 s8, s710320; GFX90A-NEXT:    ;;#ASMSTART10321; GFX90A-NEXT:    ; use s[8:10]10322; GFX90A-NEXT:    ;;#ASMEND10323; GFX90A-NEXT:    s_setpc_b64 s[30:31]10324;10325; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_2:10326; GFX942:       ; %bb.0:10327; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10328; GFX942-NEXT:    ;;#ASMSTART10329; GFX942-NEXT:    ; def s[8:11]10330; GFX942-NEXT:    ;;#ASMEND10331; GFX942-NEXT:    ;;#ASMSTART10332; GFX942-NEXT:    ; def s[0:3]10333; GFX942-NEXT:    ;;#ASMEND10334; GFX942-NEXT:    s_mov_b32 s8, s310335; GFX942-NEXT:    ;;#ASMSTART10336; GFX942-NEXT:    ; use s[8:10]10337; GFX942-NEXT:    ;;#ASMEND10338; GFX942-NEXT:    s_setpc_b64 s[30:31]10339  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10340  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10341  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>10342  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10343  ret void10344}10345 10346define void @s_shuffle_v3p3_v4p3__7_0_2() {10347; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_2:10348; GFX900:       ; %bb.0:10349; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10350; GFX900-NEXT:    ;;#ASMSTART10351; GFX900-NEXT:    ; def s[8:11]10352; GFX900-NEXT:    ;;#ASMEND10353; GFX900-NEXT:    ;;#ASMSTART10354; GFX900-NEXT:    ; def s[4:7]10355; GFX900-NEXT:    ;;#ASMEND10356; GFX900-NEXT:    s_mov_b32 s8, s1110357; GFX900-NEXT:    s_mov_b32 s9, s410358; GFX900-NEXT:    s_mov_b32 s10, s610359; GFX900-NEXT:    ;;#ASMSTART10360; GFX900-NEXT:    ; use s[8:10]10361; GFX900-NEXT:    ;;#ASMEND10362; GFX900-NEXT:    s_setpc_b64 s[30:31]10363;10364; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_2:10365; GFX90A:       ; %bb.0:10366; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10367; GFX90A-NEXT:    ;;#ASMSTART10368; GFX90A-NEXT:    ; def s[8:11]10369; GFX90A-NEXT:    ;;#ASMEND10370; GFX90A-NEXT:    ;;#ASMSTART10371; GFX90A-NEXT:    ; def s[4:7]10372; GFX90A-NEXT:    ;;#ASMEND10373; GFX90A-NEXT:    s_mov_b32 s8, s1110374; GFX90A-NEXT:    s_mov_b32 s9, s410375; GFX90A-NEXT:    s_mov_b32 s10, s610376; GFX90A-NEXT:    ;;#ASMSTART10377; GFX90A-NEXT:    ; use s[8:10]10378; GFX90A-NEXT:    ;;#ASMEND10379; GFX90A-NEXT:    s_setpc_b64 s[30:31]10380;10381; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_2:10382; GFX942:       ; %bb.0:10383; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10384; GFX942-NEXT:    ;;#ASMSTART10385; GFX942-NEXT:    ; def s[0:3]10386; GFX942-NEXT:    ;;#ASMEND10387; GFX942-NEXT:    ;;#ASMSTART10388; GFX942-NEXT:    ; def s[4:7]10389; GFX942-NEXT:    ;;#ASMEND10390; GFX942-NEXT:    s_mov_b32 s8, s710391; GFX942-NEXT:    s_mov_b32 s9, s010392; GFX942-NEXT:    s_mov_b32 s10, s210393; GFX942-NEXT:    ;;#ASMSTART10394; GFX942-NEXT:    ; use s[8:10]10395; GFX942-NEXT:    ;;#ASMEND10396; GFX942-NEXT:    s_setpc_b64 s[30:31]10397  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10398  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10399  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 2>10400  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10401  ret void10402}10403 10404define void @s_shuffle_v3p3_v4p3__7_1_2() {10405; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_2:10406; GFX900:       ; %bb.0:10407; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10408; GFX900-NEXT:    ;;#ASMSTART10409; GFX900-NEXT:    ; def s[8:11]10410; GFX900-NEXT:    ;;#ASMEND10411; GFX900-NEXT:    ;;#ASMSTART10412; GFX900-NEXT:    ; def s[4:7]10413; GFX900-NEXT:    ;;#ASMEND10414; GFX900-NEXT:    s_mov_b32 s8, s710415; GFX900-NEXT:    ;;#ASMSTART10416; GFX900-NEXT:    ; use s[8:10]10417; GFX900-NEXT:    ;;#ASMEND10418; GFX900-NEXT:    s_setpc_b64 s[30:31]10419;10420; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_2:10421; GFX90A:       ; %bb.0:10422; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10423; GFX90A-NEXT:    ;;#ASMSTART10424; GFX90A-NEXT:    ; def s[8:11]10425; GFX90A-NEXT:    ;;#ASMEND10426; GFX90A-NEXT:    ;;#ASMSTART10427; GFX90A-NEXT:    ; def s[4:7]10428; GFX90A-NEXT:    ;;#ASMEND10429; GFX90A-NEXT:    s_mov_b32 s8, s710430; GFX90A-NEXT:    ;;#ASMSTART10431; GFX90A-NEXT:    ; use s[8:10]10432; GFX90A-NEXT:    ;;#ASMEND10433; GFX90A-NEXT:    s_setpc_b64 s[30:31]10434;10435; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_2:10436; GFX942:       ; %bb.0:10437; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10438; GFX942-NEXT:    ;;#ASMSTART10439; GFX942-NEXT:    ; def s[8:11]10440; GFX942-NEXT:    ;;#ASMEND10441; GFX942-NEXT:    ;;#ASMSTART10442; GFX942-NEXT:    ; def s[0:3]10443; GFX942-NEXT:    ;;#ASMEND10444; GFX942-NEXT:    s_mov_b32 s8, s310445; GFX942-NEXT:    ;;#ASMSTART10446; GFX942-NEXT:    ; use s[8:10]10447; GFX942-NEXT:    ;;#ASMEND10448; GFX942-NEXT:    s_setpc_b64 s[30:31]10449  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10450  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10451  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 2>10452  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10453  ret void10454}10455 10456define void @s_shuffle_v3p3_v4p3__7_3_2() {10457; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_2:10458; GFX900:       ; %bb.0:10459; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10460; GFX900-NEXT:    ;;#ASMSTART10461; GFX900-NEXT:    ; def s[8:11]10462; GFX900-NEXT:    ;;#ASMEND10463; GFX900-NEXT:    ;;#ASMSTART10464; GFX900-NEXT:    ; def s[4:7]10465; GFX900-NEXT:    ;;#ASMEND10466; GFX900-NEXT:    s_mov_b32 s8, s710467; GFX900-NEXT:    s_mov_b32 s9, s1110468; GFX900-NEXT:    ;;#ASMSTART10469; GFX900-NEXT:    ; use s[8:10]10470; GFX900-NEXT:    ;;#ASMEND10471; GFX900-NEXT:    s_setpc_b64 s[30:31]10472;10473; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_2:10474; GFX90A:       ; %bb.0:10475; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10476; GFX90A-NEXT:    ;;#ASMSTART10477; GFX90A-NEXT:    ; def s[8:11]10478; GFX90A-NEXT:    ;;#ASMEND10479; GFX90A-NEXT:    ;;#ASMSTART10480; GFX90A-NEXT:    ; def s[4:7]10481; GFX90A-NEXT:    ;;#ASMEND10482; GFX90A-NEXT:    s_mov_b32 s8, s710483; GFX90A-NEXT:    s_mov_b32 s9, s1110484; GFX90A-NEXT:    ;;#ASMSTART10485; GFX90A-NEXT:    ; use s[8:10]10486; GFX90A-NEXT:    ;;#ASMEND10487; GFX90A-NEXT:    s_setpc_b64 s[30:31]10488;10489; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_2:10490; GFX942:       ; %bb.0:10491; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10492; GFX942-NEXT:    ;;#ASMSTART10493; GFX942-NEXT:    ; def s[8:11]10494; GFX942-NEXT:    ;;#ASMEND10495; GFX942-NEXT:    ;;#ASMSTART10496; GFX942-NEXT:    ; def s[0:3]10497; GFX942-NEXT:    ;;#ASMEND10498; GFX942-NEXT:    s_mov_b32 s8, s310499; GFX942-NEXT:    s_mov_b32 s9, s1110500; GFX942-NEXT:    ;;#ASMSTART10501; GFX942-NEXT:    ; use s[8:10]10502; GFX942-NEXT:    ;;#ASMEND10503; GFX942-NEXT:    s_setpc_b64 s[30:31]10504  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10505  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10506  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 2>10507  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10508  ret void10509}10510 10511define void @s_shuffle_v3p3_v4p3__7_4_2() {10512; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_2:10513; GFX900:       ; %bb.0:10514; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10515; GFX900-NEXT:    ;;#ASMSTART10516; GFX900-NEXT:    ; def s[8:11]10517; GFX900-NEXT:    ;;#ASMEND10518; GFX900-NEXT:    ;;#ASMSTART10519; GFX900-NEXT:    ; def s[4:7]10520; GFX900-NEXT:    ;;#ASMEND10521; GFX900-NEXT:    s_mov_b32 s8, s710522; GFX900-NEXT:    s_mov_b32 s9, s410523; GFX900-NEXT:    ;;#ASMSTART10524; GFX900-NEXT:    ; use s[8:10]10525; GFX900-NEXT:    ;;#ASMEND10526; GFX900-NEXT:    s_setpc_b64 s[30:31]10527;10528; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_2:10529; GFX90A:       ; %bb.0:10530; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10531; GFX90A-NEXT:    ;;#ASMSTART10532; GFX90A-NEXT:    ; def s[8:11]10533; GFX90A-NEXT:    ;;#ASMEND10534; GFX90A-NEXT:    ;;#ASMSTART10535; GFX90A-NEXT:    ; def s[4:7]10536; GFX90A-NEXT:    ;;#ASMEND10537; GFX90A-NEXT:    s_mov_b32 s8, s710538; GFX90A-NEXT:    s_mov_b32 s9, s410539; GFX90A-NEXT:    ;;#ASMSTART10540; GFX90A-NEXT:    ; use s[8:10]10541; GFX90A-NEXT:    ;;#ASMEND10542; GFX90A-NEXT:    s_setpc_b64 s[30:31]10543;10544; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_2:10545; GFX942:       ; %bb.0:10546; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10547; GFX942-NEXT:    ;;#ASMSTART10548; GFX942-NEXT:    ; def s[8:11]10549; GFX942-NEXT:    ;;#ASMEND10550; GFX942-NEXT:    ;;#ASMSTART10551; GFX942-NEXT:    ; def s[0:3]10552; GFX942-NEXT:    ;;#ASMEND10553; GFX942-NEXT:    s_mov_b32 s8, s310554; GFX942-NEXT:    s_mov_b32 s9, s010555; GFX942-NEXT:    ;;#ASMSTART10556; GFX942-NEXT:    ; use s[8:10]10557; GFX942-NEXT:    ;;#ASMEND10558; GFX942-NEXT:    s_setpc_b64 s[30:31]10559  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10560  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10561  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 2>10562  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10563  ret void10564}10565 10566define void @s_shuffle_v3p3_v4p3__7_5_2() {10567; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_5_2:10568; GFX900:       ; %bb.0:10569; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10570; GFX900-NEXT:    ;;#ASMSTART10571; GFX900-NEXT:    ; def s[8:11]10572; GFX900-NEXT:    ;;#ASMEND10573; GFX900-NEXT:    ;;#ASMSTART10574; GFX900-NEXT:    ; def s[4:7]10575; GFX900-NEXT:    ;;#ASMEND10576; GFX900-NEXT:    s_mov_b32 s8, s1110577; GFX900-NEXT:    s_mov_b32 s10, s610578; GFX900-NEXT:    ;;#ASMSTART10579; GFX900-NEXT:    ; use s[8:10]10580; GFX900-NEXT:    ;;#ASMEND10581; GFX900-NEXT:    s_setpc_b64 s[30:31]10582;10583; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_5_2:10584; GFX90A:       ; %bb.0:10585; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10586; GFX90A-NEXT:    ;;#ASMSTART10587; GFX90A-NEXT:    ; def s[8:11]10588; GFX90A-NEXT:    ;;#ASMEND10589; GFX90A-NEXT:    ;;#ASMSTART10590; GFX90A-NEXT:    ; def s[4:7]10591; GFX90A-NEXT:    ;;#ASMEND10592; GFX90A-NEXT:    s_mov_b32 s8, s1110593; GFX90A-NEXT:    s_mov_b32 s10, s610594; GFX90A-NEXT:    ;;#ASMSTART10595; GFX90A-NEXT:    ; use s[8:10]10596; GFX90A-NEXT:    ;;#ASMEND10597; GFX90A-NEXT:    s_setpc_b64 s[30:31]10598;10599; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_5_2:10600; GFX942:       ; %bb.0:10601; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10602; GFX942-NEXT:    ;;#ASMSTART10603; GFX942-NEXT:    ; def s[8:11]10604; GFX942-NEXT:    ;;#ASMEND10605; GFX942-NEXT:    ;;#ASMSTART10606; GFX942-NEXT:    ; def s[0:3]10607; GFX942-NEXT:    ;;#ASMEND10608; GFX942-NEXT:    s_mov_b32 s8, s1110609; GFX942-NEXT:    s_mov_b32 s10, s210610; GFX942-NEXT:    ;;#ASMSTART10611; GFX942-NEXT:    ; use s[8:10]10612; GFX942-NEXT:    ;;#ASMEND10613; GFX942-NEXT:    s_setpc_b64 s[30:31]10614  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10615  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10616  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 2>10617  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10618  ret void10619}10620 10621define void @s_shuffle_v3p3_v4p3__7_6_2() {10622; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_2:10623; GFX900:       ; %bb.0:10624; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10625; GFX900-NEXT:    ;;#ASMSTART10626; GFX900-NEXT:    ; def s[8:11]10627; GFX900-NEXT:    ;;#ASMEND10628; GFX900-NEXT:    ;;#ASMSTART10629; GFX900-NEXT:    ; def s[4:7]10630; GFX900-NEXT:    ;;#ASMEND10631; GFX900-NEXT:    s_mov_b32 s8, s710632; GFX900-NEXT:    s_mov_b32 s9, s610633; GFX900-NEXT:    ;;#ASMSTART10634; GFX900-NEXT:    ; use s[8:10]10635; GFX900-NEXT:    ;;#ASMEND10636; GFX900-NEXT:    s_setpc_b64 s[30:31]10637;10638; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_2:10639; GFX90A:       ; %bb.0:10640; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10641; GFX90A-NEXT:    ;;#ASMSTART10642; GFX90A-NEXT:    ; def s[8:11]10643; GFX90A-NEXT:    ;;#ASMEND10644; GFX90A-NEXT:    ;;#ASMSTART10645; GFX90A-NEXT:    ; def s[4:7]10646; GFX90A-NEXT:    ;;#ASMEND10647; GFX90A-NEXT:    s_mov_b32 s8, s710648; GFX90A-NEXT:    s_mov_b32 s9, s610649; GFX90A-NEXT:    ;;#ASMSTART10650; GFX90A-NEXT:    ; use s[8:10]10651; GFX90A-NEXT:    ;;#ASMEND10652; GFX90A-NEXT:    s_setpc_b64 s[30:31]10653;10654; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_2:10655; GFX942:       ; %bb.0:10656; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10657; GFX942-NEXT:    ;;#ASMSTART10658; GFX942-NEXT:    ; def s[8:11]10659; GFX942-NEXT:    ;;#ASMEND10660; GFX942-NEXT:    ;;#ASMSTART10661; GFX942-NEXT:    ; def s[0:3]10662; GFX942-NEXT:    ;;#ASMEND10663; GFX942-NEXT:    s_mov_b32 s8, s310664; GFX942-NEXT:    s_mov_b32 s9, s210665; GFX942-NEXT:    ;;#ASMSTART10666; GFX942-NEXT:    ; use s[8:10]10667; GFX942-NEXT:    ;;#ASMEND10668; GFX942-NEXT:    s_setpc_b64 s[30:31]10669  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10670  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10671  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 2>10672  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10673  ret void10674}10675 10676define void @s_shuffle_v3p3_v4p3__u_3_3() {10677; GFX900-LABEL: s_shuffle_v3p3_v4p3__u_3_3:10678; GFX900:       ; %bb.0:10679; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10680; GFX900-NEXT:    ;;#ASMSTART10681; GFX900-NEXT:    ; def s[4:7]10682; GFX900-NEXT:    ;;#ASMEND10683; GFX900-NEXT:    s_mov_b32 s9, s710684; GFX900-NEXT:    s_mov_b32 s10, s710685; GFX900-NEXT:    ;;#ASMSTART10686; GFX900-NEXT:    ; use s[8:10]10687; GFX900-NEXT:    ;;#ASMEND10688; GFX900-NEXT:    s_setpc_b64 s[30:31]10689;10690; GFX90A-LABEL: s_shuffle_v3p3_v4p3__u_3_3:10691; GFX90A:       ; %bb.0:10692; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10693; GFX90A-NEXT:    ;;#ASMSTART10694; GFX90A-NEXT:    ; def s[4:7]10695; GFX90A-NEXT:    ;;#ASMEND10696; GFX90A-NEXT:    s_mov_b32 s9, s710697; GFX90A-NEXT:    s_mov_b32 s10, s710698; GFX90A-NEXT:    ;;#ASMSTART10699; GFX90A-NEXT:    ; use s[8:10]10700; GFX90A-NEXT:    ;;#ASMEND10701; GFX90A-NEXT:    s_setpc_b64 s[30:31]10702;10703; GFX942-LABEL: s_shuffle_v3p3_v4p3__u_3_3:10704; GFX942:       ; %bb.0:10705; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10706; GFX942-NEXT:    ;;#ASMSTART10707; GFX942-NEXT:    ; def s[0:3]10708; GFX942-NEXT:    ;;#ASMEND10709; GFX942-NEXT:    s_mov_b32 s9, s310710; GFX942-NEXT:    s_mov_b32 s10, s310711; GFX942-NEXT:    ;;#ASMSTART10712; GFX942-NEXT:    ; use s[8:10]10713; GFX942-NEXT:    ;;#ASMEND10714; GFX942-NEXT:    s_setpc_b64 s[30:31]10715  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10716  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 3, i32 3>10717  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10718  ret void10719}10720 10721define void @s_shuffle_v3p3_v4p3__0_3_3() {10722; GFX9-LABEL: s_shuffle_v3p3_v4p3__0_3_3:10723; GFX9:       ; %bb.0:10724; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10725; GFX9-NEXT:    ;;#ASMSTART10726; GFX9-NEXT:    ; def s[8:11]10727; GFX9-NEXT:    ;;#ASMEND10728; GFX9-NEXT:    s_mov_b32 s9, s1110729; GFX9-NEXT:    s_mov_b32 s10, s1110730; GFX9-NEXT:    ;;#ASMSTART10731; GFX9-NEXT:    ; use s[8:10]10732; GFX9-NEXT:    ;;#ASMEND10733; GFX9-NEXT:    s_setpc_b64 s[30:31]10734  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10735  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 3, i32 3>10736  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10737  ret void10738}10739 10740define void @s_shuffle_v3p3_v4p3__1_3_3() {10741; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_3_3:10742; GFX900:       ; %bb.0:10743; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10744; GFX900-NEXT:    ;;#ASMSTART10745; GFX900-NEXT:    ; def s[4:7]10746; GFX900-NEXT:    ;;#ASMEND10747; GFX900-NEXT:    s_mov_b32 s8, s510748; GFX900-NEXT:    s_mov_b32 s9, s710749; GFX900-NEXT:    s_mov_b32 s10, s710750; GFX900-NEXT:    ;;#ASMSTART10751; GFX900-NEXT:    ; use s[8:10]10752; GFX900-NEXT:    ;;#ASMEND10753; GFX900-NEXT:    s_setpc_b64 s[30:31]10754;10755; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_3_3:10756; GFX90A:       ; %bb.0:10757; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10758; GFX90A-NEXT:    ;;#ASMSTART10759; GFX90A-NEXT:    ; def s[4:7]10760; GFX90A-NEXT:    ;;#ASMEND10761; GFX90A-NEXT:    s_mov_b32 s8, s510762; GFX90A-NEXT:    s_mov_b32 s9, s710763; GFX90A-NEXT:    s_mov_b32 s10, s710764; GFX90A-NEXT:    ;;#ASMSTART10765; GFX90A-NEXT:    ; use s[8:10]10766; GFX90A-NEXT:    ;;#ASMEND10767; GFX90A-NEXT:    s_setpc_b64 s[30:31]10768;10769; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_3_3:10770; GFX942:       ; %bb.0:10771; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10772; GFX942-NEXT:    ;;#ASMSTART10773; GFX942-NEXT:    ; def s[0:3]10774; GFX942-NEXT:    ;;#ASMEND10775; GFX942-NEXT:    s_mov_b32 s8, s110776; GFX942-NEXT:    s_mov_b32 s9, s310777; GFX942-NEXT:    s_mov_b32 s10, s310778; GFX942-NEXT:    ;;#ASMSTART10779; GFX942-NEXT:    ; use s[8:10]10780; GFX942-NEXT:    ;;#ASMEND10781; GFX942-NEXT:    s_setpc_b64 s[30:31]10782  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10783  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 3, i32 3>10784  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10785  ret void10786}10787 10788define void @s_shuffle_v3p3_v4p3__2_3_3() {10789; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_3_3:10790; GFX900:       ; %bb.0:10791; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10792; GFX900-NEXT:    ;;#ASMSTART10793; GFX900-NEXT:    ; def s[4:7]10794; GFX900-NEXT:    ;;#ASMEND10795; GFX900-NEXT:    s_mov_b32 s8, s610796; GFX900-NEXT:    s_mov_b32 s9, s710797; GFX900-NEXT:    s_mov_b32 s10, s710798; GFX900-NEXT:    ;;#ASMSTART10799; GFX900-NEXT:    ; use s[8:10]10800; GFX900-NEXT:    ;;#ASMEND10801; GFX900-NEXT:    s_setpc_b64 s[30:31]10802;10803; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_3_3:10804; GFX90A:       ; %bb.0:10805; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10806; GFX90A-NEXT:    ;;#ASMSTART10807; GFX90A-NEXT:    ; def s[4:7]10808; GFX90A-NEXT:    ;;#ASMEND10809; GFX90A-NEXT:    s_mov_b32 s8, s610810; GFX90A-NEXT:    s_mov_b32 s9, s710811; GFX90A-NEXT:    s_mov_b32 s10, s710812; GFX90A-NEXT:    ;;#ASMSTART10813; GFX90A-NEXT:    ; use s[8:10]10814; GFX90A-NEXT:    ;;#ASMEND10815; GFX90A-NEXT:    s_setpc_b64 s[30:31]10816;10817; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_3_3:10818; GFX942:       ; %bb.0:10819; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10820; GFX942-NEXT:    ;;#ASMSTART10821; GFX942-NEXT:    ; def s[0:3]10822; GFX942-NEXT:    ;;#ASMEND10823; GFX942-NEXT:    s_mov_b32 s8, s210824; GFX942-NEXT:    s_mov_b32 s9, s310825; GFX942-NEXT:    s_mov_b32 s10, s310826; GFX942-NEXT:    ;;#ASMSTART10827; GFX942-NEXT:    ; use s[8:10]10828; GFX942-NEXT:    ;;#ASMEND10829; GFX942-NEXT:    s_setpc_b64 s[30:31]10830  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10831  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 3, i32 3>10832  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10833  ret void10834}10835 10836define void @s_shuffle_v3p3_v4p3__3_3_3() {10837; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_3_3:10838; GFX900:       ; %bb.0:10839; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10840; GFX900-NEXT:    ;;#ASMSTART10841; GFX900-NEXT:    ; def s[4:7]10842; GFX900-NEXT:    ;;#ASMEND10843; GFX900-NEXT:    s_mov_b32 s8, s710844; GFX900-NEXT:    s_mov_b32 s9, s710845; GFX900-NEXT:    s_mov_b32 s10, s710846; GFX900-NEXT:    ;;#ASMSTART10847; GFX900-NEXT:    ; use s[8:10]10848; GFX900-NEXT:    ;;#ASMEND10849; GFX900-NEXT:    s_setpc_b64 s[30:31]10850;10851; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_3_3:10852; GFX90A:       ; %bb.0:10853; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10854; GFX90A-NEXT:    ;;#ASMSTART10855; GFX90A-NEXT:    ; def s[4:7]10856; GFX90A-NEXT:    ;;#ASMEND10857; GFX90A-NEXT:    s_mov_b32 s8, s710858; GFX90A-NEXT:    s_mov_b32 s9, s710859; GFX90A-NEXT:    s_mov_b32 s10, s710860; GFX90A-NEXT:    ;;#ASMSTART10861; GFX90A-NEXT:    ; use s[8:10]10862; GFX90A-NEXT:    ;;#ASMEND10863; GFX90A-NEXT:    s_setpc_b64 s[30:31]10864;10865; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_3_3:10866; GFX942:       ; %bb.0:10867; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10868; GFX942-NEXT:    ;;#ASMSTART10869; GFX942-NEXT:    ; def s[0:3]10870; GFX942-NEXT:    ;;#ASMEND10871; GFX942-NEXT:    s_mov_b32 s8, s310872; GFX942-NEXT:    s_mov_b32 s9, s310873; GFX942-NEXT:    s_mov_b32 s10, s310874; GFX942-NEXT:    ;;#ASMSTART10875; GFX942-NEXT:    ; use s[8:10]10876; GFX942-NEXT:    ;;#ASMEND10877; GFX942-NEXT:    s_setpc_b64 s[30:31]10878  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10879  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 3, i32 3>10880  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10881  ret void10882}10883 10884define void @s_shuffle_v3p3_v4p3__4_3_3() {10885; GFX900-LABEL: s_shuffle_v3p3_v4p3__4_3_3:10886; GFX900:       ; %bb.0:10887; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10888; GFX900-NEXT:    ;;#ASMSTART10889; GFX900-NEXT:    ; def s[4:7]10890; GFX900-NEXT:    ;;#ASMEND10891; GFX900-NEXT:    s_mov_b32 s9, s710892; GFX900-NEXT:    s_mov_b32 s10, s710893; GFX900-NEXT:    ;;#ASMSTART10894; GFX900-NEXT:    ; use s[8:10]10895; GFX900-NEXT:    ;;#ASMEND10896; GFX900-NEXT:    s_setpc_b64 s[30:31]10897;10898; GFX90A-LABEL: s_shuffle_v3p3_v4p3__4_3_3:10899; GFX90A:       ; %bb.0:10900; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10901; GFX90A-NEXT:    ;;#ASMSTART10902; GFX90A-NEXT:    ; def s[4:7]10903; GFX90A-NEXT:    ;;#ASMEND10904; GFX90A-NEXT:    s_mov_b32 s9, s710905; GFX90A-NEXT:    s_mov_b32 s10, s710906; GFX90A-NEXT:    ;;#ASMSTART10907; GFX90A-NEXT:    ; use s[8:10]10908; GFX90A-NEXT:    ;;#ASMEND10909; GFX90A-NEXT:    s_setpc_b64 s[30:31]10910;10911; GFX942-LABEL: s_shuffle_v3p3_v4p3__4_3_3:10912; GFX942:       ; %bb.0:10913; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10914; GFX942-NEXT:    ;;#ASMSTART10915; GFX942-NEXT:    ; def s[0:3]10916; GFX942-NEXT:    ;;#ASMEND10917; GFX942-NEXT:    s_mov_b32 s9, s310918; GFX942-NEXT:    s_mov_b32 s10, s310919; GFX942-NEXT:    ;;#ASMSTART10920; GFX942-NEXT:    ; use s[8:10]10921; GFX942-NEXT:    ;;#ASMEND10922; GFX942-NEXT:    s_setpc_b64 s[30:31]10923  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10924  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 3, i32 3>10925  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10926  ret void10927}10928 10929define void @s_shuffle_v3p3_v4p3__5_3_3() {10930; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_3_3:10931; GFX900:       ; %bb.0:10932; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10933; GFX900-NEXT:    ;;#ASMSTART10934; GFX900-NEXT:    ; def s[8:11]10935; GFX900-NEXT:    ;;#ASMEND10936; GFX900-NEXT:    ;;#ASMSTART10937; GFX900-NEXT:    ; def s[4:7]10938; GFX900-NEXT:    ;;#ASMEND10939; GFX900-NEXT:    s_mov_b32 s8, s910940; GFX900-NEXT:    s_mov_b32 s9, s710941; GFX900-NEXT:    s_mov_b32 s10, s710942; GFX900-NEXT:    ;;#ASMSTART10943; GFX900-NEXT:    ; use s[8:10]10944; GFX900-NEXT:    ;;#ASMEND10945; GFX900-NEXT:    s_setpc_b64 s[30:31]10946;10947; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_3_3:10948; GFX90A:       ; %bb.0:10949; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10950; GFX90A-NEXT:    ;;#ASMSTART10951; GFX90A-NEXT:    ; def s[8:11]10952; GFX90A-NEXT:    ;;#ASMEND10953; GFX90A-NEXT:    ;;#ASMSTART10954; GFX90A-NEXT:    ; def s[4:7]10955; GFX90A-NEXT:    ;;#ASMEND10956; GFX90A-NEXT:    s_mov_b32 s8, s910957; GFX90A-NEXT:    s_mov_b32 s9, s710958; GFX90A-NEXT:    s_mov_b32 s10, s710959; GFX90A-NEXT:    ;;#ASMSTART10960; GFX90A-NEXT:    ; use s[8:10]10961; GFX90A-NEXT:    ;;#ASMEND10962; GFX90A-NEXT:    s_setpc_b64 s[30:31]10963;10964; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_3_3:10965; GFX942:       ; %bb.0:10966; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10967; GFX942-NEXT:    ;;#ASMSTART10968; GFX942-NEXT:    ; def s[0:3]10969; GFX942-NEXT:    ;;#ASMEND10970; GFX942-NEXT:    ;;#ASMSTART10971; GFX942-NEXT:    ; def s[4:7]10972; GFX942-NEXT:    ;;#ASMEND10973; GFX942-NEXT:    s_mov_b32 s8, s510974; GFX942-NEXT:    s_mov_b32 s9, s310975; GFX942-NEXT:    s_mov_b32 s10, s310976; GFX942-NEXT:    ;;#ASMSTART10977; GFX942-NEXT:    ; use s[8:10]10978; GFX942-NEXT:    ;;#ASMEND10979; GFX942-NEXT:    s_setpc_b64 s[30:31]10980  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10981  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()10982  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 3, i32 3>10983  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)10984  ret void10985}10986 10987define void @s_shuffle_v3p3_v4p3__6_3_3() {10988; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_3_3:10989; GFX900:       ; %bb.0:10990; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10991; GFX900-NEXT:    ;;#ASMSTART10992; GFX900-NEXT:    ; def s[8:11]10993; GFX900-NEXT:    ;;#ASMEND10994; GFX900-NEXT:    ;;#ASMSTART10995; GFX900-NEXT:    ; def s[4:7]10996; GFX900-NEXT:    ;;#ASMEND10997; GFX900-NEXT:    s_mov_b32 s8, s1010998; GFX900-NEXT:    s_mov_b32 s9, s710999; GFX900-NEXT:    s_mov_b32 s10, s711000; GFX900-NEXT:    ;;#ASMSTART11001; GFX900-NEXT:    ; use s[8:10]11002; GFX900-NEXT:    ;;#ASMEND11003; GFX900-NEXT:    s_setpc_b64 s[30:31]11004;11005; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_3_3:11006; GFX90A:       ; %bb.0:11007; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11008; GFX90A-NEXT:    ;;#ASMSTART11009; GFX90A-NEXT:    ; def s[8:11]11010; GFX90A-NEXT:    ;;#ASMEND11011; GFX90A-NEXT:    ;;#ASMSTART11012; GFX90A-NEXT:    ; def s[4:7]11013; GFX90A-NEXT:    ;;#ASMEND11014; GFX90A-NEXT:    s_mov_b32 s8, s1011015; GFX90A-NEXT:    s_mov_b32 s9, s711016; GFX90A-NEXT:    s_mov_b32 s10, s711017; GFX90A-NEXT:    ;;#ASMSTART11018; GFX90A-NEXT:    ; use s[8:10]11019; GFX90A-NEXT:    ;;#ASMEND11020; GFX90A-NEXT:    s_setpc_b64 s[30:31]11021;11022; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_3_3:11023; GFX942:       ; %bb.0:11024; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11025; GFX942-NEXT:    ;;#ASMSTART11026; GFX942-NEXT:    ; def s[0:3]11027; GFX942-NEXT:    ;;#ASMEND11028; GFX942-NEXT:    ;;#ASMSTART11029; GFX942-NEXT:    ; def s[4:7]11030; GFX942-NEXT:    ;;#ASMEND11031; GFX942-NEXT:    s_mov_b32 s8, s611032; GFX942-NEXT:    s_mov_b32 s9, s311033; GFX942-NEXT:    s_mov_b32 s10, s311034; GFX942-NEXT:    ;;#ASMSTART11035; GFX942-NEXT:    ; use s[8:10]11036; GFX942-NEXT:    ;;#ASMEND11037; GFX942-NEXT:    s_setpc_b64 s[30:31]11038  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11039  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11040  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 3, i32 3>11041  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11042  ret void11043}11044 11045define void @s_shuffle_v3p3_v4p3__7_3_3() {11046; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_3:11047; GFX900:       ; %bb.0:11048; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11049; GFX900-NEXT:    ;;#ASMSTART11050; GFX900-NEXT:    ; def s[8:11]11051; GFX900-NEXT:    ;;#ASMEND11052; GFX900-NEXT:    ;;#ASMSTART11053; GFX900-NEXT:    ; def s[4:7]11054; GFX900-NEXT:    ;;#ASMEND11055; GFX900-NEXT:    s_mov_b32 s8, s1111056; GFX900-NEXT:    s_mov_b32 s9, s711057; GFX900-NEXT:    s_mov_b32 s10, s711058; GFX900-NEXT:    ;;#ASMSTART11059; GFX900-NEXT:    ; use s[8:10]11060; GFX900-NEXT:    ;;#ASMEND11061; GFX900-NEXT:    s_setpc_b64 s[30:31]11062;11063; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_3:11064; GFX90A:       ; %bb.0:11065; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11066; GFX90A-NEXT:    ;;#ASMSTART11067; GFX90A-NEXT:    ; def s[8:11]11068; GFX90A-NEXT:    ;;#ASMEND11069; GFX90A-NEXT:    ;;#ASMSTART11070; GFX90A-NEXT:    ; def s[4:7]11071; GFX90A-NEXT:    ;;#ASMEND11072; GFX90A-NEXT:    s_mov_b32 s8, s1111073; GFX90A-NEXT:    s_mov_b32 s9, s711074; GFX90A-NEXT:    s_mov_b32 s10, s711075; GFX90A-NEXT:    ;;#ASMSTART11076; GFX90A-NEXT:    ; use s[8:10]11077; GFX90A-NEXT:    ;;#ASMEND11078; GFX90A-NEXT:    s_setpc_b64 s[30:31]11079;11080; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_3:11081; GFX942:       ; %bb.0:11082; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11083; GFX942-NEXT:    ;;#ASMSTART11084; GFX942-NEXT:    ; def s[0:3]11085; GFX942-NEXT:    ;;#ASMEND11086; GFX942-NEXT:    ;;#ASMSTART11087; GFX942-NEXT:    ; def s[4:7]11088; GFX942-NEXT:    ;;#ASMEND11089; GFX942-NEXT:    s_mov_b32 s8, s711090; GFX942-NEXT:    s_mov_b32 s9, s311091; GFX942-NEXT:    s_mov_b32 s10, s311092; GFX942-NEXT:    ;;#ASMSTART11093; GFX942-NEXT:    ; use s[8:10]11094; GFX942-NEXT:    ;;#ASMEND11095; GFX942-NEXT:    s_setpc_b64 s[30:31]11096  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11097  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11098  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 3>11099  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11100  ret void11101}11102 11103define void @s_shuffle_v3p3_v4p3__7_u_3() {11104; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_3:11105; GFX900:       ; %bb.0:11106; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11107; GFX900-NEXT:    ;;#ASMSTART11108; GFX900-NEXT:    ; def s[8:11]11109; GFX900-NEXT:    ;;#ASMEND11110; GFX900-NEXT:    ;;#ASMSTART11111; GFX900-NEXT:    ; def s[4:7]11112; GFX900-NEXT:    ;;#ASMEND11113; GFX900-NEXT:    s_mov_b32 s8, s1111114; GFX900-NEXT:    s_mov_b32 s10, s711115; GFX900-NEXT:    ;;#ASMSTART11116; GFX900-NEXT:    ; use s[8:10]11117; GFX900-NEXT:    ;;#ASMEND11118; GFX900-NEXT:    s_setpc_b64 s[30:31]11119;11120; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_3:11121; GFX90A:       ; %bb.0:11122; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11123; GFX90A-NEXT:    ;;#ASMSTART11124; GFX90A-NEXT:    ; def s[8:11]11125; GFX90A-NEXT:    ;;#ASMEND11126; GFX90A-NEXT:    ;;#ASMSTART11127; GFX90A-NEXT:    ; def s[4:7]11128; GFX90A-NEXT:    ;;#ASMEND11129; GFX90A-NEXT:    s_mov_b32 s8, s1111130; GFX90A-NEXT:    s_mov_b32 s10, s711131; GFX90A-NEXT:    ;;#ASMSTART11132; GFX90A-NEXT:    ; use s[8:10]11133; GFX90A-NEXT:    ;;#ASMEND11134; GFX90A-NEXT:    s_setpc_b64 s[30:31]11135;11136; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_3:11137; GFX942:       ; %bb.0:11138; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11139; GFX942-NEXT:    ;;#ASMSTART11140; GFX942-NEXT:    ; def s[0:3]11141; GFX942-NEXT:    ;;#ASMEND11142; GFX942-NEXT:    ;;#ASMSTART11143; GFX942-NEXT:    ; def s[4:7]11144; GFX942-NEXT:    ;;#ASMEND11145; GFX942-NEXT:    s_mov_b32 s8, s711146; GFX942-NEXT:    s_mov_b32 s10, s311147; GFX942-NEXT:    ;;#ASMSTART11148; GFX942-NEXT:    ; use s[8:10]11149; GFX942-NEXT:    ;;#ASMEND11150; GFX942-NEXT:    s_setpc_b64 s[30:31]11151  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11152  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11153  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>11154  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11155  ret void11156}11157 11158define void @s_shuffle_v3p3_v4p3__7_0_3() {11159; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_3:11160; GFX900:       ; %bb.0:11161; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11162; GFX900-NEXT:    ;;#ASMSTART11163; GFX900-NEXT:    ; def s[8:11]11164; GFX900-NEXT:    ;;#ASMEND11165; GFX900-NEXT:    ;;#ASMSTART11166; GFX900-NEXT:    ; def s[4:7]11167; GFX900-NEXT:    ;;#ASMEND11168; GFX900-NEXT:    s_mov_b32 s8, s1111169; GFX900-NEXT:    s_mov_b32 s9, s411170; GFX900-NEXT:    s_mov_b32 s10, s711171; GFX900-NEXT:    ;;#ASMSTART11172; GFX900-NEXT:    ; use s[8:10]11173; GFX900-NEXT:    ;;#ASMEND11174; GFX900-NEXT:    s_setpc_b64 s[30:31]11175;11176; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_3:11177; GFX90A:       ; %bb.0:11178; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11179; GFX90A-NEXT:    ;;#ASMSTART11180; GFX90A-NEXT:    ; def s[8:11]11181; GFX90A-NEXT:    ;;#ASMEND11182; GFX90A-NEXT:    ;;#ASMSTART11183; GFX90A-NEXT:    ; def s[4:7]11184; GFX90A-NEXT:    ;;#ASMEND11185; GFX90A-NEXT:    s_mov_b32 s8, s1111186; GFX90A-NEXT:    s_mov_b32 s9, s411187; GFX90A-NEXT:    s_mov_b32 s10, s711188; GFX90A-NEXT:    ;;#ASMSTART11189; GFX90A-NEXT:    ; use s[8:10]11190; GFX90A-NEXT:    ;;#ASMEND11191; GFX90A-NEXT:    s_setpc_b64 s[30:31]11192;11193; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_3:11194; GFX942:       ; %bb.0:11195; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11196; GFX942-NEXT:    ;;#ASMSTART11197; GFX942-NEXT:    ; def s[0:3]11198; GFX942-NEXT:    ;;#ASMEND11199; GFX942-NEXT:    ;;#ASMSTART11200; GFX942-NEXT:    ; def s[4:7]11201; GFX942-NEXT:    ;;#ASMEND11202; GFX942-NEXT:    s_mov_b32 s8, s711203; GFX942-NEXT:    s_mov_b32 s9, s011204; GFX942-NEXT:    s_mov_b32 s10, s311205; GFX942-NEXT:    ;;#ASMSTART11206; GFX942-NEXT:    ; use s[8:10]11207; GFX942-NEXT:    ;;#ASMEND11208; GFX942-NEXT:    s_setpc_b64 s[30:31]11209  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11210  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11211  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 3>11212  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11213  ret void11214}11215 11216define void @s_shuffle_v3p3_v4p3__7_1_3() {11217; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_3:11218; GFX900:       ; %bb.0:11219; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11220; GFX900-NEXT:    ;;#ASMSTART11221; GFX900-NEXT:    ; def s[8:11]11222; GFX900-NEXT:    ;;#ASMEND11223; GFX900-NEXT:    ;;#ASMSTART11224; GFX900-NEXT:    ; def s[4:7]11225; GFX900-NEXT:    ;;#ASMEND11226; GFX900-NEXT:    s_mov_b32 s8, s711227; GFX900-NEXT:    s_mov_b32 s10, s1111228; GFX900-NEXT:    ;;#ASMSTART11229; GFX900-NEXT:    ; use s[8:10]11230; GFX900-NEXT:    ;;#ASMEND11231; GFX900-NEXT:    s_setpc_b64 s[30:31]11232;11233; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_3:11234; GFX90A:       ; %bb.0:11235; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11236; GFX90A-NEXT:    ;;#ASMSTART11237; GFX90A-NEXT:    ; def s[8:11]11238; GFX90A-NEXT:    ;;#ASMEND11239; GFX90A-NEXT:    ;;#ASMSTART11240; GFX90A-NEXT:    ; def s[4:7]11241; GFX90A-NEXT:    ;;#ASMEND11242; GFX90A-NEXT:    s_mov_b32 s8, s711243; GFX90A-NEXT:    s_mov_b32 s10, s1111244; GFX90A-NEXT:    ;;#ASMSTART11245; GFX90A-NEXT:    ; use s[8:10]11246; GFX90A-NEXT:    ;;#ASMEND11247; GFX90A-NEXT:    s_setpc_b64 s[30:31]11248;11249; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_3:11250; GFX942:       ; %bb.0:11251; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11252; GFX942-NEXT:    ;;#ASMSTART11253; GFX942-NEXT:    ; def s[8:11]11254; GFX942-NEXT:    ;;#ASMEND11255; GFX942-NEXT:    ;;#ASMSTART11256; GFX942-NEXT:    ; def s[0:3]11257; GFX942-NEXT:    ;;#ASMEND11258; GFX942-NEXT:    s_mov_b32 s8, s311259; GFX942-NEXT:    s_mov_b32 s10, s1111260; GFX942-NEXT:    ;;#ASMSTART11261; GFX942-NEXT:    ; use s[8:10]11262; GFX942-NEXT:    ;;#ASMEND11263; GFX942-NEXT:    s_setpc_b64 s[30:31]11264  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11265  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11266  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 3>11267  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11268  ret void11269}11270 11271define void @s_shuffle_v3p3_v4p3__7_2_3() {11272; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_3:11273; GFX900:       ; %bb.0:11274; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11275; GFX900-NEXT:    ;;#ASMSTART11276; GFX900-NEXT:    ; def s[8:11]11277; GFX900-NEXT:    ;;#ASMEND11278; GFX900-NEXT:    ;;#ASMSTART11279; GFX900-NEXT:    ; def s[4:7]11280; GFX900-NEXT:    ;;#ASMEND11281; GFX900-NEXT:    s_mov_b32 s8, s1111282; GFX900-NEXT:    s_mov_b32 s9, s611283; GFX900-NEXT:    s_mov_b32 s10, s711284; GFX900-NEXT:    ;;#ASMSTART11285; GFX900-NEXT:    ; use s[8:10]11286; GFX900-NEXT:    ;;#ASMEND11287; GFX900-NEXT:    s_setpc_b64 s[30:31]11288;11289; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_3:11290; GFX90A:       ; %bb.0:11291; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11292; GFX90A-NEXT:    ;;#ASMSTART11293; GFX90A-NEXT:    ; def s[8:11]11294; GFX90A-NEXT:    ;;#ASMEND11295; GFX90A-NEXT:    ;;#ASMSTART11296; GFX90A-NEXT:    ; def s[4:7]11297; GFX90A-NEXT:    ;;#ASMEND11298; GFX90A-NEXT:    s_mov_b32 s8, s1111299; GFX90A-NEXT:    s_mov_b32 s9, s611300; GFX90A-NEXT:    s_mov_b32 s10, s711301; GFX90A-NEXT:    ;;#ASMSTART11302; GFX90A-NEXT:    ; use s[8:10]11303; GFX90A-NEXT:    ;;#ASMEND11304; GFX90A-NEXT:    s_setpc_b64 s[30:31]11305;11306; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_3:11307; GFX942:       ; %bb.0:11308; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11309; GFX942-NEXT:    ;;#ASMSTART11310; GFX942-NEXT:    ; def s[0:3]11311; GFX942-NEXT:    ;;#ASMEND11312; GFX942-NEXT:    ;;#ASMSTART11313; GFX942-NEXT:    ; def s[4:7]11314; GFX942-NEXT:    ;;#ASMEND11315; GFX942-NEXT:    s_mov_b32 s8, s711316; GFX942-NEXT:    s_mov_b32 s9, s211317; GFX942-NEXT:    s_mov_b32 s10, s311318; GFX942-NEXT:    ;;#ASMSTART11319; GFX942-NEXT:    ; use s[8:10]11320; GFX942-NEXT:    ;;#ASMEND11321; GFX942-NEXT:    s_setpc_b64 s[30:31]11322  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11323  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11324  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 3>11325  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11326  ret void11327}11328 11329define void @s_shuffle_v3p3_v4p3__7_4_3() {11330; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_3:11331; GFX900:       ; %bb.0:11332; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11333; GFX900-NEXT:    ;;#ASMSTART11334; GFX900-NEXT:    ; def s[4:7]11335; GFX900-NEXT:    ;;#ASMEND11336; GFX900-NEXT:    ;;#ASMSTART11337; GFX900-NEXT:    ; def s[12:15]11338; GFX900-NEXT:    ;;#ASMEND11339; GFX900-NEXT:    s_mov_b32 s8, s1511340; GFX900-NEXT:    s_mov_b32 s9, s1211341; GFX900-NEXT:    s_mov_b32 s10, s711342; GFX900-NEXT:    ;;#ASMSTART11343; GFX900-NEXT:    ; use s[8:10]11344; GFX900-NEXT:    ;;#ASMEND11345; GFX900-NEXT:    s_setpc_b64 s[30:31]11346;11347; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_3:11348; GFX90A:       ; %bb.0:11349; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11350; GFX90A-NEXT:    ;;#ASMSTART11351; GFX90A-NEXT:    ; def s[4:7]11352; GFX90A-NEXT:    ;;#ASMEND11353; GFX90A-NEXT:    ;;#ASMSTART11354; GFX90A-NEXT:    ; def s[12:15]11355; GFX90A-NEXT:    ;;#ASMEND11356; GFX90A-NEXT:    s_mov_b32 s8, s1511357; GFX90A-NEXT:    s_mov_b32 s9, s1211358; GFX90A-NEXT:    s_mov_b32 s10, s711359; GFX90A-NEXT:    ;;#ASMSTART11360; GFX90A-NEXT:    ; use s[8:10]11361; GFX90A-NEXT:    ;;#ASMEND11362; GFX90A-NEXT:    s_setpc_b64 s[30:31]11363;11364; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_3:11365; GFX942:       ; %bb.0:11366; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11367; GFX942-NEXT:    ;;#ASMSTART11368; GFX942-NEXT:    ; def s[0:3]11369; GFX942-NEXT:    ;;#ASMEND11370; GFX942-NEXT:    ;;#ASMSTART11371; GFX942-NEXT:    ; def s[4:7]11372; GFX942-NEXT:    ;;#ASMEND11373; GFX942-NEXT:    s_mov_b32 s8, s711374; GFX942-NEXT:    s_mov_b32 s9, s411375; GFX942-NEXT:    s_mov_b32 s10, s311376; GFX942-NEXT:    ;;#ASMSTART11377; GFX942-NEXT:    ; use s[8:10]11378; GFX942-NEXT:    ;;#ASMEND11379; GFX942-NEXT:    s_setpc_b64 s[30:31]11380  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11381  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11382  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 3>11383  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11384  ret void11385}11386 11387define void @s_shuffle_v3p3_v4p3__7_5_3() {11388; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_5_3:11389; GFX900:       ; %bb.0:11390; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11391; GFX900-NEXT:    ;;#ASMSTART11392; GFX900-NEXT:    ; def s[8:11]11393; GFX900-NEXT:    ;;#ASMEND11394; GFX900-NEXT:    ;;#ASMSTART11395; GFX900-NEXT:    ; def s[4:7]11396; GFX900-NEXT:    ;;#ASMEND11397; GFX900-NEXT:    s_mov_b32 s8, s1111398; GFX900-NEXT:    s_mov_b32 s10, s711399; GFX900-NEXT:    ;;#ASMSTART11400; GFX900-NEXT:    ; use s[8:10]11401; GFX900-NEXT:    ;;#ASMEND11402; GFX900-NEXT:    s_setpc_b64 s[30:31]11403;11404; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_5_3:11405; GFX90A:       ; %bb.0:11406; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11407; GFX90A-NEXT:    ;;#ASMSTART11408; GFX90A-NEXT:    ; def s[8:11]11409; GFX90A-NEXT:    ;;#ASMEND11410; GFX90A-NEXT:    ;;#ASMSTART11411; GFX90A-NEXT:    ; def s[4:7]11412; GFX90A-NEXT:    ;;#ASMEND11413; GFX90A-NEXT:    s_mov_b32 s8, s1111414; GFX90A-NEXT:    s_mov_b32 s10, s711415; GFX90A-NEXT:    ;;#ASMSTART11416; GFX90A-NEXT:    ; use s[8:10]11417; GFX90A-NEXT:    ;;#ASMEND11418; GFX90A-NEXT:    s_setpc_b64 s[30:31]11419;11420; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_5_3:11421; GFX942:       ; %bb.0:11422; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11423; GFX942-NEXT:    ;;#ASMSTART11424; GFX942-NEXT:    ; def s[8:11]11425; GFX942-NEXT:    ;;#ASMEND11426; GFX942-NEXT:    ;;#ASMSTART11427; GFX942-NEXT:    ; def s[0:3]11428; GFX942-NEXT:    ;;#ASMEND11429; GFX942-NEXT:    s_mov_b32 s8, s1111430; GFX942-NEXT:    s_mov_b32 s10, s311431; GFX942-NEXT:    ;;#ASMSTART11432; GFX942-NEXT:    ; use s[8:10]11433; GFX942-NEXT:    ;;#ASMEND11434; GFX942-NEXT:    s_setpc_b64 s[30:31]11435  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11436  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11437  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 3>11438  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11439  ret void11440}11441 11442define void @s_shuffle_v3p3_v4p3__7_6_3() {11443; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_3:11444; GFX900:       ; %bb.0:11445; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11446; GFX900-NEXT:    ;;#ASMSTART11447; GFX900-NEXT:    ; def s[8:11]11448; GFX900-NEXT:    ;;#ASMEND11449; GFX900-NEXT:    ;;#ASMSTART11450; GFX900-NEXT:    ; def s[4:7]11451; GFX900-NEXT:    ;;#ASMEND11452; GFX900-NEXT:    s_mov_b32 s8, s1111453; GFX900-NEXT:    s_mov_b32 s9, s1011454; GFX900-NEXT:    s_mov_b32 s10, s711455; GFX900-NEXT:    ;;#ASMSTART11456; GFX900-NEXT:    ; use s[8:10]11457; GFX900-NEXT:    ;;#ASMEND11458; GFX900-NEXT:    s_setpc_b64 s[30:31]11459;11460; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_3:11461; GFX90A:       ; %bb.0:11462; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11463; GFX90A-NEXT:    ;;#ASMSTART11464; GFX90A-NEXT:    ; def s[8:11]11465; GFX90A-NEXT:    ;;#ASMEND11466; GFX90A-NEXT:    ;;#ASMSTART11467; GFX90A-NEXT:    ; def s[4:7]11468; GFX90A-NEXT:    ;;#ASMEND11469; GFX90A-NEXT:    s_mov_b32 s8, s1111470; GFX90A-NEXT:    s_mov_b32 s9, s1011471; GFX90A-NEXT:    s_mov_b32 s10, s711472; GFX90A-NEXT:    ;;#ASMSTART11473; GFX90A-NEXT:    ; use s[8:10]11474; GFX90A-NEXT:    ;;#ASMEND11475; GFX90A-NEXT:    s_setpc_b64 s[30:31]11476;11477; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_3:11478; GFX942:       ; %bb.0:11479; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11480; GFX942-NEXT:    ;;#ASMSTART11481; GFX942-NEXT:    ; def s[0:3]11482; GFX942-NEXT:    ;;#ASMEND11483; GFX942-NEXT:    ;;#ASMSTART11484; GFX942-NEXT:    ; def s[4:7]11485; GFX942-NEXT:    ;;#ASMEND11486; GFX942-NEXT:    s_mov_b32 s8, s711487; GFX942-NEXT:    s_mov_b32 s9, s611488; GFX942-NEXT:    s_mov_b32 s10, s311489; GFX942-NEXT:    ;;#ASMSTART11490; GFX942-NEXT:    ; use s[8:10]11491; GFX942-NEXT:    ;;#ASMEND11492; GFX942-NEXT:    s_setpc_b64 s[30:31]11493  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11494  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11495  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 3>11496  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11497  ret void11498}11499 11500define void @s_shuffle_v3p3_v4p3__u_4_4() {11501; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_4_4:11502; GFX9:       ; %bb.0:11503; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11504; GFX9-NEXT:    ;;#ASMSTART11505; GFX9-NEXT:    ; use s[8:10]11506; GFX9-NEXT:    ;;#ASMEND11507; GFX9-NEXT:    s_setpc_b64 s[30:31]11508  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11509  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 poison, i32 4, i32 4>11510  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11511  ret void11512}11513 11514define void @s_shuffle_v3p3_v4p3__0_4_4() {11515; GFX900-LABEL: s_shuffle_v3p3_v4p3__0_4_4:11516; GFX900:       ; %bb.0:11517; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11518; GFX900-NEXT:    ;;#ASMSTART11519; GFX900-NEXT:    ; def s[8:11]11520; GFX900-NEXT:    ;;#ASMEND11521; GFX900-NEXT:    ;;#ASMSTART11522; GFX900-NEXT:    ; use s[8:10]11523; GFX900-NEXT:    ;;#ASMEND11524; GFX900-NEXT:    s_setpc_b64 s[30:31]11525;11526; GFX90A-LABEL: s_shuffle_v3p3_v4p3__0_4_4:11527; GFX90A:       ; %bb.0:11528; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11529; GFX90A-NEXT:    ;;#ASMSTART11530; GFX90A-NEXT:    ; def s[8:11]11531; GFX90A-NEXT:    ;;#ASMEND11532; GFX90A-NEXT:    ;;#ASMSTART11533; GFX90A-NEXT:    ; use s[8:10]11534; GFX90A-NEXT:    ;;#ASMEND11535; GFX90A-NEXT:    s_setpc_b64 s[30:31]11536;11537; GFX942-LABEL: s_shuffle_v3p3_v4p3__0_4_4:11538; GFX942:       ; %bb.0:11539; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11540; GFX942-NEXT:    ;;#ASMSTART11541; GFX942-NEXT:    ; def s[8:11]11542; GFX942-NEXT:    ;;#ASMEND11543; GFX942-NEXT:    s_nop 011544; GFX942-NEXT:    ;;#ASMSTART11545; GFX942-NEXT:    ; use s[8:10]11546; GFX942-NEXT:    ;;#ASMEND11547; GFX942-NEXT:    s_setpc_b64 s[30:31]11548  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11549  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 0, i32 4, i32 4>11550  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11551  ret void11552}11553 11554define void @s_shuffle_v3p3_v4p3__1_4_4() {11555; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_4_4:11556; GFX900:       ; %bb.0:11557; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11558; GFX900-NEXT:    ;;#ASMSTART11559; GFX900-NEXT:    ; def s[4:7]11560; GFX900-NEXT:    ;;#ASMEND11561; GFX900-NEXT:    s_mov_b32 s8, s511562; GFX900-NEXT:    ;;#ASMSTART11563; GFX900-NEXT:    ; use s[8:10]11564; GFX900-NEXT:    ;;#ASMEND11565; GFX900-NEXT:    s_setpc_b64 s[30:31]11566;11567; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_4_4:11568; GFX90A:       ; %bb.0:11569; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11570; GFX90A-NEXT:    ;;#ASMSTART11571; GFX90A-NEXT:    ; def s[4:7]11572; GFX90A-NEXT:    ;;#ASMEND11573; GFX90A-NEXT:    s_mov_b32 s8, s511574; GFX90A-NEXT:    ;;#ASMSTART11575; GFX90A-NEXT:    ; use s[8:10]11576; GFX90A-NEXT:    ;;#ASMEND11577; GFX90A-NEXT:    s_setpc_b64 s[30:31]11578;11579; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_4_4:11580; GFX942:       ; %bb.0:11581; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11582; GFX942-NEXT:    ;;#ASMSTART11583; GFX942-NEXT:    ; def s[0:3]11584; GFX942-NEXT:    ;;#ASMEND11585; GFX942-NEXT:    s_mov_b32 s8, s111586; GFX942-NEXT:    ;;#ASMSTART11587; GFX942-NEXT:    ; use s[8:10]11588; GFX942-NEXT:    ;;#ASMEND11589; GFX942-NEXT:    s_setpc_b64 s[30:31]11590  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11591  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 1, i32 4, i32 4>11592  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11593  ret void11594}11595 11596define void @s_shuffle_v3p3_v4p3__2_4_4() {11597; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_4_4:11598; GFX900:       ; %bb.0:11599; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11600; GFX900-NEXT:    ;;#ASMSTART11601; GFX900-NEXT:    ; def s[4:7]11602; GFX900-NEXT:    ;;#ASMEND11603; GFX900-NEXT:    s_mov_b32 s8, s611604; GFX900-NEXT:    ;;#ASMSTART11605; GFX900-NEXT:    ; use s[8:10]11606; GFX900-NEXT:    ;;#ASMEND11607; GFX900-NEXT:    s_setpc_b64 s[30:31]11608;11609; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_4_4:11610; GFX90A:       ; %bb.0:11611; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11612; GFX90A-NEXT:    ;;#ASMSTART11613; GFX90A-NEXT:    ; def s[4:7]11614; GFX90A-NEXT:    ;;#ASMEND11615; GFX90A-NEXT:    s_mov_b32 s8, s611616; GFX90A-NEXT:    ;;#ASMSTART11617; GFX90A-NEXT:    ; use s[8:10]11618; GFX90A-NEXT:    ;;#ASMEND11619; GFX90A-NEXT:    s_setpc_b64 s[30:31]11620;11621; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_4_4:11622; GFX942:       ; %bb.0:11623; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11624; GFX942-NEXT:    ;;#ASMSTART11625; GFX942-NEXT:    ; def s[0:3]11626; GFX942-NEXT:    ;;#ASMEND11627; GFX942-NEXT:    s_mov_b32 s8, s211628; GFX942-NEXT:    ;;#ASMSTART11629; GFX942-NEXT:    ; use s[8:10]11630; GFX942-NEXT:    ;;#ASMEND11631; GFX942-NEXT:    s_setpc_b64 s[30:31]11632  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11633  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 2, i32 4, i32 4>11634  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11635  ret void11636}11637 11638define void @s_shuffle_v3p3_v4p3__3_4_4() {11639; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_4_4:11640; GFX900:       ; %bb.0:11641; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11642; GFX900-NEXT:    ;;#ASMSTART11643; GFX900-NEXT:    ; def s[4:7]11644; GFX900-NEXT:    ;;#ASMEND11645; GFX900-NEXT:    s_mov_b32 s8, s711646; GFX900-NEXT:    ;;#ASMSTART11647; GFX900-NEXT:    ; use s[8:10]11648; GFX900-NEXT:    ;;#ASMEND11649; GFX900-NEXT:    s_setpc_b64 s[30:31]11650;11651; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_4_4:11652; GFX90A:       ; %bb.0:11653; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11654; GFX90A-NEXT:    ;;#ASMSTART11655; GFX90A-NEXT:    ; def s[4:7]11656; GFX90A-NEXT:    ;;#ASMEND11657; GFX90A-NEXT:    s_mov_b32 s8, s711658; GFX90A-NEXT:    ;;#ASMSTART11659; GFX90A-NEXT:    ; use s[8:10]11660; GFX90A-NEXT:    ;;#ASMEND11661; GFX90A-NEXT:    s_setpc_b64 s[30:31]11662;11663; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_4_4:11664; GFX942:       ; %bb.0:11665; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11666; GFX942-NEXT:    ;;#ASMSTART11667; GFX942-NEXT:    ; def s[0:3]11668; GFX942-NEXT:    ;;#ASMEND11669; GFX942-NEXT:    s_mov_b32 s8, s311670; GFX942-NEXT:    ;;#ASMSTART11671; GFX942-NEXT:    ; use s[8:10]11672; GFX942-NEXT:    ;;#ASMEND11673; GFX942-NEXT:    s_setpc_b64 s[30:31]11674  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11675  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 3, i32 4, i32 4>11676  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11677  ret void11678}11679 11680define void @s_shuffle_v3p3_v4p3__4_4_4() {11681; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_4_4:11682; GFX9:       ; %bb.0:11683; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11684; GFX9-NEXT:    ;;#ASMSTART11685; GFX9-NEXT:    ; use s[8:10]11686; GFX9-NEXT:    ;;#ASMEND11687; GFX9-NEXT:    s_setpc_b64 s[30:31]11688  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11689  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <3 x i32> <i32 4, i32 4, i32 4>11690  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11691  ret void11692}11693 11694define void @s_shuffle_v3p3_v4p3__5_4_4() {11695; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_4_4:11696; GFX900:       ; %bb.0:11697; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11698; GFX900-NEXT:    ;;#ASMSTART11699; GFX900-NEXT:    ; def s[4:7]11700; GFX900-NEXT:    ;;#ASMEND11701; GFX900-NEXT:    s_mov_b32 s8, s511702; GFX900-NEXT:    s_mov_b32 s9, s411703; GFX900-NEXT:    s_mov_b32 s10, s411704; GFX900-NEXT:    ;;#ASMSTART11705; GFX900-NEXT:    ; use s[8:10]11706; GFX900-NEXT:    ;;#ASMEND11707; GFX900-NEXT:    s_setpc_b64 s[30:31]11708;11709; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_4_4:11710; GFX90A:       ; %bb.0:11711; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11712; GFX90A-NEXT:    ;;#ASMSTART11713; GFX90A-NEXT:    ; def s[4:7]11714; GFX90A-NEXT:    ;;#ASMEND11715; GFX90A-NEXT:    s_mov_b32 s8, s511716; GFX90A-NEXT:    s_mov_b32 s9, s411717; GFX90A-NEXT:    s_mov_b32 s10, s411718; GFX90A-NEXT:    ;;#ASMSTART11719; GFX90A-NEXT:    ; use s[8:10]11720; GFX90A-NEXT:    ;;#ASMEND11721; GFX90A-NEXT:    s_setpc_b64 s[30:31]11722;11723; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_4_4:11724; GFX942:       ; %bb.0:11725; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11726; GFX942-NEXT:    ;;#ASMSTART11727; GFX942-NEXT:    ; def s[0:3]11728; GFX942-NEXT:    ;;#ASMEND11729; GFX942-NEXT:    s_mov_b32 s8, s111730; GFX942-NEXT:    s_mov_b32 s9, s011731; GFX942-NEXT:    s_mov_b32 s10, s011732; GFX942-NEXT:    ;;#ASMSTART11733; GFX942-NEXT:    ; use s[8:10]11734; GFX942-NEXT:    ;;#ASMEND11735; GFX942-NEXT:    s_setpc_b64 s[30:31]11736  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11737  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11738  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 4, i32 4>11739  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11740  ret void11741}11742 11743define void @s_shuffle_v3p3_v4p3__6_4_4() {11744; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_4_4:11745; GFX900:       ; %bb.0:11746; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11747; GFX900-NEXT:    ;;#ASMSTART11748; GFX900-NEXT:    ; def s[4:7]11749; GFX900-NEXT:    ;;#ASMEND11750; GFX900-NEXT:    s_mov_b32 s8, s611751; GFX900-NEXT:    s_mov_b32 s9, s411752; GFX900-NEXT:    s_mov_b32 s10, s411753; GFX900-NEXT:    ;;#ASMSTART11754; GFX900-NEXT:    ; use s[8:10]11755; GFX900-NEXT:    ;;#ASMEND11756; GFX900-NEXT:    s_setpc_b64 s[30:31]11757;11758; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_4_4:11759; GFX90A:       ; %bb.0:11760; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11761; GFX90A-NEXT:    ;;#ASMSTART11762; GFX90A-NEXT:    ; def s[4:7]11763; GFX90A-NEXT:    ;;#ASMEND11764; GFX90A-NEXT:    s_mov_b32 s8, s611765; GFX90A-NEXT:    s_mov_b32 s9, s411766; GFX90A-NEXT:    s_mov_b32 s10, s411767; GFX90A-NEXT:    ;;#ASMSTART11768; GFX90A-NEXT:    ; use s[8:10]11769; GFX90A-NEXT:    ;;#ASMEND11770; GFX90A-NEXT:    s_setpc_b64 s[30:31]11771;11772; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_4_4:11773; GFX942:       ; %bb.0:11774; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11775; GFX942-NEXT:    ;;#ASMSTART11776; GFX942-NEXT:    ; def s[0:3]11777; GFX942-NEXT:    ;;#ASMEND11778; GFX942-NEXT:    s_mov_b32 s8, s211779; GFX942-NEXT:    s_mov_b32 s9, s011780; GFX942-NEXT:    s_mov_b32 s10, s011781; GFX942-NEXT:    ;;#ASMSTART11782; GFX942-NEXT:    ; use s[8:10]11783; GFX942-NEXT:    ;;#ASMEND11784; GFX942-NEXT:    s_setpc_b64 s[30:31]11785  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11786  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11787  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 4, i32 4>11788  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11789  ret void11790}11791 11792define void @s_shuffle_v3p3_v4p3__7_4_4() {11793; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_4:11794; GFX900:       ; %bb.0:11795; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11796; GFX900-NEXT:    ;;#ASMSTART11797; GFX900-NEXT:    ; def s[4:7]11798; GFX900-NEXT:    ;;#ASMEND11799; GFX900-NEXT:    s_mov_b32 s8, s711800; GFX900-NEXT:    s_mov_b32 s9, s411801; GFX900-NEXT:    s_mov_b32 s10, s411802; GFX900-NEXT:    ;;#ASMSTART11803; GFX900-NEXT:    ; use s[8:10]11804; GFX900-NEXT:    ;;#ASMEND11805; GFX900-NEXT:    s_setpc_b64 s[30:31]11806;11807; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_4:11808; GFX90A:       ; %bb.0:11809; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11810; GFX90A-NEXT:    ;;#ASMSTART11811; GFX90A-NEXT:    ; def s[4:7]11812; GFX90A-NEXT:    ;;#ASMEND11813; GFX90A-NEXT:    s_mov_b32 s8, s711814; GFX90A-NEXT:    s_mov_b32 s9, s411815; GFX90A-NEXT:    s_mov_b32 s10, s411816; GFX90A-NEXT:    ;;#ASMSTART11817; GFX90A-NEXT:    ; use s[8:10]11818; GFX90A-NEXT:    ;;#ASMEND11819; GFX90A-NEXT:    s_setpc_b64 s[30:31]11820;11821; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_4:11822; GFX942:       ; %bb.0:11823; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11824; GFX942-NEXT:    ;;#ASMSTART11825; GFX942-NEXT:    ; def s[0:3]11826; GFX942-NEXT:    ;;#ASMEND11827; GFX942-NEXT:    s_mov_b32 s8, s311828; GFX942-NEXT:    s_mov_b32 s9, s011829; GFX942-NEXT:    s_mov_b32 s10, s011830; GFX942-NEXT:    ;;#ASMSTART11831; GFX942-NEXT:    ; use s[8:10]11832; GFX942-NEXT:    ;;#ASMEND11833; GFX942-NEXT:    s_setpc_b64 s[30:31]11834  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11835  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11836  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 4>11837  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11838  ret void11839}11840 11841define void @s_shuffle_v3p3_v4p3__7_u_4() {11842; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_4:11843; GFX900:       ; %bb.0:11844; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11845; GFX900-NEXT:    ;;#ASMSTART11846; GFX900-NEXT:    ; def s[4:7]11847; GFX900-NEXT:    ;;#ASMEND11848; GFX900-NEXT:    s_mov_b32 s8, s711849; GFX900-NEXT:    s_mov_b32 s10, s411850; GFX900-NEXT:    ;;#ASMSTART11851; GFX900-NEXT:    ; use s[8:10]11852; GFX900-NEXT:    ;;#ASMEND11853; GFX900-NEXT:    s_setpc_b64 s[30:31]11854;11855; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_4:11856; GFX90A:       ; %bb.0:11857; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11858; GFX90A-NEXT:    ;;#ASMSTART11859; GFX90A-NEXT:    ; def s[4:7]11860; GFX90A-NEXT:    ;;#ASMEND11861; GFX90A-NEXT:    s_mov_b32 s8, s711862; GFX90A-NEXT:    s_mov_b32 s10, s411863; GFX90A-NEXT:    ;;#ASMSTART11864; GFX90A-NEXT:    ; use s[8:10]11865; GFX90A-NEXT:    ;;#ASMEND11866; GFX90A-NEXT:    s_setpc_b64 s[30:31]11867;11868; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_4:11869; GFX942:       ; %bb.0:11870; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11871; GFX942-NEXT:    ;;#ASMSTART11872; GFX942-NEXT:    ; def s[0:3]11873; GFX942-NEXT:    ;;#ASMEND11874; GFX942-NEXT:    s_mov_b32 s8, s311875; GFX942-NEXT:    s_mov_b32 s10, s011876; GFX942-NEXT:    ;;#ASMSTART11877; GFX942-NEXT:    ; use s[8:10]11878; GFX942-NEXT:    ;;#ASMEND11879; GFX942-NEXT:    s_setpc_b64 s[30:31]11880  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11881  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11882  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>11883  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11884  ret void11885}11886 11887define void @s_shuffle_v3p3_v4p3__7_0_4() {11888; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_4:11889; GFX900:       ; %bb.0:11890; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11891; GFX900-NEXT:    ;;#ASMSTART11892; GFX900-NEXT:    ; def s[4:7]11893; GFX900-NEXT:    ;;#ASMEND11894; GFX900-NEXT:    ;;#ASMSTART11895; GFX900-NEXT:    ; def s[12:15]11896; GFX900-NEXT:    ;;#ASMEND11897; GFX900-NEXT:    s_mov_b32 s8, s1511898; GFX900-NEXT:    s_mov_b32 s9, s411899; GFX900-NEXT:    s_mov_b32 s10, s1211900; GFX900-NEXT:    ;;#ASMSTART11901; GFX900-NEXT:    ; use s[8:10]11902; GFX900-NEXT:    ;;#ASMEND11903; GFX900-NEXT:    s_setpc_b64 s[30:31]11904;11905; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_4:11906; GFX90A:       ; %bb.0:11907; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11908; GFX90A-NEXT:    ;;#ASMSTART11909; GFX90A-NEXT:    ; def s[4:7]11910; GFX90A-NEXT:    ;;#ASMEND11911; GFX90A-NEXT:    ;;#ASMSTART11912; GFX90A-NEXT:    ; def s[12:15]11913; GFX90A-NEXT:    ;;#ASMEND11914; GFX90A-NEXT:    s_mov_b32 s8, s1511915; GFX90A-NEXT:    s_mov_b32 s9, s411916; GFX90A-NEXT:    s_mov_b32 s10, s1211917; GFX90A-NEXT:    ;;#ASMSTART11918; GFX90A-NEXT:    ; use s[8:10]11919; GFX90A-NEXT:    ;;#ASMEND11920; GFX90A-NEXT:    s_setpc_b64 s[30:31]11921;11922; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_4:11923; GFX942:       ; %bb.0:11924; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11925; GFX942-NEXT:    ;;#ASMSTART11926; GFX942-NEXT:    ; def s[0:3]11927; GFX942-NEXT:    ;;#ASMEND11928; GFX942-NEXT:    ;;#ASMSTART11929; GFX942-NEXT:    ; def s[4:7]11930; GFX942-NEXT:    ;;#ASMEND11931; GFX942-NEXT:    s_mov_b32 s8, s711932; GFX942-NEXT:    s_mov_b32 s9, s011933; GFX942-NEXT:    s_mov_b32 s10, s411934; GFX942-NEXT:    ;;#ASMSTART11935; GFX942-NEXT:    ; use s[8:10]11936; GFX942-NEXT:    ;;#ASMEND11937; GFX942-NEXT:    s_setpc_b64 s[30:31]11938  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11939  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11940  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 4>11941  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11942  ret void11943}11944 11945define void @s_shuffle_v3p3_v4p3__7_1_4() {11946; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_4:11947; GFX900:       ; %bb.0:11948; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11949; GFX900-NEXT:    ;;#ASMSTART11950; GFX900-NEXT:    ; def s[8:11]11951; GFX900-NEXT:    ;;#ASMEND11952; GFX900-NEXT:    ;;#ASMSTART11953; GFX900-NEXT:    ; def s[4:7]11954; GFX900-NEXT:    ;;#ASMEND11955; GFX900-NEXT:    s_mov_b32 s8, s711956; GFX900-NEXT:    s_mov_b32 s10, s411957; GFX900-NEXT:    ;;#ASMSTART11958; GFX900-NEXT:    ; use s[8:10]11959; GFX900-NEXT:    ;;#ASMEND11960; GFX900-NEXT:    s_setpc_b64 s[30:31]11961;11962; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_4:11963; GFX90A:       ; %bb.0:11964; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11965; GFX90A-NEXT:    ;;#ASMSTART11966; GFX90A-NEXT:    ; def s[8:11]11967; GFX90A-NEXT:    ;;#ASMEND11968; GFX90A-NEXT:    ;;#ASMSTART11969; GFX90A-NEXT:    ; def s[4:7]11970; GFX90A-NEXT:    ;;#ASMEND11971; GFX90A-NEXT:    s_mov_b32 s8, s711972; GFX90A-NEXT:    s_mov_b32 s10, s411973; GFX90A-NEXT:    ;;#ASMSTART11974; GFX90A-NEXT:    ; use s[8:10]11975; GFX90A-NEXT:    ;;#ASMEND11976; GFX90A-NEXT:    s_setpc_b64 s[30:31]11977;11978; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_4:11979; GFX942:       ; %bb.0:11980; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11981; GFX942-NEXT:    ;;#ASMSTART11982; GFX942-NEXT:    ; def s[8:11]11983; GFX942-NEXT:    ;;#ASMEND11984; GFX942-NEXT:    ;;#ASMSTART11985; GFX942-NEXT:    ; def s[0:3]11986; GFX942-NEXT:    ;;#ASMEND11987; GFX942-NEXT:    s_mov_b32 s8, s311988; GFX942-NEXT:    s_mov_b32 s10, s011989; GFX942-NEXT:    ;;#ASMSTART11990; GFX942-NEXT:    ; use s[8:10]11991; GFX942-NEXT:    ;;#ASMEND11992; GFX942-NEXT:    s_setpc_b64 s[30:31]11993  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11994  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()11995  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 4>11996  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)11997  ret void11998}11999 12000define void @s_shuffle_v3p3_v4p3__7_2_4() {12001; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_4:12002; GFX900:       ; %bb.0:12003; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12004; GFX900-NEXT:    ;;#ASMSTART12005; GFX900-NEXT:    ; def s[4:7]12006; GFX900-NEXT:    ;;#ASMEND12007; GFX900-NEXT:    ;;#ASMSTART12008; GFX900-NEXT:    ; def s[12:15]12009; GFX900-NEXT:    ;;#ASMEND12010; GFX900-NEXT:    s_mov_b32 s8, s1512011; GFX900-NEXT:    s_mov_b32 s9, s612012; GFX900-NEXT:    s_mov_b32 s10, s1212013; GFX900-NEXT:    ;;#ASMSTART12014; GFX900-NEXT:    ; use s[8:10]12015; GFX900-NEXT:    ;;#ASMEND12016; GFX900-NEXT:    s_setpc_b64 s[30:31]12017;12018; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_4:12019; GFX90A:       ; %bb.0:12020; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12021; GFX90A-NEXT:    ;;#ASMSTART12022; GFX90A-NEXT:    ; def s[4:7]12023; GFX90A-NEXT:    ;;#ASMEND12024; GFX90A-NEXT:    ;;#ASMSTART12025; GFX90A-NEXT:    ; def s[12:15]12026; GFX90A-NEXT:    ;;#ASMEND12027; GFX90A-NEXT:    s_mov_b32 s8, s1512028; GFX90A-NEXT:    s_mov_b32 s9, s612029; GFX90A-NEXT:    s_mov_b32 s10, s1212030; GFX90A-NEXT:    ;;#ASMSTART12031; GFX90A-NEXT:    ; use s[8:10]12032; GFX90A-NEXT:    ;;#ASMEND12033; GFX90A-NEXT:    s_setpc_b64 s[30:31]12034;12035; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_4:12036; GFX942:       ; %bb.0:12037; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12038; GFX942-NEXT:    ;;#ASMSTART12039; GFX942-NEXT:    ; def s[0:3]12040; GFX942-NEXT:    ;;#ASMEND12041; GFX942-NEXT:    ;;#ASMSTART12042; GFX942-NEXT:    ; def s[4:7]12043; GFX942-NEXT:    ;;#ASMEND12044; GFX942-NEXT:    s_mov_b32 s8, s712045; GFX942-NEXT:    s_mov_b32 s9, s212046; GFX942-NEXT:    s_mov_b32 s10, s412047; GFX942-NEXT:    ;;#ASMSTART12048; GFX942-NEXT:    ; use s[8:10]12049; GFX942-NEXT:    ;;#ASMEND12050; GFX942-NEXT:    s_setpc_b64 s[30:31]12051  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12052  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12053  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 4>12054  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12055  ret void12056}12057 12058define void @s_shuffle_v3p3_v4p3__7_3_4() {12059; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_4:12060; GFX900:       ; %bb.0:12061; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12062; GFX900-NEXT:    ;;#ASMSTART12063; GFX900-NEXT:    ; def s[4:7]12064; GFX900-NEXT:    ;;#ASMEND12065; GFX900-NEXT:    ;;#ASMSTART12066; GFX900-NEXT:    ; def s[12:15]12067; GFX900-NEXT:    ;;#ASMEND12068; GFX900-NEXT:    s_mov_b32 s8, s1512069; GFX900-NEXT:    s_mov_b32 s9, s712070; GFX900-NEXT:    s_mov_b32 s10, s1212071; GFX900-NEXT:    ;;#ASMSTART12072; GFX900-NEXT:    ; use s[8:10]12073; GFX900-NEXT:    ;;#ASMEND12074; GFX900-NEXT:    s_setpc_b64 s[30:31]12075;12076; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_4:12077; GFX90A:       ; %bb.0:12078; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12079; GFX90A-NEXT:    ;;#ASMSTART12080; GFX90A-NEXT:    ; def s[4:7]12081; GFX90A-NEXT:    ;;#ASMEND12082; GFX90A-NEXT:    ;;#ASMSTART12083; GFX90A-NEXT:    ; def s[12:15]12084; GFX90A-NEXT:    ;;#ASMEND12085; GFX90A-NEXT:    s_mov_b32 s8, s1512086; GFX90A-NEXT:    s_mov_b32 s9, s712087; GFX90A-NEXT:    s_mov_b32 s10, s1212088; GFX90A-NEXT:    ;;#ASMSTART12089; GFX90A-NEXT:    ; use s[8:10]12090; GFX90A-NEXT:    ;;#ASMEND12091; GFX90A-NEXT:    s_setpc_b64 s[30:31]12092;12093; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_4:12094; GFX942:       ; %bb.0:12095; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12096; GFX942-NEXT:    ;;#ASMSTART12097; GFX942-NEXT:    ; def s[0:3]12098; GFX942-NEXT:    ;;#ASMEND12099; GFX942-NEXT:    ;;#ASMSTART12100; GFX942-NEXT:    ; def s[4:7]12101; GFX942-NEXT:    ;;#ASMEND12102; GFX942-NEXT:    s_mov_b32 s8, s712103; GFX942-NEXT:    s_mov_b32 s9, s312104; GFX942-NEXT:    s_mov_b32 s10, s412105; GFX942-NEXT:    ;;#ASMSTART12106; GFX942-NEXT:    ; use s[8:10]12107; GFX942-NEXT:    ;;#ASMEND12108; GFX942-NEXT:    s_setpc_b64 s[30:31]12109  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12110  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12111  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 4>12112  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12113  ret void12114}12115 12116define void @s_shuffle_v3p3_v4p3__7_5_4() {12117; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_5_4:12118; GFX900:       ; %bb.0:12119; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12120; GFX900-NEXT:    ;;#ASMSTART12121; GFX900-NEXT:    ; def s[4:7]12122; GFX900-NEXT:    ;;#ASMEND12123; GFX900-NEXT:    s_mov_b32 s8, s712124; GFX900-NEXT:    s_mov_b32 s9, s512125; GFX900-NEXT:    s_mov_b32 s10, s412126; GFX900-NEXT:    ;;#ASMSTART12127; GFX900-NEXT:    ; use s[8:10]12128; GFX900-NEXT:    ;;#ASMEND12129; GFX900-NEXT:    s_setpc_b64 s[30:31]12130;12131; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_5_4:12132; GFX90A:       ; %bb.0:12133; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12134; GFX90A-NEXT:    ;;#ASMSTART12135; GFX90A-NEXT:    ; def s[4:7]12136; GFX90A-NEXT:    ;;#ASMEND12137; GFX90A-NEXT:    s_mov_b32 s8, s712138; GFX90A-NEXT:    s_mov_b32 s9, s512139; GFX90A-NEXT:    s_mov_b32 s10, s412140; GFX90A-NEXT:    ;;#ASMSTART12141; GFX90A-NEXT:    ; use s[8:10]12142; GFX90A-NEXT:    ;;#ASMEND12143; GFX90A-NEXT:    s_setpc_b64 s[30:31]12144;12145; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_5_4:12146; GFX942:       ; %bb.0:12147; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12148; GFX942-NEXT:    ;;#ASMSTART12149; GFX942-NEXT:    ; def s[0:3]12150; GFX942-NEXT:    ;;#ASMEND12151; GFX942-NEXT:    s_mov_b32 s8, s312152; GFX942-NEXT:    s_mov_b32 s9, s112153; GFX942-NEXT:    s_mov_b32 s10, s012154; GFX942-NEXT:    ;;#ASMSTART12155; GFX942-NEXT:    ; use s[8:10]12156; GFX942-NEXT:    ;;#ASMEND12157; GFX942-NEXT:    s_setpc_b64 s[30:31]12158  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12159  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12160  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 4>12161  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12162  ret void12163}12164 12165define void @s_shuffle_v3p3_v4p3__7_6_4() {12166; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_4:12167; GFX900:       ; %bb.0:12168; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12169; GFX900-NEXT:    ;;#ASMSTART12170; GFX900-NEXT:    ; def s[4:7]12171; GFX900-NEXT:    ;;#ASMEND12172; GFX900-NEXT:    s_mov_b32 s8, s712173; GFX900-NEXT:    s_mov_b32 s9, s612174; GFX900-NEXT:    s_mov_b32 s10, s412175; GFX900-NEXT:    ;;#ASMSTART12176; GFX900-NEXT:    ; use s[8:10]12177; GFX900-NEXT:    ;;#ASMEND12178; GFX900-NEXT:    s_setpc_b64 s[30:31]12179;12180; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_4:12181; GFX90A:       ; %bb.0:12182; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12183; GFX90A-NEXT:    ;;#ASMSTART12184; GFX90A-NEXT:    ; def s[4:7]12185; GFX90A-NEXT:    ;;#ASMEND12186; GFX90A-NEXT:    s_mov_b32 s8, s712187; GFX90A-NEXT:    s_mov_b32 s9, s612188; GFX90A-NEXT:    s_mov_b32 s10, s412189; GFX90A-NEXT:    ;;#ASMSTART12190; GFX90A-NEXT:    ; use s[8:10]12191; GFX90A-NEXT:    ;;#ASMEND12192; GFX90A-NEXT:    s_setpc_b64 s[30:31]12193;12194; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_4:12195; GFX942:       ; %bb.0:12196; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12197; GFX942-NEXT:    ;;#ASMSTART12198; GFX942-NEXT:    ; def s[0:3]12199; GFX942-NEXT:    ;;#ASMEND12200; GFX942-NEXT:    s_mov_b32 s8, s312201; GFX942-NEXT:    s_mov_b32 s9, s212202; GFX942-NEXT:    s_mov_b32 s10, s012203; GFX942-NEXT:    ;;#ASMSTART12204; GFX942-NEXT:    ; use s[8:10]12205; GFX942-NEXT:    ;;#ASMEND12206; GFX942-NEXT:    s_setpc_b64 s[30:31]12207  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12208  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12209  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 4>12210  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12211  ret void12212}12213 12214define void @s_shuffle_v3p3_v4p3__u_5_5() {12215; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_5_5:12216; GFX9:       ; %bb.0:12217; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12218; GFX9-NEXT:    ;;#ASMSTART12219; GFX9-NEXT:    ; def s[8:11]12220; GFX9-NEXT:    ;;#ASMEND12221; GFX9-NEXT:    s_mov_b32 s10, s912222; GFX9-NEXT:    ;;#ASMSTART12223; GFX9-NEXT:    ; use s[8:10]12224; GFX9-NEXT:    ;;#ASMEND12225; GFX9-NEXT:    s_setpc_b64 s[30:31]12226  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12227  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12228  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>12229  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12230  ret void12231}12232 12233define void @s_shuffle_v3p3_v4p3__0_5_5() {12234; GFX900-LABEL: s_shuffle_v3p3_v4p3__0_5_5:12235; GFX900:       ; %bb.0:12236; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12237; GFX900-NEXT:    ;;#ASMSTART12238; GFX900-NEXT:    ; def s[8:11]12239; GFX900-NEXT:    ;;#ASMEND12240; GFX900-NEXT:    ;;#ASMSTART12241; GFX900-NEXT:    ; def s[4:7]12242; GFX900-NEXT:    ;;#ASMEND12243; GFX900-NEXT:    s_mov_b32 s9, s512244; GFX900-NEXT:    s_mov_b32 s10, s512245; GFX900-NEXT:    ;;#ASMSTART12246; GFX900-NEXT:    ; use s[8:10]12247; GFX900-NEXT:    ;;#ASMEND12248; GFX900-NEXT:    s_setpc_b64 s[30:31]12249;12250; GFX90A-LABEL: s_shuffle_v3p3_v4p3__0_5_5:12251; GFX90A:       ; %bb.0:12252; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12253; GFX90A-NEXT:    ;;#ASMSTART12254; GFX90A-NEXT:    ; def s[8:11]12255; GFX90A-NEXT:    ;;#ASMEND12256; GFX90A-NEXT:    ;;#ASMSTART12257; GFX90A-NEXT:    ; def s[4:7]12258; GFX90A-NEXT:    ;;#ASMEND12259; GFX90A-NEXT:    s_mov_b32 s9, s512260; GFX90A-NEXT:    s_mov_b32 s10, s512261; GFX90A-NEXT:    ;;#ASMSTART12262; GFX90A-NEXT:    ; use s[8:10]12263; GFX90A-NEXT:    ;;#ASMEND12264; GFX90A-NEXT:    s_setpc_b64 s[30:31]12265;12266; GFX942-LABEL: s_shuffle_v3p3_v4p3__0_5_5:12267; GFX942:       ; %bb.0:12268; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12269; GFX942-NEXT:    ;;#ASMSTART12270; GFX942-NEXT:    ; def s[8:11]12271; GFX942-NEXT:    ;;#ASMEND12272; GFX942-NEXT:    ;;#ASMSTART12273; GFX942-NEXT:    ; def s[0:3]12274; GFX942-NEXT:    ;;#ASMEND12275; GFX942-NEXT:    s_mov_b32 s9, s112276; GFX942-NEXT:    s_mov_b32 s10, s112277; GFX942-NEXT:    ;;#ASMSTART12278; GFX942-NEXT:    ; use s[8:10]12279; GFX942-NEXT:    ;;#ASMEND12280; GFX942-NEXT:    s_setpc_b64 s[30:31]12281  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12282  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12283  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 5, i32 5>12284  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12285  ret void12286}12287 12288define void @s_shuffle_v3p3_v4p3__1_5_5() {12289; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_5_5:12290; GFX900:       ; %bb.0:12291; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12292; GFX900-NEXT:    ;;#ASMSTART12293; GFX900-NEXT:    ; def s[8:11]12294; GFX900-NEXT:    ;;#ASMEND12295; GFX900-NEXT:    ;;#ASMSTART12296; GFX900-NEXT:    ; def s[4:7]12297; GFX900-NEXT:    ;;#ASMEND12298; GFX900-NEXT:    s_mov_b32 s8, s512299; GFX900-NEXT:    s_mov_b32 s10, s912300; GFX900-NEXT:    ;;#ASMSTART12301; GFX900-NEXT:    ; use s[8:10]12302; GFX900-NEXT:    ;;#ASMEND12303; GFX900-NEXT:    s_setpc_b64 s[30:31]12304;12305; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_5_5:12306; GFX90A:       ; %bb.0:12307; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12308; GFX90A-NEXT:    ;;#ASMSTART12309; GFX90A-NEXT:    ; def s[8:11]12310; GFX90A-NEXT:    ;;#ASMEND12311; GFX90A-NEXT:    ;;#ASMSTART12312; GFX90A-NEXT:    ; def s[4:7]12313; GFX90A-NEXT:    ;;#ASMEND12314; GFX90A-NEXT:    s_mov_b32 s8, s512315; GFX90A-NEXT:    s_mov_b32 s10, s912316; GFX90A-NEXT:    ;;#ASMSTART12317; GFX90A-NEXT:    ; use s[8:10]12318; GFX90A-NEXT:    ;;#ASMEND12319; GFX90A-NEXT:    s_setpc_b64 s[30:31]12320;12321; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_5_5:12322; GFX942:       ; %bb.0:12323; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12324; GFX942-NEXT:    ;;#ASMSTART12325; GFX942-NEXT:    ; def s[8:11]12326; GFX942-NEXT:    ;;#ASMEND12327; GFX942-NEXT:    ;;#ASMSTART12328; GFX942-NEXT:    ; def s[0:3]12329; GFX942-NEXT:    ;;#ASMEND12330; GFX942-NEXT:    s_mov_b32 s8, s112331; GFX942-NEXT:    s_mov_b32 s10, s912332; GFX942-NEXT:    ;;#ASMSTART12333; GFX942-NEXT:    ; use s[8:10]12334; GFX942-NEXT:    ;;#ASMEND12335; GFX942-NEXT:    s_setpc_b64 s[30:31]12336  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12337  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12338  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 5, i32 5>12339  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12340  ret void12341}12342 12343define void @s_shuffle_v3p3_v4p3__2_5_5() {12344; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_5_5:12345; GFX900:       ; %bb.0:12346; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12347; GFX900-NEXT:    ;;#ASMSTART12348; GFX900-NEXT:    ; def s[8:11]12349; GFX900-NEXT:    ;;#ASMEND12350; GFX900-NEXT:    ;;#ASMSTART12351; GFX900-NEXT:    ; def s[4:7]12352; GFX900-NEXT:    ;;#ASMEND12353; GFX900-NEXT:    s_mov_b32 s8, s612354; GFX900-NEXT:    s_mov_b32 s10, s912355; GFX900-NEXT:    ;;#ASMSTART12356; GFX900-NEXT:    ; use s[8:10]12357; GFX900-NEXT:    ;;#ASMEND12358; GFX900-NEXT:    s_setpc_b64 s[30:31]12359;12360; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_5_5:12361; GFX90A:       ; %bb.0:12362; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12363; GFX90A-NEXT:    ;;#ASMSTART12364; GFX90A-NEXT:    ; def s[8:11]12365; GFX90A-NEXT:    ;;#ASMEND12366; GFX90A-NEXT:    ;;#ASMSTART12367; GFX90A-NEXT:    ; def s[4:7]12368; GFX90A-NEXT:    ;;#ASMEND12369; GFX90A-NEXT:    s_mov_b32 s8, s612370; GFX90A-NEXT:    s_mov_b32 s10, s912371; GFX90A-NEXT:    ;;#ASMSTART12372; GFX90A-NEXT:    ; use s[8:10]12373; GFX90A-NEXT:    ;;#ASMEND12374; GFX90A-NEXT:    s_setpc_b64 s[30:31]12375;12376; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_5_5:12377; GFX942:       ; %bb.0:12378; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12379; GFX942-NEXT:    ;;#ASMSTART12380; GFX942-NEXT:    ; def s[8:11]12381; GFX942-NEXT:    ;;#ASMEND12382; GFX942-NEXT:    ;;#ASMSTART12383; GFX942-NEXT:    ; def s[0:3]12384; GFX942-NEXT:    ;;#ASMEND12385; GFX942-NEXT:    s_mov_b32 s8, s212386; GFX942-NEXT:    s_mov_b32 s10, s912387; GFX942-NEXT:    ;;#ASMSTART12388; GFX942-NEXT:    ; use s[8:10]12389; GFX942-NEXT:    ;;#ASMEND12390; GFX942-NEXT:    s_setpc_b64 s[30:31]12391  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12392  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12393  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 5, i32 5>12394  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12395  ret void12396}12397 12398define void @s_shuffle_v3p3_v4p3__3_5_5() {12399; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_5_5:12400; GFX900:       ; %bb.0:12401; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12402; GFX900-NEXT:    ;;#ASMSTART12403; GFX900-NEXT:    ; def s[8:11]12404; GFX900-NEXT:    ;;#ASMEND12405; GFX900-NEXT:    ;;#ASMSTART12406; GFX900-NEXT:    ; def s[4:7]12407; GFX900-NEXT:    ;;#ASMEND12408; GFX900-NEXT:    s_mov_b32 s8, s712409; GFX900-NEXT:    s_mov_b32 s10, s912410; GFX900-NEXT:    ;;#ASMSTART12411; GFX900-NEXT:    ; use s[8:10]12412; GFX900-NEXT:    ;;#ASMEND12413; GFX900-NEXT:    s_setpc_b64 s[30:31]12414;12415; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_5_5:12416; GFX90A:       ; %bb.0:12417; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12418; GFX90A-NEXT:    ;;#ASMSTART12419; GFX90A-NEXT:    ; def s[8:11]12420; GFX90A-NEXT:    ;;#ASMEND12421; GFX90A-NEXT:    ;;#ASMSTART12422; GFX90A-NEXT:    ; def s[4:7]12423; GFX90A-NEXT:    ;;#ASMEND12424; GFX90A-NEXT:    s_mov_b32 s8, s712425; GFX90A-NEXT:    s_mov_b32 s10, s912426; GFX90A-NEXT:    ;;#ASMSTART12427; GFX90A-NEXT:    ; use s[8:10]12428; GFX90A-NEXT:    ;;#ASMEND12429; GFX90A-NEXT:    s_setpc_b64 s[30:31]12430;12431; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_5_5:12432; GFX942:       ; %bb.0:12433; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12434; GFX942-NEXT:    ;;#ASMSTART12435; GFX942-NEXT:    ; def s[8:11]12436; GFX942-NEXT:    ;;#ASMEND12437; GFX942-NEXT:    ;;#ASMSTART12438; GFX942-NEXT:    ; def s[0:3]12439; GFX942-NEXT:    ;;#ASMEND12440; GFX942-NEXT:    s_mov_b32 s8, s312441; GFX942-NEXT:    s_mov_b32 s10, s912442; GFX942-NEXT:    ;;#ASMSTART12443; GFX942-NEXT:    ; use s[8:10]12444; GFX942-NEXT:    ;;#ASMEND12445; GFX942-NEXT:    s_setpc_b64 s[30:31]12446  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12447  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12448  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 5, i32 5>12449  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12450  ret void12451}12452 12453define void @s_shuffle_v3p3_v4p3__4_5_5() {12454; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_5_5:12455; GFX9:       ; %bb.0:12456; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12457; GFX9-NEXT:    ;;#ASMSTART12458; GFX9-NEXT:    ; def s[8:11]12459; GFX9-NEXT:    ;;#ASMEND12460; GFX9-NEXT:    s_mov_b32 s10, s912461; GFX9-NEXT:    ;;#ASMSTART12462; GFX9-NEXT:    ; use s[8:10]12463; GFX9-NEXT:    ;;#ASMEND12464; GFX9-NEXT:    s_setpc_b64 s[30:31]12465  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12466  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12467  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 5, i32 5>12468  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12469  ret void12470}12471 12472define void @s_shuffle_v3p3_v4p3__5_5_5() {12473; GFX9-LABEL: s_shuffle_v3p3_v4p3__5_5_5:12474; GFX9:       ; %bb.0:12475; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12476; GFX9-NEXT:    ;;#ASMSTART12477; GFX9-NEXT:    ; def s[8:11]12478; GFX9-NEXT:    ;;#ASMEND12479; GFX9-NEXT:    s_mov_b32 s8, s912480; GFX9-NEXT:    s_mov_b32 s10, s912481; GFX9-NEXT:    ;;#ASMSTART12482; GFX9-NEXT:    ; use s[8:10]12483; GFX9-NEXT:    ;;#ASMEND12484; GFX9-NEXT:    s_setpc_b64 s[30:31]12485  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12486  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12487  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 5, i32 5>12488  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12489  ret void12490}12491 12492define void @s_shuffle_v3p3_v4p3__6_5_5() {12493; GFX9-LABEL: s_shuffle_v3p3_v4p3__6_5_5:12494; GFX9:       ; %bb.0:12495; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12496; GFX9-NEXT:    ;;#ASMSTART12497; GFX9-NEXT:    ; def s[8:11]12498; GFX9-NEXT:    ;;#ASMEND12499; GFX9-NEXT:    s_mov_b32 s8, s1012500; GFX9-NEXT:    s_mov_b32 s10, s912501; GFX9-NEXT:    ;;#ASMSTART12502; GFX9-NEXT:    ; use s[8:10]12503; GFX9-NEXT:    ;;#ASMEND12504; GFX9-NEXT:    s_setpc_b64 s[30:31]12505  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12506  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12507  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 5, i32 5>12508  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12509  ret void12510}12511 12512define void @s_shuffle_v3p3_v4p3__7_5_5() {12513; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_5_5:12514; GFX9:       ; %bb.0:12515; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12516; GFX9-NEXT:    ;;#ASMSTART12517; GFX9-NEXT:    ; def s[8:11]12518; GFX9-NEXT:    ;;#ASMEND12519; GFX9-NEXT:    s_mov_b32 s8, s1112520; GFX9-NEXT:    s_mov_b32 s10, s912521; GFX9-NEXT:    ;;#ASMSTART12522; GFX9-NEXT:    ; use s[8:10]12523; GFX9-NEXT:    ;;#ASMEND12524; GFX9-NEXT:    s_setpc_b64 s[30:31]12525  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12526  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12527  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 5>12528  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12529  ret void12530}12531 12532define void @s_shuffle_v3p3_v4p3__7_u_5() {12533; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_5:12534; GFX900:       ; %bb.0:12535; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12536; GFX900-NEXT:    ;;#ASMSTART12537; GFX900-NEXT:    ; def s[4:7]12538; GFX900-NEXT:    ;;#ASMEND12539; GFX900-NEXT:    s_mov_b32 s8, s712540; GFX900-NEXT:    s_mov_b32 s10, s512541; GFX900-NEXT:    ;;#ASMSTART12542; GFX900-NEXT:    ; use s[8:10]12543; GFX900-NEXT:    ;;#ASMEND12544; GFX900-NEXT:    s_setpc_b64 s[30:31]12545;12546; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_5:12547; GFX90A:       ; %bb.0:12548; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12549; GFX90A-NEXT:    ;;#ASMSTART12550; GFX90A-NEXT:    ; def s[4:7]12551; GFX90A-NEXT:    ;;#ASMEND12552; GFX90A-NEXT:    s_mov_b32 s8, s712553; GFX90A-NEXT:    s_mov_b32 s10, s512554; GFX90A-NEXT:    ;;#ASMSTART12555; GFX90A-NEXT:    ; use s[8:10]12556; GFX90A-NEXT:    ;;#ASMEND12557; GFX90A-NEXT:    s_setpc_b64 s[30:31]12558;12559; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_5:12560; GFX942:       ; %bb.0:12561; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12562; GFX942-NEXT:    ;;#ASMSTART12563; GFX942-NEXT:    ; def s[0:3]12564; GFX942-NEXT:    ;;#ASMEND12565; GFX942-NEXT:    s_mov_b32 s8, s312566; GFX942-NEXT:    s_mov_b32 s10, s112567; GFX942-NEXT:    ;;#ASMSTART12568; GFX942-NEXT:    ; use s[8:10]12569; GFX942-NEXT:    ;;#ASMEND12570; GFX942-NEXT:    s_setpc_b64 s[30:31]12571  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12572  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12573  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>12574  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12575  ret void12576}12577 12578define void @s_shuffle_v3p3_v4p3__7_0_5() {12579; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_5:12580; GFX900:       ; %bb.0:12581; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12582; GFX900-NEXT:    ;;#ASMSTART12583; GFX900-NEXT:    ; def s[4:7]12584; GFX900-NEXT:    ;;#ASMEND12585; GFX900-NEXT:    ;;#ASMSTART12586; GFX900-NEXT:    ; def s[12:15]12587; GFX900-NEXT:    ;;#ASMEND12588; GFX900-NEXT:    s_mov_b32 s8, s1512589; GFX900-NEXT:    s_mov_b32 s9, s412590; GFX900-NEXT:    s_mov_b32 s10, s1312591; GFX900-NEXT:    ;;#ASMSTART12592; GFX900-NEXT:    ; use s[8:10]12593; GFX900-NEXT:    ;;#ASMEND12594; GFX900-NEXT:    s_setpc_b64 s[30:31]12595;12596; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_5:12597; GFX90A:       ; %bb.0:12598; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12599; GFX90A-NEXT:    ;;#ASMSTART12600; GFX90A-NEXT:    ; def s[4:7]12601; GFX90A-NEXT:    ;;#ASMEND12602; GFX90A-NEXT:    ;;#ASMSTART12603; GFX90A-NEXT:    ; def s[12:15]12604; GFX90A-NEXT:    ;;#ASMEND12605; GFX90A-NEXT:    s_mov_b32 s8, s1512606; GFX90A-NEXT:    s_mov_b32 s9, s412607; GFX90A-NEXT:    s_mov_b32 s10, s1312608; GFX90A-NEXT:    ;;#ASMSTART12609; GFX90A-NEXT:    ; use s[8:10]12610; GFX90A-NEXT:    ;;#ASMEND12611; GFX90A-NEXT:    s_setpc_b64 s[30:31]12612;12613; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_5:12614; GFX942:       ; %bb.0:12615; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12616; GFX942-NEXT:    ;;#ASMSTART12617; GFX942-NEXT:    ; def s[0:3]12618; GFX942-NEXT:    ;;#ASMEND12619; GFX942-NEXT:    ;;#ASMSTART12620; GFX942-NEXT:    ; def s[4:7]12621; GFX942-NEXT:    ;;#ASMEND12622; GFX942-NEXT:    s_mov_b32 s8, s712623; GFX942-NEXT:    s_mov_b32 s9, s012624; GFX942-NEXT:    s_mov_b32 s10, s512625; GFX942-NEXT:    ;;#ASMSTART12626; GFX942-NEXT:    ; use s[8:10]12627; GFX942-NEXT:    ;;#ASMEND12628; GFX942-NEXT:    s_setpc_b64 s[30:31]12629  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12630  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12631  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 5>12632  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12633  ret void12634}12635 12636define void @s_shuffle_v3p3_v4p3__7_1_5() {12637; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_5:12638; GFX900:       ; %bb.0:12639; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12640; GFX900-NEXT:    ;;#ASMSTART12641; GFX900-NEXT:    ; def s[8:11]12642; GFX900-NEXT:    ;;#ASMEND12643; GFX900-NEXT:    ;;#ASMSTART12644; GFX900-NEXT:    ; def s[4:7]12645; GFX900-NEXT:    ;;#ASMEND12646; GFX900-NEXT:    s_mov_b32 s8, s712647; GFX900-NEXT:    s_mov_b32 s10, s512648; GFX900-NEXT:    ;;#ASMSTART12649; GFX900-NEXT:    ; use s[8:10]12650; GFX900-NEXT:    ;;#ASMEND12651; GFX900-NEXT:    s_setpc_b64 s[30:31]12652;12653; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_5:12654; GFX90A:       ; %bb.0:12655; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12656; GFX90A-NEXT:    ;;#ASMSTART12657; GFX90A-NEXT:    ; def s[8:11]12658; GFX90A-NEXT:    ;;#ASMEND12659; GFX90A-NEXT:    ;;#ASMSTART12660; GFX90A-NEXT:    ; def s[4:7]12661; GFX90A-NEXT:    ;;#ASMEND12662; GFX90A-NEXT:    s_mov_b32 s8, s712663; GFX90A-NEXT:    s_mov_b32 s10, s512664; GFX90A-NEXT:    ;;#ASMSTART12665; GFX90A-NEXT:    ; use s[8:10]12666; GFX90A-NEXT:    ;;#ASMEND12667; GFX90A-NEXT:    s_setpc_b64 s[30:31]12668;12669; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_5:12670; GFX942:       ; %bb.0:12671; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12672; GFX942-NEXT:    ;;#ASMSTART12673; GFX942-NEXT:    ; def s[8:11]12674; GFX942-NEXT:    ;;#ASMEND12675; GFX942-NEXT:    ;;#ASMSTART12676; GFX942-NEXT:    ; def s[0:3]12677; GFX942-NEXT:    ;;#ASMEND12678; GFX942-NEXT:    s_mov_b32 s8, s312679; GFX942-NEXT:    s_mov_b32 s10, s112680; GFX942-NEXT:    ;;#ASMSTART12681; GFX942-NEXT:    ; use s[8:10]12682; GFX942-NEXT:    ;;#ASMEND12683; GFX942-NEXT:    s_setpc_b64 s[30:31]12684  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12685  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12686  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 5>12687  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12688  ret void12689}12690 12691define void @s_shuffle_v3p3_v4p3__7_2_5() {12692; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_5:12693; GFX900:       ; %bb.0:12694; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12695; GFX900-NEXT:    ;;#ASMSTART12696; GFX900-NEXT:    ; def s[4:7]12697; GFX900-NEXT:    ;;#ASMEND12698; GFX900-NEXT:    ;;#ASMSTART12699; GFX900-NEXT:    ; def s[12:15]12700; GFX900-NEXT:    ;;#ASMEND12701; GFX900-NEXT:    s_mov_b32 s8, s1512702; GFX900-NEXT:    s_mov_b32 s9, s612703; GFX900-NEXT:    s_mov_b32 s10, s1312704; GFX900-NEXT:    ;;#ASMSTART12705; GFX900-NEXT:    ; use s[8:10]12706; GFX900-NEXT:    ;;#ASMEND12707; GFX900-NEXT:    s_setpc_b64 s[30:31]12708;12709; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_5:12710; GFX90A:       ; %bb.0:12711; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12712; GFX90A-NEXT:    ;;#ASMSTART12713; GFX90A-NEXT:    ; def s[4:7]12714; GFX90A-NEXT:    ;;#ASMEND12715; GFX90A-NEXT:    ;;#ASMSTART12716; GFX90A-NEXT:    ; def s[12:15]12717; GFX90A-NEXT:    ;;#ASMEND12718; GFX90A-NEXT:    s_mov_b32 s8, s1512719; GFX90A-NEXT:    s_mov_b32 s9, s612720; GFX90A-NEXT:    s_mov_b32 s10, s1312721; GFX90A-NEXT:    ;;#ASMSTART12722; GFX90A-NEXT:    ; use s[8:10]12723; GFX90A-NEXT:    ;;#ASMEND12724; GFX90A-NEXT:    s_setpc_b64 s[30:31]12725;12726; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_5:12727; GFX942:       ; %bb.0:12728; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12729; GFX942-NEXT:    ;;#ASMSTART12730; GFX942-NEXT:    ; def s[0:3]12731; GFX942-NEXT:    ;;#ASMEND12732; GFX942-NEXT:    ;;#ASMSTART12733; GFX942-NEXT:    ; def s[4:7]12734; GFX942-NEXT:    ;;#ASMEND12735; GFX942-NEXT:    s_mov_b32 s8, s712736; GFX942-NEXT:    s_mov_b32 s9, s212737; GFX942-NEXT:    s_mov_b32 s10, s512738; GFX942-NEXT:    ;;#ASMSTART12739; GFX942-NEXT:    ; use s[8:10]12740; GFX942-NEXT:    ;;#ASMEND12741; GFX942-NEXT:    s_setpc_b64 s[30:31]12742  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12743  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12744  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 5>12745  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12746  ret void12747}12748 12749define void @s_shuffle_v3p3_v4p3__7_3_5() {12750; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_5:12751; GFX900:       ; %bb.0:12752; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12753; GFX900-NEXT:    ;;#ASMSTART12754; GFX900-NEXT:    ; def s[4:7]12755; GFX900-NEXT:    ;;#ASMEND12756; GFX900-NEXT:    ;;#ASMSTART12757; GFX900-NEXT:    ; def s[12:15]12758; GFX900-NEXT:    ;;#ASMEND12759; GFX900-NEXT:    s_mov_b32 s8, s1512760; GFX900-NEXT:    s_mov_b32 s9, s712761; GFX900-NEXT:    s_mov_b32 s10, s1312762; GFX900-NEXT:    ;;#ASMSTART12763; GFX900-NEXT:    ; use s[8:10]12764; GFX900-NEXT:    ;;#ASMEND12765; GFX900-NEXT:    s_setpc_b64 s[30:31]12766;12767; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_5:12768; GFX90A:       ; %bb.0:12769; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12770; GFX90A-NEXT:    ;;#ASMSTART12771; GFX90A-NEXT:    ; def s[4:7]12772; GFX90A-NEXT:    ;;#ASMEND12773; GFX90A-NEXT:    ;;#ASMSTART12774; GFX90A-NEXT:    ; def s[12:15]12775; GFX90A-NEXT:    ;;#ASMEND12776; GFX90A-NEXT:    s_mov_b32 s8, s1512777; GFX90A-NEXT:    s_mov_b32 s9, s712778; GFX90A-NEXT:    s_mov_b32 s10, s1312779; GFX90A-NEXT:    ;;#ASMSTART12780; GFX90A-NEXT:    ; use s[8:10]12781; GFX90A-NEXT:    ;;#ASMEND12782; GFX90A-NEXT:    s_setpc_b64 s[30:31]12783;12784; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_5:12785; GFX942:       ; %bb.0:12786; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12787; GFX942-NEXT:    ;;#ASMSTART12788; GFX942-NEXT:    ; def s[0:3]12789; GFX942-NEXT:    ;;#ASMEND12790; GFX942-NEXT:    ;;#ASMSTART12791; GFX942-NEXT:    ; def s[4:7]12792; GFX942-NEXT:    ;;#ASMEND12793; GFX942-NEXT:    s_mov_b32 s8, s712794; GFX942-NEXT:    s_mov_b32 s9, s312795; GFX942-NEXT:    s_mov_b32 s10, s512796; GFX942-NEXT:    ;;#ASMSTART12797; GFX942-NEXT:    ; use s[8:10]12798; GFX942-NEXT:    ;;#ASMEND12799; GFX942-NEXT:    s_setpc_b64 s[30:31]12800  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12801  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12802  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 5>12803  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12804  ret void12805}12806 12807define void @s_shuffle_v3p3_v4p3__7_4_5() {12808; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_5:12809; GFX900:       ; %bb.0:12810; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12811; GFX900-NEXT:    ;;#ASMSTART12812; GFX900-NEXT:    ; def s[4:7]12813; GFX900-NEXT:    ;;#ASMEND12814; GFX900-NEXT:    s_mov_b32 s8, s712815; GFX900-NEXT:    s_mov_b32 s9, s412816; GFX900-NEXT:    s_mov_b32 s10, s512817; GFX900-NEXT:    ;;#ASMSTART12818; GFX900-NEXT:    ; use s[8:10]12819; GFX900-NEXT:    ;;#ASMEND12820; GFX900-NEXT:    s_setpc_b64 s[30:31]12821;12822; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_5:12823; GFX90A:       ; %bb.0:12824; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12825; GFX90A-NEXT:    ;;#ASMSTART12826; GFX90A-NEXT:    ; def s[4:7]12827; GFX90A-NEXT:    ;;#ASMEND12828; GFX90A-NEXT:    s_mov_b32 s8, s712829; GFX90A-NEXT:    s_mov_b32 s9, s412830; GFX90A-NEXT:    s_mov_b32 s10, s512831; GFX90A-NEXT:    ;;#ASMSTART12832; GFX90A-NEXT:    ; use s[8:10]12833; GFX90A-NEXT:    ;;#ASMEND12834; GFX90A-NEXT:    s_setpc_b64 s[30:31]12835;12836; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_5:12837; GFX942:       ; %bb.0:12838; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12839; GFX942-NEXT:    ;;#ASMSTART12840; GFX942-NEXT:    ; def s[0:3]12841; GFX942-NEXT:    ;;#ASMEND12842; GFX942-NEXT:    s_mov_b32 s8, s312843; GFX942-NEXT:    s_mov_b32 s9, s012844; GFX942-NEXT:    s_mov_b32 s10, s112845; GFX942-NEXT:    ;;#ASMSTART12846; GFX942-NEXT:    ; use s[8:10]12847; GFX942-NEXT:    ;;#ASMEND12848; GFX942-NEXT:    s_setpc_b64 s[30:31]12849  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12850  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12851  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 5>12852  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12853  ret void12854}12855 12856define void @s_shuffle_v3p3_v4p3__7_6_5() {12857; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_5:12858; GFX900:       ; %bb.0:12859; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12860; GFX900-NEXT:    ;;#ASMSTART12861; GFX900-NEXT:    ; def s[4:7]12862; GFX900-NEXT:    ;;#ASMEND12863; GFX900-NEXT:    s_mov_b32 s8, s712864; GFX900-NEXT:    s_mov_b32 s9, s612865; GFX900-NEXT:    s_mov_b32 s10, s512866; GFX900-NEXT:    ;;#ASMSTART12867; GFX900-NEXT:    ; use s[8:10]12868; GFX900-NEXT:    ;;#ASMEND12869; GFX900-NEXT:    s_setpc_b64 s[30:31]12870;12871; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_5:12872; GFX90A:       ; %bb.0:12873; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12874; GFX90A-NEXT:    ;;#ASMSTART12875; GFX90A-NEXT:    ; def s[4:7]12876; GFX90A-NEXT:    ;;#ASMEND12877; GFX90A-NEXT:    s_mov_b32 s8, s712878; GFX90A-NEXT:    s_mov_b32 s9, s612879; GFX90A-NEXT:    s_mov_b32 s10, s512880; GFX90A-NEXT:    ;;#ASMSTART12881; GFX90A-NEXT:    ; use s[8:10]12882; GFX90A-NEXT:    ;;#ASMEND12883; GFX90A-NEXT:    s_setpc_b64 s[30:31]12884;12885; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_5:12886; GFX942:       ; %bb.0:12887; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12888; GFX942-NEXT:    ;;#ASMSTART12889; GFX942-NEXT:    ; def s[0:3]12890; GFX942-NEXT:    ;;#ASMEND12891; GFX942-NEXT:    s_mov_b32 s8, s312892; GFX942-NEXT:    s_mov_b32 s9, s212893; GFX942-NEXT:    s_mov_b32 s10, s112894; GFX942-NEXT:    ;;#ASMSTART12895; GFX942-NEXT:    ; use s[8:10]12896; GFX942-NEXT:    ;;#ASMEND12897; GFX942-NEXT:    s_setpc_b64 s[30:31]12898  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12899  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12900  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 5>12901  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12902  ret void12903}12904 12905define void @s_shuffle_v3p3_v4p3__u_6_6() {12906; GFX9-LABEL: s_shuffle_v3p3_v4p3__u_6_6:12907; GFX9:       ; %bb.0:12908; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12909; GFX9-NEXT:    ;;#ASMSTART12910; GFX9-NEXT:    ; def s[8:11]12911; GFX9-NEXT:    ;;#ASMEND12912; GFX9-NEXT:    s_mov_b32 s9, s1012913; GFX9-NEXT:    ;;#ASMSTART12914; GFX9-NEXT:    ; use s[8:10]12915; GFX9-NEXT:    ;;#ASMEND12916; GFX9-NEXT:    s_setpc_b64 s[30:31]12917  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12918  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12919  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>12920  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12921  ret void12922}12923 12924define void @s_shuffle_v3p3_v4p3__0_6_6() {12925; GFX900-LABEL: s_shuffle_v3p3_v4p3__0_6_6:12926; GFX900:       ; %bb.0:12927; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12928; GFX900-NEXT:    ;;#ASMSTART12929; GFX900-NEXT:    ; def s[8:11]12930; GFX900-NEXT:    ;;#ASMEND12931; GFX900-NEXT:    ;;#ASMSTART12932; GFX900-NEXT:    ; def s[4:7]12933; GFX900-NEXT:    ;;#ASMEND12934; GFX900-NEXT:    s_mov_b32 s9, s612935; GFX900-NEXT:    s_mov_b32 s10, s612936; GFX900-NEXT:    ;;#ASMSTART12937; GFX900-NEXT:    ; use s[8:10]12938; GFX900-NEXT:    ;;#ASMEND12939; GFX900-NEXT:    s_setpc_b64 s[30:31]12940;12941; GFX90A-LABEL: s_shuffle_v3p3_v4p3__0_6_6:12942; GFX90A:       ; %bb.0:12943; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12944; GFX90A-NEXT:    ;;#ASMSTART12945; GFX90A-NEXT:    ; def s[8:11]12946; GFX90A-NEXT:    ;;#ASMEND12947; GFX90A-NEXT:    ;;#ASMSTART12948; GFX90A-NEXT:    ; def s[4:7]12949; GFX90A-NEXT:    ;;#ASMEND12950; GFX90A-NEXT:    s_mov_b32 s9, s612951; GFX90A-NEXT:    s_mov_b32 s10, s612952; GFX90A-NEXT:    ;;#ASMSTART12953; GFX90A-NEXT:    ; use s[8:10]12954; GFX90A-NEXT:    ;;#ASMEND12955; GFX90A-NEXT:    s_setpc_b64 s[30:31]12956;12957; GFX942-LABEL: s_shuffle_v3p3_v4p3__0_6_6:12958; GFX942:       ; %bb.0:12959; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12960; GFX942-NEXT:    ;;#ASMSTART12961; GFX942-NEXT:    ; def s[8:11]12962; GFX942-NEXT:    ;;#ASMEND12963; GFX942-NEXT:    ;;#ASMSTART12964; GFX942-NEXT:    ; def s[0:3]12965; GFX942-NEXT:    ;;#ASMEND12966; GFX942-NEXT:    s_mov_b32 s9, s212967; GFX942-NEXT:    s_mov_b32 s10, s212968; GFX942-NEXT:    ;;#ASMSTART12969; GFX942-NEXT:    ; use s[8:10]12970; GFX942-NEXT:    ;;#ASMEND12971; GFX942-NEXT:    s_setpc_b64 s[30:31]12972  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12973  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()12974  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 6, i32 6>12975  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)12976  ret void12977}12978 12979define void @s_shuffle_v3p3_v4p3__1_6_6() {12980; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_6_6:12981; GFX900:       ; %bb.0:12982; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12983; GFX900-NEXT:    ;;#ASMSTART12984; GFX900-NEXT:    ; def s[8:11]12985; GFX900-NEXT:    ;;#ASMEND12986; GFX900-NEXT:    ;;#ASMSTART12987; GFX900-NEXT:    ; def s[4:7]12988; GFX900-NEXT:    ;;#ASMEND12989; GFX900-NEXT:    s_mov_b32 s8, s512990; GFX900-NEXT:    s_mov_b32 s9, s1012991; GFX900-NEXT:    ;;#ASMSTART12992; GFX900-NEXT:    ; use s[8:10]12993; GFX900-NEXT:    ;;#ASMEND12994; GFX900-NEXT:    s_setpc_b64 s[30:31]12995;12996; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_6_6:12997; GFX90A:       ; %bb.0:12998; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12999; GFX90A-NEXT:    ;;#ASMSTART13000; GFX90A-NEXT:    ; def s[8:11]13001; GFX90A-NEXT:    ;;#ASMEND13002; GFX90A-NEXT:    ;;#ASMSTART13003; GFX90A-NEXT:    ; def s[4:7]13004; GFX90A-NEXT:    ;;#ASMEND13005; GFX90A-NEXT:    s_mov_b32 s8, s513006; GFX90A-NEXT:    s_mov_b32 s9, s1013007; GFX90A-NEXT:    ;;#ASMSTART13008; GFX90A-NEXT:    ; use s[8:10]13009; GFX90A-NEXT:    ;;#ASMEND13010; GFX90A-NEXT:    s_setpc_b64 s[30:31]13011;13012; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_6_6:13013; GFX942:       ; %bb.0:13014; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13015; GFX942-NEXT:    ;;#ASMSTART13016; GFX942-NEXT:    ; def s[8:11]13017; GFX942-NEXT:    ;;#ASMEND13018; GFX942-NEXT:    ;;#ASMSTART13019; GFX942-NEXT:    ; def s[0:3]13020; GFX942-NEXT:    ;;#ASMEND13021; GFX942-NEXT:    s_mov_b32 s8, s113022; GFX942-NEXT:    s_mov_b32 s9, s1013023; GFX942-NEXT:    ;;#ASMSTART13024; GFX942-NEXT:    ; use s[8:10]13025; GFX942-NEXT:    ;;#ASMEND13026; GFX942-NEXT:    s_setpc_b64 s[30:31]13027  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13028  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13029  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 6, i32 6>13030  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13031  ret void13032}13033 13034define void @s_shuffle_v3p3_v4p3__2_6_6() {13035; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_6_6:13036; GFX900:       ; %bb.0:13037; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13038; GFX900-NEXT:    ;;#ASMSTART13039; GFX900-NEXT:    ; def s[8:11]13040; GFX900-NEXT:    ;;#ASMEND13041; GFX900-NEXT:    ;;#ASMSTART13042; GFX900-NEXT:    ; def s[4:7]13043; GFX900-NEXT:    ;;#ASMEND13044; GFX900-NEXT:    s_mov_b32 s8, s613045; GFX900-NEXT:    s_mov_b32 s9, s1013046; GFX900-NEXT:    ;;#ASMSTART13047; GFX900-NEXT:    ; use s[8:10]13048; GFX900-NEXT:    ;;#ASMEND13049; GFX900-NEXT:    s_setpc_b64 s[30:31]13050;13051; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_6_6:13052; GFX90A:       ; %bb.0:13053; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13054; GFX90A-NEXT:    ;;#ASMSTART13055; GFX90A-NEXT:    ; def s[8:11]13056; GFX90A-NEXT:    ;;#ASMEND13057; GFX90A-NEXT:    ;;#ASMSTART13058; GFX90A-NEXT:    ; def s[4:7]13059; GFX90A-NEXT:    ;;#ASMEND13060; GFX90A-NEXT:    s_mov_b32 s8, s613061; GFX90A-NEXT:    s_mov_b32 s9, s1013062; GFX90A-NEXT:    ;;#ASMSTART13063; GFX90A-NEXT:    ; use s[8:10]13064; GFX90A-NEXT:    ;;#ASMEND13065; GFX90A-NEXT:    s_setpc_b64 s[30:31]13066;13067; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_6_6:13068; GFX942:       ; %bb.0:13069; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13070; GFX942-NEXT:    ;;#ASMSTART13071; GFX942-NEXT:    ; def s[8:11]13072; GFX942-NEXT:    ;;#ASMEND13073; GFX942-NEXT:    ;;#ASMSTART13074; GFX942-NEXT:    ; def s[0:3]13075; GFX942-NEXT:    ;;#ASMEND13076; GFX942-NEXT:    s_mov_b32 s8, s213077; GFX942-NEXT:    s_mov_b32 s9, s1013078; GFX942-NEXT:    ;;#ASMSTART13079; GFX942-NEXT:    ; use s[8:10]13080; GFX942-NEXT:    ;;#ASMEND13081; GFX942-NEXT:    s_setpc_b64 s[30:31]13082  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13083  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13084  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 6, i32 6>13085  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13086  ret void13087}13088 13089define void @s_shuffle_v3p3_v4p3__3_6_6() {13090; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_6_6:13091; GFX900:       ; %bb.0:13092; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13093; GFX900-NEXT:    ;;#ASMSTART13094; GFX900-NEXT:    ; def s[8:11]13095; GFX900-NEXT:    ;;#ASMEND13096; GFX900-NEXT:    ;;#ASMSTART13097; GFX900-NEXT:    ; def s[4:7]13098; GFX900-NEXT:    ;;#ASMEND13099; GFX900-NEXT:    s_mov_b32 s8, s713100; GFX900-NEXT:    s_mov_b32 s9, s1013101; GFX900-NEXT:    ;;#ASMSTART13102; GFX900-NEXT:    ; use s[8:10]13103; GFX900-NEXT:    ;;#ASMEND13104; GFX900-NEXT:    s_setpc_b64 s[30:31]13105;13106; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_6_6:13107; GFX90A:       ; %bb.0:13108; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13109; GFX90A-NEXT:    ;;#ASMSTART13110; GFX90A-NEXT:    ; def s[8:11]13111; GFX90A-NEXT:    ;;#ASMEND13112; GFX90A-NEXT:    ;;#ASMSTART13113; GFX90A-NEXT:    ; def s[4:7]13114; GFX90A-NEXT:    ;;#ASMEND13115; GFX90A-NEXT:    s_mov_b32 s8, s713116; GFX90A-NEXT:    s_mov_b32 s9, s1013117; GFX90A-NEXT:    ;;#ASMSTART13118; GFX90A-NEXT:    ; use s[8:10]13119; GFX90A-NEXT:    ;;#ASMEND13120; GFX90A-NEXT:    s_setpc_b64 s[30:31]13121;13122; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_6_6:13123; GFX942:       ; %bb.0:13124; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13125; GFX942-NEXT:    ;;#ASMSTART13126; GFX942-NEXT:    ; def s[8:11]13127; GFX942-NEXT:    ;;#ASMEND13128; GFX942-NEXT:    ;;#ASMSTART13129; GFX942-NEXT:    ; def s[0:3]13130; GFX942-NEXT:    ;;#ASMEND13131; GFX942-NEXT:    s_mov_b32 s8, s313132; GFX942-NEXT:    s_mov_b32 s9, s1013133; GFX942-NEXT:    ;;#ASMSTART13134; GFX942-NEXT:    ; use s[8:10]13135; GFX942-NEXT:    ;;#ASMEND13136; GFX942-NEXT:    s_setpc_b64 s[30:31]13137  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13138  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13139  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 6, i32 6>13140  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13141  ret void13142}13143 13144define void @s_shuffle_v3p3_v4p3__4_6_6() {13145; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_6_6:13146; GFX9:       ; %bb.0:13147; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13148; GFX9-NEXT:    ;;#ASMSTART13149; GFX9-NEXT:    ; def s[8:11]13150; GFX9-NEXT:    ;;#ASMEND13151; GFX9-NEXT:    s_mov_b32 s9, s1013152; GFX9-NEXT:    ;;#ASMSTART13153; GFX9-NEXT:    ; use s[8:10]13154; GFX9-NEXT:    ;;#ASMEND13155; GFX9-NEXT:    s_setpc_b64 s[30:31]13156  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13157  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13158  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 6, i32 6>13159  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13160  ret void13161}13162 13163define void @s_shuffle_v3p3_v4p3__5_6_6() {13164; GFX9-LABEL: s_shuffle_v3p3_v4p3__5_6_6:13165; GFX9:       ; %bb.0:13166; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13167; GFX9-NEXT:    ;;#ASMSTART13168; GFX9-NEXT:    ; def s[8:11]13169; GFX9-NEXT:    ;;#ASMEND13170; GFX9-NEXT:    s_mov_b32 s8, s913171; GFX9-NEXT:    s_mov_b32 s9, s1013172; GFX9-NEXT:    ;;#ASMSTART13173; GFX9-NEXT:    ; use s[8:10]13174; GFX9-NEXT:    ;;#ASMEND13175; GFX9-NEXT:    s_setpc_b64 s[30:31]13176  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13177  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13178  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 6, i32 6>13179  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13180  ret void13181}13182 13183define void @s_shuffle_v3p3_v4p3__6_6_6() {13184; GFX9-LABEL: s_shuffle_v3p3_v4p3__6_6_6:13185; GFX9:       ; %bb.0:13186; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13187; GFX9-NEXT:    ;;#ASMSTART13188; GFX9-NEXT:    ; def s[8:11]13189; GFX9-NEXT:    ;;#ASMEND13190; GFX9-NEXT:    s_mov_b32 s8, s1013191; GFX9-NEXT:    s_mov_b32 s9, s1013192; GFX9-NEXT:    ;;#ASMSTART13193; GFX9-NEXT:    ; use s[8:10]13194; GFX9-NEXT:    ;;#ASMEND13195; GFX9-NEXT:    s_setpc_b64 s[30:31]13196  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13197  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13198  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 6, i32 6>13199  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13200  ret void13201}13202 13203define void @s_shuffle_v3p3_v4p3__7_6_6() {13204; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_6_6:13205; GFX9:       ; %bb.0:13206; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13207; GFX9-NEXT:    ;;#ASMSTART13208; GFX9-NEXT:    ; def s[8:11]13209; GFX9-NEXT:    ;;#ASMEND13210; GFX9-NEXT:    s_mov_b32 s8, s1113211; GFX9-NEXT:    s_mov_b32 s9, s1013212; GFX9-NEXT:    ;;#ASMSTART13213; GFX9-NEXT:    ; use s[8:10]13214; GFX9-NEXT:    ;;#ASMEND13215; GFX9-NEXT:    s_setpc_b64 s[30:31]13216  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13217  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13218  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 6>13219  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13220  ret void13221}13222 13223define void @s_shuffle_v3p3_v4p3__7_u_6() {13224; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_u_6:13225; GFX9:       ; %bb.0:13226; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13227; GFX9-NEXT:    ;;#ASMSTART13228; GFX9-NEXT:    ; def s[8:11]13229; GFX9-NEXT:    ;;#ASMEND13230; GFX9-NEXT:    s_mov_b32 s8, s1113231; GFX9-NEXT:    ;;#ASMSTART13232; GFX9-NEXT:    ; use s[8:10]13233; GFX9-NEXT:    ;;#ASMEND13234; GFX9-NEXT:    s_setpc_b64 s[30:31]13235  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13236  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13237  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>13238  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13239  ret void13240}13241 13242define void @s_shuffle_v3p3_v4p3__7_0_6() {13243; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_6:13244; GFX900:       ; %bb.0:13245; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13246; GFX900-NEXT:    ;;#ASMSTART13247; GFX900-NEXT:    ; def s[8:11]13248; GFX900-NEXT:    ;;#ASMEND13249; GFX900-NEXT:    ;;#ASMSTART13250; GFX900-NEXT:    ; def s[4:7]13251; GFX900-NEXT:    ;;#ASMEND13252; GFX900-NEXT:    s_mov_b32 s8, s1113253; GFX900-NEXT:    s_mov_b32 s9, s413254; GFX900-NEXT:    ;;#ASMSTART13255; GFX900-NEXT:    ; use s[8:10]13256; GFX900-NEXT:    ;;#ASMEND13257; GFX900-NEXT:    s_setpc_b64 s[30:31]13258;13259; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_6:13260; GFX90A:       ; %bb.0:13261; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13262; GFX90A-NEXT:    ;;#ASMSTART13263; GFX90A-NEXT:    ; def s[8:11]13264; GFX90A-NEXT:    ;;#ASMEND13265; GFX90A-NEXT:    ;;#ASMSTART13266; GFX90A-NEXT:    ; def s[4:7]13267; GFX90A-NEXT:    ;;#ASMEND13268; GFX90A-NEXT:    s_mov_b32 s8, s1113269; GFX90A-NEXT:    s_mov_b32 s9, s413270; GFX90A-NEXT:    ;;#ASMSTART13271; GFX90A-NEXT:    ; use s[8:10]13272; GFX90A-NEXT:    ;;#ASMEND13273; GFX90A-NEXT:    s_setpc_b64 s[30:31]13274;13275; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_6:13276; GFX942:       ; %bb.0:13277; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13278; GFX942-NEXT:    ;;#ASMSTART13279; GFX942-NEXT:    ; def s[8:11]13280; GFX942-NEXT:    ;;#ASMEND13281; GFX942-NEXT:    ;;#ASMSTART13282; GFX942-NEXT:    ; def s[0:3]13283; GFX942-NEXT:    ;;#ASMEND13284; GFX942-NEXT:    s_mov_b32 s8, s1113285; GFX942-NEXT:    s_mov_b32 s9, s013286; GFX942-NEXT:    ;;#ASMSTART13287; GFX942-NEXT:    ; use s[8:10]13288; GFX942-NEXT:    ;;#ASMEND13289; GFX942-NEXT:    s_setpc_b64 s[30:31]13290  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13291  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13292  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 6>13293  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13294  ret void13295}13296 13297define void @s_shuffle_v3p3_v4p3__7_1_6() {13298; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_6:13299; GFX900:       ; %bb.0:13300; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13301; GFX900-NEXT:    ;;#ASMSTART13302; GFX900-NEXT:    ; def s[8:11]13303; GFX900-NEXT:    ;;#ASMEND13304; GFX900-NEXT:    ;;#ASMSTART13305; GFX900-NEXT:    ; def s[4:7]13306; GFX900-NEXT:    ;;#ASMEND13307; GFX900-NEXT:    s_mov_b32 s8, s713308; GFX900-NEXT:    s_mov_b32 s10, s613309; GFX900-NEXT:    ;;#ASMSTART13310; GFX900-NEXT:    ; use s[8:10]13311; GFX900-NEXT:    ;;#ASMEND13312; GFX900-NEXT:    s_setpc_b64 s[30:31]13313;13314; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_6:13315; GFX90A:       ; %bb.0:13316; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13317; GFX90A-NEXT:    ;;#ASMSTART13318; GFX90A-NEXT:    ; def s[8:11]13319; GFX90A-NEXT:    ;;#ASMEND13320; GFX90A-NEXT:    ;;#ASMSTART13321; GFX90A-NEXT:    ; def s[4:7]13322; GFX90A-NEXT:    ;;#ASMEND13323; GFX90A-NEXT:    s_mov_b32 s8, s713324; GFX90A-NEXT:    s_mov_b32 s10, s613325; GFX90A-NEXT:    ;;#ASMSTART13326; GFX90A-NEXT:    ; use s[8:10]13327; GFX90A-NEXT:    ;;#ASMEND13328; GFX90A-NEXT:    s_setpc_b64 s[30:31]13329;13330; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_6:13331; GFX942:       ; %bb.0:13332; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13333; GFX942-NEXT:    ;;#ASMSTART13334; GFX942-NEXT:    ; def s[8:11]13335; GFX942-NEXT:    ;;#ASMEND13336; GFX942-NEXT:    ;;#ASMSTART13337; GFX942-NEXT:    ; def s[0:3]13338; GFX942-NEXT:    ;;#ASMEND13339; GFX942-NEXT:    s_mov_b32 s8, s313340; GFX942-NEXT:    s_mov_b32 s10, s213341; GFX942-NEXT:    ;;#ASMSTART13342; GFX942-NEXT:    ; use s[8:10]13343; GFX942-NEXT:    ;;#ASMEND13344; GFX942-NEXT:    s_setpc_b64 s[30:31]13345  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13346  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13347  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 6>13348  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13349  ret void13350}13351 13352define void @s_shuffle_v3p3_v4p3__7_2_6() {13353; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_6:13354; GFX900:       ; %bb.0:13355; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13356; GFX900-NEXT:    ;;#ASMSTART13357; GFX900-NEXT:    ; def s[8:11]13358; GFX900-NEXT:    ;;#ASMEND13359; GFX900-NEXT:    ;;#ASMSTART13360; GFX900-NEXT:    ; def s[4:7]13361; GFX900-NEXT:    ;;#ASMEND13362; GFX900-NEXT:    s_mov_b32 s8, s1113363; GFX900-NEXT:    s_mov_b32 s9, s613364; GFX900-NEXT:    ;;#ASMSTART13365; GFX900-NEXT:    ; use s[8:10]13366; GFX900-NEXT:    ;;#ASMEND13367; GFX900-NEXT:    s_setpc_b64 s[30:31]13368;13369; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_6:13370; GFX90A:       ; %bb.0:13371; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13372; GFX90A-NEXT:    ;;#ASMSTART13373; GFX90A-NEXT:    ; def s[8:11]13374; GFX90A-NEXT:    ;;#ASMEND13375; GFX90A-NEXT:    ;;#ASMSTART13376; GFX90A-NEXT:    ; def s[4:7]13377; GFX90A-NEXT:    ;;#ASMEND13378; GFX90A-NEXT:    s_mov_b32 s8, s1113379; GFX90A-NEXT:    s_mov_b32 s9, s613380; GFX90A-NEXT:    ;;#ASMSTART13381; GFX90A-NEXT:    ; use s[8:10]13382; GFX90A-NEXT:    ;;#ASMEND13383; GFX90A-NEXT:    s_setpc_b64 s[30:31]13384;13385; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_6:13386; GFX942:       ; %bb.0:13387; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13388; GFX942-NEXT:    ;;#ASMSTART13389; GFX942-NEXT:    ; def s[8:11]13390; GFX942-NEXT:    ;;#ASMEND13391; GFX942-NEXT:    ;;#ASMSTART13392; GFX942-NEXT:    ; def s[0:3]13393; GFX942-NEXT:    ;;#ASMEND13394; GFX942-NEXT:    s_mov_b32 s8, s1113395; GFX942-NEXT:    s_mov_b32 s9, s213396; GFX942-NEXT:    ;;#ASMSTART13397; GFX942-NEXT:    ; use s[8:10]13398; GFX942-NEXT:    ;;#ASMEND13399; GFX942-NEXT:    s_setpc_b64 s[30:31]13400  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13401  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13402  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 6>13403  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13404  ret void13405}13406 13407define void @s_shuffle_v3p3_v4p3__7_3_6() {13408; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_6:13409; GFX900:       ; %bb.0:13410; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13411; GFX900-NEXT:    ;;#ASMSTART13412; GFX900-NEXT:    ; def s[8:11]13413; GFX900-NEXT:    ;;#ASMEND13414; GFX900-NEXT:    ;;#ASMSTART13415; GFX900-NEXT:    ; def s[4:7]13416; GFX900-NEXT:    ;;#ASMEND13417; GFX900-NEXT:    s_mov_b32 s8, s1113418; GFX900-NEXT:    s_mov_b32 s9, s713419; GFX900-NEXT:    ;;#ASMSTART13420; GFX900-NEXT:    ; use s[8:10]13421; GFX900-NEXT:    ;;#ASMEND13422; GFX900-NEXT:    s_setpc_b64 s[30:31]13423;13424; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_6:13425; GFX90A:       ; %bb.0:13426; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13427; GFX90A-NEXT:    ;;#ASMSTART13428; GFX90A-NEXT:    ; def s[8:11]13429; GFX90A-NEXT:    ;;#ASMEND13430; GFX90A-NEXT:    ;;#ASMSTART13431; GFX90A-NEXT:    ; def s[4:7]13432; GFX90A-NEXT:    ;;#ASMEND13433; GFX90A-NEXT:    s_mov_b32 s8, s1113434; GFX90A-NEXT:    s_mov_b32 s9, s713435; GFX90A-NEXT:    ;;#ASMSTART13436; GFX90A-NEXT:    ; use s[8:10]13437; GFX90A-NEXT:    ;;#ASMEND13438; GFX90A-NEXT:    s_setpc_b64 s[30:31]13439;13440; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_6:13441; GFX942:       ; %bb.0:13442; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13443; GFX942-NEXT:    ;;#ASMSTART13444; GFX942-NEXT:    ; def s[8:11]13445; GFX942-NEXT:    ;;#ASMEND13446; GFX942-NEXT:    ;;#ASMSTART13447; GFX942-NEXT:    ; def s[0:3]13448; GFX942-NEXT:    ;;#ASMEND13449; GFX942-NEXT:    s_mov_b32 s8, s1113450; GFX942-NEXT:    s_mov_b32 s9, s313451; GFX942-NEXT:    ;;#ASMSTART13452; GFX942-NEXT:    ; use s[8:10]13453; GFX942-NEXT:    ;;#ASMEND13454; GFX942-NEXT:    s_setpc_b64 s[30:31]13455  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13456  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13457  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 6>13458  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13459  ret void13460}13461 13462define void @s_shuffle_v3p3_v4p3__7_4_6() {13463; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_6:13464; GFX900:       ; %bb.0:13465; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13466; GFX900-NEXT:    ;;#ASMSTART13467; GFX900-NEXT:    ; def s[4:7]13468; GFX900-NEXT:    ;;#ASMEND13469; GFX900-NEXT:    s_mov_b32 s8, s713470; GFX900-NEXT:    s_mov_b32 s9, s413471; GFX900-NEXT:    s_mov_b32 s10, s613472; GFX900-NEXT:    ;;#ASMSTART13473; GFX900-NEXT:    ; use s[8:10]13474; GFX900-NEXT:    ;;#ASMEND13475; GFX900-NEXT:    s_setpc_b64 s[30:31]13476;13477; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_6:13478; GFX90A:       ; %bb.0:13479; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13480; GFX90A-NEXT:    ;;#ASMSTART13481; GFX90A-NEXT:    ; def s[4:7]13482; GFX90A-NEXT:    ;;#ASMEND13483; GFX90A-NEXT:    s_mov_b32 s8, s713484; GFX90A-NEXT:    s_mov_b32 s9, s413485; GFX90A-NEXT:    s_mov_b32 s10, s613486; GFX90A-NEXT:    ;;#ASMSTART13487; GFX90A-NEXT:    ; use s[8:10]13488; GFX90A-NEXT:    ;;#ASMEND13489; GFX90A-NEXT:    s_setpc_b64 s[30:31]13490;13491; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_6:13492; GFX942:       ; %bb.0:13493; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13494; GFX942-NEXT:    ;;#ASMSTART13495; GFX942-NEXT:    ; def s[0:3]13496; GFX942-NEXT:    ;;#ASMEND13497; GFX942-NEXT:    s_mov_b32 s8, s313498; GFX942-NEXT:    s_mov_b32 s9, s013499; GFX942-NEXT:    s_mov_b32 s10, s213500; GFX942-NEXT:    ;;#ASMSTART13501; GFX942-NEXT:    ; use s[8:10]13502; GFX942-NEXT:    ;;#ASMEND13503; GFX942-NEXT:    s_setpc_b64 s[30:31]13504  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13505  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13506  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 6>13507  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13508  ret void13509}13510 13511define void @s_shuffle_v3p3_v4p3__7_5_6() {13512; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_5_6:13513; GFX9:       ; %bb.0:13514; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13515; GFX9-NEXT:    ;;#ASMSTART13516; GFX9-NEXT:    ; def s[8:11]13517; GFX9-NEXT:    ;;#ASMEND13518; GFX9-NEXT:    s_mov_b32 s8, s1113519; GFX9-NEXT:    ;;#ASMSTART13520; GFX9-NEXT:    ; use s[8:10]13521; GFX9-NEXT:    ;;#ASMEND13522; GFX9-NEXT:    s_setpc_b64 s[30:31]13523  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13524  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13525  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 6>13526  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13527  ret void13528}13529 13530define void @s_shuffle_v3p3_v4p3__u_7_7() {13531; GFX900-LABEL: s_shuffle_v3p3_v4p3__u_7_7:13532; GFX900:       ; %bb.0:13533; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13534; GFX900-NEXT:    ;;#ASMSTART13535; GFX900-NEXT:    ; def s[4:7]13536; GFX900-NEXT:    ;;#ASMEND13537; GFX900-NEXT:    s_mov_b32 s9, s713538; GFX900-NEXT:    s_mov_b32 s10, s713539; GFX900-NEXT:    ;;#ASMSTART13540; GFX900-NEXT:    ; use s[8:10]13541; GFX900-NEXT:    ;;#ASMEND13542; GFX900-NEXT:    s_setpc_b64 s[30:31]13543;13544; GFX90A-LABEL: s_shuffle_v3p3_v4p3__u_7_7:13545; GFX90A:       ; %bb.0:13546; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13547; GFX90A-NEXT:    ;;#ASMSTART13548; GFX90A-NEXT:    ; def s[4:7]13549; GFX90A-NEXT:    ;;#ASMEND13550; GFX90A-NEXT:    s_mov_b32 s9, s713551; GFX90A-NEXT:    s_mov_b32 s10, s713552; GFX90A-NEXT:    ;;#ASMSTART13553; GFX90A-NEXT:    ; use s[8:10]13554; GFX90A-NEXT:    ;;#ASMEND13555; GFX90A-NEXT:    s_setpc_b64 s[30:31]13556;13557; GFX942-LABEL: s_shuffle_v3p3_v4p3__u_7_7:13558; GFX942:       ; %bb.0:13559; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13560; GFX942-NEXT:    ;;#ASMSTART13561; GFX942-NEXT:    ; def s[0:3]13562; GFX942-NEXT:    ;;#ASMEND13563; GFX942-NEXT:    s_mov_b32 s9, s313564; GFX942-NEXT:    s_mov_b32 s10, s313565; GFX942-NEXT:    ;;#ASMSTART13566; GFX942-NEXT:    ; use s[8:10]13567; GFX942-NEXT:    ;;#ASMEND13568; GFX942-NEXT:    s_setpc_b64 s[30:31]13569  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13570  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13571  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>13572  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13573  ret void13574}13575 13576define void @s_shuffle_v3p3_v4p3__0_7_7() {13577; GFX900-LABEL: s_shuffle_v3p3_v4p3__0_7_7:13578; GFX900:       ; %bb.0:13579; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13580; GFX900-NEXT:    ;;#ASMSTART13581; GFX900-NEXT:    ; def s[8:11]13582; GFX900-NEXT:    ;;#ASMEND13583; GFX900-NEXT:    ;;#ASMSTART13584; GFX900-NEXT:    ; def s[4:7]13585; GFX900-NEXT:    ;;#ASMEND13586; GFX900-NEXT:    s_mov_b32 s9, s713587; GFX900-NEXT:    s_mov_b32 s10, s713588; GFX900-NEXT:    ;;#ASMSTART13589; GFX900-NEXT:    ; use s[8:10]13590; GFX900-NEXT:    ;;#ASMEND13591; GFX900-NEXT:    s_setpc_b64 s[30:31]13592;13593; GFX90A-LABEL: s_shuffle_v3p3_v4p3__0_7_7:13594; GFX90A:       ; %bb.0:13595; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13596; GFX90A-NEXT:    ;;#ASMSTART13597; GFX90A-NEXT:    ; def s[8:11]13598; GFX90A-NEXT:    ;;#ASMEND13599; GFX90A-NEXT:    ;;#ASMSTART13600; GFX90A-NEXT:    ; def s[4:7]13601; GFX90A-NEXT:    ;;#ASMEND13602; GFX90A-NEXT:    s_mov_b32 s9, s713603; GFX90A-NEXT:    s_mov_b32 s10, s713604; GFX90A-NEXT:    ;;#ASMSTART13605; GFX90A-NEXT:    ; use s[8:10]13606; GFX90A-NEXT:    ;;#ASMEND13607; GFX90A-NEXT:    s_setpc_b64 s[30:31]13608;13609; GFX942-LABEL: s_shuffle_v3p3_v4p3__0_7_7:13610; GFX942:       ; %bb.0:13611; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13612; GFX942-NEXT:    ;;#ASMSTART13613; GFX942-NEXT:    ; def s[8:11]13614; GFX942-NEXT:    ;;#ASMEND13615; GFX942-NEXT:    ;;#ASMSTART13616; GFX942-NEXT:    ; def s[0:3]13617; GFX942-NEXT:    ;;#ASMEND13618; GFX942-NEXT:    s_mov_b32 s9, s313619; GFX942-NEXT:    s_mov_b32 s10, s313620; GFX942-NEXT:    ;;#ASMSTART13621; GFX942-NEXT:    ; use s[8:10]13622; GFX942-NEXT:    ;;#ASMEND13623; GFX942-NEXT:    s_setpc_b64 s[30:31]13624  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13625  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13626  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 0, i32 7, i32 7>13627  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13628  ret void13629}13630 13631define void @s_shuffle_v3p3_v4p3__1_7_7() {13632; GFX900-LABEL: s_shuffle_v3p3_v4p3__1_7_7:13633; GFX900:       ; %bb.0:13634; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13635; GFX900-NEXT:    ;;#ASMSTART13636; GFX900-NEXT:    ; def s[8:11]13637; GFX900-NEXT:    ;;#ASMEND13638; GFX900-NEXT:    ;;#ASMSTART13639; GFX900-NEXT:    ; def s[4:7]13640; GFX900-NEXT:    ;;#ASMEND13641; GFX900-NEXT:    s_mov_b32 s8, s513642; GFX900-NEXT:    s_mov_b32 s9, s1113643; GFX900-NEXT:    s_mov_b32 s10, s1113644; GFX900-NEXT:    ;;#ASMSTART13645; GFX900-NEXT:    ; use s[8:10]13646; GFX900-NEXT:    ;;#ASMEND13647; GFX900-NEXT:    s_setpc_b64 s[30:31]13648;13649; GFX90A-LABEL: s_shuffle_v3p3_v4p3__1_7_7:13650; GFX90A:       ; %bb.0:13651; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13652; GFX90A-NEXT:    ;;#ASMSTART13653; GFX90A-NEXT:    ; def s[8:11]13654; GFX90A-NEXT:    ;;#ASMEND13655; GFX90A-NEXT:    ;;#ASMSTART13656; GFX90A-NEXT:    ; def s[4:7]13657; GFX90A-NEXT:    ;;#ASMEND13658; GFX90A-NEXT:    s_mov_b32 s8, s513659; GFX90A-NEXT:    s_mov_b32 s9, s1113660; GFX90A-NEXT:    s_mov_b32 s10, s1113661; GFX90A-NEXT:    ;;#ASMSTART13662; GFX90A-NEXT:    ; use s[8:10]13663; GFX90A-NEXT:    ;;#ASMEND13664; GFX90A-NEXT:    s_setpc_b64 s[30:31]13665;13666; GFX942-LABEL: s_shuffle_v3p3_v4p3__1_7_7:13667; GFX942:       ; %bb.0:13668; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13669; GFX942-NEXT:    ;;#ASMSTART13670; GFX942-NEXT:    ; def s[0:3]13671; GFX942-NEXT:    ;;#ASMEND13672; GFX942-NEXT:    ;;#ASMSTART13673; GFX942-NEXT:    ; def s[4:7]13674; GFX942-NEXT:    ;;#ASMEND13675; GFX942-NEXT:    s_mov_b32 s8, s113676; GFX942-NEXT:    s_mov_b32 s9, s713677; GFX942-NEXT:    s_mov_b32 s10, s713678; GFX942-NEXT:    ;;#ASMSTART13679; GFX942-NEXT:    ; use s[8:10]13680; GFX942-NEXT:    ;;#ASMEND13681; GFX942-NEXT:    s_setpc_b64 s[30:31]13682  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13683  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13684  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 1, i32 7, i32 7>13685  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13686  ret void13687}13688 13689define void @s_shuffle_v3p3_v4p3__2_7_7() {13690; GFX900-LABEL: s_shuffle_v3p3_v4p3__2_7_7:13691; GFX900:       ; %bb.0:13692; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13693; GFX900-NEXT:    ;;#ASMSTART13694; GFX900-NEXT:    ; def s[8:11]13695; GFX900-NEXT:    ;;#ASMEND13696; GFX900-NEXT:    ;;#ASMSTART13697; GFX900-NEXT:    ; def s[4:7]13698; GFX900-NEXT:    ;;#ASMEND13699; GFX900-NEXT:    s_mov_b32 s8, s613700; GFX900-NEXT:    s_mov_b32 s9, s1113701; GFX900-NEXT:    s_mov_b32 s10, s1113702; GFX900-NEXT:    ;;#ASMSTART13703; GFX900-NEXT:    ; use s[8:10]13704; GFX900-NEXT:    ;;#ASMEND13705; GFX900-NEXT:    s_setpc_b64 s[30:31]13706;13707; GFX90A-LABEL: s_shuffle_v3p3_v4p3__2_7_7:13708; GFX90A:       ; %bb.0:13709; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13710; GFX90A-NEXT:    ;;#ASMSTART13711; GFX90A-NEXT:    ; def s[8:11]13712; GFX90A-NEXT:    ;;#ASMEND13713; GFX90A-NEXT:    ;;#ASMSTART13714; GFX90A-NEXT:    ; def s[4:7]13715; GFX90A-NEXT:    ;;#ASMEND13716; GFX90A-NEXT:    s_mov_b32 s8, s613717; GFX90A-NEXT:    s_mov_b32 s9, s1113718; GFX90A-NEXT:    s_mov_b32 s10, s1113719; GFX90A-NEXT:    ;;#ASMSTART13720; GFX90A-NEXT:    ; use s[8:10]13721; GFX90A-NEXT:    ;;#ASMEND13722; GFX90A-NEXT:    s_setpc_b64 s[30:31]13723;13724; GFX942-LABEL: s_shuffle_v3p3_v4p3__2_7_7:13725; GFX942:       ; %bb.0:13726; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13727; GFX942-NEXT:    ;;#ASMSTART13728; GFX942-NEXT:    ; def s[0:3]13729; GFX942-NEXT:    ;;#ASMEND13730; GFX942-NEXT:    ;;#ASMSTART13731; GFX942-NEXT:    ; def s[4:7]13732; GFX942-NEXT:    ;;#ASMEND13733; GFX942-NEXT:    s_mov_b32 s8, s213734; GFX942-NEXT:    s_mov_b32 s9, s713735; GFX942-NEXT:    s_mov_b32 s10, s713736; GFX942-NEXT:    ;;#ASMSTART13737; GFX942-NEXT:    ; use s[8:10]13738; GFX942-NEXT:    ;;#ASMEND13739; GFX942-NEXT:    s_setpc_b64 s[30:31]13740  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13741  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13742  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 2, i32 7, i32 7>13743  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13744  ret void13745}13746 13747define void @s_shuffle_v3p3_v4p3__3_7_7() {13748; GFX900-LABEL: s_shuffle_v3p3_v4p3__3_7_7:13749; GFX900:       ; %bb.0:13750; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13751; GFX900-NEXT:    ;;#ASMSTART13752; GFX900-NEXT:    ; def s[8:11]13753; GFX900-NEXT:    ;;#ASMEND13754; GFX900-NEXT:    ;;#ASMSTART13755; GFX900-NEXT:    ; def s[4:7]13756; GFX900-NEXT:    ;;#ASMEND13757; GFX900-NEXT:    s_mov_b32 s8, s713758; GFX900-NEXT:    s_mov_b32 s9, s1113759; GFX900-NEXT:    s_mov_b32 s10, s1113760; GFX900-NEXT:    ;;#ASMSTART13761; GFX900-NEXT:    ; use s[8:10]13762; GFX900-NEXT:    ;;#ASMEND13763; GFX900-NEXT:    s_setpc_b64 s[30:31]13764;13765; GFX90A-LABEL: s_shuffle_v3p3_v4p3__3_7_7:13766; GFX90A:       ; %bb.0:13767; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13768; GFX90A-NEXT:    ;;#ASMSTART13769; GFX90A-NEXT:    ; def s[8:11]13770; GFX90A-NEXT:    ;;#ASMEND13771; GFX90A-NEXT:    ;;#ASMSTART13772; GFX90A-NEXT:    ; def s[4:7]13773; GFX90A-NEXT:    ;;#ASMEND13774; GFX90A-NEXT:    s_mov_b32 s8, s713775; GFX90A-NEXT:    s_mov_b32 s9, s1113776; GFX90A-NEXT:    s_mov_b32 s10, s1113777; GFX90A-NEXT:    ;;#ASMSTART13778; GFX90A-NEXT:    ; use s[8:10]13779; GFX90A-NEXT:    ;;#ASMEND13780; GFX90A-NEXT:    s_setpc_b64 s[30:31]13781;13782; GFX942-LABEL: s_shuffle_v3p3_v4p3__3_7_7:13783; GFX942:       ; %bb.0:13784; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13785; GFX942-NEXT:    ;;#ASMSTART13786; GFX942-NEXT:    ; def s[0:3]13787; GFX942-NEXT:    ;;#ASMEND13788; GFX942-NEXT:    ;;#ASMSTART13789; GFX942-NEXT:    ; def s[4:7]13790; GFX942-NEXT:    ;;#ASMEND13791; GFX942-NEXT:    s_mov_b32 s8, s313792; GFX942-NEXT:    s_mov_b32 s9, s713793; GFX942-NEXT:    s_mov_b32 s10, s713794; GFX942-NEXT:    ;;#ASMSTART13795; GFX942-NEXT:    ; use s[8:10]13796; GFX942-NEXT:    ;;#ASMEND13797; GFX942-NEXT:    s_setpc_b64 s[30:31]13798  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13799  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13800  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 3, i32 7, i32 7>13801  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13802  ret void13803}13804 13805define void @s_shuffle_v3p3_v4p3__4_7_7() {13806; GFX9-LABEL: s_shuffle_v3p3_v4p3__4_7_7:13807; GFX9:       ; %bb.0:13808; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13809; GFX9-NEXT:    ;;#ASMSTART13810; GFX9-NEXT:    ; def s[8:11]13811; GFX9-NEXT:    ;;#ASMEND13812; GFX9-NEXT:    s_mov_b32 s9, s1113813; GFX9-NEXT:    s_mov_b32 s10, s1113814; GFX9-NEXT:    ;;#ASMSTART13815; GFX9-NEXT:    ; use s[8:10]13816; GFX9-NEXT:    ;;#ASMEND13817; GFX9-NEXT:    s_setpc_b64 s[30:31]13818  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13819  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13820  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 4, i32 7, i32 7>13821  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13822  ret void13823}13824 13825define void @s_shuffle_v3p3_v4p3__5_7_7() {13826; GFX900-LABEL: s_shuffle_v3p3_v4p3__5_7_7:13827; GFX900:       ; %bb.0:13828; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13829; GFX900-NEXT:    ;;#ASMSTART13830; GFX900-NEXT:    ; def s[4:7]13831; GFX900-NEXT:    ;;#ASMEND13832; GFX900-NEXT:    s_mov_b32 s8, s513833; GFX900-NEXT:    s_mov_b32 s9, s713834; GFX900-NEXT:    s_mov_b32 s10, s713835; GFX900-NEXT:    ;;#ASMSTART13836; GFX900-NEXT:    ; use s[8:10]13837; GFX900-NEXT:    ;;#ASMEND13838; GFX900-NEXT:    s_setpc_b64 s[30:31]13839;13840; GFX90A-LABEL: s_shuffle_v3p3_v4p3__5_7_7:13841; GFX90A:       ; %bb.0:13842; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13843; GFX90A-NEXT:    ;;#ASMSTART13844; GFX90A-NEXT:    ; def s[4:7]13845; GFX90A-NEXT:    ;;#ASMEND13846; GFX90A-NEXT:    s_mov_b32 s8, s513847; GFX90A-NEXT:    s_mov_b32 s9, s713848; GFX90A-NEXT:    s_mov_b32 s10, s713849; GFX90A-NEXT:    ;;#ASMSTART13850; GFX90A-NEXT:    ; use s[8:10]13851; GFX90A-NEXT:    ;;#ASMEND13852; GFX90A-NEXT:    s_setpc_b64 s[30:31]13853;13854; GFX942-LABEL: s_shuffle_v3p3_v4p3__5_7_7:13855; GFX942:       ; %bb.0:13856; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13857; GFX942-NEXT:    ;;#ASMSTART13858; GFX942-NEXT:    ; def s[0:3]13859; GFX942-NEXT:    ;;#ASMEND13860; GFX942-NEXT:    s_mov_b32 s8, s113861; GFX942-NEXT:    s_mov_b32 s9, s313862; GFX942-NEXT:    s_mov_b32 s10, s313863; GFX942-NEXT:    ;;#ASMSTART13864; GFX942-NEXT:    ; use s[8:10]13865; GFX942-NEXT:    ;;#ASMEND13866; GFX942-NEXT:    s_setpc_b64 s[30:31]13867  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13868  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13869  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 5, i32 7, i32 7>13870  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13871  ret void13872}13873 13874define void @s_shuffle_v3p3_v4p3__6_7_7() {13875; GFX900-LABEL: s_shuffle_v3p3_v4p3__6_7_7:13876; GFX900:       ; %bb.0:13877; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13878; GFX900-NEXT:    ;;#ASMSTART13879; GFX900-NEXT:    ; def s[4:7]13880; GFX900-NEXT:    ;;#ASMEND13881; GFX900-NEXT:    s_mov_b32 s8, s613882; GFX900-NEXT:    s_mov_b32 s9, s713883; GFX900-NEXT:    s_mov_b32 s10, s713884; GFX900-NEXT:    ;;#ASMSTART13885; GFX900-NEXT:    ; use s[8:10]13886; GFX900-NEXT:    ;;#ASMEND13887; GFX900-NEXT:    s_setpc_b64 s[30:31]13888;13889; GFX90A-LABEL: s_shuffle_v3p3_v4p3__6_7_7:13890; GFX90A:       ; %bb.0:13891; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13892; GFX90A-NEXT:    ;;#ASMSTART13893; GFX90A-NEXT:    ; def s[4:7]13894; GFX90A-NEXT:    ;;#ASMEND13895; GFX90A-NEXT:    s_mov_b32 s8, s613896; GFX90A-NEXT:    s_mov_b32 s9, s713897; GFX90A-NEXT:    s_mov_b32 s10, s713898; GFX90A-NEXT:    ;;#ASMSTART13899; GFX90A-NEXT:    ; use s[8:10]13900; GFX90A-NEXT:    ;;#ASMEND13901; GFX90A-NEXT:    s_setpc_b64 s[30:31]13902;13903; GFX942-LABEL: s_shuffle_v3p3_v4p3__6_7_7:13904; GFX942:       ; %bb.0:13905; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13906; GFX942-NEXT:    ;;#ASMSTART13907; GFX942-NEXT:    ; def s[0:3]13908; GFX942-NEXT:    ;;#ASMEND13909; GFX942-NEXT:    s_mov_b32 s8, s213910; GFX942-NEXT:    s_mov_b32 s9, s313911; GFX942-NEXT:    s_mov_b32 s10, s313912; GFX942-NEXT:    ;;#ASMSTART13913; GFX942-NEXT:    ; use s[8:10]13914; GFX942-NEXT:    ;;#ASMEND13915; GFX942-NEXT:    s_setpc_b64 s[30:31]13916  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13917  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13918  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 6, i32 7, i32 7>13919  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13920  ret void13921}13922 13923define void @s_shuffle_v3p3_v4p3__7_u_7() {13924; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_u_7:13925; GFX900:       ; %bb.0:13926; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13927; GFX900-NEXT:    ;;#ASMSTART13928; GFX900-NEXT:    ; def s[4:7]13929; GFX900-NEXT:    ;;#ASMEND13930; GFX900-NEXT:    s_mov_b32 s8, s713931; GFX900-NEXT:    s_mov_b32 s10, s713932; GFX900-NEXT:    ;;#ASMSTART13933; GFX900-NEXT:    ; use s[8:10]13934; GFX900-NEXT:    ;;#ASMEND13935; GFX900-NEXT:    s_setpc_b64 s[30:31]13936;13937; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_u_7:13938; GFX90A:       ; %bb.0:13939; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13940; GFX90A-NEXT:    ;;#ASMSTART13941; GFX90A-NEXT:    ; def s[4:7]13942; GFX90A-NEXT:    ;;#ASMEND13943; GFX90A-NEXT:    s_mov_b32 s8, s713944; GFX90A-NEXT:    s_mov_b32 s10, s713945; GFX90A-NEXT:    ;;#ASMSTART13946; GFX90A-NEXT:    ; use s[8:10]13947; GFX90A-NEXT:    ;;#ASMEND13948; GFX90A-NEXT:    s_setpc_b64 s[30:31]13949;13950; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_u_7:13951; GFX942:       ; %bb.0:13952; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13953; GFX942-NEXT:    ;;#ASMSTART13954; GFX942-NEXT:    ; def s[0:3]13955; GFX942-NEXT:    ;;#ASMEND13956; GFX942-NEXT:    s_mov_b32 s8, s313957; GFX942-NEXT:    s_mov_b32 s10, s313958; GFX942-NEXT:    ;;#ASMSTART13959; GFX942-NEXT:    ; use s[8:10]13960; GFX942-NEXT:    ;;#ASMEND13961; GFX942-NEXT:    s_setpc_b64 s[30:31]13962  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13963  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()13964  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>13965  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)13966  ret void13967}13968 13969define void @s_shuffle_v3p3_v4p3__7_0_7() {13970; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_0_7:13971; GFX900:       ; %bb.0:13972; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13973; GFX900-NEXT:    ;;#ASMSTART13974; GFX900-NEXT:    ; def s[8:11]13975; GFX900-NEXT:    ;;#ASMEND13976; GFX900-NEXT:    ;;#ASMSTART13977; GFX900-NEXT:    ; def s[4:7]13978; GFX900-NEXT:    ;;#ASMEND13979; GFX900-NEXT:    s_mov_b32 s8, s1113980; GFX900-NEXT:    s_mov_b32 s9, s413981; GFX900-NEXT:    s_mov_b32 s10, s1113982; GFX900-NEXT:    ;;#ASMSTART13983; GFX900-NEXT:    ; use s[8:10]13984; GFX900-NEXT:    ;;#ASMEND13985; GFX900-NEXT:    s_setpc_b64 s[30:31]13986;13987; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_0_7:13988; GFX90A:       ; %bb.0:13989; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13990; GFX90A-NEXT:    ;;#ASMSTART13991; GFX90A-NEXT:    ; def s[8:11]13992; GFX90A-NEXT:    ;;#ASMEND13993; GFX90A-NEXT:    ;;#ASMSTART13994; GFX90A-NEXT:    ; def s[4:7]13995; GFX90A-NEXT:    ;;#ASMEND13996; GFX90A-NEXT:    s_mov_b32 s8, s1113997; GFX90A-NEXT:    s_mov_b32 s9, s413998; GFX90A-NEXT:    s_mov_b32 s10, s1113999; GFX90A-NEXT:    ;;#ASMSTART14000; GFX90A-NEXT:    ; use s[8:10]14001; GFX90A-NEXT:    ;;#ASMEND14002; GFX90A-NEXT:    s_setpc_b64 s[30:31]14003;14004; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_0_7:14005; GFX942:       ; %bb.0:14006; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14007; GFX942-NEXT:    ;;#ASMSTART14008; GFX942-NEXT:    ; def s[0:3]14009; GFX942-NEXT:    ;;#ASMEND14010; GFX942-NEXT:    ;;#ASMSTART14011; GFX942-NEXT:    ; def s[4:7]14012; GFX942-NEXT:    ;;#ASMEND14013; GFX942-NEXT:    s_mov_b32 s8, s714014; GFX942-NEXT:    s_mov_b32 s9, s014015; GFX942-NEXT:    s_mov_b32 s10, s714016; GFX942-NEXT:    ;;#ASMSTART14017; GFX942-NEXT:    ; use s[8:10]14018; GFX942-NEXT:    ;;#ASMEND14019; GFX942-NEXT:    s_setpc_b64 s[30:31]14020  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14021  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14022  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 0, i32 7>14023  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14024  ret void14025}14026 14027define void @s_shuffle_v3p3_v4p3__7_1_7() {14028; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_1_7:14029; GFX900:       ; %bb.0:14030; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14031; GFX900-NEXT:    ;;#ASMSTART14032; GFX900-NEXT:    ; def s[8:11]14033; GFX900-NEXT:    ;;#ASMEND14034; GFX900-NEXT:    ;;#ASMSTART14035; GFX900-NEXT:    ; def s[4:7]14036; GFX900-NEXT:    ;;#ASMEND14037; GFX900-NEXT:    s_mov_b32 s8, s714038; GFX900-NEXT:    s_mov_b32 s10, s714039; GFX900-NEXT:    ;;#ASMSTART14040; GFX900-NEXT:    ; use s[8:10]14041; GFX900-NEXT:    ;;#ASMEND14042; GFX900-NEXT:    s_setpc_b64 s[30:31]14043;14044; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_1_7:14045; GFX90A:       ; %bb.0:14046; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14047; GFX90A-NEXT:    ;;#ASMSTART14048; GFX90A-NEXT:    ; def s[8:11]14049; GFX90A-NEXT:    ;;#ASMEND14050; GFX90A-NEXT:    ;;#ASMSTART14051; GFX90A-NEXT:    ; def s[4:7]14052; GFX90A-NEXT:    ;;#ASMEND14053; GFX90A-NEXT:    s_mov_b32 s8, s714054; GFX90A-NEXT:    s_mov_b32 s10, s714055; GFX90A-NEXT:    ;;#ASMSTART14056; GFX90A-NEXT:    ; use s[8:10]14057; GFX90A-NEXT:    ;;#ASMEND14058; GFX90A-NEXT:    s_setpc_b64 s[30:31]14059;14060; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_1_7:14061; GFX942:       ; %bb.0:14062; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14063; GFX942-NEXT:    ;;#ASMSTART14064; GFX942-NEXT:    ; def s[8:11]14065; GFX942-NEXT:    ;;#ASMEND14066; GFX942-NEXT:    ;;#ASMSTART14067; GFX942-NEXT:    ; def s[0:3]14068; GFX942-NEXT:    ;;#ASMEND14069; GFX942-NEXT:    s_mov_b32 s8, s314070; GFX942-NEXT:    s_mov_b32 s10, s314071; GFX942-NEXT:    ;;#ASMSTART14072; GFX942-NEXT:    ; use s[8:10]14073; GFX942-NEXT:    ;;#ASMEND14074; GFX942-NEXT:    s_setpc_b64 s[30:31]14075  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14076  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14077  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 1, i32 7>14078  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14079  ret void14080}14081 14082define void @s_shuffle_v3p3_v4p3__7_2_7() {14083; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_2_7:14084; GFX900:       ; %bb.0:14085; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14086; GFX900-NEXT:    ;;#ASMSTART14087; GFX900-NEXT:    ; def s[8:11]14088; GFX900-NEXT:    ;;#ASMEND14089; GFX900-NEXT:    ;;#ASMSTART14090; GFX900-NEXT:    ; def s[4:7]14091; GFX900-NEXT:    ;;#ASMEND14092; GFX900-NEXT:    s_mov_b32 s8, s1114093; GFX900-NEXT:    s_mov_b32 s9, s614094; GFX900-NEXT:    s_mov_b32 s10, s1114095; GFX900-NEXT:    ;;#ASMSTART14096; GFX900-NEXT:    ; use s[8:10]14097; GFX900-NEXT:    ;;#ASMEND14098; GFX900-NEXT:    s_setpc_b64 s[30:31]14099;14100; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_2_7:14101; GFX90A:       ; %bb.0:14102; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14103; GFX90A-NEXT:    ;;#ASMSTART14104; GFX90A-NEXT:    ; def s[8:11]14105; GFX90A-NEXT:    ;;#ASMEND14106; GFX90A-NEXT:    ;;#ASMSTART14107; GFX90A-NEXT:    ; def s[4:7]14108; GFX90A-NEXT:    ;;#ASMEND14109; GFX90A-NEXT:    s_mov_b32 s8, s1114110; GFX90A-NEXT:    s_mov_b32 s9, s614111; GFX90A-NEXT:    s_mov_b32 s10, s1114112; GFX90A-NEXT:    ;;#ASMSTART14113; GFX90A-NEXT:    ; use s[8:10]14114; GFX90A-NEXT:    ;;#ASMEND14115; GFX90A-NEXT:    s_setpc_b64 s[30:31]14116;14117; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_2_7:14118; GFX942:       ; %bb.0:14119; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14120; GFX942-NEXT:    ;;#ASMSTART14121; GFX942-NEXT:    ; def s[0:3]14122; GFX942-NEXT:    ;;#ASMEND14123; GFX942-NEXT:    ;;#ASMSTART14124; GFX942-NEXT:    ; def s[4:7]14125; GFX942-NEXT:    ;;#ASMEND14126; GFX942-NEXT:    s_mov_b32 s8, s714127; GFX942-NEXT:    s_mov_b32 s9, s214128; GFX942-NEXT:    s_mov_b32 s10, s714129; GFX942-NEXT:    ;;#ASMSTART14130; GFX942-NEXT:    ; use s[8:10]14131; GFX942-NEXT:    ;;#ASMEND14132; GFX942-NEXT:    s_setpc_b64 s[30:31]14133  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14134  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14135  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 2, i32 7>14136  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14137  ret void14138}14139 14140define void @s_shuffle_v3p3_v4p3__7_3_7() {14141; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_3_7:14142; GFX900:       ; %bb.0:14143; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14144; GFX900-NEXT:    ;;#ASMSTART14145; GFX900-NEXT:    ; def s[8:11]14146; GFX900-NEXT:    ;;#ASMEND14147; GFX900-NEXT:    ;;#ASMSTART14148; GFX900-NEXT:    ; def s[4:7]14149; GFX900-NEXT:    ;;#ASMEND14150; GFX900-NEXT:    s_mov_b32 s8, s1114151; GFX900-NEXT:    s_mov_b32 s9, s714152; GFX900-NEXT:    s_mov_b32 s10, s1114153; GFX900-NEXT:    ;;#ASMSTART14154; GFX900-NEXT:    ; use s[8:10]14155; GFX900-NEXT:    ;;#ASMEND14156; GFX900-NEXT:    s_setpc_b64 s[30:31]14157;14158; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_3_7:14159; GFX90A:       ; %bb.0:14160; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14161; GFX90A-NEXT:    ;;#ASMSTART14162; GFX90A-NEXT:    ; def s[8:11]14163; GFX90A-NEXT:    ;;#ASMEND14164; GFX90A-NEXT:    ;;#ASMSTART14165; GFX90A-NEXT:    ; def s[4:7]14166; GFX90A-NEXT:    ;;#ASMEND14167; GFX90A-NEXT:    s_mov_b32 s8, s1114168; GFX90A-NEXT:    s_mov_b32 s9, s714169; GFX90A-NEXT:    s_mov_b32 s10, s1114170; GFX90A-NEXT:    ;;#ASMSTART14171; GFX90A-NEXT:    ; use s[8:10]14172; GFX90A-NEXT:    ;;#ASMEND14173; GFX90A-NEXT:    s_setpc_b64 s[30:31]14174;14175; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_3_7:14176; GFX942:       ; %bb.0:14177; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14178; GFX942-NEXT:    ;;#ASMSTART14179; GFX942-NEXT:    ; def s[0:3]14180; GFX942-NEXT:    ;;#ASMEND14181; GFX942-NEXT:    ;;#ASMSTART14182; GFX942-NEXT:    ; def s[4:7]14183; GFX942-NEXT:    ;;#ASMEND14184; GFX942-NEXT:    s_mov_b32 s8, s714185; GFX942-NEXT:    s_mov_b32 s9, s314186; GFX942-NEXT:    s_mov_b32 s10, s714187; GFX942-NEXT:    ;;#ASMSTART14188; GFX942-NEXT:    ; use s[8:10]14189; GFX942-NEXT:    ;;#ASMEND14190; GFX942-NEXT:    s_setpc_b64 s[30:31]14191  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14192  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14193  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 3, i32 7>14194  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14195  ret void14196}14197 14198define void @s_shuffle_v3p3_v4p3__7_4_7() {14199; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_4_7:14200; GFX900:       ; %bb.0:14201; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14202; GFX900-NEXT:    ;;#ASMSTART14203; GFX900-NEXT:    ; def s[4:7]14204; GFX900-NEXT:    ;;#ASMEND14205; GFX900-NEXT:    s_mov_b32 s8, s714206; GFX900-NEXT:    s_mov_b32 s9, s414207; GFX900-NEXT:    s_mov_b32 s10, s714208; GFX900-NEXT:    ;;#ASMSTART14209; GFX900-NEXT:    ; use s[8:10]14210; GFX900-NEXT:    ;;#ASMEND14211; GFX900-NEXT:    s_setpc_b64 s[30:31]14212;14213; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_4_7:14214; GFX90A:       ; %bb.0:14215; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14216; GFX90A-NEXT:    ;;#ASMSTART14217; GFX90A-NEXT:    ; def s[4:7]14218; GFX90A-NEXT:    ;;#ASMEND14219; GFX90A-NEXT:    s_mov_b32 s8, s714220; GFX90A-NEXT:    s_mov_b32 s9, s414221; GFX90A-NEXT:    s_mov_b32 s10, s714222; GFX90A-NEXT:    ;;#ASMSTART14223; GFX90A-NEXT:    ; use s[8:10]14224; GFX90A-NEXT:    ;;#ASMEND14225; GFX90A-NEXT:    s_setpc_b64 s[30:31]14226;14227; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_4_7:14228; GFX942:       ; %bb.0:14229; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14230; GFX942-NEXT:    ;;#ASMSTART14231; GFX942-NEXT:    ; def s[0:3]14232; GFX942-NEXT:    ;;#ASMEND14233; GFX942-NEXT:    s_mov_b32 s8, s314234; GFX942-NEXT:    s_mov_b32 s9, s014235; GFX942-NEXT:    s_mov_b32 s10, s314236; GFX942-NEXT:    ;;#ASMSTART14237; GFX942-NEXT:    ; use s[8:10]14238; GFX942-NEXT:    ;;#ASMEND14239; GFX942-NEXT:    s_setpc_b64 s[30:31]14240  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14241  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14242  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 4, i32 7>14243  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14244  ret void14245}14246 14247define void @s_shuffle_v3p3_v4p3__7_5_7() {14248; GFX9-LABEL: s_shuffle_v3p3_v4p3__7_5_7:14249; GFX9:       ; %bb.0:14250; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14251; GFX9-NEXT:    ;;#ASMSTART14252; GFX9-NEXT:    ; def s[8:11]14253; GFX9-NEXT:    ;;#ASMEND14254; GFX9-NEXT:    s_mov_b32 s8, s1114255; GFX9-NEXT:    s_mov_b32 s10, s1114256; GFX9-NEXT:    ;;#ASMSTART14257; GFX9-NEXT:    ; use s[8:10]14258; GFX9-NEXT:    ;;#ASMEND14259; GFX9-NEXT:    s_setpc_b64 s[30:31]14260  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14261  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14262  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 5, i32 7>14263  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14264  ret void14265}14266 14267define void @s_shuffle_v3p3_v4p3__7_6_7() {14268; GFX900-LABEL: s_shuffle_v3p3_v4p3__7_6_7:14269; GFX900:       ; %bb.0:14270; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14271; GFX900-NEXT:    ;;#ASMSTART14272; GFX900-NEXT:    ; def s[4:7]14273; GFX900-NEXT:    ;;#ASMEND14274; GFX900-NEXT:    s_mov_b32 s8, s714275; GFX900-NEXT:    s_mov_b32 s9, s614276; GFX900-NEXT:    s_mov_b32 s10, s714277; GFX900-NEXT:    ;;#ASMSTART14278; GFX900-NEXT:    ; use s[8:10]14279; GFX900-NEXT:    ;;#ASMEND14280; GFX900-NEXT:    s_setpc_b64 s[30:31]14281;14282; GFX90A-LABEL: s_shuffle_v3p3_v4p3__7_6_7:14283; GFX90A:       ; %bb.0:14284; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14285; GFX90A-NEXT:    ;;#ASMSTART14286; GFX90A-NEXT:    ; def s[4:7]14287; GFX90A-NEXT:    ;;#ASMEND14288; GFX90A-NEXT:    s_mov_b32 s8, s714289; GFX90A-NEXT:    s_mov_b32 s9, s614290; GFX90A-NEXT:    s_mov_b32 s10, s714291; GFX90A-NEXT:    ;;#ASMSTART14292; GFX90A-NEXT:    ; use s[8:10]14293; GFX90A-NEXT:    ;;#ASMEND14294; GFX90A-NEXT:    s_setpc_b64 s[30:31]14295;14296; GFX942-LABEL: s_shuffle_v3p3_v4p3__7_6_7:14297; GFX942:       ; %bb.0:14298; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14299; GFX942-NEXT:    ;;#ASMSTART14300; GFX942-NEXT:    ; def s[0:3]14301; GFX942-NEXT:    ;;#ASMEND14302; GFX942-NEXT:    s_mov_b32 s8, s314303; GFX942-NEXT:    s_mov_b32 s9, s214304; GFX942-NEXT:    s_mov_b32 s10, s314305; GFX942-NEXT:    ;;#ASMSTART14306; GFX942-NEXT:    ; use s[8:10]14307; GFX942-NEXT:    ;;#ASMEND14308; GFX942-NEXT:    s_setpc_b64 s[30:31]14309  %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14310  %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()14311  %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <3 x i32> <i32 7, i32 6, i32 7>14312  call void asm sideeffect "; use $0", "{s[8:10]}"(<3 x ptr addrspace(3)> %shuf)14313  ret void14314}14315;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:14316; GFX90APLUS: {{.*}}14317