brintos

brintos / llvm-project-archived public Read only

0
0
Text · 506.9 KiB · b60d7f8 Raw
14199 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_v3p0_v4p0__u_u_u(ptr addrspace(1) inreg %ptr) {8; GFX9-LABEL: v_shuffle_v3p0_v4p0__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> asm "; def $0", "=v"()13  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> poison14  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 3215  ret void16}17 18define void @v_shuffle_v3p0_v4p0__0_u_u(ptr addrspace(1) inreg %ptr) {19; GFX900-LABEL: v_shuffle_v3p0_v4p0__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 v8, 023; GFX900-NEXT:    ;;#ASMSTART24; GFX900-NEXT:    ; def v[0:7]25; GFX900-NEXT:    ;;#ASMEND26; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:1627; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]28; GFX900-NEXT:    s_waitcnt vmcnt(0)29; GFX900-NEXT:    s_setpc_b64 s[30:31]30;31; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_u_u:32; GFX90A:       ; %bb.0:33; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)34; GFX90A-NEXT:    v_mov_b32_e32 v8, 035; GFX90A-NEXT:    ;;#ASMSTART36; GFX90A-NEXT:    ; def v[0:7]37; GFX90A-NEXT:    ;;#ASMEND38; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:1639; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]40; GFX90A-NEXT:    s_waitcnt vmcnt(0)41; GFX90A-NEXT:    s_setpc_b64 s[30:31]42;43; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_u_u:44; GFX942:       ; %bb.0:45; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)46; GFX942-NEXT:    v_mov_b32_e32 v8, 047; GFX942-NEXT:    ;;#ASMSTART48; GFX942-NEXT:    ; def v[0:7]49; GFX942-NEXT:    ;;#ASMEND50; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:1651; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]52; GFX942-NEXT:    s_waitcnt vmcnt(0)53; GFX942-NEXT:    s_setpc_b64 s[30:31]54  %vec0 = call <4 x ptr> asm "; def $0", "=v"()55  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 poison, i32 poison>56  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 3257  ret void58}59 60define void @v_shuffle_v3p0_v4p0__1_u_u(ptr addrspace(1) inreg %ptr) {61; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_u_u:62; GFX900:       ; %bb.0:63; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)64; GFX900-NEXT:    v_mov_b32_e32 v8, 065; GFX900-NEXT:    ;;#ASMSTART66; GFX900-NEXT:    ; def v[0:7]67; GFX900-NEXT:    ;;#ASMEND68; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]69; GFX900-NEXT:    s_waitcnt vmcnt(0)70; GFX900-NEXT:    s_setpc_b64 s[30:31]71;72; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_u_u:73; GFX90A:       ; %bb.0:74; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)75; GFX90A-NEXT:    v_mov_b32_e32 v8, 076; GFX90A-NEXT:    ;;#ASMSTART77; GFX90A-NEXT:    ; def v[0:7]78; GFX90A-NEXT:    ;;#ASMEND79; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]80; GFX90A-NEXT:    s_waitcnt vmcnt(0)81; GFX90A-NEXT:    s_setpc_b64 s[30:31]82;83; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_u_u:84; GFX942:       ; %bb.0:85; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)86; GFX942-NEXT:    v_mov_b32_e32 v8, 087; GFX942-NEXT:    ;;#ASMSTART88; GFX942-NEXT:    ; def v[0:7]89; GFX942-NEXT:    ;;#ASMEND90; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]91; GFX942-NEXT:    s_waitcnt vmcnt(0)92; GFX942-NEXT:    s_setpc_b64 s[30:31]93  %vec0 = call <4 x ptr> asm "; def $0", "=v"()94  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 poison, i32 poison>95  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 3296  ret void97}98 99define void @v_shuffle_v3p0_v4p0__2_u_u(ptr addrspace(1) inreg %ptr) {100; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_u_u:101; GFX900:       ; %bb.0:102; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)103; GFX900-NEXT:    v_mov_b32_e32 v8, 0104; GFX900-NEXT:    ;;#ASMSTART105; GFX900-NEXT:    ; def v[0:7]106; GFX900-NEXT:    ;;#ASMEND107; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]108; GFX900-NEXT:    s_waitcnt vmcnt(0)109; GFX900-NEXT:    s_setpc_b64 s[30:31]110;111; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_u_u:112; GFX90A:       ; %bb.0:113; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)114; GFX90A-NEXT:    v_mov_b32_e32 v8, 0115; GFX90A-NEXT:    ;;#ASMSTART116; GFX90A-NEXT:    ; def v[0:7]117; GFX90A-NEXT:    ;;#ASMEND118; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]119; GFX90A-NEXT:    s_waitcnt vmcnt(0)120; GFX90A-NEXT:    s_setpc_b64 s[30:31]121;122; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_u_u:123; GFX942:       ; %bb.0:124; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)125; GFX942-NEXT:    v_mov_b32_e32 v8, 0126; GFX942-NEXT:    ;;#ASMSTART127; GFX942-NEXT:    ; def v[0:7]128; GFX942-NEXT:    ;;#ASMEND129; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]130; GFX942-NEXT:    s_waitcnt vmcnt(0)131; GFX942-NEXT:    s_setpc_b64 s[30:31]132  %vec0 = call <4 x ptr> asm "; def $0", "=v"()133  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 poison, i32 poison>134  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32135  ret void136}137 138define void @v_shuffle_v3p0_v4p0__3_u_u(ptr addrspace(1) inreg %ptr) {139; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_u_u:140; GFX900:       ; %bb.0:141; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)142; GFX900-NEXT:    v_mov_b32_e32 v8, 0143; GFX900-NEXT:    ;;#ASMSTART144; GFX900-NEXT:    ; def v[0:7]145; GFX900-NEXT:    ;;#ASMEND146; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]147; GFX900-NEXT:    s_waitcnt vmcnt(0)148; GFX900-NEXT:    s_setpc_b64 s[30:31]149;150; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_u_u:151; GFX90A:       ; %bb.0:152; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)153; GFX90A-NEXT:    v_mov_b32_e32 v8, 0154; GFX90A-NEXT:    ;;#ASMSTART155; GFX90A-NEXT:    ; def v[0:7]156; GFX90A-NEXT:    ;;#ASMEND157; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], 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_v3p0_v4p0__3_u_u:162; GFX942:       ; %bb.0:163; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)164; GFX942-NEXT:    v_mov_b32_e32 v8, 0165; GFX942-NEXT:    ;;#ASMSTART166; GFX942-NEXT:    ; def v[0:7]167; GFX942-NEXT:    ;;#ASMEND168; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]169; GFX942-NEXT:    s_waitcnt vmcnt(0)170; GFX942-NEXT:    s_setpc_b64 s[30:31]171  %vec0 = call <4 x ptr> asm "; def $0", "=v"()172  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 poison, i32 poison>173  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32174  ret void175}176 177define void @v_shuffle_v3p0_v4p0__4_u_u(ptr addrspace(1) inreg %ptr) {178; GFX9-LABEL: v_shuffle_v3p0_v4p0__4_u_u:179; GFX9:       ; %bb.0:180; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)181; GFX9-NEXT:    s_setpc_b64 s[30:31]182  %vec0 = call <4 x ptr> asm "; def $0", "=v"()183  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 poison, i32 poison>184  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32185  ret void186}187 188define void @v_shuffle_v3p0_v4p0__5_u_u(ptr addrspace(1) inreg %ptr) {189; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_u_u:190; GFX900:       ; %bb.0:191; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)192; GFX900-NEXT:    v_mov_b32_e32 v8, 0193; GFX900-NEXT:    ;;#ASMSTART194; GFX900-NEXT:    ; def v[0:7]195; GFX900-NEXT:    ;;#ASMEND196; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]197; GFX900-NEXT:    s_waitcnt vmcnt(0)198; GFX900-NEXT:    s_setpc_b64 s[30:31]199;200; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_u_u:201; GFX90A:       ; %bb.0:202; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)203; GFX90A-NEXT:    v_mov_b32_e32 v8, 0204; GFX90A-NEXT:    ;;#ASMSTART205; GFX90A-NEXT:    ; def v[0:7]206; GFX90A-NEXT:    ;;#ASMEND207; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]208; GFX90A-NEXT:    s_waitcnt vmcnt(0)209; GFX90A-NEXT:    s_setpc_b64 s[30:31]210;211; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_u_u:212; GFX942:       ; %bb.0:213; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)214; GFX942-NEXT:    v_mov_b32_e32 v8, 0215; GFX942-NEXT:    ;;#ASMSTART216; GFX942-NEXT:    ; def v[0:7]217; GFX942-NEXT:    ;;#ASMEND218; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]219; GFX942-NEXT:    s_waitcnt vmcnt(0)220; GFX942-NEXT:    s_setpc_b64 s[30:31]221  %vec0 = call <4 x ptr> asm "; def $0", "=v"()222  %vec1 = call <4 x ptr> asm "; def $0", "=v"()223  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>224  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32225  ret void226}227 228define void @v_shuffle_v3p0_v4p0__6_u_u(ptr addrspace(1) inreg %ptr) {229; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_u_u:230; GFX900:       ; %bb.0:231; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)232; GFX900-NEXT:    v_mov_b32_e32 v8, 0233; GFX900-NEXT:    ;;#ASMSTART234; GFX900-NEXT:    ; def v[0:7]235; GFX900-NEXT:    ;;#ASMEND236; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]237; GFX900-NEXT:    s_waitcnt vmcnt(0)238; GFX900-NEXT:    s_setpc_b64 s[30:31]239;240; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_u_u:241; GFX90A:       ; %bb.0:242; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)243; GFX90A-NEXT:    v_mov_b32_e32 v8, 0244; GFX90A-NEXT:    ;;#ASMSTART245; GFX90A-NEXT:    ; def v[0:7]246; GFX90A-NEXT:    ;;#ASMEND247; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]248; GFX90A-NEXT:    s_waitcnt vmcnt(0)249; GFX90A-NEXT:    s_setpc_b64 s[30:31]250;251; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_u_u:252; GFX942:       ; %bb.0:253; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)254; GFX942-NEXT:    v_mov_b32_e32 v8, 0255; GFX942-NEXT:    ;;#ASMSTART256; GFX942-NEXT:    ; def v[0:7]257; GFX942-NEXT:    ;;#ASMEND258; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]259; GFX942-NEXT:    s_waitcnt vmcnt(0)260; GFX942-NEXT:    s_setpc_b64 s[30:31]261  %vec0 = call <4 x ptr> asm "; def $0", "=v"()262  %vec1 = call <4 x ptr> asm "; def $0", "=v"()263  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>264  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32265  ret void266}267 268define void @v_shuffle_v3p0_v4p0__7_u_u(ptr addrspace(1) inreg %ptr) {269; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_u:270; GFX900:       ; %bb.0:271; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)272; GFX900-NEXT:    v_mov_b32_e32 v8, 0273; GFX900-NEXT:    ;;#ASMSTART274; GFX900-NEXT:    ; def v[0:7]275; GFX900-NEXT:    ;;#ASMEND276; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]277; GFX900-NEXT:    s_waitcnt vmcnt(0)278; GFX900-NEXT:    s_setpc_b64 s[30:31]279;280; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_u:281; GFX90A:       ; %bb.0:282; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)283; GFX90A-NEXT:    v_mov_b32_e32 v8, 0284; GFX90A-NEXT:    ;;#ASMSTART285; GFX90A-NEXT:    ; def v[0:7]286; GFX90A-NEXT:    ;;#ASMEND287; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]288; GFX90A-NEXT:    s_waitcnt vmcnt(0)289; GFX90A-NEXT:    s_setpc_b64 s[30:31]290;291; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_u:292; GFX942:       ; %bb.0:293; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)294; GFX942-NEXT:    v_mov_b32_e32 v8, 0295; GFX942-NEXT:    ;;#ASMSTART296; GFX942-NEXT:    ; def v[0:7]297; GFX942-NEXT:    ;;#ASMEND298; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]299; GFX942-NEXT:    s_waitcnt vmcnt(0)300; GFX942-NEXT:    s_setpc_b64 s[30:31]301  %vec0 = call <4 x ptr> asm "; def $0", "=v"()302  %vec1 = call <4 x ptr> asm "; def $0", "=v"()303  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>304  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32305  ret void306}307 308define void @v_shuffle_v3p0_v4p0__7_0_u(ptr addrspace(1) inreg %ptr) {309; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_u:310; GFX900:       ; %bb.0:311; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)312; GFX900-NEXT:    v_mov_b32_e32 v16, 0313; GFX900-NEXT:    ;;#ASMSTART314; GFX900-NEXT:    ; def v[8:15]315; GFX900-NEXT:    ;;#ASMEND316; GFX900-NEXT:    ;;#ASMSTART317; GFX900-NEXT:    ; def v[0:7]318; GFX900-NEXT:    ;;#ASMEND319; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]320; GFX900-NEXT:    s_waitcnt vmcnt(0)321; GFX900-NEXT:    s_setpc_b64 s[30:31]322;323; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_u:324; GFX90A:       ; %bb.0:325; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)326; GFX90A-NEXT:    v_mov_b32_e32 v16, 0327; GFX90A-NEXT:    ;;#ASMSTART328; GFX90A-NEXT:    ; def v[8:15]329; GFX90A-NEXT:    ;;#ASMEND330; GFX90A-NEXT:    ;;#ASMSTART331; GFX90A-NEXT:    ; def v[0:7]332; GFX90A-NEXT:    ;;#ASMEND333; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]334; GFX90A-NEXT:    s_waitcnt vmcnt(0)335; GFX90A-NEXT:    s_setpc_b64 s[30:31]336;337; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_u:338; GFX942:       ; %bb.0:339; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)340; GFX942-NEXT:    v_mov_b32_e32 v16, 0341; GFX942-NEXT:    ;;#ASMSTART342; GFX942-NEXT:    ; def v[8:15]343; GFX942-NEXT:    ;;#ASMEND344; GFX942-NEXT:    ;;#ASMSTART345; GFX942-NEXT:    ; def v[0:7]346; GFX942-NEXT:    ;;#ASMEND347; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]348; GFX942-NEXT:    s_waitcnt vmcnt(0)349; GFX942-NEXT:    s_setpc_b64 s[30:31]350  %vec0 = call <4 x ptr> asm "; def $0", "=v"()351  %vec1 = call <4 x ptr> asm "; def $0", "=v"()352  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>353  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32354  ret void355}356 357define void @v_shuffle_v3p0_v4p0__7_1_u(ptr addrspace(1) inreg %ptr) {358; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_u:359; GFX900:       ; %bb.0:360; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)361; GFX900-NEXT:    v_mov_b32_e32 v14, 0362; GFX900-NEXT:    ;;#ASMSTART363; GFX900-NEXT:    ; def v[6:13]364; GFX900-NEXT:    ;;#ASMEND365; GFX900-NEXT:    ;;#ASMSTART366; GFX900-NEXT:    ; def v[0:7]367; GFX900-NEXT:    ;;#ASMEND368; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]369; GFX900-NEXT:    s_waitcnt vmcnt(0)370; GFX900-NEXT:    s_setpc_b64 s[30:31]371;372; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_u:373; GFX90A:       ; %bb.0:374; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)375; GFX90A-NEXT:    v_mov_b32_e32 v14, 0376; GFX90A-NEXT:    ;;#ASMSTART377; GFX90A-NEXT:    ; def v[6:13]378; GFX90A-NEXT:    ;;#ASMEND379; GFX90A-NEXT:    ;;#ASMSTART380; GFX90A-NEXT:    ; def v[0:7]381; GFX90A-NEXT:    ;;#ASMEND382; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]383; GFX90A-NEXT:    s_waitcnt vmcnt(0)384; GFX90A-NEXT:    s_setpc_b64 s[30:31]385;386; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_u:387; GFX942:       ; %bb.0:388; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)389; GFX942-NEXT:    v_mov_b32_e32 v14, 0390; GFX942-NEXT:    ;;#ASMSTART391; GFX942-NEXT:    ; def v[6:13]392; GFX942-NEXT:    ;;#ASMEND393; GFX942-NEXT:    s_nop 0394; GFX942-NEXT:    ;;#ASMSTART395; GFX942-NEXT:    ; def v[0:7]396; GFX942-NEXT:    ;;#ASMEND397; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]398; GFX942-NEXT:    s_waitcnt vmcnt(0)399; GFX942-NEXT:    s_setpc_b64 s[30:31]400  %vec0 = call <4 x ptr> asm "; def $0", "=v"()401  %vec1 = call <4 x ptr> asm "; def $0", "=v"()402  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>403  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32404  ret void405}406 407define void @v_shuffle_v3p0_v4p0__7_2_u(ptr addrspace(1) inreg %ptr) {408; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_u:409; GFX900:       ; %bb.0:410; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)411; GFX900-NEXT:    v_mov_b32_e32 v12, 0412; GFX900-NEXT:    ;;#ASMSTART413; GFX900-NEXT:    ; def v[4:11]414; GFX900-NEXT:    ;;#ASMEND415; GFX900-NEXT:    ;;#ASMSTART416; GFX900-NEXT:    ; def v[0:7]417; GFX900-NEXT:    ;;#ASMEND418; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]419; GFX900-NEXT:    s_waitcnt vmcnt(0)420; GFX900-NEXT:    s_setpc_b64 s[30:31]421;422; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_u:423; GFX90A:       ; %bb.0:424; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)425; GFX90A-NEXT:    v_mov_b32_e32 v12, 0426; GFX90A-NEXT:    ;;#ASMSTART427; GFX90A-NEXT:    ; def v[4:11]428; GFX90A-NEXT:    ;;#ASMEND429; GFX90A-NEXT:    ;;#ASMSTART430; GFX90A-NEXT:    ; def v[0:7]431; GFX90A-NEXT:    ;;#ASMEND432; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]433; GFX90A-NEXT:    s_waitcnt vmcnt(0)434; GFX90A-NEXT:    s_setpc_b64 s[30:31]435;436; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_u:437; GFX942:       ; %bb.0:438; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)439; GFX942-NEXT:    v_mov_b32_e32 v12, 0440; GFX942-NEXT:    ;;#ASMSTART441; GFX942-NEXT:    ; def v[4:11]442; GFX942-NEXT:    ;;#ASMEND443; GFX942-NEXT:    s_nop 0444; GFX942-NEXT:    ;;#ASMSTART445; GFX942-NEXT:    ; def v[0:7]446; GFX942-NEXT:    ;;#ASMEND447; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]448; GFX942-NEXT:    s_waitcnt vmcnt(0)449; GFX942-NEXT:    s_setpc_b64 s[30:31]450  %vec0 = call <4 x ptr> asm "; def $0", "=v"()451  %vec1 = call <4 x ptr> asm "; def $0", "=v"()452  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>453  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32454  ret void455}456 457define void @v_shuffle_v3p0_v4p0__7_3_u(ptr addrspace(1) inreg %ptr) {458; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_u:459; GFX900:       ; %bb.0:460; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)461; GFX900-NEXT:    v_mov_b32_e32 v10, 0462; GFX900-NEXT:    ;;#ASMSTART463; GFX900-NEXT:    ; def v[2:9]464; GFX900-NEXT:    ;;#ASMEND465; GFX900-NEXT:    ;;#ASMSTART466; GFX900-NEXT:    ; def v[0:7]467; GFX900-NEXT:    ;;#ASMEND468; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]469; GFX900-NEXT:    s_waitcnt vmcnt(0)470; GFX900-NEXT:    s_setpc_b64 s[30:31]471;472; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_u:473; GFX90A:       ; %bb.0:474; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)475; GFX90A-NEXT:    v_mov_b32_e32 v10, 0476; GFX90A-NEXT:    ;;#ASMSTART477; GFX90A-NEXT:    ; def v[2:9]478; GFX90A-NEXT:    ;;#ASMEND479; GFX90A-NEXT:    ;;#ASMSTART480; GFX90A-NEXT:    ; def v[0:7]481; GFX90A-NEXT:    ;;#ASMEND482; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]483; GFX90A-NEXT:    s_waitcnt vmcnt(0)484; GFX90A-NEXT:    s_setpc_b64 s[30:31]485;486; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_u:487; GFX942:       ; %bb.0:488; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)489; GFX942-NEXT:    v_mov_b32_e32 v10, 0490; GFX942-NEXT:    ;;#ASMSTART491; GFX942-NEXT:    ; def v[2:9]492; GFX942-NEXT:    ;;#ASMEND493; GFX942-NEXT:    s_nop 0494; GFX942-NEXT:    ;;#ASMSTART495; GFX942-NEXT:    ; def v[0:7]496; GFX942-NEXT:    ;;#ASMEND497; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]498; GFX942-NEXT:    s_waitcnt vmcnt(0)499; GFX942-NEXT:    s_setpc_b64 s[30:31]500  %vec0 = call <4 x ptr> asm "; def $0", "=v"()501  %vec1 = call <4 x ptr> asm "; def $0", "=v"()502  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>503  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32504  ret void505}506 507define void @v_shuffle_v3p0_v4p0__7_4_u(ptr addrspace(1) inreg %ptr) {508; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_u:509; GFX900:       ; %bb.0:510; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)511; GFX900-NEXT:    v_mov_b32_e32 v10, 0512; GFX900-NEXT:    ;;#ASMSTART513; GFX900-NEXT:    ; def v[0:7]514; GFX900-NEXT:    ;;#ASMEND515; GFX900-NEXT:    v_mov_b32_e32 v8, v0516; GFX900-NEXT:    v_mov_b32_e32 v9, v1517; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]518; GFX900-NEXT:    s_waitcnt vmcnt(0)519; GFX900-NEXT:    s_setpc_b64 s[30:31]520;521; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_u:522; GFX90A:       ; %bb.0:523; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)524; GFX90A-NEXT:    v_mov_b32_e32 v10, 0525; GFX90A-NEXT:    ;;#ASMSTART526; GFX90A-NEXT:    ; def v[0:7]527; GFX90A-NEXT:    ;;#ASMEND528; GFX90A-NEXT:    v_mov_b32_e32 v8, v0529; GFX90A-NEXT:    v_mov_b32_e32 v9, v1530; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]531; GFX90A-NEXT:    s_waitcnt vmcnt(0)532; GFX90A-NEXT:    s_setpc_b64 s[30:31]533;534; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_u:535; GFX942:       ; %bb.0:536; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)537; GFX942-NEXT:    v_mov_b32_e32 v10, 0538; GFX942-NEXT:    ;;#ASMSTART539; GFX942-NEXT:    ; def v[0:7]540; GFX942-NEXT:    ;;#ASMEND541; GFX942-NEXT:    s_nop 0542; GFX942-NEXT:    v_mov_b32_e32 v8, v0543; GFX942-NEXT:    v_mov_b32_e32 v9, v1544; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]545; GFX942-NEXT:    s_waitcnt vmcnt(0)546; GFX942-NEXT:    s_setpc_b64 s[30:31]547  %vec0 = call <4 x ptr> asm "; def $0", "=v"()548  %vec1 = call <4 x ptr> asm "; def $0", "=v"()549  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>550  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32551  ret void552}553 554define void @v_shuffle_v3p0_v4p0__7_5_u(ptr addrspace(1) inreg %ptr) {555; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_u:556; GFX900:       ; %bb.0:557; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)558; GFX900-NEXT:    v_mov_b32_e32 v10, 0559; GFX900-NEXT:    ;;#ASMSTART560; GFX900-NEXT:    ; def v[0:7]561; GFX900-NEXT:    ;;#ASMEND562; GFX900-NEXT:    v_mov_b32_e32 v8, v2563; GFX900-NEXT:    v_mov_b32_e32 v9, v3564; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]565; GFX900-NEXT:    s_waitcnt vmcnt(0)566; GFX900-NEXT:    s_setpc_b64 s[30:31]567;568; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_u:569; GFX90A:       ; %bb.0:570; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)571; GFX90A-NEXT:    v_mov_b32_e32 v10, 0572; GFX90A-NEXT:    ;;#ASMSTART573; GFX90A-NEXT:    ; def v[0:7]574; GFX90A-NEXT:    ;;#ASMEND575; GFX90A-NEXT:    v_mov_b32_e32 v8, v2576; GFX90A-NEXT:    v_mov_b32_e32 v9, v3577; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]578; GFX90A-NEXT:    s_waitcnt vmcnt(0)579; GFX90A-NEXT:    s_setpc_b64 s[30:31]580;581; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_u:582; GFX942:       ; %bb.0:583; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)584; GFX942-NEXT:    v_mov_b32_e32 v10, 0585; GFX942-NEXT:    ;;#ASMSTART586; GFX942-NEXT:    ; def v[0:7]587; GFX942-NEXT:    ;;#ASMEND588; GFX942-NEXT:    s_nop 0589; GFX942-NEXT:    v_mov_b32_e32 v8, v2590; GFX942-NEXT:    v_mov_b32_e32 v9, v3591; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]592; GFX942-NEXT:    s_waitcnt vmcnt(0)593; GFX942-NEXT:    s_setpc_b64 s[30:31]594  %vec0 = call <4 x ptr> asm "; def $0", "=v"()595  %vec1 = call <4 x ptr> asm "; def $0", "=v"()596  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>597  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32598  ret void599}600 601define void @v_shuffle_v3p0_v4p0__7_6_u(ptr addrspace(1) inreg %ptr) {602; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_u:603; GFX900:       ; %bb.0:604; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)605; GFX900-NEXT:    v_mov_b32_e32 v10, 0606; GFX900-NEXT:    ;;#ASMSTART607; GFX900-NEXT:    ; def v[0:7]608; GFX900-NEXT:    ;;#ASMEND609; GFX900-NEXT:    v_mov_b32_e32 v8, v4610; GFX900-NEXT:    v_mov_b32_e32 v9, v5611; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]612; GFX900-NEXT:    s_waitcnt vmcnt(0)613; GFX900-NEXT:    s_setpc_b64 s[30:31]614;615; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_u:616; GFX90A:       ; %bb.0:617; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)618; GFX90A-NEXT:    v_mov_b32_e32 v10, 0619; GFX90A-NEXT:    ;;#ASMSTART620; GFX90A-NEXT:    ; def v[0:7]621; GFX90A-NEXT:    ;;#ASMEND622; GFX90A-NEXT:    v_mov_b32_e32 v8, v4623; GFX90A-NEXT:    v_mov_b32_e32 v9, v5624; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]625; GFX90A-NEXT:    s_waitcnt vmcnt(0)626; GFX90A-NEXT:    s_setpc_b64 s[30:31]627;628; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_u:629; GFX942:       ; %bb.0:630; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)631; GFX942-NEXT:    v_mov_b32_e32 v10, 0632; GFX942-NEXT:    ;;#ASMSTART633; GFX942-NEXT:    ; def v[0:7]634; GFX942-NEXT:    ;;#ASMEND635; GFX942-NEXT:    s_nop 0636; GFX942-NEXT:    v_mov_b32_e32 v8, v4637; GFX942-NEXT:    v_mov_b32_e32 v9, v5638; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]639; GFX942-NEXT:    s_waitcnt vmcnt(0)640; GFX942-NEXT:    s_setpc_b64 s[30:31]641  %vec0 = call <4 x ptr> asm "; def $0", "=v"()642  %vec1 = call <4 x ptr> asm "; def $0", "=v"()643  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>644  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32645  ret void646}647 648define void @v_shuffle_v3p0_v4p0__7_7_u(ptr addrspace(1) inreg %ptr) {649; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_u:650; GFX900:       ; %bb.0:651; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)652; GFX900-NEXT:    v_mov_b32_e32 v10, 0653; GFX900-NEXT:    ;;#ASMSTART654; GFX900-NEXT:    ; def v[0:7]655; GFX900-NEXT:    ;;#ASMEND656; GFX900-NEXT:    v_mov_b32_e32 v8, v6657; GFX900-NEXT:    v_mov_b32_e32 v9, v7658; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]659; GFX900-NEXT:    s_waitcnt vmcnt(0)660; GFX900-NEXT:    s_setpc_b64 s[30:31]661;662; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_u:663; GFX90A:       ; %bb.0:664; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)665; GFX90A-NEXT:    v_mov_b32_e32 v10, 0666; GFX90A-NEXT:    ;;#ASMSTART667; GFX90A-NEXT:    ; def v[0:7]668; GFX90A-NEXT:    ;;#ASMEND669; GFX90A-NEXT:    v_mov_b32_e32 v8, v6670; GFX90A-NEXT:    v_mov_b32_e32 v9, v7671; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]672; GFX90A-NEXT:    s_waitcnt vmcnt(0)673; GFX90A-NEXT:    s_setpc_b64 s[30:31]674;675; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_u:676; GFX942:       ; %bb.0:677; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)678; GFX942-NEXT:    v_mov_b32_e32 v10, 0679; GFX942-NEXT:    ;;#ASMSTART680; GFX942-NEXT:    ; def v[0:7]681; GFX942-NEXT:    ;;#ASMEND682; GFX942-NEXT:    s_nop 0683; GFX942-NEXT:    v_mov_b32_e32 v8, v6684; GFX942-NEXT:    v_mov_b32_e32 v9, v7685; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]686; GFX942-NEXT:    s_waitcnt vmcnt(0)687; GFX942-NEXT:    s_setpc_b64 s[30:31]688  %vec0 = call <4 x ptr> asm "; def $0", "=v"()689  %vec1 = call <4 x ptr> asm "; def $0", "=v"()690  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>691  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32692  ret void693}694 695define void @v_shuffle_v3p0_v4p0__7_7_0(ptr addrspace(1) inreg %ptr) {696; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_0:697; GFX900:       ; %bb.0:698; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)699; GFX900-NEXT:    v_mov_b32_e32 v16, 0700; GFX900-NEXT:    ;;#ASMSTART701; GFX900-NEXT:    ; def v[8:15]702; GFX900-NEXT:    ;;#ASMEND703; GFX900-NEXT:    ;;#ASMSTART704; GFX900-NEXT:    ; def v[0:7]705; GFX900-NEXT:    ;;#ASMEND706; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:16707; GFX900-NEXT:    v_mov_b32_e32 v8, v6708; GFX900-NEXT:    v_mov_b32_e32 v9, v7709; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]710; GFX900-NEXT:    s_waitcnt vmcnt(0)711; GFX900-NEXT:    s_setpc_b64 s[30:31]712;713; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_0:714; GFX90A:       ; %bb.0:715; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)716; GFX90A-NEXT:    v_mov_b32_e32 v16, 0717; GFX90A-NEXT:    ;;#ASMSTART718; GFX90A-NEXT:    ; def v[8:15]719; GFX90A-NEXT:    ;;#ASMEND720; GFX90A-NEXT:    ;;#ASMSTART721; GFX90A-NEXT:    ; def v[0:7]722; GFX90A-NEXT:    ;;#ASMEND723; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:16724; GFX90A-NEXT:    v_mov_b32_e32 v8, v6725; GFX90A-NEXT:    v_mov_b32_e32 v9, v7726; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]727; GFX90A-NEXT:    s_waitcnt vmcnt(0)728; GFX90A-NEXT:    s_setpc_b64 s[30:31]729;730; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_0:731; GFX942:       ; %bb.0:732; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)733; GFX942-NEXT:    v_mov_b32_e32 v16, 0734; GFX942-NEXT:    ;;#ASMSTART735; GFX942-NEXT:    ; def v[8:15]736; GFX942-NEXT:    ;;#ASMEND737; GFX942-NEXT:    ;;#ASMSTART738; GFX942-NEXT:    ; def v[0:7]739; GFX942-NEXT:    ;;#ASMEND740; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:16741; GFX942-NEXT:    v_mov_b32_e32 v8, v6742; GFX942-NEXT:    v_mov_b32_e32 v9, v7743; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]744; GFX942-NEXT:    s_waitcnt vmcnt(0)745; GFX942-NEXT:    s_setpc_b64 s[30:31]746  %vec0 = call <4 x ptr> asm "; def $0", "=v"()747  %vec1 = call <4 x ptr> asm "; def $0", "=v"()748  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 0>749  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32750  ret void751}752 753define void @v_shuffle_v3p0_v4p0__7_7_1(ptr addrspace(1) inreg %ptr) {754; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_1:755; GFX900:       ; %bb.0:756; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)757; GFX900-NEXT:    v_mov_b32_e32 v14, 0758; GFX900-NEXT:    ;;#ASMSTART759; GFX900-NEXT:    ; def v[6:13]760; GFX900-NEXT:    ;;#ASMEND761; GFX900-NEXT:    ;;#ASMSTART762; GFX900-NEXT:    ; def v[0:7]763; GFX900-NEXT:    ;;#ASMEND764; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16765; GFX900-NEXT:    v_mov_b32_e32 v8, v6766; GFX900-NEXT:    v_mov_b32_e32 v9, v7767; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]768; GFX900-NEXT:    s_waitcnt vmcnt(0)769; GFX900-NEXT:    s_setpc_b64 s[30:31]770;771; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_1:772; GFX90A:       ; %bb.0:773; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)774; GFX90A-NEXT:    v_mov_b32_e32 v14, 0775; GFX90A-NEXT:    ;;#ASMSTART776; GFX90A-NEXT:    ; def v[6:13]777; GFX90A-NEXT:    ;;#ASMEND778; GFX90A-NEXT:    ;;#ASMSTART779; GFX90A-NEXT:    ; def v[0:7]780; GFX90A-NEXT:    ;;#ASMEND781; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16782; GFX90A-NEXT:    v_mov_b32_e32 v8, v6783; GFX90A-NEXT:    v_mov_b32_e32 v9, v7784; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]785; GFX90A-NEXT:    s_waitcnt vmcnt(0)786; GFX90A-NEXT:    s_setpc_b64 s[30:31]787;788; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_1:789; GFX942:       ; %bb.0:790; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)791; GFX942-NEXT:    v_mov_b32_e32 v14, 0792; GFX942-NEXT:    ;;#ASMSTART793; GFX942-NEXT:    ; def v[6:13]794; GFX942-NEXT:    ;;#ASMEND795; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:16796; GFX942-NEXT:    ;;#ASMSTART797; GFX942-NEXT:    ; def v[0:7]798; GFX942-NEXT:    ;;#ASMEND799; GFX942-NEXT:    s_nop 0800; GFX942-NEXT:    v_mov_b32_e32 v8, v6801; GFX942-NEXT:    v_mov_b32_e32 v9, v7802; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]803; GFX942-NEXT:    s_waitcnt vmcnt(0)804; GFX942-NEXT:    s_setpc_b64 s[30:31]805  %vec0 = call <4 x ptr> asm "; def $0", "=v"()806  %vec1 = call <4 x ptr> asm "; def $0", "=v"()807  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 1>808  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32809  ret void810}811 812define void @v_shuffle_v3p0_v4p0__7_7_2(ptr addrspace(1) inreg %ptr) {813; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_2:814; GFX900:       ; %bb.0:815; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)816; GFX900-NEXT:    v_mov_b32_e32 v12, 0817; GFX900-NEXT:    ;;#ASMSTART818; GFX900-NEXT:    ; def v[4:11]819; GFX900-NEXT:    ;;#ASMEND820; GFX900-NEXT:    ;;#ASMSTART821; GFX900-NEXT:    ; def v[0:7]822; GFX900-NEXT:    ;;#ASMEND823; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16824; GFX900-NEXT:    v_mov_b32_e32 v8, v6825; GFX900-NEXT:    v_mov_b32_e32 v9, v7826; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]827; GFX900-NEXT:    s_waitcnt vmcnt(0)828; GFX900-NEXT:    s_setpc_b64 s[30:31]829;830; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_2:831; GFX90A:       ; %bb.0:832; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)833; GFX90A-NEXT:    v_mov_b32_e32 v12, 0834; GFX90A-NEXT:    ;;#ASMSTART835; GFX90A-NEXT:    ; def v[4:11]836; GFX90A-NEXT:    ;;#ASMEND837; GFX90A-NEXT:    ;;#ASMSTART838; GFX90A-NEXT:    ; def v[0:7]839; GFX90A-NEXT:    ;;#ASMEND840; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16841; GFX90A-NEXT:    v_mov_b32_e32 v8, v6842; GFX90A-NEXT:    v_mov_b32_e32 v9, v7843; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]844; GFX90A-NEXT:    s_waitcnt vmcnt(0)845; GFX90A-NEXT:    s_setpc_b64 s[30:31]846;847; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_2:848; GFX942:       ; %bb.0:849; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)850; GFX942-NEXT:    v_mov_b32_e32 v12, 0851; GFX942-NEXT:    ;;#ASMSTART852; GFX942-NEXT:    ; def v[4:11]853; GFX942-NEXT:    ;;#ASMEND854; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:16855; GFX942-NEXT:    ;;#ASMSTART856; GFX942-NEXT:    ; def v[0:7]857; GFX942-NEXT:    ;;#ASMEND858; GFX942-NEXT:    s_nop 0859; GFX942-NEXT:    v_mov_b32_e32 v8, v6860; GFX942-NEXT:    v_mov_b32_e32 v9, v7861; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]862; GFX942-NEXT:    s_waitcnt vmcnt(0)863; GFX942-NEXT:    s_setpc_b64 s[30:31]864  %vec0 = call <4 x ptr> asm "; def $0", "=v"()865  %vec1 = call <4 x ptr> asm "; def $0", "=v"()866  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 2>867  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32868  ret void869}870 871define void @v_shuffle_v3p0_v4p0__7_7_3(ptr addrspace(1) inreg %ptr) {872; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_3:873; GFX900:       ; %bb.0:874; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)875; GFX900-NEXT:    v_mov_b32_e32 v10, 0876; GFX900-NEXT:    ;;#ASMSTART877; GFX900-NEXT:    ; def v[2:9]878; GFX900-NEXT:    ;;#ASMEND879; GFX900-NEXT:    ;;#ASMSTART880; GFX900-NEXT:    ; def v[0:7]881; GFX900-NEXT:    ;;#ASMEND882; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:16883; GFX900-NEXT:    v_mov_b32_e32 v8, v6884; GFX900-NEXT:    v_mov_b32_e32 v9, v7885; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]886; GFX900-NEXT:    s_waitcnt vmcnt(0)887; GFX900-NEXT:    s_setpc_b64 s[30:31]888;889; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_3:890; GFX90A:       ; %bb.0:891; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)892; GFX90A-NEXT:    v_mov_b32_e32 v10, 0893; GFX90A-NEXT:    ;;#ASMSTART894; GFX90A-NEXT:    ; def v[2:9]895; GFX90A-NEXT:    ;;#ASMEND896; GFX90A-NEXT:    ;;#ASMSTART897; GFX90A-NEXT:    ; def v[0:7]898; GFX90A-NEXT:    ;;#ASMEND899; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:16900; GFX90A-NEXT:    v_mov_b32_e32 v8, v6901; GFX90A-NEXT:    v_mov_b32_e32 v9, v7902; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]903; GFX90A-NEXT:    s_waitcnt vmcnt(0)904; GFX90A-NEXT:    s_setpc_b64 s[30:31]905;906; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_3:907; GFX942:       ; %bb.0:908; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)909; GFX942-NEXT:    v_mov_b32_e32 v10, 0910; GFX942-NEXT:    ;;#ASMSTART911; GFX942-NEXT:    ; def v[2:9]912; GFX942-NEXT:    ;;#ASMEND913; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:16914; GFX942-NEXT:    ;;#ASMSTART915; GFX942-NEXT:    ; def v[0:7]916; GFX942-NEXT:    ;;#ASMEND917; GFX942-NEXT:    s_nop 0918; GFX942-NEXT:    v_mov_b32_e32 v8, v6919; GFX942-NEXT:    v_mov_b32_e32 v9, v7920; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]921; GFX942-NEXT:    s_waitcnt vmcnt(0)922; GFX942-NEXT:    s_setpc_b64 s[30:31]923  %vec0 = call <4 x ptr> asm "; def $0", "=v"()924  %vec1 = call <4 x ptr> asm "; def $0", "=v"()925  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 3>926  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32927  ret void928}929 930define void @v_shuffle_v3p0_v4p0__7_7_4(ptr addrspace(1) inreg %ptr) {931; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_4:932; GFX900:       ; %bb.0:933; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)934; GFX900-NEXT:    v_mov_b32_e32 v10, 0935; GFX900-NEXT:    ;;#ASMSTART936; GFX900-NEXT:    ; def v[0:7]937; GFX900-NEXT:    ;;#ASMEND938; GFX900-NEXT:    v_mov_b32_e32 v8, v6939; GFX900-NEXT:    v_mov_b32_e32 v9, v7940; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16941; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]942; GFX900-NEXT:    s_waitcnt vmcnt(0)943; GFX900-NEXT:    s_setpc_b64 s[30:31]944;945; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_4:946; GFX90A:       ; %bb.0:947; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)948; GFX90A-NEXT:    v_mov_b32_e32 v10, 0949; GFX90A-NEXT:    ;;#ASMSTART950; GFX90A-NEXT:    ; def v[0:7]951; GFX90A-NEXT:    ;;#ASMEND952; GFX90A-NEXT:    v_mov_b32_e32 v8, v6953; GFX90A-NEXT:    v_mov_b32_e32 v9, v7954; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16955; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]956; GFX90A-NEXT:    s_waitcnt vmcnt(0)957; GFX90A-NEXT:    s_setpc_b64 s[30:31]958;959; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_4:960; GFX942:       ; %bb.0:961; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)962; GFX942-NEXT:    v_mov_b32_e32 v10, 0963; GFX942-NEXT:    ;;#ASMSTART964; GFX942-NEXT:    ; def v[0:7]965; GFX942-NEXT:    ;;#ASMEND966; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16967; GFX942-NEXT:    v_mov_b32_e32 v8, v6968; GFX942-NEXT:    v_mov_b32_e32 v9, v7969; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]970; GFX942-NEXT:    s_waitcnt vmcnt(0)971; GFX942-NEXT:    s_setpc_b64 s[30:31]972  %vec0 = call <4 x ptr> asm "; def $0", "=v"()973  %vec1 = call <4 x ptr> asm "; def $0", "=v"()974  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 4>975  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32976  ret void977}978 979define void @v_shuffle_v3p0_v4p0__7_7_5(ptr addrspace(1) inreg %ptr) {980; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_5:981; GFX900:       ; %bb.0:982; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)983; GFX900-NEXT:    v_mov_b32_e32 v10, 0984; GFX900-NEXT:    ;;#ASMSTART985; GFX900-NEXT:    ; def v[0:7]986; GFX900-NEXT:    ;;#ASMEND987; GFX900-NEXT:    v_mov_b32_e32 v8, v6988; GFX900-NEXT:    v_mov_b32_e32 v9, v7989; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:16990; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]991; GFX900-NEXT:    s_waitcnt vmcnt(0)992; GFX900-NEXT:    s_setpc_b64 s[30:31]993;994; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_5:995; GFX90A:       ; %bb.0:996; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)997; GFX90A-NEXT:    v_mov_b32_e32 v10, 0998; GFX90A-NEXT:    ;;#ASMSTART999; GFX90A-NEXT:    ; def v[0:7]1000; GFX90A-NEXT:    ;;#ASMEND1001; GFX90A-NEXT:    v_mov_b32_e32 v8, v61002; GFX90A-NEXT:    v_mov_b32_e32 v9, v71003; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:161004; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1005; GFX90A-NEXT:    s_waitcnt vmcnt(0)1006; GFX90A-NEXT:    s_setpc_b64 s[30:31]1007;1008; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_5:1009; GFX942:       ; %bb.0:1010; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1011; GFX942-NEXT:    v_mov_b32_e32 v10, 01012; GFX942-NEXT:    ;;#ASMSTART1013; GFX942-NEXT:    ; def v[0:7]1014; GFX942-NEXT:    ;;#ASMEND1015; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:161016; GFX942-NEXT:    v_mov_b32_e32 v8, v61017; GFX942-NEXT:    v_mov_b32_e32 v9, v71018; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]1019; GFX942-NEXT:    s_waitcnt vmcnt(0)1020; GFX942-NEXT:    s_setpc_b64 s[30:31]1021  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1022  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1023  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 5>1024  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321025  ret void1026}1027 1028define void @v_shuffle_v3p0_v4p0__7_7_6(ptr addrspace(1) inreg %ptr) {1029; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_6:1030; GFX900:       ; %bb.0:1031; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1032; GFX900-NEXT:    v_mov_b32_e32 v10, 01033; GFX900-NEXT:    ;;#ASMSTART1034; GFX900-NEXT:    ; def v[0:7]1035; GFX900-NEXT:    ;;#ASMEND1036; GFX900-NEXT:    v_mov_b32_e32 v8, v61037; GFX900-NEXT:    v_mov_b32_e32 v9, v71038; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:161039; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1040; GFX900-NEXT:    s_waitcnt vmcnt(0)1041; GFX900-NEXT:    s_setpc_b64 s[30:31]1042;1043; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_6:1044; GFX90A:       ; %bb.0:1045; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1046; GFX90A-NEXT:    v_mov_b32_e32 v10, 01047; GFX90A-NEXT:    ;;#ASMSTART1048; GFX90A-NEXT:    ; def v[0:7]1049; GFX90A-NEXT:    ;;#ASMEND1050; GFX90A-NEXT:    v_mov_b32_e32 v8, v61051; GFX90A-NEXT:    v_mov_b32_e32 v9, v71052; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:161053; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1054; GFX90A-NEXT:    s_waitcnt vmcnt(0)1055; GFX90A-NEXT:    s_setpc_b64 s[30:31]1056;1057; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_6:1058; GFX942:       ; %bb.0:1059; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1060; GFX942-NEXT:    v_mov_b32_e32 v10, 01061; GFX942-NEXT:    ;;#ASMSTART1062; GFX942-NEXT:    ; def v[0:7]1063; GFX942-NEXT:    ;;#ASMEND1064; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:161065; GFX942-NEXT:    v_mov_b32_e32 v8, v61066; GFX942-NEXT:    v_mov_b32_e32 v9, v71067; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]1068; GFX942-NEXT:    s_waitcnt vmcnt(0)1069; GFX942-NEXT:    s_setpc_b64 s[30:31]1070  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1071  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1072  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 6>1073  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321074  ret void1075}1076 1077define void @v_shuffle_v3p0_v4p0__7_7_7(ptr addrspace(1) inreg %ptr) {1078; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_7:1079; GFX900:       ; %bb.0:1080; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1081; GFX900-NEXT:    v_mov_b32_e32 v10, 01082; GFX900-NEXT:    ;;#ASMSTART1083; GFX900-NEXT:    ; def v[0:7]1084; GFX900-NEXT:    ;;#ASMEND1085; GFX900-NEXT:    v_mov_b32_e32 v8, v61086; GFX900-NEXT:    v_mov_b32_e32 v9, v71087; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:161088; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1089; GFX900-NEXT:    s_waitcnt vmcnt(0)1090; GFX900-NEXT:    s_setpc_b64 s[30:31]1091;1092; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_7:1093; GFX90A:       ; %bb.0:1094; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1095; GFX90A-NEXT:    v_mov_b32_e32 v10, 01096; GFX90A-NEXT:    ;;#ASMSTART1097; GFX90A-NEXT:    ; def v[0:7]1098; GFX90A-NEXT:    ;;#ASMEND1099; GFX90A-NEXT:    v_mov_b32_e32 v8, v61100; GFX90A-NEXT:    v_mov_b32_e32 v9, v71101; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:161102; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1103; GFX90A-NEXT:    s_waitcnt vmcnt(0)1104; GFX90A-NEXT:    s_setpc_b64 s[30:31]1105;1106; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_7:1107; GFX942:       ; %bb.0:1108; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1109; GFX942-NEXT:    v_mov_b32_e32 v10, 01110; GFX942-NEXT:    ;;#ASMSTART1111; GFX942-NEXT:    ; def v[0:7]1112; GFX942-NEXT:    ;;#ASMEND1113; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:161114; GFX942-NEXT:    v_mov_b32_e32 v8, v61115; GFX942-NEXT:    v_mov_b32_e32 v9, v71116; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]1117; GFX942-NEXT:    s_waitcnt vmcnt(0)1118; GFX942-NEXT:    s_setpc_b64 s[30:31]1119  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1120  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1121  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 7>1122  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321123  ret void1124}1125 1126define void @v_shuffle_v3p0_v4p0__u_0_0(ptr addrspace(1) inreg %ptr) {1127; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_0_0:1128; GFX900:       ; %bb.0:1129; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1130; GFX900-NEXT:    v_mov_b32_e32 v0, 01131; GFX900-NEXT:    ;;#ASMSTART1132; GFX900-NEXT:    ; def v[2:9]1133; GFX900-NEXT:    ;;#ASMEND1134; GFX900-NEXT:    global_store_dwordx2 v0, v[2:3], s[16:17] offset:161135; GFX900-NEXT:    global_store_dwordx4 v0, v[0:3], s[16:17]1136; GFX900-NEXT:    s_waitcnt vmcnt(0)1137; GFX900-NEXT:    s_setpc_b64 s[30:31]1138;1139; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_0_0:1140; GFX90A:       ; %bb.0:1141; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1142; GFX90A-NEXT:    v_mov_b32_e32 v0, 01143; GFX90A-NEXT:    ;;#ASMSTART1144; GFX90A-NEXT:    ; def v[2:9]1145; GFX90A-NEXT:    ;;#ASMEND1146; GFX90A-NEXT:    global_store_dwordx2 v0, v[2:3], s[16:17] offset:161147; GFX90A-NEXT:    global_store_dwordx4 v0, v[0:3], s[16:17]1148; GFX90A-NEXT:    s_waitcnt vmcnt(0)1149; GFX90A-NEXT:    s_setpc_b64 s[30:31]1150;1151; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_0_0:1152; GFX942:       ; %bb.0:1153; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1154; GFX942-NEXT:    v_mov_b32_e32 v0, 01155; GFX942-NEXT:    ;;#ASMSTART1156; GFX942-NEXT:    ; def v[2:9]1157; GFX942-NEXT:    ;;#ASMEND1158; GFX942-NEXT:    global_store_dwordx2 v0, v[2:3], s[0:1] offset:161159; GFX942-NEXT:    global_store_dwordx4 v0, v[0:3], s[0:1]1160; GFX942-NEXT:    s_waitcnt vmcnt(0)1161; GFX942-NEXT:    s_setpc_b64 s[30:31]1162  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1163  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 0, i32 0>1164  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321165  ret void1166}1167 1168define void @v_shuffle_v3p0_v4p0__0_0_0(ptr addrspace(1) inreg %ptr) {1169; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_0_0:1170; GFX900:       ; %bb.0:1171; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1172; GFX900-NEXT:    ;;#ASMSTART1173; GFX900-NEXT:    ; def v[0:7]1174; GFX900-NEXT:    ;;#ASMEND1175; GFX900-NEXT:    v_mov_b32_e32 v8, 01176; GFX900-NEXT:    v_mov_b32_e32 v2, v01177; GFX900-NEXT:    v_mov_b32_e32 v3, v11178; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161179; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]1180; GFX900-NEXT:    s_waitcnt vmcnt(0)1181; GFX900-NEXT:    s_setpc_b64 s[30:31]1182;1183; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_0_0:1184; GFX90A:       ; %bb.0:1185; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1186; GFX90A-NEXT:    ;;#ASMSTART1187; GFX90A-NEXT:    ; def v[0:7]1188; GFX90A-NEXT:    ;;#ASMEND1189; GFX90A-NEXT:    v_mov_b32_e32 v8, 01190; GFX90A-NEXT:    v_mov_b32_e32 v2, v01191; GFX90A-NEXT:    v_mov_b32_e32 v3, v11192; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161193; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]1194; GFX90A-NEXT:    s_waitcnt vmcnt(0)1195; GFX90A-NEXT:    s_setpc_b64 s[30:31]1196;1197; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_0_0:1198; GFX942:       ; %bb.0:1199; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1200; GFX942-NEXT:    ;;#ASMSTART1201; GFX942-NEXT:    ; def v[0:7]1202; GFX942-NEXT:    ;;#ASMEND1203; GFX942-NEXT:    v_mov_b32_e32 v8, 01204; GFX942-NEXT:    v_mov_b32_e32 v2, v01205; GFX942-NEXT:    v_mov_b32_e32 v3, v11206; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:161207; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]1208; GFX942-NEXT:    s_waitcnt vmcnt(0)1209; GFX942-NEXT:    s_setpc_b64 s[30:31]1210  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1211  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> zeroinitializer1212  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321213  ret void1214}1215 1216define void @v_shuffle_v3p0_v4p0__1_0_0(ptr addrspace(1) inreg %ptr) {1217; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_0_0:1218; GFX900:       ; %bb.0:1219; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1220; GFX900-NEXT:    ;;#ASMSTART1221; GFX900-NEXT:    ; def v[0:7]1222; GFX900-NEXT:    ;;#ASMEND1223; GFX900-NEXT:    v_mov_b32_e32 v8, 01224; GFX900-NEXT:    v_mov_b32_e32 v4, v01225; GFX900-NEXT:    v_mov_b32_e32 v5, v11226; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161227; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]1228; GFX900-NEXT:    s_waitcnt vmcnt(0)1229; GFX900-NEXT:    s_setpc_b64 s[30:31]1230;1231; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_0_0:1232; GFX90A:       ; %bb.0:1233; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1234; GFX90A-NEXT:    ;;#ASMSTART1235; GFX90A-NEXT:    ; def v[0:7]1236; GFX90A-NEXT:    ;;#ASMEND1237; GFX90A-NEXT:    v_mov_b32_e32 v8, 01238; GFX90A-NEXT:    v_mov_b32_e32 v4, v01239; GFX90A-NEXT:    v_mov_b32_e32 v5, v11240; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161241; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]1242; GFX90A-NEXT:    s_waitcnt vmcnt(0)1243; GFX90A-NEXT:    s_setpc_b64 s[30:31]1244;1245; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_0_0:1246; GFX942:       ; %bb.0:1247; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1248; GFX942-NEXT:    ;;#ASMSTART1249; GFX942-NEXT:    ; def v[0:7]1250; GFX942-NEXT:    ;;#ASMEND1251; GFX942-NEXT:    v_mov_b32_e32 v8, 01252; GFX942-NEXT:    v_mov_b32_e32 v4, v01253; GFX942-NEXT:    v_mov_b32_e32 v5, v11254; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:161255; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]1256; GFX942-NEXT:    s_waitcnt vmcnt(0)1257; GFX942-NEXT:    s_setpc_b64 s[30:31]1258  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1259  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 0, i32 0>1260  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321261  ret void1262}1263 1264define void @v_shuffle_v3p0_v4p0__2_0_0(ptr addrspace(1) inreg %ptr) {1265; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_0_0:1266; GFX900:       ; %bb.0:1267; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1268; GFX900-NEXT:    ;;#ASMSTART1269; GFX900-NEXT:    ; def v[0:7]1270; GFX900-NEXT:    ;;#ASMEND1271; GFX900-NEXT:    v_mov_b32_e32 v8, 01272; GFX900-NEXT:    v_mov_b32_e32 v6, v01273; GFX900-NEXT:    v_mov_b32_e32 v7, v11274; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161275; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]1276; GFX900-NEXT:    s_waitcnt vmcnt(0)1277; GFX900-NEXT:    s_setpc_b64 s[30:31]1278;1279; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_0_0:1280; GFX90A:       ; %bb.0:1281; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1282; GFX90A-NEXT:    ;;#ASMSTART1283; GFX90A-NEXT:    ; def v[0:7]1284; GFX90A-NEXT:    ;;#ASMEND1285; GFX90A-NEXT:    v_mov_b32_e32 v8, 01286; GFX90A-NEXT:    v_mov_b32_e32 v6, v01287; GFX90A-NEXT:    v_mov_b32_e32 v7, v11288; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:161289; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]1290; GFX90A-NEXT:    s_waitcnt vmcnt(0)1291; GFX90A-NEXT:    s_setpc_b64 s[30:31]1292;1293; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_0_0:1294; GFX942:       ; %bb.0:1295; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1296; GFX942-NEXT:    ;;#ASMSTART1297; GFX942-NEXT:    ; def v[0:7]1298; GFX942-NEXT:    ;;#ASMEND1299; GFX942-NEXT:    v_mov_b32_e32 v8, 01300; GFX942-NEXT:    v_mov_b32_e32 v6, v01301; GFX942-NEXT:    v_mov_b32_e32 v7, v11302; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:161303; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]1304; GFX942-NEXT:    s_waitcnt vmcnt(0)1305; GFX942-NEXT:    s_setpc_b64 s[30:31]1306  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1307  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 0, i32 0>1308  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321309  ret void1310}1311 1312define void @v_shuffle_v3p0_v4p0__3_0_0(ptr addrspace(1) inreg %ptr) {1313; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_0_0:1314; GFX900:       ; %bb.0:1315; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1316; GFX900-NEXT:    v_mov_b32_e32 v10, 01317; GFX900-NEXT:    ;;#ASMSTART1318; GFX900-NEXT:    ; def v[0:7]1319; GFX900-NEXT:    ;;#ASMEND1320; GFX900-NEXT:    v_mov_b32_e32 v8, v01321; GFX900-NEXT:    v_mov_b32_e32 v9, v11322; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161323; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1324; GFX900-NEXT:    s_waitcnt vmcnt(0)1325; GFX900-NEXT:    s_setpc_b64 s[30:31]1326;1327; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_0_0:1328; GFX90A:       ; %bb.0:1329; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1330; GFX90A-NEXT:    v_mov_b32_e32 v10, 01331; GFX90A-NEXT:    ;;#ASMSTART1332; GFX90A-NEXT:    ; def v[0:7]1333; GFX90A-NEXT:    ;;#ASMEND1334; GFX90A-NEXT:    v_mov_b32_e32 v8, v01335; GFX90A-NEXT:    v_mov_b32_e32 v9, v11336; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161337; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1338; GFX90A-NEXT:    s_waitcnt vmcnt(0)1339; GFX90A-NEXT:    s_setpc_b64 s[30:31]1340;1341; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_0_0:1342; GFX942:       ; %bb.0:1343; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1344; GFX942-NEXT:    v_mov_b32_e32 v10, 01345; GFX942-NEXT:    ;;#ASMSTART1346; GFX942-NEXT:    ; def v[0:7]1347; GFX942-NEXT:    ;;#ASMEND1348; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:161349; GFX942-NEXT:    v_mov_b32_e32 v8, v01350; GFX942-NEXT:    v_mov_b32_e32 v9, v11351; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]1352; GFX942-NEXT:    s_waitcnt vmcnt(0)1353; GFX942-NEXT:    s_setpc_b64 s[30:31]1354  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1355  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 0, i32 0>1356  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321357  ret void1358}1359 1360define void @v_shuffle_v3p0_v4p0__4_0_0(ptr addrspace(1) inreg %ptr) {1361; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_0_0:1362; GFX900:       ; %bb.0:1363; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1364; GFX900-NEXT:    v_mov_b32_e32 v0, 01365; GFX900-NEXT:    ;;#ASMSTART1366; GFX900-NEXT:    ; def v[2:9]1367; GFX900-NEXT:    ;;#ASMEND1368; GFX900-NEXT:    global_store_dwordx2 v0, v[2:3], s[16:17] offset:161369; GFX900-NEXT:    global_store_dwordx4 v0, v[0:3], s[16:17]1370; GFX900-NEXT:    s_waitcnt vmcnt(0)1371; GFX900-NEXT:    s_setpc_b64 s[30:31]1372;1373; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_0_0:1374; GFX90A:       ; %bb.0:1375; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1376; GFX90A-NEXT:    v_mov_b32_e32 v0, 01377; GFX90A-NEXT:    ;;#ASMSTART1378; GFX90A-NEXT:    ; def v[2:9]1379; GFX90A-NEXT:    ;;#ASMEND1380; GFX90A-NEXT:    global_store_dwordx2 v0, v[2:3], s[16:17] offset:161381; GFX90A-NEXT:    global_store_dwordx4 v0, v[0:3], s[16:17]1382; GFX90A-NEXT:    s_waitcnt vmcnt(0)1383; GFX90A-NEXT:    s_setpc_b64 s[30:31]1384;1385; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_0_0:1386; GFX942:       ; %bb.0:1387; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1388; GFX942-NEXT:    v_mov_b32_e32 v0, 01389; GFX942-NEXT:    ;;#ASMSTART1390; GFX942-NEXT:    ; def v[2:9]1391; GFX942-NEXT:    ;;#ASMEND1392; GFX942-NEXT:    global_store_dwordx2 v0, v[2:3], s[0:1] offset:161393; GFX942-NEXT:    global_store_dwordx4 v0, v[0:3], s[0:1]1394; GFX942-NEXT:    s_waitcnt vmcnt(0)1395; GFX942-NEXT:    s_setpc_b64 s[30:31]1396  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1397  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 0, i32 0>1398  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321399  ret void1400}1401 1402define void @v_shuffle_v3p0_v4p0__5_0_0(ptr addrspace(1) inreg %ptr) {1403; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_0_0:1404; GFX900:       ; %bb.0:1405; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1406; GFX900-NEXT:    ;;#ASMSTART1407; GFX900-NEXT:    ; def v[0:7]1408; GFX900-NEXT:    ;;#ASMEND1409; GFX900-NEXT:    ;;#ASMSTART1410; GFX900-NEXT:    ; def v[2:9]1411; GFX900-NEXT:    ;;#ASMEND1412; GFX900-NEXT:    v_mov_b32_e32 v10, 01413; GFX900-NEXT:    v_mov_b32_e32 v6, v01414; GFX900-NEXT:    v_mov_b32_e32 v7, v11415; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161416; GFX900-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]1417; GFX900-NEXT:    s_waitcnt vmcnt(0)1418; GFX900-NEXT:    s_setpc_b64 s[30:31]1419;1420; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_0_0:1421; GFX90A:       ; %bb.0:1422; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1423; GFX90A-NEXT:    ;;#ASMSTART1424; GFX90A-NEXT:    ; def v[0:7]1425; GFX90A-NEXT:    ;;#ASMEND1426; GFX90A-NEXT:    ;;#ASMSTART1427; GFX90A-NEXT:    ; def v[2:9]1428; GFX90A-NEXT:    ;;#ASMEND1429; GFX90A-NEXT:    v_mov_b32_e32 v10, 01430; GFX90A-NEXT:    v_mov_b32_e32 v6, v01431; GFX90A-NEXT:    v_mov_b32_e32 v7, v11432; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161433; GFX90A-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]1434; GFX90A-NEXT:    s_waitcnt vmcnt(0)1435; GFX90A-NEXT:    s_setpc_b64 s[30:31]1436;1437; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_0_0:1438; GFX942:       ; %bb.0:1439; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1440; GFX942-NEXT:    ;;#ASMSTART1441; GFX942-NEXT:    ; def v[0:7]1442; GFX942-NEXT:    ;;#ASMEND1443; GFX942-NEXT:    v_mov_b32_e32 v10, 01444; GFX942-NEXT:    ;;#ASMSTART1445; GFX942-NEXT:    ; def v[2:9]1446; GFX942-NEXT:    ;;#ASMEND1447; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:161448; GFX942-NEXT:    v_mov_b32_e32 v6, v01449; GFX942-NEXT:    v_mov_b32_e32 v7, v11450; GFX942-NEXT:    global_store_dwordx4 v10, v[4:7], s[0:1]1451; GFX942-NEXT:    s_waitcnt vmcnt(0)1452; GFX942-NEXT:    s_setpc_b64 s[30:31]1453  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1454  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1455  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 0, i32 0>1456  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321457  ret void1458}1459 1460define void @v_shuffle_v3p0_v4p0__6_0_0(ptr addrspace(1) inreg %ptr) {1461; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_0_0:1462; GFX900:       ; %bb.0:1463; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1464; GFX900-NEXT:    ;;#ASMSTART1465; GFX900-NEXT:    ; def v[0:7]1466; GFX900-NEXT:    ;;#ASMEND1467; GFX900-NEXT:    ;;#ASMSTART1468; GFX900-NEXT:    ; def v[2:9]1469; GFX900-NEXT:    ;;#ASMEND1470; GFX900-NEXT:    v_mov_b32_e32 v10, 01471; GFX900-NEXT:    v_mov_b32_e32 v8, v01472; GFX900-NEXT:    v_mov_b32_e32 v9, v11473; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161474; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1475; GFX900-NEXT:    s_waitcnt vmcnt(0)1476; GFX900-NEXT:    s_setpc_b64 s[30:31]1477;1478; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_0_0:1479; GFX90A:       ; %bb.0:1480; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1481; GFX90A-NEXT:    ;;#ASMSTART1482; GFX90A-NEXT:    ; def v[0:7]1483; GFX90A-NEXT:    ;;#ASMEND1484; GFX90A-NEXT:    ;;#ASMSTART1485; GFX90A-NEXT:    ; def v[2:9]1486; GFX90A-NEXT:    ;;#ASMEND1487; GFX90A-NEXT:    v_mov_b32_e32 v10, 01488; GFX90A-NEXT:    v_mov_b32_e32 v8, v01489; GFX90A-NEXT:    v_mov_b32_e32 v9, v11490; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:161491; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]1492; GFX90A-NEXT:    s_waitcnt vmcnt(0)1493; GFX90A-NEXT:    s_setpc_b64 s[30:31]1494;1495; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_0_0:1496; GFX942:       ; %bb.0:1497; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1498; GFX942-NEXT:    ;;#ASMSTART1499; GFX942-NEXT:    ; def v[0:7]1500; GFX942-NEXT:    ;;#ASMEND1501; GFX942-NEXT:    v_mov_b32_e32 v10, 01502; GFX942-NEXT:    ;;#ASMSTART1503; GFX942-NEXT:    ; def v[2:9]1504; GFX942-NEXT:    ;;#ASMEND1505; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:161506; GFX942-NEXT:    v_mov_b32_e32 v8, v01507; GFX942-NEXT:    v_mov_b32_e32 v9, v11508; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]1509; GFX942-NEXT:    s_waitcnt vmcnt(0)1510; GFX942-NEXT:    s_setpc_b64 s[30:31]1511  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1512  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1513  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 0, i32 0>1514  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321515  ret void1516}1517 1518define void @v_shuffle_v3p0_v4p0__7_0_0(ptr addrspace(1) inreg %ptr) {1519; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_0:1520; GFX900:       ; %bb.0:1521; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1522; GFX900-NEXT:    v_mov_b32_e32 v16, 01523; GFX900-NEXT:    ;;#ASMSTART1524; GFX900-NEXT:    ; def v[8:15]1525; GFX900-NEXT:    ;;#ASMEND1526; GFX900-NEXT:    ;;#ASMSTART1527; GFX900-NEXT:    ; def v[0:7]1528; GFX900-NEXT:    ;;#ASMEND1529; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161530; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1531; GFX900-NEXT:    s_waitcnt vmcnt(0)1532; GFX900-NEXT:    s_setpc_b64 s[30:31]1533;1534; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_0:1535; GFX90A:       ; %bb.0:1536; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1537; GFX90A-NEXT:    v_mov_b32_e32 v16, 01538; GFX90A-NEXT:    ;;#ASMSTART1539; GFX90A-NEXT:    ; def v[8:15]1540; GFX90A-NEXT:    ;;#ASMEND1541; GFX90A-NEXT:    ;;#ASMSTART1542; GFX90A-NEXT:    ; def v[0:7]1543; GFX90A-NEXT:    ;;#ASMEND1544; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161545; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1546; GFX90A-NEXT:    s_waitcnt vmcnt(0)1547; GFX90A-NEXT:    s_setpc_b64 s[30:31]1548;1549; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_0:1550; GFX942:       ; %bb.0:1551; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1552; GFX942-NEXT:    v_mov_b32_e32 v16, 01553; GFX942-NEXT:    ;;#ASMSTART1554; GFX942-NEXT:    ; def v[8:15]1555; GFX942-NEXT:    ;;#ASMEND1556; GFX942-NEXT:    ;;#ASMSTART1557; GFX942-NEXT:    ; def v[0:7]1558; GFX942-NEXT:    ;;#ASMEND1559; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161560; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1561; GFX942-NEXT:    s_waitcnt vmcnt(0)1562; GFX942-NEXT:    s_setpc_b64 s[30:31]1563  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1564  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1565  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 0>1566  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321567  ret void1568}1569 1570define void @v_shuffle_v3p0_v4p0__7_u_0(ptr addrspace(1) inreg %ptr) {1571; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_0:1572; GFX900:       ; %bb.0:1573; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1574; GFX900-NEXT:    v_mov_b32_e32 v16, 01575; GFX900-NEXT:    ;;#ASMSTART1576; GFX900-NEXT:    ; def v[8:15]1577; GFX900-NEXT:    ;;#ASMEND1578; GFX900-NEXT:    ;;#ASMSTART1579; GFX900-NEXT:    ; def v[0:7]1580; GFX900-NEXT:    ;;#ASMEND1581; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161582; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1583; GFX900-NEXT:    s_waitcnt vmcnt(0)1584; GFX900-NEXT:    s_setpc_b64 s[30:31]1585;1586; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_0:1587; GFX90A:       ; %bb.0:1588; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1589; GFX90A-NEXT:    v_mov_b32_e32 v16, 01590; GFX90A-NEXT:    ;;#ASMSTART1591; GFX90A-NEXT:    ; def v[8:15]1592; GFX90A-NEXT:    ;;#ASMEND1593; GFX90A-NEXT:    ;;#ASMSTART1594; GFX90A-NEXT:    ; def v[0:7]1595; GFX90A-NEXT:    ;;#ASMEND1596; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161597; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1598; GFX90A-NEXT:    s_waitcnt vmcnt(0)1599; GFX90A-NEXT:    s_setpc_b64 s[30:31]1600;1601; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_0:1602; GFX942:       ; %bb.0:1603; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1604; GFX942-NEXT:    v_mov_b32_e32 v16, 01605; GFX942-NEXT:    ;;#ASMSTART1606; GFX942-NEXT:    ; def v[8:15]1607; GFX942-NEXT:    ;;#ASMEND1608; GFX942-NEXT:    ;;#ASMSTART1609; GFX942-NEXT:    ; def v[0:7]1610; GFX942-NEXT:    ;;#ASMEND1611; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161612; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1613; GFX942-NEXT:    s_waitcnt vmcnt(0)1614; GFX942-NEXT:    s_setpc_b64 s[30:31]1615  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1616  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1617  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>1618  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321619  ret void1620}1621 1622define void @v_shuffle_v3p0_v4p0__7_1_0(ptr addrspace(1) inreg %ptr) {1623; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_0:1624; GFX900:       ; %bb.0:1625; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1626; GFX900-NEXT:    v_mov_b32_e32 v16, 01627; GFX900-NEXT:    ;;#ASMSTART1628; GFX900-NEXT:    ; def v[8:15]1629; GFX900-NEXT:    ;;#ASMEND1630; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161631; GFX900-NEXT:    v_mov_b32_e32 v8, v101632; GFX900-NEXT:    v_mov_b32_e32 v9, v111633; GFX900-NEXT:    ;;#ASMSTART1634; GFX900-NEXT:    ; def v[0:7]1635; GFX900-NEXT:    ;;#ASMEND1636; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1637; GFX900-NEXT:    s_waitcnt vmcnt(0)1638; GFX900-NEXT:    s_setpc_b64 s[30:31]1639;1640; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_0:1641; GFX90A:       ; %bb.0:1642; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1643; GFX90A-NEXT:    v_mov_b32_e32 v16, 01644; GFX90A-NEXT:    ;;#ASMSTART1645; GFX90A-NEXT:    ; def v[8:15]1646; GFX90A-NEXT:    ;;#ASMEND1647; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161648; GFX90A-NEXT:    v_mov_b32_e32 v8, v101649; GFX90A-NEXT:    v_mov_b32_e32 v9, v111650; GFX90A-NEXT:    ;;#ASMSTART1651; GFX90A-NEXT:    ; def v[0:7]1652; GFX90A-NEXT:    ;;#ASMEND1653; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1654; GFX90A-NEXT:    s_waitcnt vmcnt(0)1655; GFX90A-NEXT:    s_setpc_b64 s[30:31]1656;1657; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_0:1658; GFX942:       ; %bb.0:1659; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1660; GFX942-NEXT:    v_mov_b32_e32 v16, 01661; GFX942-NEXT:    ;;#ASMSTART1662; GFX942-NEXT:    ; def v[8:15]1663; GFX942-NEXT:    ;;#ASMEND1664; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161665; GFX942-NEXT:    v_mov_b32_e32 v8, v101666; GFX942-NEXT:    v_mov_b32_e32 v9, v111667; GFX942-NEXT:    ;;#ASMSTART1668; GFX942-NEXT:    ; def v[0:7]1669; GFX942-NEXT:    ;;#ASMEND1670; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1671; GFX942-NEXT:    s_waitcnt vmcnt(0)1672; GFX942-NEXT:    s_setpc_b64 s[30:31]1673  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1674  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1675  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 0>1676  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321677  ret void1678}1679 1680define void @v_shuffle_v3p0_v4p0__7_2_0(ptr addrspace(1) inreg %ptr) {1681; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_0:1682; GFX900:       ; %bb.0:1683; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1684; GFX900-NEXT:    v_mov_b32_e32 v16, 01685; GFX900-NEXT:    ;;#ASMSTART1686; GFX900-NEXT:    ; def v[8:15]1687; GFX900-NEXT:    ;;#ASMEND1688; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161689; GFX900-NEXT:    v_mov_b32_e32 v8, v121690; GFX900-NEXT:    v_mov_b32_e32 v9, v131691; GFX900-NEXT:    ;;#ASMSTART1692; GFX900-NEXT:    ; def v[0:7]1693; GFX900-NEXT:    ;;#ASMEND1694; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1695; GFX900-NEXT:    s_waitcnt vmcnt(0)1696; GFX900-NEXT:    s_setpc_b64 s[30:31]1697;1698; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_0:1699; GFX90A:       ; %bb.0:1700; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1701; GFX90A-NEXT:    v_mov_b32_e32 v16, 01702; GFX90A-NEXT:    ;;#ASMSTART1703; GFX90A-NEXT:    ; def v[8:15]1704; GFX90A-NEXT:    ;;#ASMEND1705; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161706; GFX90A-NEXT:    v_mov_b32_e32 v8, v121707; GFX90A-NEXT:    v_mov_b32_e32 v9, v131708; GFX90A-NEXT:    ;;#ASMSTART1709; GFX90A-NEXT:    ; def v[0:7]1710; GFX90A-NEXT:    ;;#ASMEND1711; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1712; GFX90A-NEXT:    s_waitcnt vmcnt(0)1713; GFX90A-NEXT:    s_setpc_b64 s[30:31]1714;1715; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_0:1716; GFX942:       ; %bb.0:1717; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1718; GFX942-NEXT:    v_mov_b32_e32 v16, 01719; GFX942-NEXT:    ;;#ASMSTART1720; GFX942-NEXT:    ; def v[8:15]1721; GFX942-NEXT:    ;;#ASMEND1722; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161723; GFX942-NEXT:    v_mov_b32_e32 v8, v121724; GFX942-NEXT:    v_mov_b32_e32 v9, v131725; GFX942-NEXT:    ;;#ASMSTART1726; GFX942-NEXT:    ; def v[0:7]1727; GFX942-NEXT:    ;;#ASMEND1728; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1729; GFX942-NEXT:    s_waitcnt vmcnt(0)1730; GFX942-NEXT:    s_setpc_b64 s[30:31]1731  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1732  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1733  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 0>1734  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321735  ret void1736}1737 1738define void @v_shuffle_v3p0_v4p0__7_3_0(ptr addrspace(1) inreg %ptr) {1739; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_0:1740; GFX900:       ; %bb.0:1741; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1742; GFX900-NEXT:    v_mov_b32_e32 v16, 01743; GFX900-NEXT:    ;;#ASMSTART1744; GFX900-NEXT:    ; def v[8:15]1745; GFX900-NEXT:    ;;#ASMEND1746; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161747; GFX900-NEXT:    v_mov_b32_e32 v8, v141748; GFX900-NEXT:    v_mov_b32_e32 v9, v151749; GFX900-NEXT:    ;;#ASMSTART1750; GFX900-NEXT:    ; def v[0:7]1751; GFX900-NEXT:    ;;#ASMEND1752; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1753; GFX900-NEXT:    s_waitcnt vmcnt(0)1754; GFX900-NEXT:    s_setpc_b64 s[30:31]1755;1756; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_0:1757; GFX90A:       ; %bb.0:1758; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1759; GFX90A-NEXT:    v_mov_b32_e32 v16, 01760; GFX90A-NEXT:    ;;#ASMSTART1761; GFX90A-NEXT:    ; def v[8:15]1762; GFX90A-NEXT:    ;;#ASMEND1763; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161764; GFX90A-NEXT:    v_mov_b32_e32 v8, v141765; GFX90A-NEXT:    v_mov_b32_e32 v9, v151766; GFX90A-NEXT:    ;;#ASMSTART1767; GFX90A-NEXT:    ; def v[0:7]1768; GFX90A-NEXT:    ;;#ASMEND1769; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1770; GFX90A-NEXT:    s_waitcnt vmcnt(0)1771; GFX90A-NEXT:    s_setpc_b64 s[30:31]1772;1773; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_0:1774; GFX942:       ; %bb.0:1775; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1776; GFX942-NEXT:    v_mov_b32_e32 v16, 01777; GFX942-NEXT:    ;;#ASMSTART1778; GFX942-NEXT:    ; def v[8:15]1779; GFX942-NEXT:    ;;#ASMEND1780; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161781; GFX942-NEXT:    v_mov_b32_e32 v8, v141782; GFX942-NEXT:    v_mov_b32_e32 v9, v151783; GFX942-NEXT:    ;;#ASMSTART1784; GFX942-NEXT:    ; def v[0:7]1785; GFX942-NEXT:    ;;#ASMEND1786; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1787; GFX942-NEXT:    s_waitcnt vmcnt(0)1788; GFX942-NEXT:    s_setpc_b64 s[30:31]1789  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1790  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1791  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 0>1792  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321793  ret void1794}1795 1796define void @v_shuffle_v3p0_v4p0__7_4_0(ptr addrspace(1) inreg %ptr) {1797; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_0:1798; GFX900:       ; %bb.0:1799; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1800; GFX900-NEXT:    v_mov_b32_e32 v16, 01801; GFX900-NEXT:    ;;#ASMSTART1802; GFX900-NEXT:    ; def v[8:15]1803; GFX900-NEXT:    ;;#ASMEND1804; GFX900-NEXT:    ;;#ASMSTART1805; GFX900-NEXT:    ; def v[0:7]1806; GFX900-NEXT:    ;;#ASMEND1807; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161808; GFX900-NEXT:    v_mov_b32_e32 v8, v01809; GFX900-NEXT:    v_mov_b32_e32 v9, v11810; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1811; GFX900-NEXT:    s_waitcnt vmcnt(0)1812; GFX900-NEXT:    s_setpc_b64 s[30:31]1813;1814; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_0:1815; GFX90A:       ; %bb.0:1816; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1817; GFX90A-NEXT:    v_mov_b32_e32 v16, 01818; GFX90A-NEXT:    ;;#ASMSTART1819; GFX90A-NEXT:    ; def v[8:15]1820; GFX90A-NEXT:    ;;#ASMEND1821; GFX90A-NEXT:    ;;#ASMSTART1822; GFX90A-NEXT:    ; def v[0:7]1823; GFX90A-NEXT:    ;;#ASMEND1824; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161825; GFX90A-NEXT:    v_mov_b32_e32 v8, v01826; GFX90A-NEXT:    v_mov_b32_e32 v9, v11827; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1828; GFX90A-NEXT:    s_waitcnt vmcnt(0)1829; GFX90A-NEXT:    s_setpc_b64 s[30:31]1830;1831; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_0:1832; GFX942:       ; %bb.0:1833; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1834; GFX942-NEXT:    v_mov_b32_e32 v16, 01835; GFX942-NEXT:    ;;#ASMSTART1836; GFX942-NEXT:    ; def v[8:15]1837; GFX942-NEXT:    ;;#ASMEND1838; GFX942-NEXT:    ;;#ASMSTART1839; GFX942-NEXT:    ; def v[0:7]1840; GFX942-NEXT:    ;;#ASMEND1841; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161842; GFX942-NEXT:    v_mov_b32_e32 v8, v01843; GFX942-NEXT:    v_mov_b32_e32 v9, v11844; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1845; GFX942-NEXT:    s_waitcnt vmcnt(0)1846; GFX942-NEXT:    s_setpc_b64 s[30:31]1847  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1848  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1849  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 0>1850  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321851  ret void1852}1853 1854define void @v_shuffle_v3p0_v4p0__7_5_0(ptr addrspace(1) inreg %ptr) {1855; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_0:1856; GFX900:       ; %bb.0:1857; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1858; GFX900-NEXT:    v_mov_b32_e32 v16, 01859; GFX900-NEXT:    ;;#ASMSTART1860; GFX900-NEXT:    ; def v[8:15]1861; GFX900-NEXT:    ;;#ASMEND1862; GFX900-NEXT:    ;;#ASMSTART1863; GFX900-NEXT:    ; def v[0:7]1864; GFX900-NEXT:    ;;#ASMEND1865; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161866; GFX900-NEXT:    v_mov_b32_e32 v8, v21867; GFX900-NEXT:    v_mov_b32_e32 v9, v31868; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1869; GFX900-NEXT:    s_waitcnt vmcnt(0)1870; GFX900-NEXT:    s_setpc_b64 s[30:31]1871;1872; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_0:1873; GFX90A:       ; %bb.0:1874; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1875; GFX90A-NEXT:    v_mov_b32_e32 v16, 01876; GFX90A-NEXT:    ;;#ASMSTART1877; GFX90A-NEXT:    ; def v[8:15]1878; GFX90A-NEXT:    ;;#ASMEND1879; GFX90A-NEXT:    ;;#ASMSTART1880; GFX90A-NEXT:    ; def v[0:7]1881; GFX90A-NEXT:    ;;#ASMEND1882; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161883; GFX90A-NEXT:    v_mov_b32_e32 v8, v21884; GFX90A-NEXT:    v_mov_b32_e32 v9, v31885; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1886; GFX90A-NEXT:    s_waitcnt vmcnt(0)1887; GFX90A-NEXT:    s_setpc_b64 s[30:31]1888;1889; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_0:1890; GFX942:       ; %bb.0:1891; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1892; GFX942-NEXT:    v_mov_b32_e32 v16, 01893; GFX942-NEXT:    ;;#ASMSTART1894; GFX942-NEXT:    ; def v[8:15]1895; GFX942-NEXT:    ;;#ASMEND1896; GFX942-NEXT:    ;;#ASMSTART1897; GFX942-NEXT:    ; def v[0:7]1898; GFX942-NEXT:    ;;#ASMEND1899; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161900; GFX942-NEXT:    v_mov_b32_e32 v8, v21901; GFX942-NEXT:    v_mov_b32_e32 v9, v31902; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1903; GFX942-NEXT:    s_waitcnt vmcnt(0)1904; GFX942-NEXT:    s_setpc_b64 s[30:31]1905  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1906  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1907  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 0>1908  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321909  ret void1910}1911 1912define void @v_shuffle_v3p0_v4p0__7_6_0(ptr addrspace(1) inreg %ptr) {1913; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_0:1914; GFX900:       ; %bb.0:1915; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1916; GFX900-NEXT:    v_mov_b32_e32 v16, 01917; GFX900-NEXT:    ;;#ASMSTART1918; GFX900-NEXT:    ; def v[8:15]1919; GFX900-NEXT:    ;;#ASMEND1920; GFX900-NEXT:    ;;#ASMSTART1921; GFX900-NEXT:    ; def v[0:7]1922; GFX900-NEXT:    ;;#ASMEND1923; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161924; GFX900-NEXT:    v_mov_b32_e32 v8, v41925; GFX900-NEXT:    v_mov_b32_e32 v9, v51926; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1927; GFX900-NEXT:    s_waitcnt vmcnt(0)1928; GFX900-NEXT:    s_setpc_b64 s[30:31]1929;1930; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_0:1931; GFX90A:       ; %bb.0:1932; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1933; GFX90A-NEXT:    v_mov_b32_e32 v16, 01934; GFX90A-NEXT:    ;;#ASMSTART1935; GFX90A-NEXT:    ; def v[8:15]1936; GFX90A-NEXT:    ;;#ASMEND1937; GFX90A-NEXT:    ;;#ASMSTART1938; GFX90A-NEXT:    ; def v[0:7]1939; GFX90A-NEXT:    ;;#ASMEND1940; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:161941; GFX90A-NEXT:    v_mov_b32_e32 v8, v41942; GFX90A-NEXT:    v_mov_b32_e32 v9, v51943; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]1944; GFX90A-NEXT:    s_waitcnt vmcnt(0)1945; GFX90A-NEXT:    s_setpc_b64 s[30:31]1946;1947; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_0:1948; GFX942:       ; %bb.0:1949; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1950; GFX942-NEXT:    v_mov_b32_e32 v16, 01951; GFX942-NEXT:    ;;#ASMSTART1952; GFX942-NEXT:    ; def v[8:15]1953; GFX942-NEXT:    ;;#ASMEND1954; GFX942-NEXT:    ;;#ASMSTART1955; GFX942-NEXT:    ; def v[0:7]1956; GFX942-NEXT:    ;;#ASMEND1957; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:161958; GFX942-NEXT:    v_mov_b32_e32 v8, v41959; GFX942-NEXT:    v_mov_b32_e32 v9, v51960; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]1961; GFX942-NEXT:    s_waitcnt vmcnt(0)1962; GFX942-NEXT:    s_setpc_b64 s[30:31]1963  %vec0 = call <4 x ptr> asm "; def $0", "=v"()1964  %vec1 = call <4 x ptr> asm "; def $0", "=v"()1965  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 0>1966  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 321967  ret void1968}1969 1970define void @v_shuffle_v3p0_v4p0__u_1_1(ptr addrspace(1) inreg %ptr) {1971; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_1_1:1972; GFX900:       ; %bb.0:1973; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1974; GFX900-NEXT:    v_mov_b32_e32 v8, 01975; GFX900-NEXT:    ;;#ASMSTART1976; GFX900-NEXT:    ; def v[0:7]1977; GFX900-NEXT:    ;;#ASMEND1978; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:161979; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]1980; GFX900-NEXT:    s_waitcnt vmcnt(0)1981; GFX900-NEXT:    s_setpc_b64 s[30:31]1982;1983; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_1_1:1984; GFX90A:       ; %bb.0:1985; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1986; GFX90A-NEXT:    v_mov_b32_e32 v8, 01987; GFX90A-NEXT:    ;;#ASMSTART1988; GFX90A-NEXT:    ; def v[0:7]1989; GFX90A-NEXT:    ;;#ASMEND1990; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:161991; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]1992; GFX90A-NEXT:    s_waitcnt vmcnt(0)1993; GFX90A-NEXT:    s_setpc_b64 s[30:31]1994;1995; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_1_1:1996; GFX942:       ; %bb.0:1997; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1998; GFX942-NEXT:    v_mov_b32_e32 v8, 01999; GFX942-NEXT:    ;;#ASMSTART2000; GFX942-NEXT:    ; def v[0:7]2001; GFX942-NEXT:    ;;#ASMEND2002; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:162003; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]2004; GFX942-NEXT:    s_waitcnt vmcnt(0)2005; GFX942-NEXT:    s_setpc_b64 s[30:31]2006  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2007  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 1, i32 1>2008  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322009  ret void2010}2011 2012define void @v_shuffle_v3p0_v4p0__0_1_1(ptr addrspace(1) inreg %ptr) {2013; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_1_1:2014; GFX900:       ; %bb.0:2015; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2016; GFX900-NEXT:    v_mov_b32_e32 v8, 02017; GFX900-NEXT:    ;;#ASMSTART2018; GFX900-NEXT:    ; def v[0:7]2019; GFX900-NEXT:    ;;#ASMEND2020; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162021; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]2022; GFX900-NEXT:    s_waitcnt vmcnt(0)2023; GFX900-NEXT:    s_setpc_b64 s[30:31]2024;2025; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_1_1:2026; GFX90A:       ; %bb.0:2027; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2028; GFX90A-NEXT:    v_mov_b32_e32 v8, 02029; GFX90A-NEXT:    ;;#ASMSTART2030; GFX90A-NEXT:    ; def v[0:7]2031; GFX90A-NEXT:    ;;#ASMEND2032; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162033; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]2034; GFX90A-NEXT:    s_waitcnt vmcnt(0)2035; GFX90A-NEXT:    s_setpc_b64 s[30:31]2036;2037; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_1_1:2038; GFX942:       ; %bb.0:2039; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2040; GFX942-NEXT:    v_mov_b32_e32 v8, 02041; GFX942-NEXT:    ;;#ASMSTART2042; GFX942-NEXT:    ; def v[0:7]2043; GFX942-NEXT:    ;;#ASMEND2044; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:162045; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]2046; GFX942-NEXT:    s_waitcnt vmcnt(0)2047; GFX942-NEXT:    s_setpc_b64 s[30:31]2048  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2049  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 1, i32 1>2050  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322051  ret void2052}2053 2054define void @v_shuffle_v3p0_v4p0__1_1_1(ptr addrspace(1) inreg %ptr) {2055; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_1_1:2056; GFX900:       ; %bb.0:2057; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2058; GFX900-NEXT:    ;;#ASMSTART2059; GFX900-NEXT:    ; def v[0:7]2060; GFX900-NEXT:    ;;#ASMEND2061; GFX900-NEXT:    v_mov_b32_e32 v8, 02062; GFX900-NEXT:    v_mov_b32_e32 v4, v22063; GFX900-NEXT:    v_mov_b32_e32 v5, v32064; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162065; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]2066; GFX900-NEXT:    s_waitcnt vmcnt(0)2067; GFX900-NEXT:    s_setpc_b64 s[30:31]2068;2069; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_1_1:2070; GFX90A:       ; %bb.0:2071; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2072; GFX90A-NEXT:    ;;#ASMSTART2073; GFX90A-NEXT:    ; def v[0:7]2074; GFX90A-NEXT:    ;;#ASMEND2075; GFX90A-NEXT:    v_mov_b32_e32 v8, 02076; GFX90A-NEXT:    v_mov_b32_e32 v4, v22077; GFX90A-NEXT:    v_mov_b32_e32 v5, v32078; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162079; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]2080; GFX90A-NEXT:    s_waitcnt vmcnt(0)2081; GFX90A-NEXT:    s_setpc_b64 s[30:31]2082;2083; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_1_1:2084; GFX942:       ; %bb.0:2085; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2086; GFX942-NEXT:    ;;#ASMSTART2087; GFX942-NEXT:    ; def v[0:7]2088; GFX942-NEXT:    ;;#ASMEND2089; GFX942-NEXT:    v_mov_b32_e32 v8, 02090; GFX942-NEXT:    v_mov_b32_e32 v4, v22091; GFX942-NEXT:    v_mov_b32_e32 v5, v32092; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:162093; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]2094; GFX942-NEXT:    s_waitcnt vmcnt(0)2095; GFX942-NEXT:    s_setpc_b64 s[30:31]2096  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2097  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 1, i32 1>2098  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322099  ret void2100}2101 2102define void @v_shuffle_v3p0_v4p0__2_1_1(ptr addrspace(1) inreg %ptr) {2103; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_1_1:2104; GFX900:       ; %bb.0:2105; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2106; GFX900-NEXT:    ;;#ASMSTART2107; GFX900-NEXT:    ; def v[0:7]2108; GFX900-NEXT:    ;;#ASMEND2109; GFX900-NEXT:    v_mov_b32_e32 v8, 02110; GFX900-NEXT:    v_mov_b32_e32 v6, v22111; GFX900-NEXT:    v_mov_b32_e32 v7, v32112; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162113; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]2114; GFX900-NEXT:    s_waitcnt vmcnt(0)2115; GFX900-NEXT:    s_setpc_b64 s[30:31]2116;2117; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_1_1:2118; GFX90A:       ; %bb.0:2119; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2120; GFX90A-NEXT:    ;;#ASMSTART2121; GFX90A-NEXT:    ; def v[0:7]2122; GFX90A-NEXT:    ;;#ASMEND2123; GFX90A-NEXT:    v_mov_b32_e32 v8, 02124; GFX90A-NEXT:    v_mov_b32_e32 v6, v22125; GFX90A-NEXT:    v_mov_b32_e32 v7, v32126; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162127; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]2128; GFX90A-NEXT:    s_waitcnt vmcnt(0)2129; GFX90A-NEXT:    s_setpc_b64 s[30:31]2130;2131; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_1_1:2132; GFX942:       ; %bb.0:2133; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2134; GFX942-NEXT:    ;;#ASMSTART2135; GFX942-NEXT:    ; def v[0:7]2136; GFX942-NEXT:    ;;#ASMEND2137; GFX942-NEXT:    v_mov_b32_e32 v8, 02138; GFX942-NEXT:    v_mov_b32_e32 v6, v22139; GFX942-NEXT:    v_mov_b32_e32 v7, v32140; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:162141; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]2142; GFX942-NEXT:    s_waitcnt vmcnt(0)2143; GFX942-NEXT:    s_setpc_b64 s[30:31]2144  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2145  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 1, i32 1>2146  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322147  ret void2148}2149 2150define void @v_shuffle_v3p0_v4p0__3_1_1(ptr addrspace(1) inreg %ptr) {2151; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_1_1:2152; GFX900:       ; %bb.0:2153; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2154; GFX900-NEXT:    v_mov_b32_e32 v10, 02155; GFX900-NEXT:    ;;#ASMSTART2156; GFX900-NEXT:    ; def v[0:7]2157; GFX900-NEXT:    ;;#ASMEND2158; GFX900-NEXT:    v_mov_b32_e32 v8, v22159; GFX900-NEXT:    v_mov_b32_e32 v9, v32160; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:162161; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]2162; GFX900-NEXT:    s_waitcnt vmcnt(0)2163; GFX900-NEXT:    s_setpc_b64 s[30:31]2164;2165; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_1_1:2166; GFX90A:       ; %bb.0:2167; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2168; GFX90A-NEXT:    v_mov_b32_e32 v10, 02169; GFX90A-NEXT:    ;;#ASMSTART2170; GFX90A-NEXT:    ; def v[0:7]2171; GFX90A-NEXT:    ;;#ASMEND2172; GFX90A-NEXT:    v_mov_b32_e32 v8, v22173; GFX90A-NEXT:    v_mov_b32_e32 v9, v32174; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:162175; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]2176; GFX90A-NEXT:    s_waitcnt vmcnt(0)2177; GFX90A-NEXT:    s_setpc_b64 s[30:31]2178;2179; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_1_1:2180; GFX942:       ; %bb.0:2181; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2182; GFX942-NEXT:    v_mov_b32_e32 v10, 02183; GFX942-NEXT:    ;;#ASMSTART2184; GFX942-NEXT:    ; def v[0:7]2185; GFX942-NEXT:    ;;#ASMEND2186; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:162187; GFX942-NEXT:    v_mov_b32_e32 v8, v22188; GFX942-NEXT:    v_mov_b32_e32 v9, v32189; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]2190; GFX942-NEXT:    s_waitcnt vmcnt(0)2191; GFX942-NEXT:    s_setpc_b64 s[30:31]2192  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2193  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 1, i32 1>2194  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322195  ret void2196}2197 2198define void @v_shuffle_v3p0_v4p0__4_1_1(ptr addrspace(1) inreg %ptr) {2199; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_1_1:2200; GFX900:       ; %bb.0:2201; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2202; GFX900-NEXT:    v_mov_b32_e32 v8, 02203; GFX900-NEXT:    ;;#ASMSTART2204; GFX900-NEXT:    ; def v[0:7]2205; GFX900-NEXT:    ;;#ASMEND2206; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162207; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]2208; GFX900-NEXT:    s_waitcnt vmcnt(0)2209; GFX900-NEXT:    s_setpc_b64 s[30:31]2210;2211; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_1_1:2212; GFX90A:       ; %bb.0:2213; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2214; GFX90A-NEXT:    v_mov_b32_e32 v8, 02215; GFX90A-NEXT:    ;;#ASMSTART2216; GFX90A-NEXT:    ; def v[0:7]2217; GFX90A-NEXT:    ;;#ASMEND2218; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:162219; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]2220; GFX90A-NEXT:    s_waitcnt vmcnt(0)2221; GFX90A-NEXT:    s_setpc_b64 s[30:31]2222;2223; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_1_1:2224; GFX942:       ; %bb.0:2225; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2226; GFX942-NEXT:    v_mov_b32_e32 v8, 02227; GFX942-NEXT:    ;;#ASMSTART2228; GFX942-NEXT:    ; def v[0:7]2229; GFX942-NEXT:    ;;#ASMEND2230; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:162231; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]2232; GFX942-NEXT:    s_waitcnt vmcnt(0)2233; GFX942-NEXT:    s_setpc_b64 s[30:31]2234  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2235  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 1, i32 1>2236  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322237  ret void2238}2239 2240define void @v_shuffle_v3p0_v4p0__5_1_1(ptr addrspace(1) inreg %ptr) {2241; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_1_1:2242; GFX900:       ; %bb.0:2243; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2244; GFX900-NEXT:    ;;#ASMSTART2245; GFX900-NEXT:    ; def v[0:7]2246; GFX900-NEXT:    ;;#ASMEND2247; GFX900-NEXT:    ;;#ASMSTART2248; GFX900-NEXT:    ; def v[4:11]2249; GFX900-NEXT:    ;;#ASMEND2250; GFX900-NEXT:    v_mov_b32_e32 v12, 02251; GFX900-NEXT:    v_mov_b32_e32 v8, v22252; GFX900-NEXT:    v_mov_b32_e32 v9, v32253; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:162254; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]2255; GFX900-NEXT:    s_waitcnt vmcnt(0)2256; GFX900-NEXT:    s_setpc_b64 s[30:31]2257;2258; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_1_1:2259; GFX90A:       ; %bb.0:2260; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2261; GFX90A-NEXT:    ;;#ASMSTART2262; GFX90A-NEXT:    ; def v[0:7]2263; GFX90A-NEXT:    ;;#ASMEND2264; GFX90A-NEXT:    ;;#ASMSTART2265; GFX90A-NEXT:    ; def v[4:11]2266; GFX90A-NEXT:    ;;#ASMEND2267; GFX90A-NEXT:    v_mov_b32_e32 v12, 02268; GFX90A-NEXT:    v_mov_b32_e32 v8, v22269; GFX90A-NEXT:    v_mov_b32_e32 v9, v32270; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:162271; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]2272; GFX90A-NEXT:    s_waitcnt vmcnt(0)2273; GFX90A-NEXT:    s_setpc_b64 s[30:31]2274;2275; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_1_1:2276; GFX942:       ; %bb.0:2277; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2278; GFX942-NEXT:    ;;#ASMSTART2279; GFX942-NEXT:    ; def v[0:7]2280; GFX942-NEXT:    ;;#ASMEND2281; GFX942-NEXT:    v_mov_b32_e32 v12, 02282; GFX942-NEXT:    ;;#ASMSTART2283; GFX942-NEXT:    ; def v[4:11]2284; GFX942-NEXT:    ;;#ASMEND2285; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:162286; GFX942-NEXT:    v_mov_b32_e32 v8, v22287; GFX942-NEXT:    v_mov_b32_e32 v9, v32288; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]2289; GFX942-NEXT:    s_waitcnt vmcnt(0)2290; GFX942-NEXT:    s_setpc_b64 s[30:31]2291  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2292  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2293  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 1, i32 1>2294  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322295  ret void2296}2297 2298define void @v_shuffle_v3p0_v4p0__6_1_1(ptr addrspace(1) inreg %ptr) {2299; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_1_1:2300; GFX900:       ; %bb.0:2301; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2302; GFX900-NEXT:    ;;#ASMSTART2303; GFX900-NEXT:    ; def v[0:7]2304; GFX900-NEXT:    ;;#ASMEND2305; GFX900-NEXT:    ;;#ASMSTART2306; GFX900-NEXT:    ; def v[4:11]2307; GFX900-NEXT:    ;;#ASMEND2308; GFX900-NEXT:    v_mov_b32_e32 v12, 02309; GFX900-NEXT:    v_mov_b32_e32 v10, v22310; GFX900-NEXT:    v_mov_b32_e32 v11, v32311; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:162312; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]2313; GFX900-NEXT:    s_waitcnt vmcnt(0)2314; GFX900-NEXT:    s_setpc_b64 s[30:31]2315;2316; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_1_1:2317; GFX90A:       ; %bb.0:2318; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2319; GFX90A-NEXT:    ;;#ASMSTART2320; GFX90A-NEXT:    ; def v[0:7]2321; GFX90A-NEXT:    ;;#ASMEND2322; GFX90A-NEXT:    ;;#ASMSTART2323; GFX90A-NEXT:    ; def v[4:11]2324; GFX90A-NEXT:    ;;#ASMEND2325; GFX90A-NEXT:    v_mov_b32_e32 v12, 02326; GFX90A-NEXT:    v_mov_b32_e32 v10, v22327; GFX90A-NEXT:    v_mov_b32_e32 v11, v32328; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:162329; GFX90A-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]2330; GFX90A-NEXT:    s_waitcnt vmcnt(0)2331; GFX90A-NEXT:    s_setpc_b64 s[30:31]2332;2333; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_1_1:2334; GFX942:       ; %bb.0:2335; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2336; GFX942-NEXT:    ;;#ASMSTART2337; GFX942-NEXT:    ; def v[0:7]2338; GFX942-NEXT:    ;;#ASMEND2339; GFX942-NEXT:    v_mov_b32_e32 v12, 02340; GFX942-NEXT:    ;;#ASMSTART2341; GFX942-NEXT:    ; def v[4:11]2342; GFX942-NEXT:    ;;#ASMEND2343; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:162344; GFX942-NEXT:    v_mov_b32_e32 v10, v22345; GFX942-NEXT:    v_mov_b32_e32 v11, v32346; GFX942-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1]2347; GFX942-NEXT:    s_waitcnt vmcnt(0)2348; GFX942-NEXT:    s_setpc_b64 s[30:31]2349  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2350  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2351  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 1, i32 1>2352  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322353  ret void2354}2355 2356define void @v_shuffle_v3p0_v4p0__7_1_1(ptr addrspace(1) inreg %ptr) {2357; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_1:2358; GFX900:       ; %bb.0:2359; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2360; GFX900-NEXT:    ;;#ASMSTART2361; GFX900-NEXT:    ; def v[6:13]2362; GFX900-NEXT:    ;;#ASMEND2363; GFX900-NEXT:    v_mov_b32_e32 v14, 02364; GFX900-NEXT:    ;;#ASMSTART2365; GFX900-NEXT:    ; def v[0:7]2366; GFX900-NEXT:    ;;#ASMEND2367; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162368; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2369; GFX900-NEXT:    s_waitcnt vmcnt(0)2370; GFX900-NEXT:    s_setpc_b64 s[30:31]2371;2372; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_1:2373; GFX90A:       ; %bb.0:2374; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2375; GFX90A-NEXT:    ;;#ASMSTART2376; GFX90A-NEXT:    ; def v[6:13]2377; GFX90A-NEXT:    ;;#ASMEND2378; GFX90A-NEXT:    v_mov_b32_e32 v14, 02379; GFX90A-NEXT:    ;;#ASMSTART2380; GFX90A-NEXT:    ; def v[0:7]2381; GFX90A-NEXT:    ;;#ASMEND2382; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162383; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2384; GFX90A-NEXT:    s_waitcnt vmcnt(0)2385; GFX90A-NEXT:    s_setpc_b64 s[30:31]2386;2387; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_1:2388; GFX942:       ; %bb.0:2389; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2390; GFX942-NEXT:    ;;#ASMSTART2391; GFX942-NEXT:    ; def v[6:13]2392; GFX942-NEXT:    ;;#ASMEND2393; GFX942-NEXT:    v_mov_b32_e32 v14, 02394; GFX942-NEXT:    ;;#ASMSTART2395; GFX942-NEXT:    ; def v[0:7]2396; GFX942-NEXT:    ;;#ASMEND2397; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162398; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2399; GFX942-NEXT:    s_waitcnt vmcnt(0)2400; GFX942-NEXT:    s_setpc_b64 s[30:31]2401  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2402  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2403  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 1>2404  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322405  ret void2406}2407 2408define void @v_shuffle_v3p0_v4p0__7_u_1(ptr addrspace(1) inreg %ptr) {2409; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_1:2410; GFX900:       ; %bb.0:2411; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2412; GFX900-NEXT:    ;;#ASMSTART2413; GFX900-NEXT:    ; def v[6:13]2414; GFX900-NEXT:    ;;#ASMEND2415; GFX900-NEXT:    v_mov_b32_e32 v14, 02416; GFX900-NEXT:    ;;#ASMSTART2417; GFX900-NEXT:    ; def v[0:7]2418; GFX900-NEXT:    ;;#ASMEND2419; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162420; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2421; GFX900-NEXT:    s_waitcnt vmcnt(0)2422; GFX900-NEXT:    s_setpc_b64 s[30:31]2423;2424; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_1:2425; GFX90A:       ; %bb.0:2426; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2427; GFX90A-NEXT:    ;;#ASMSTART2428; GFX90A-NEXT:    ; def v[6:13]2429; GFX90A-NEXT:    ;;#ASMEND2430; GFX90A-NEXT:    v_mov_b32_e32 v14, 02431; GFX90A-NEXT:    ;;#ASMSTART2432; GFX90A-NEXT:    ; def v[0:7]2433; GFX90A-NEXT:    ;;#ASMEND2434; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162435; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2436; GFX90A-NEXT:    s_waitcnt vmcnt(0)2437; GFX90A-NEXT:    s_setpc_b64 s[30:31]2438;2439; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_1:2440; GFX942:       ; %bb.0:2441; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2442; GFX942-NEXT:    ;;#ASMSTART2443; GFX942-NEXT:    ; def v[6:13]2444; GFX942-NEXT:    ;;#ASMEND2445; GFX942-NEXT:    v_mov_b32_e32 v14, 02446; GFX942-NEXT:    ;;#ASMSTART2447; GFX942-NEXT:    ; def v[0:7]2448; GFX942-NEXT:    ;;#ASMEND2449; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162450; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2451; GFX942-NEXT:    s_waitcnt vmcnt(0)2452; GFX942-NEXT:    s_setpc_b64 s[30:31]2453  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2454  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2455  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>2456  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322457  ret void2458}2459 2460define void @v_shuffle_v3p0_v4p0__7_0_1(ptr addrspace(1) inreg %ptr) {2461; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_1:2462; GFX900:       ; %bb.0:2463; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2464; GFX900-NEXT:    v_mov_b32_e32 v16, 02465; GFX900-NEXT:    ;;#ASMSTART2466; GFX900-NEXT:    ; def v[8:15]2467; GFX900-NEXT:    ;;#ASMEND2468; GFX900-NEXT:    ;;#ASMSTART2469; GFX900-NEXT:    ; def v[0:7]2470; GFX900-NEXT:    ;;#ASMEND2471; GFX900-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:162472; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]2473; GFX900-NEXT:    s_waitcnt vmcnt(0)2474; GFX900-NEXT:    s_setpc_b64 s[30:31]2475;2476; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_1:2477; GFX90A:       ; %bb.0:2478; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2479; GFX90A-NEXT:    v_mov_b32_e32 v16, 02480; GFX90A-NEXT:    ;;#ASMSTART2481; GFX90A-NEXT:    ; def v[8:15]2482; GFX90A-NEXT:    ;;#ASMEND2483; GFX90A-NEXT:    ;;#ASMSTART2484; GFX90A-NEXT:    ; def v[0:7]2485; GFX90A-NEXT:    ;;#ASMEND2486; GFX90A-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:162487; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]2488; GFX90A-NEXT:    s_waitcnt vmcnt(0)2489; GFX90A-NEXT:    s_setpc_b64 s[30:31]2490;2491; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_1:2492; GFX942:       ; %bb.0:2493; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2494; GFX942-NEXT:    v_mov_b32_e32 v16, 02495; GFX942-NEXT:    ;;#ASMSTART2496; GFX942-NEXT:    ; def v[8:15]2497; GFX942-NEXT:    ;;#ASMEND2498; GFX942-NEXT:    ;;#ASMSTART2499; GFX942-NEXT:    ; def v[0:7]2500; GFX942-NEXT:    ;;#ASMEND2501; GFX942-NEXT:    global_store_dwordx2 v16, v[10:11], s[0:1] offset:162502; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]2503; GFX942-NEXT:    s_waitcnt vmcnt(0)2504; GFX942-NEXT:    s_setpc_b64 s[30:31]2505  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2506  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2507  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 1>2508  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322509  ret void2510}2511 2512define void @v_shuffle_v3p0_v4p0__7_2_1(ptr addrspace(1) inreg %ptr) {2513; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_1:2514; GFX900:       ; %bb.0:2515; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2516; GFX900-NEXT:    v_mov_b32_e32 v14, 02517; GFX900-NEXT:    ;;#ASMSTART2518; GFX900-NEXT:    ; def v[6:13]2519; GFX900-NEXT:    ;;#ASMEND2520; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162521; GFX900-NEXT:    v_mov_b32_e32 v8, v102522; GFX900-NEXT:    v_mov_b32_e32 v9, v112523; GFX900-NEXT:    ;;#ASMSTART2524; GFX900-NEXT:    ; def v[0:7]2525; GFX900-NEXT:    ;;#ASMEND2526; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2527; GFX900-NEXT:    s_waitcnt vmcnt(0)2528; GFX900-NEXT:    s_setpc_b64 s[30:31]2529;2530; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_1:2531; GFX90A:       ; %bb.0:2532; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2533; GFX90A-NEXT:    v_mov_b32_e32 v14, 02534; GFX90A-NEXT:    ;;#ASMSTART2535; GFX90A-NEXT:    ; def v[6:13]2536; GFX90A-NEXT:    ;;#ASMEND2537; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162538; GFX90A-NEXT:    v_mov_b32_e32 v8, v102539; GFX90A-NEXT:    v_mov_b32_e32 v9, v112540; GFX90A-NEXT:    ;;#ASMSTART2541; GFX90A-NEXT:    ; def v[0:7]2542; GFX90A-NEXT:    ;;#ASMEND2543; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2544; GFX90A-NEXT:    s_waitcnt vmcnt(0)2545; GFX90A-NEXT:    s_setpc_b64 s[30:31]2546;2547; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_1:2548; GFX942:       ; %bb.0:2549; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2550; GFX942-NEXT:    v_mov_b32_e32 v14, 02551; GFX942-NEXT:    ;;#ASMSTART2552; GFX942-NEXT:    ; def v[6:13]2553; GFX942-NEXT:    ;;#ASMEND2554; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162555; GFX942-NEXT:    v_mov_b32_e32 v8, v102556; GFX942-NEXT:    v_mov_b32_e32 v9, v112557; GFX942-NEXT:    ;;#ASMSTART2558; GFX942-NEXT:    ; def v[0:7]2559; GFX942-NEXT:    ;;#ASMEND2560; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2561; GFX942-NEXT:    s_waitcnt vmcnt(0)2562; GFX942-NEXT:    s_setpc_b64 s[30:31]2563  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2564  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2565  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 1>2566  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322567  ret void2568}2569 2570define void @v_shuffle_v3p0_v4p0__7_3_1(ptr addrspace(1) inreg %ptr) {2571; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_1:2572; GFX900:       ; %bb.0:2573; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2574; GFX900-NEXT:    v_mov_b32_e32 v14, 02575; GFX900-NEXT:    ;;#ASMSTART2576; GFX900-NEXT:    ; def v[6:13]2577; GFX900-NEXT:    ;;#ASMEND2578; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162579; GFX900-NEXT:    v_mov_b32_e32 v8, v122580; GFX900-NEXT:    v_mov_b32_e32 v9, v132581; GFX900-NEXT:    ;;#ASMSTART2582; GFX900-NEXT:    ; def v[0:7]2583; GFX900-NEXT:    ;;#ASMEND2584; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2585; GFX900-NEXT:    s_waitcnt vmcnt(0)2586; GFX900-NEXT:    s_setpc_b64 s[30:31]2587;2588; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_1:2589; GFX90A:       ; %bb.0:2590; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2591; GFX90A-NEXT:    v_mov_b32_e32 v14, 02592; GFX90A-NEXT:    ;;#ASMSTART2593; GFX90A-NEXT:    ; def v[6:13]2594; GFX90A-NEXT:    ;;#ASMEND2595; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162596; GFX90A-NEXT:    v_mov_b32_e32 v8, v122597; GFX90A-NEXT:    v_mov_b32_e32 v9, v132598; GFX90A-NEXT:    ;;#ASMSTART2599; GFX90A-NEXT:    ; def v[0:7]2600; GFX90A-NEXT:    ;;#ASMEND2601; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2602; GFX90A-NEXT:    s_waitcnt vmcnt(0)2603; GFX90A-NEXT:    s_setpc_b64 s[30:31]2604;2605; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_1:2606; GFX942:       ; %bb.0:2607; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2608; GFX942-NEXT:    v_mov_b32_e32 v14, 02609; GFX942-NEXT:    ;;#ASMSTART2610; GFX942-NEXT:    ; def v[6:13]2611; GFX942-NEXT:    ;;#ASMEND2612; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162613; GFX942-NEXT:    v_mov_b32_e32 v8, v122614; GFX942-NEXT:    v_mov_b32_e32 v9, v132615; GFX942-NEXT:    ;;#ASMSTART2616; GFX942-NEXT:    ; def v[0:7]2617; GFX942-NEXT:    ;;#ASMEND2618; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2619; GFX942-NEXT:    s_waitcnt vmcnt(0)2620; GFX942-NEXT:    s_setpc_b64 s[30:31]2621  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2622  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2623  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 1>2624  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322625  ret void2626}2627 2628define void @v_shuffle_v3p0_v4p0__7_4_1(ptr addrspace(1) inreg %ptr) {2629; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_1:2630; GFX900:       ; %bb.0:2631; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2632; GFX900-NEXT:    v_mov_b32_e32 v14, 02633; GFX900-NEXT:    ;;#ASMSTART2634; GFX900-NEXT:    ; def v[6:13]2635; GFX900-NEXT:    ;;#ASMEND2636; GFX900-NEXT:    ;;#ASMSTART2637; GFX900-NEXT:    ; def v[0:7]2638; GFX900-NEXT:    ;;#ASMEND2639; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162640; GFX900-NEXT:    v_mov_b32_e32 v8, v02641; GFX900-NEXT:    v_mov_b32_e32 v9, v12642; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2643; GFX900-NEXT:    s_waitcnt vmcnt(0)2644; GFX900-NEXT:    s_setpc_b64 s[30:31]2645;2646; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_1:2647; GFX90A:       ; %bb.0:2648; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2649; GFX90A-NEXT:    v_mov_b32_e32 v14, 02650; GFX90A-NEXT:    ;;#ASMSTART2651; GFX90A-NEXT:    ; def v[6:13]2652; GFX90A-NEXT:    ;;#ASMEND2653; GFX90A-NEXT:    ;;#ASMSTART2654; GFX90A-NEXT:    ; def v[0:7]2655; GFX90A-NEXT:    ;;#ASMEND2656; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162657; GFX90A-NEXT:    v_mov_b32_e32 v8, v02658; GFX90A-NEXT:    v_mov_b32_e32 v9, v12659; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2660; GFX90A-NEXT:    s_waitcnt vmcnt(0)2661; GFX90A-NEXT:    s_setpc_b64 s[30:31]2662;2663; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_1:2664; GFX942:       ; %bb.0:2665; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2666; GFX942-NEXT:    v_mov_b32_e32 v14, 02667; GFX942-NEXT:    ;;#ASMSTART2668; GFX942-NEXT:    ; def v[6:13]2669; GFX942-NEXT:    ;;#ASMEND2670; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162671; GFX942-NEXT:    ;;#ASMSTART2672; GFX942-NEXT:    ; def v[0:7]2673; GFX942-NEXT:    ;;#ASMEND2674; GFX942-NEXT:    s_nop 02675; GFX942-NEXT:    v_mov_b32_e32 v8, v02676; GFX942-NEXT:    v_mov_b32_e32 v9, v12677; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2678; GFX942-NEXT:    s_waitcnt vmcnt(0)2679; GFX942-NEXT:    s_setpc_b64 s[30:31]2680  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2681  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2682  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 1>2683  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322684  ret void2685}2686 2687define void @v_shuffle_v3p0_v4p0__7_5_1(ptr addrspace(1) inreg %ptr) {2688; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_1:2689; GFX900:       ; %bb.0:2690; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2691; GFX900-NEXT:    v_mov_b32_e32 v14, 02692; GFX900-NEXT:    ;;#ASMSTART2693; GFX900-NEXT:    ; def v[6:13]2694; GFX900-NEXT:    ;;#ASMEND2695; GFX900-NEXT:    ;;#ASMSTART2696; GFX900-NEXT:    ; def v[0:7]2697; GFX900-NEXT:    ;;#ASMEND2698; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162699; GFX900-NEXT:    v_mov_b32_e32 v8, v22700; GFX900-NEXT:    v_mov_b32_e32 v9, v32701; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2702; GFX900-NEXT:    s_waitcnt vmcnt(0)2703; GFX900-NEXT:    s_setpc_b64 s[30:31]2704;2705; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_1:2706; GFX90A:       ; %bb.0:2707; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2708; GFX90A-NEXT:    v_mov_b32_e32 v14, 02709; GFX90A-NEXT:    ;;#ASMSTART2710; GFX90A-NEXT:    ; def v[6:13]2711; GFX90A-NEXT:    ;;#ASMEND2712; GFX90A-NEXT:    ;;#ASMSTART2713; GFX90A-NEXT:    ; def v[0:7]2714; GFX90A-NEXT:    ;;#ASMEND2715; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162716; GFX90A-NEXT:    v_mov_b32_e32 v8, v22717; GFX90A-NEXT:    v_mov_b32_e32 v9, v32718; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2719; GFX90A-NEXT:    s_waitcnt vmcnt(0)2720; GFX90A-NEXT:    s_setpc_b64 s[30:31]2721;2722; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_1:2723; GFX942:       ; %bb.0:2724; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2725; GFX942-NEXT:    v_mov_b32_e32 v14, 02726; GFX942-NEXT:    ;;#ASMSTART2727; GFX942-NEXT:    ; def v[6:13]2728; GFX942-NEXT:    ;;#ASMEND2729; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162730; GFX942-NEXT:    ;;#ASMSTART2731; GFX942-NEXT:    ; def v[0:7]2732; GFX942-NEXT:    ;;#ASMEND2733; GFX942-NEXT:    s_nop 02734; GFX942-NEXT:    v_mov_b32_e32 v8, v22735; GFX942-NEXT:    v_mov_b32_e32 v9, v32736; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2737; GFX942-NEXT:    s_waitcnt vmcnt(0)2738; GFX942-NEXT:    s_setpc_b64 s[30:31]2739  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2740  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2741  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 1>2742  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322743  ret void2744}2745 2746define void @v_shuffle_v3p0_v4p0__7_6_1(ptr addrspace(1) inreg %ptr) {2747; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_1:2748; GFX900:       ; %bb.0:2749; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2750; GFX900-NEXT:    v_mov_b32_e32 v14, 02751; GFX900-NEXT:    ;;#ASMSTART2752; GFX900-NEXT:    ; def v[6:13]2753; GFX900-NEXT:    ;;#ASMEND2754; GFX900-NEXT:    ;;#ASMSTART2755; GFX900-NEXT:    ; def v[0:7]2756; GFX900-NEXT:    ;;#ASMEND2757; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162758; GFX900-NEXT:    v_mov_b32_e32 v8, v42759; GFX900-NEXT:    v_mov_b32_e32 v9, v52760; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2761; GFX900-NEXT:    s_waitcnt vmcnt(0)2762; GFX900-NEXT:    s_setpc_b64 s[30:31]2763;2764; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_1:2765; GFX90A:       ; %bb.0:2766; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2767; GFX90A-NEXT:    v_mov_b32_e32 v14, 02768; GFX90A-NEXT:    ;;#ASMSTART2769; GFX90A-NEXT:    ; def v[6:13]2770; GFX90A-NEXT:    ;;#ASMEND2771; GFX90A-NEXT:    ;;#ASMSTART2772; GFX90A-NEXT:    ; def v[0:7]2773; GFX90A-NEXT:    ;;#ASMEND2774; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:162775; GFX90A-NEXT:    v_mov_b32_e32 v8, v42776; GFX90A-NEXT:    v_mov_b32_e32 v9, v52777; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]2778; GFX90A-NEXT:    s_waitcnt vmcnt(0)2779; GFX90A-NEXT:    s_setpc_b64 s[30:31]2780;2781; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_1:2782; GFX942:       ; %bb.0:2783; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2784; GFX942-NEXT:    v_mov_b32_e32 v14, 02785; GFX942-NEXT:    ;;#ASMSTART2786; GFX942-NEXT:    ; def v[6:13]2787; GFX942-NEXT:    ;;#ASMEND2788; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:162789; GFX942-NEXT:    ;;#ASMSTART2790; GFX942-NEXT:    ; def v[0:7]2791; GFX942-NEXT:    ;;#ASMEND2792; GFX942-NEXT:    s_nop 02793; GFX942-NEXT:    v_mov_b32_e32 v8, v42794; GFX942-NEXT:    v_mov_b32_e32 v9, v52795; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]2796; GFX942-NEXT:    s_waitcnt vmcnt(0)2797; GFX942-NEXT:    s_setpc_b64 s[30:31]2798  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2799  %vec1 = call <4 x ptr> asm "; def $0", "=v"()2800  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 1>2801  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322802  ret void2803}2804 2805define void @v_shuffle_v3p0_v4p0__u_2_2(ptr addrspace(1) inreg %ptr) {2806; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_2_2:2807; GFX900:       ; %bb.0:2808; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2809; GFX900-NEXT:    v_mov_b32_e32 v8, 02810; GFX900-NEXT:    ;;#ASMSTART2811; GFX900-NEXT:    ; def v[0:7]2812; GFX900-NEXT:    ;;#ASMEND2813; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162814; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], 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_v3p0_v4p0__u_2_2:2819; GFX90A:       ; %bb.0:2820; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2821; GFX90A-NEXT:    v_mov_b32_e32 v8, 02822; GFX90A-NEXT:    ;;#ASMSTART2823; GFX90A-NEXT:    ; def v[0:7]2824; GFX90A-NEXT:    ;;#ASMEND2825; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162826; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]2827; GFX90A-NEXT:    s_waitcnt vmcnt(0)2828; GFX90A-NEXT:    s_setpc_b64 s[30:31]2829;2830; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_2_2:2831; GFX942:       ; %bb.0:2832; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2833; GFX942-NEXT:    v_mov_b32_e32 v8, 02834; GFX942-NEXT:    ;;#ASMSTART2835; GFX942-NEXT:    ; def v[0:7]2836; GFX942-NEXT:    ;;#ASMEND2837; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:162838; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]2839; GFX942-NEXT:    s_waitcnt vmcnt(0)2840; GFX942-NEXT:    s_setpc_b64 s[30:31]2841  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2842  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 2, i32 2>2843  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322844  ret void2845}2846 2847define void @v_shuffle_v3p0_v4p0__0_2_2(ptr addrspace(1) inreg %ptr) {2848; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_2_2:2849; GFX900:       ; %bb.0:2850; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2851; GFX900-NEXT:    ;;#ASMSTART2852; GFX900-NEXT:    ; def v[0:7]2853; GFX900-NEXT:    ;;#ASMEND2854; GFX900-NEXT:    v_mov_b32_e32 v8, 02855; GFX900-NEXT:    v_mov_b32_e32 v2, v42856; GFX900-NEXT:    v_mov_b32_e32 v3, v52857; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162858; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]2859; GFX900-NEXT:    s_waitcnt vmcnt(0)2860; GFX900-NEXT:    s_setpc_b64 s[30:31]2861;2862; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_2_2:2863; GFX90A:       ; %bb.0:2864; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2865; GFX90A-NEXT:    ;;#ASMSTART2866; GFX90A-NEXT:    ; def v[0:7]2867; GFX90A-NEXT:    ;;#ASMEND2868; GFX90A-NEXT:    v_mov_b32_e32 v8, 02869; GFX90A-NEXT:    v_mov_b32_e32 v2, v42870; GFX90A-NEXT:    v_mov_b32_e32 v3, v52871; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162872; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], 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_v3p0_v4p0__0_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:7]2881; GFX942-NEXT:    ;;#ASMEND2882; GFX942-NEXT:    v_mov_b32_e32 v8, 02883; GFX942-NEXT:    v_mov_b32_e32 v2, v42884; GFX942-NEXT:    v_mov_b32_e32 v3, v52885; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:162886; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]2887; GFX942-NEXT:    s_waitcnt vmcnt(0)2888; GFX942-NEXT:    s_setpc_b64 s[30:31]2889  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2890  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 2, i32 2>2891  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322892  ret void2893}2894 2895define void @v_shuffle_v3p0_v4p0__1_2_2(ptr addrspace(1) inreg %ptr) {2896; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_2_2:2897; GFX900:       ; %bb.0:2898; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2899; GFX900-NEXT:    v_mov_b32_e32 v8, 02900; GFX900-NEXT:    ;;#ASMSTART2901; GFX900-NEXT:    ; def v[0:7]2902; GFX900-NEXT:    ;;#ASMEND2903; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162904; GFX900-NEXT:    global_store_dwordx4 v8, v[2: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_v3p0_v4p0__1_2_2:2909; GFX90A:       ; %bb.0:2910; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2911; GFX90A-NEXT:    v_mov_b32_e32 v8, 02912; GFX90A-NEXT:    ;;#ASMSTART2913; GFX90A-NEXT:    ; def v[0:7]2914; GFX90A-NEXT:    ;;#ASMEND2915; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162916; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]2917; GFX90A-NEXT:    s_waitcnt vmcnt(0)2918; GFX90A-NEXT:    s_setpc_b64 s[30:31]2919;2920; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_2_2:2921; GFX942:       ; %bb.0:2922; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2923; GFX942-NEXT:    v_mov_b32_e32 v8, 02924; GFX942-NEXT:    ;;#ASMSTART2925; GFX942-NEXT:    ; def v[0:7]2926; GFX942-NEXT:    ;;#ASMEND2927; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:162928; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]2929; GFX942-NEXT:    s_waitcnt vmcnt(0)2930; GFX942-NEXT:    s_setpc_b64 s[30:31]2931  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2932  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 2, i32 2>2933  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322934  ret void2935}2936 2937define void @v_shuffle_v3p0_v4p0__2_2_2(ptr addrspace(1) inreg %ptr) {2938; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_2_2:2939; GFX900:       ; %bb.0:2940; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2941; GFX900-NEXT:    ;;#ASMSTART2942; GFX900-NEXT:    ; def v[0:7]2943; GFX900-NEXT:    ;;#ASMEND2944; GFX900-NEXT:    v_mov_b32_e32 v8, 02945; GFX900-NEXT:    v_mov_b32_e32 v6, v42946; GFX900-NEXT:    v_mov_b32_e32 v7, v52947; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162948; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], 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_v3p0_v4p0__2_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:7]2957; GFX90A-NEXT:    ;;#ASMEND2958; GFX90A-NEXT:    v_mov_b32_e32 v8, 02959; GFX90A-NEXT:    v_mov_b32_e32 v6, v42960; GFX90A-NEXT:    v_mov_b32_e32 v7, v52961; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:162962; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]2963; GFX90A-NEXT:    s_waitcnt vmcnt(0)2964; GFX90A-NEXT:    s_setpc_b64 s[30:31]2965;2966; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_2_2:2967; GFX942:       ; %bb.0:2968; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2969; GFX942-NEXT:    ;;#ASMSTART2970; GFX942-NEXT:    ; def v[0:7]2971; GFX942-NEXT:    ;;#ASMEND2972; GFX942-NEXT:    v_mov_b32_e32 v8, 02973; GFX942-NEXT:    v_mov_b32_e32 v6, v42974; GFX942-NEXT:    v_mov_b32_e32 v7, v52975; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:162976; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]2977; GFX942-NEXT:    s_waitcnt vmcnt(0)2978; GFX942-NEXT:    s_setpc_b64 s[30:31]2979  %vec0 = call <4 x ptr> asm "; def $0", "=v"()2980  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 2, i32 2>2981  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 322982  ret void2983}2984 2985define void @v_shuffle_v3p0_v4p0__3_2_2(ptr addrspace(1) inreg %ptr) {2986; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_2_2:2987; GFX900:       ; %bb.0:2988; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2989; GFX900-NEXT:    v_mov_b32_e32 v10, 02990; GFX900-NEXT:    ;;#ASMSTART2991; GFX900-NEXT:    ; def v[0:7]2992; GFX900-NEXT:    ;;#ASMEND2993; GFX900-NEXT:    v_mov_b32_e32 v8, v42994; GFX900-NEXT:    v_mov_b32_e32 v9, v52995; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:162996; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]2997; GFX900-NEXT:    s_waitcnt vmcnt(0)2998; GFX900-NEXT:    s_setpc_b64 s[30:31]2999;3000; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_2_2:3001; GFX90A:       ; %bb.0:3002; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3003; GFX90A-NEXT:    v_mov_b32_e32 v10, 03004; GFX90A-NEXT:    ;;#ASMSTART3005; GFX90A-NEXT:    ; def v[0:7]3006; GFX90A-NEXT:    ;;#ASMEND3007; GFX90A-NEXT:    v_mov_b32_e32 v8, v43008; GFX90A-NEXT:    v_mov_b32_e32 v9, v53009; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:163010; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], 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_v3p0_v4p0__3_2_2:3015; GFX942:       ; %bb.0:3016; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3017; GFX942-NEXT:    v_mov_b32_e32 v10, 03018; GFX942-NEXT:    ;;#ASMSTART3019; GFX942-NEXT:    ; def v[0:7]3020; GFX942-NEXT:    ;;#ASMEND3021; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:163022; GFX942-NEXT:    v_mov_b32_e32 v8, v43023; GFX942-NEXT:    v_mov_b32_e32 v9, v53024; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]3025; GFX942-NEXT:    s_waitcnt vmcnt(0)3026; GFX942-NEXT:    s_setpc_b64 s[30:31]3027  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3028  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 2, i32 2>3029  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323030  ret void3031}3032 3033define void @v_shuffle_v3p0_v4p0__4_2_2(ptr addrspace(1) inreg %ptr) {3034; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_2_2:3035; GFX900:       ; %bb.0:3036; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3037; GFX900-NEXT:    v_mov_b32_e32 v8, 03038; GFX900-NEXT:    ;;#ASMSTART3039; GFX900-NEXT:    ; def v[0:7]3040; GFX900-NEXT:    ;;#ASMEND3041; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:163042; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]3043; GFX900-NEXT:    s_waitcnt vmcnt(0)3044; GFX900-NEXT:    s_setpc_b64 s[30:31]3045;3046; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_2_2:3047; GFX90A:       ; %bb.0:3048; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3049; GFX90A-NEXT:    v_mov_b32_e32 v8, 03050; GFX90A-NEXT:    ;;#ASMSTART3051; GFX90A-NEXT:    ; def v[0:7]3052; GFX90A-NEXT:    ;;#ASMEND3053; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:163054; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]3055; GFX90A-NEXT:    s_waitcnt vmcnt(0)3056; GFX90A-NEXT:    s_setpc_b64 s[30:31]3057;3058; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_2_2:3059; GFX942:       ; %bb.0:3060; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3061; GFX942-NEXT:    v_mov_b32_e32 v8, 03062; GFX942-NEXT:    ;;#ASMSTART3063; GFX942-NEXT:    ; def v[0:7]3064; GFX942-NEXT:    ;;#ASMEND3065; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:163066; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]3067; GFX942-NEXT:    s_waitcnt vmcnt(0)3068; GFX942-NEXT:    s_setpc_b64 s[30:31]3069  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3070  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 2, i32 2>3071  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323072  ret void3073}3074 3075define void @v_shuffle_v3p0_v4p0__5_2_2(ptr addrspace(1) inreg %ptr) {3076; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_2_2:3077; GFX900:       ; %bb.0:3078; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3079; GFX900-NEXT:    ;;#ASMSTART3080; GFX900-NEXT:    ; def v[0:7]3081; GFX900-NEXT:    ;;#ASMEND3082; GFX900-NEXT:    ;;#ASMSTART3083; GFX900-NEXT:    ; def v[6:13]3084; GFX900-NEXT:    ;;#ASMEND3085; GFX900-NEXT:    v_mov_b32_e32 v14, 03086; GFX900-NEXT:    v_mov_b32_e32 v10, v43087; GFX900-NEXT:    v_mov_b32_e32 v11, v53088; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:163089; GFX900-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]3090; GFX900-NEXT:    s_waitcnt vmcnt(0)3091; GFX900-NEXT:    s_setpc_b64 s[30:31]3092;3093; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_2_2:3094; GFX90A:       ; %bb.0:3095; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3096; GFX90A-NEXT:    ;;#ASMSTART3097; GFX90A-NEXT:    ; def v[0:7]3098; GFX90A-NEXT:    ;;#ASMEND3099; GFX90A-NEXT:    ;;#ASMSTART3100; GFX90A-NEXT:    ; def v[6:13]3101; GFX90A-NEXT:    ;;#ASMEND3102; GFX90A-NEXT:    v_mov_b32_e32 v14, 03103; GFX90A-NEXT:    v_mov_b32_e32 v10, v43104; GFX90A-NEXT:    v_mov_b32_e32 v11, v53105; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:163106; GFX90A-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]3107; GFX90A-NEXT:    s_waitcnt vmcnt(0)3108; GFX90A-NEXT:    s_setpc_b64 s[30:31]3109;3110; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_2_2:3111; GFX942:       ; %bb.0:3112; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3113; GFX942-NEXT:    ;;#ASMSTART3114; GFX942-NEXT:    ; def v[0:7]3115; GFX942-NEXT:    ;;#ASMEND3116; GFX942-NEXT:    v_mov_b32_e32 v14, 03117; GFX942-NEXT:    ;;#ASMSTART3118; GFX942-NEXT:    ; def v[6:13]3119; GFX942-NEXT:    ;;#ASMEND3120; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:163121; GFX942-NEXT:    v_mov_b32_e32 v10, v43122; GFX942-NEXT:    v_mov_b32_e32 v11, v53123; GFX942-NEXT:    global_store_dwordx4 v14, v[8:11], s[0:1]3124; GFX942-NEXT:    s_waitcnt vmcnt(0)3125; GFX942-NEXT:    s_setpc_b64 s[30:31]3126  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3127  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3128  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 2, i32 2>3129  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323130  ret void3131}3132 3133define void @v_shuffle_v3p0_v4p0__6_2_2(ptr addrspace(1) inreg %ptr) {3134; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_2_2:3135; GFX900:       ; %bb.0:3136; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3137; GFX900-NEXT:    ;;#ASMSTART3138; GFX900-NEXT:    ; def v[0:7]3139; GFX900-NEXT:    ;;#ASMEND3140; GFX900-NEXT:    ;;#ASMSTART3141; GFX900-NEXT:    ; def v[6:13]3142; GFX900-NEXT:    ;;#ASMEND3143; GFX900-NEXT:    v_mov_b32_e32 v14, 03144; GFX900-NEXT:    v_mov_b32_e32 v12, v43145; GFX900-NEXT:    v_mov_b32_e32 v13, v53146; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:163147; GFX900-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]3148; GFX900-NEXT:    s_waitcnt vmcnt(0)3149; GFX900-NEXT:    s_setpc_b64 s[30:31]3150;3151; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_2_2:3152; GFX90A:       ; %bb.0:3153; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3154; GFX90A-NEXT:    ;;#ASMSTART3155; GFX90A-NEXT:    ; def v[0:7]3156; GFX90A-NEXT:    ;;#ASMEND3157; GFX90A-NEXT:    ;;#ASMSTART3158; GFX90A-NEXT:    ; def v[6:13]3159; GFX90A-NEXT:    ;;#ASMEND3160; GFX90A-NEXT:    v_mov_b32_e32 v14, 03161; GFX90A-NEXT:    v_mov_b32_e32 v12, v43162; GFX90A-NEXT:    v_mov_b32_e32 v13, v53163; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:163164; GFX90A-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]3165; GFX90A-NEXT:    s_waitcnt vmcnt(0)3166; GFX90A-NEXT:    s_setpc_b64 s[30:31]3167;3168; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_2_2:3169; GFX942:       ; %bb.0:3170; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3171; GFX942-NEXT:    ;;#ASMSTART3172; GFX942-NEXT:    ; def v[0:7]3173; GFX942-NEXT:    ;;#ASMEND3174; GFX942-NEXT:    v_mov_b32_e32 v14, 03175; GFX942-NEXT:    ;;#ASMSTART3176; GFX942-NEXT:    ; def v[6:13]3177; GFX942-NEXT:    ;;#ASMEND3178; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:163179; GFX942-NEXT:    v_mov_b32_e32 v12, v43180; GFX942-NEXT:    v_mov_b32_e32 v13, v53181; GFX942-NEXT:    global_store_dwordx4 v14, v[10:13], s[0:1]3182; GFX942-NEXT:    s_waitcnt vmcnt(0)3183; GFX942-NEXT:    s_setpc_b64 s[30:31]3184  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3185  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3186  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 2, i32 2>3187  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323188  ret void3189}3190 3191define void @v_shuffle_v3p0_v4p0__7_2_2(ptr addrspace(1) inreg %ptr) {3192; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_2:3193; GFX900:       ; %bb.0:3194; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3195; GFX900-NEXT:    ;;#ASMSTART3196; GFX900-NEXT:    ; def v[4:11]3197; GFX900-NEXT:    ;;#ASMEND3198; GFX900-NEXT:    v_mov_b32_e32 v12, 03199; GFX900-NEXT:    ;;#ASMSTART3200; GFX900-NEXT:    ; def v[0:7]3201; GFX900-NEXT:    ;;#ASMEND3202; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163203; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3204; GFX900-NEXT:    s_waitcnt vmcnt(0)3205; GFX900-NEXT:    s_setpc_b64 s[30:31]3206;3207; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_2:3208; GFX90A:       ; %bb.0:3209; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3210; GFX90A-NEXT:    ;;#ASMSTART3211; GFX90A-NEXT:    ; def v[4:11]3212; GFX90A-NEXT:    ;;#ASMEND3213; GFX90A-NEXT:    v_mov_b32_e32 v12, 03214; GFX90A-NEXT:    ;;#ASMSTART3215; GFX90A-NEXT:    ; def v[0:7]3216; GFX90A-NEXT:    ;;#ASMEND3217; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163218; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3219; GFX90A-NEXT:    s_waitcnt vmcnt(0)3220; GFX90A-NEXT:    s_setpc_b64 s[30:31]3221;3222; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_2:3223; GFX942:       ; %bb.0:3224; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3225; GFX942-NEXT:    ;;#ASMSTART3226; GFX942-NEXT:    ; def v[4:11]3227; GFX942-NEXT:    ;;#ASMEND3228; GFX942-NEXT:    v_mov_b32_e32 v12, 03229; GFX942-NEXT:    ;;#ASMSTART3230; GFX942-NEXT:    ; def v[0:7]3231; GFX942-NEXT:    ;;#ASMEND3232; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163233; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3234; GFX942-NEXT:    s_waitcnt vmcnt(0)3235; GFX942-NEXT:    s_setpc_b64 s[30:31]3236  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3237  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3238  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 2>3239  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323240  ret void3241}3242 3243define void @v_shuffle_v3p0_v4p0__7_u_2(ptr addrspace(1) inreg %ptr) {3244; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_2:3245; GFX900:       ; %bb.0:3246; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3247; GFX900-NEXT:    ;;#ASMSTART3248; GFX900-NEXT:    ; def v[4:11]3249; GFX900-NEXT:    ;;#ASMEND3250; GFX900-NEXT:    v_mov_b32_e32 v12, 03251; GFX900-NEXT:    ;;#ASMSTART3252; GFX900-NEXT:    ; def v[0:7]3253; GFX900-NEXT:    ;;#ASMEND3254; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163255; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3256; GFX900-NEXT:    s_waitcnt vmcnt(0)3257; GFX900-NEXT:    s_setpc_b64 s[30:31]3258;3259; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_2:3260; GFX90A:       ; %bb.0:3261; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3262; GFX90A-NEXT:    ;;#ASMSTART3263; GFX90A-NEXT:    ; def v[4:11]3264; GFX90A-NEXT:    ;;#ASMEND3265; GFX90A-NEXT:    v_mov_b32_e32 v12, 03266; GFX90A-NEXT:    ;;#ASMSTART3267; GFX90A-NEXT:    ; def v[0:7]3268; GFX90A-NEXT:    ;;#ASMEND3269; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163270; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3271; GFX90A-NEXT:    s_waitcnt vmcnt(0)3272; GFX90A-NEXT:    s_setpc_b64 s[30:31]3273;3274; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_2:3275; GFX942:       ; %bb.0:3276; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3277; GFX942-NEXT:    ;;#ASMSTART3278; GFX942-NEXT:    ; def v[4:11]3279; GFX942-NEXT:    ;;#ASMEND3280; GFX942-NEXT:    v_mov_b32_e32 v12, 03281; GFX942-NEXT:    ;;#ASMSTART3282; GFX942-NEXT:    ; def v[0:7]3283; GFX942-NEXT:    ;;#ASMEND3284; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163285; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3286; GFX942-NEXT:    s_waitcnt vmcnt(0)3287; GFX942-NEXT:    s_setpc_b64 s[30:31]3288  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3289  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3290  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>3291  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323292  ret void3293}3294 3295define void @v_shuffle_v3p0_v4p0__7_0_2(ptr addrspace(1) inreg %ptr) {3296; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_2:3297; GFX900:       ; %bb.0:3298; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3299; GFX900-NEXT:    v_mov_b32_e32 v16, 03300; GFX900-NEXT:    ;;#ASMSTART3301; GFX900-NEXT:    ; def v[8:15]3302; GFX900-NEXT:    ;;#ASMEND3303; GFX900-NEXT:    ;;#ASMSTART3304; GFX900-NEXT:    ; def v[0:7]3305; GFX900-NEXT:    ;;#ASMEND3306; GFX900-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:163307; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]3308; GFX900-NEXT:    s_waitcnt vmcnt(0)3309; GFX900-NEXT:    s_setpc_b64 s[30:31]3310;3311; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_2:3312; GFX90A:       ; %bb.0:3313; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3314; GFX90A-NEXT:    v_mov_b32_e32 v16, 03315; GFX90A-NEXT:    ;;#ASMSTART3316; GFX90A-NEXT:    ; def v[8:15]3317; GFX90A-NEXT:    ;;#ASMEND3318; GFX90A-NEXT:    ;;#ASMSTART3319; GFX90A-NEXT:    ; def v[0:7]3320; GFX90A-NEXT:    ;;#ASMEND3321; GFX90A-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:163322; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]3323; GFX90A-NEXT:    s_waitcnt vmcnt(0)3324; GFX90A-NEXT:    s_setpc_b64 s[30:31]3325;3326; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_2:3327; GFX942:       ; %bb.0:3328; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3329; GFX942-NEXT:    v_mov_b32_e32 v16, 03330; GFX942-NEXT:    ;;#ASMSTART3331; GFX942-NEXT:    ; def v[8:15]3332; GFX942-NEXT:    ;;#ASMEND3333; GFX942-NEXT:    ;;#ASMSTART3334; GFX942-NEXT:    ; def v[0:7]3335; GFX942-NEXT:    ;;#ASMEND3336; GFX942-NEXT:    global_store_dwordx2 v16, v[12:13], s[0:1] offset:163337; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]3338; GFX942-NEXT:    s_waitcnt vmcnt(0)3339; GFX942-NEXT:    s_setpc_b64 s[30:31]3340  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3341  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3342  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 2>3343  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323344  ret void3345}3346 3347define void @v_shuffle_v3p0_v4p0__7_1_2(ptr addrspace(1) inreg %ptr) {3348; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_2:3349; GFX900:       ; %bb.0:3350; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3351; GFX900-NEXT:    v_mov_b32_e32 v14, 03352; GFX900-NEXT:    ;;#ASMSTART3353; GFX900-NEXT:    ; def v[6:13]3354; GFX900-NEXT:    ;;#ASMEND3355; GFX900-NEXT:    ;;#ASMSTART3356; GFX900-NEXT:    ; def v[0:7]3357; GFX900-NEXT:    ;;#ASMEND3358; GFX900-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:163359; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]3360; GFX900-NEXT:    s_waitcnt vmcnt(0)3361; GFX900-NEXT:    s_setpc_b64 s[30:31]3362;3363; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_2:3364; GFX90A:       ; %bb.0:3365; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3366; GFX90A-NEXT:    v_mov_b32_e32 v14, 03367; GFX90A-NEXT:    ;;#ASMSTART3368; GFX90A-NEXT:    ; def v[6:13]3369; GFX90A-NEXT:    ;;#ASMEND3370; GFX90A-NEXT:    ;;#ASMSTART3371; GFX90A-NEXT:    ; def v[0:7]3372; GFX90A-NEXT:    ;;#ASMEND3373; GFX90A-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:163374; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]3375; GFX90A-NEXT:    s_waitcnt vmcnt(0)3376; GFX90A-NEXT:    s_setpc_b64 s[30:31]3377;3378; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_2:3379; GFX942:       ; %bb.0:3380; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3381; GFX942-NEXT:    v_mov_b32_e32 v14, 03382; GFX942-NEXT:    ;;#ASMSTART3383; GFX942-NEXT:    ; def v[6:13]3384; GFX942-NEXT:    ;;#ASMEND3385; GFX942-NEXT:    s_nop 03386; GFX942-NEXT:    ;;#ASMSTART3387; GFX942-NEXT:    ; def v[0:7]3388; GFX942-NEXT:    ;;#ASMEND3389; GFX942-NEXT:    global_store_dwordx2 v14, v[10:11], s[0:1] offset:163390; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]3391; GFX942-NEXT:    s_waitcnt vmcnt(0)3392; GFX942-NEXT:    s_setpc_b64 s[30:31]3393  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3394  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3395  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 2>3396  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323397  ret void3398}3399 3400define void @v_shuffle_v3p0_v4p0__7_3_2(ptr addrspace(1) inreg %ptr) {3401; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_2:3402; GFX900:       ; %bb.0:3403; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3404; GFX900-NEXT:    v_mov_b32_e32 v12, 03405; GFX900-NEXT:    ;;#ASMSTART3406; GFX900-NEXT:    ; def v[4:11]3407; GFX900-NEXT:    ;;#ASMEND3408; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163409; GFX900-NEXT:    v_mov_b32_e32 v8, v103410; GFX900-NEXT:    v_mov_b32_e32 v9, v113411; GFX900-NEXT:    ;;#ASMSTART3412; GFX900-NEXT:    ; def v[0:7]3413; GFX900-NEXT:    ;;#ASMEND3414; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3415; GFX900-NEXT:    s_waitcnt vmcnt(0)3416; GFX900-NEXT:    s_setpc_b64 s[30:31]3417;3418; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_2:3419; GFX90A:       ; %bb.0:3420; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3421; GFX90A-NEXT:    v_mov_b32_e32 v12, 03422; GFX90A-NEXT:    ;;#ASMSTART3423; GFX90A-NEXT:    ; def v[4:11]3424; GFX90A-NEXT:    ;;#ASMEND3425; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163426; GFX90A-NEXT:    v_mov_b32_e32 v8, v103427; GFX90A-NEXT:    v_mov_b32_e32 v9, v113428; GFX90A-NEXT:    ;;#ASMSTART3429; GFX90A-NEXT:    ; def v[0:7]3430; GFX90A-NEXT:    ;;#ASMEND3431; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3432; GFX90A-NEXT:    s_waitcnt vmcnt(0)3433; GFX90A-NEXT:    s_setpc_b64 s[30:31]3434;3435; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_2:3436; GFX942:       ; %bb.0:3437; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3438; GFX942-NEXT:    v_mov_b32_e32 v12, 03439; GFX942-NEXT:    ;;#ASMSTART3440; GFX942-NEXT:    ; def v[4:11]3441; GFX942-NEXT:    ;;#ASMEND3442; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163443; GFX942-NEXT:    v_mov_b32_e32 v8, v103444; GFX942-NEXT:    v_mov_b32_e32 v9, v113445; GFX942-NEXT:    ;;#ASMSTART3446; GFX942-NEXT:    ; def v[0:7]3447; GFX942-NEXT:    ;;#ASMEND3448; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3449; GFX942-NEXT:    s_waitcnt vmcnt(0)3450; GFX942-NEXT:    s_setpc_b64 s[30:31]3451  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3452  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3453  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 2>3454  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323455  ret void3456}3457 3458define void @v_shuffle_v3p0_v4p0__7_4_2(ptr addrspace(1) inreg %ptr) {3459; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_2:3460; GFX900:       ; %bb.0:3461; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3462; GFX900-NEXT:    v_mov_b32_e32 v12, 03463; GFX900-NEXT:    ;;#ASMSTART3464; GFX900-NEXT:    ; def v[4:11]3465; GFX900-NEXT:    ;;#ASMEND3466; GFX900-NEXT:    ;;#ASMSTART3467; GFX900-NEXT:    ; def v[0:7]3468; GFX900-NEXT:    ;;#ASMEND3469; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163470; GFX900-NEXT:    v_mov_b32_e32 v8, v03471; GFX900-NEXT:    v_mov_b32_e32 v9, v13472; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3473; GFX900-NEXT:    s_waitcnt vmcnt(0)3474; GFX900-NEXT:    s_setpc_b64 s[30:31]3475;3476; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_2:3477; GFX90A:       ; %bb.0:3478; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3479; GFX90A-NEXT:    v_mov_b32_e32 v12, 03480; GFX90A-NEXT:    ;;#ASMSTART3481; GFX90A-NEXT:    ; def v[4:11]3482; GFX90A-NEXT:    ;;#ASMEND3483; GFX90A-NEXT:    ;;#ASMSTART3484; GFX90A-NEXT:    ; def v[0:7]3485; GFX90A-NEXT:    ;;#ASMEND3486; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163487; GFX90A-NEXT:    v_mov_b32_e32 v8, v03488; GFX90A-NEXT:    v_mov_b32_e32 v9, v13489; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3490; GFX90A-NEXT:    s_waitcnt vmcnt(0)3491; GFX90A-NEXT:    s_setpc_b64 s[30:31]3492;3493; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_2:3494; GFX942:       ; %bb.0:3495; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3496; GFX942-NEXT:    v_mov_b32_e32 v12, 03497; GFX942-NEXT:    ;;#ASMSTART3498; GFX942-NEXT:    ; def v[4:11]3499; GFX942-NEXT:    ;;#ASMEND3500; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163501; GFX942-NEXT:    ;;#ASMSTART3502; GFX942-NEXT:    ; def v[0:7]3503; GFX942-NEXT:    ;;#ASMEND3504; GFX942-NEXT:    s_nop 03505; GFX942-NEXT:    v_mov_b32_e32 v8, v03506; GFX942-NEXT:    v_mov_b32_e32 v9, v13507; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3508; GFX942-NEXT:    s_waitcnt vmcnt(0)3509; GFX942-NEXT:    s_setpc_b64 s[30:31]3510  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3511  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3512  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 2>3513  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323514  ret void3515}3516 3517define void @v_shuffle_v3p0_v4p0__7_5_2(ptr addrspace(1) inreg %ptr) {3518; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_2:3519; GFX900:       ; %bb.0:3520; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3521; GFX900-NEXT:    v_mov_b32_e32 v12, 03522; GFX900-NEXT:    ;;#ASMSTART3523; GFX900-NEXT:    ; def v[4:11]3524; GFX900-NEXT:    ;;#ASMEND3525; GFX900-NEXT:    ;;#ASMSTART3526; GFX900-NEXT:    ; def v[0:7]3527; GFX900-NEXT:    ;;#ASMEND3528; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163529; GFX900-NEXT:    v_mov_b32_e32 v8, v23530; GFX900-NEXT:    v_mov_b32_e32 v9, v33531; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3532; GFX900-NEXT:    s_waitcnt vmcnt(0)3533; GFX900-NEXT:    s_setpc_b64 s[30:31]3534;3535; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_2:3536; GFX90A:       ; %bb.0:3537; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3538; GFX90A-NEXT:    v_mov_b32_e32 v12, 03539; GFX90A-NEXT:    ;;#ASMSTART3540; GFX90A-NEXT:    ; def v[4:11]3541; GFX90A-NEXT:    ;;#ASMEND3542; GFX90A-NEXT:    ;;#ASMSTART3543; GFX90A-NEXT:    ; def v[0:7]3544; GFX90A-NEXT:    ;;#ASMEND3545; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163546; GFX90A-NEXT:    v_mov_b32_e32 v8, v23547; GFX90A-NEXT:    v_mov_b32_e32 v9, v33548; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3549; GFX90A-NEXT:    s_waitcnt vmcnt(0)3550; GFX90A-NEXT:    s_setpc_b64 s[30:31]3551;3552; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_2:3553; GFX942:       ; %bb.0:3554; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3555; GFX942-NEXT:    v_mov_b32_e32 v12, 03556; GFX942-NEXT:    ;;#ASMSTART3557; GFX942-NEXT:    ; def v[4:11]3558; GFX942-NEXT:    ;;#ASMEND3559; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163560; GFX942-NEXT:    ;;#ASMSTART3561; GFX942-NEXT:    ; def v[0:7]3562; GFX942-NEXT:    ;;#ASMEND3563; GFX942-NEXT:    s_nop 03564; GFX942-NEXT:    v_mov_b32_e32 v8, v23565; GFX942-NEXT:    v_mov_b32_e32 v9, v33566; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3567; GFX942-NEXT:    s_waitcnt vmcnt(0)3568; GFX942-NEXT:    s_setpc_b64 s[30:31]3569  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3570  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3571  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 2>3572  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323573  ret void3574}3575 3576define void @v_shuffle_v3p0_v4p0__7_6_2(ptr addrspace(1) inreg %ptr) {3577; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_2:3578; GFX900:       ; %bb.0:3579; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3580; GFX900-NEXT:    v_mov_b32_e32 v12, 03581; GFX900-NEXT:    ;;#ASMSTART3582; GFX900-NEXT:    ; def v[4:11]3583; GFX900-NEXT:    ;;#ASMEND3584; GFX900-NEXT:    ;;#ASMSTART3585; GFX900-NEXT:    ; def v[0:7]3586; GFX900-NEXT:    ;;#ASMEND3587; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163588; GFX900-NEXT:    v_mov_b32_e32 v8, v43589; GFX900-NEXT:    v_mov_b32_e32 v9, v53590; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3591; GFX900-NEXT:    s_waitcnt vmcnt(0)3592; GFX900-NEXT:    s_setpc_b64 s[30:31]3593;3594; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_2:3595; GFX90A:       ; %bb.0:3596; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3597; GFX90A-NEXT:    v_mov_b32_e32 v12, 03598; GFX90A-NEXT:    ;;#ASMSTART3599; GFX90A-NEXT:    ; def v[4:11]3600; GFX90A-NEXT:    ;;#ASMEND3601; GFX90A-NEXT:    ;;#ASMSTART3602; GFX90A-NEXT:    ; def v[0:7]3603; GFX90A-NEXT:    ;;#ASMEND3604; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:163605; GFX90A-NEXT:    v_mov_b32_e32 v8, v43606; GFX90A-NEXT:    v_mov_b32_e32 v9, v53607; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]3608; GFX90A-NEXT:    s_waitcnt vmcnt(0)3609; GFX90A-NEXT:    s_setpc_b64 s[30:31]3610;3611; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_2:3612; GFX942:       ; %bb.0:3613; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3614; GFX942-NEXT:    v_mov_b32_e32 v12, 03615; GFX942-NEXT:    ;;#ASMSTART3616; GFX942-NEXT:    ; def v[4:11]3617; GFX942-NEXT:    ;;#ASMEND3618; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:163619; GFX942-NEXT:    ;;#ASMSTART3620; GFX942-NEXT:    ; def v[0:7]3621; GFX942-NEXT:    ;;#ASMEND3622; GFX942-NEXT:    s_nop 03623; GFX942-NEXT:    v_mov_b32_e32 v8, v43624; GFX942-NEXT:    v_mov_b32_e32 v9, v53625; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]3626; GFX942-NEXT:    s_waitcnt vmcnt(0)3627; GFX942-NEXT:    s_setpc_b64 s[30:31]3628  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3629  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3630  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 2>3631  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323632  ret void3633}3634 3635define void @v_shuffle_v3p0_v4p0__u_3_3(ptr addrspace(1) inreg %ptr) {3636; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_3_3:3637; GFX900:       ; %bb.0:3638; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3639; GFX900-NEXT:    v_mov_b32_e32 v8, 03640; GFX900-NEXT:    ;;#ASMSTART3641; GFX900-NEXT:    ; def v[0:7]3642; GFX900-NEXT:    ;;#ASMEND3643; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163644; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3645; GFX900-NEXT:    s_waitcnt vmcnt(0)3646; GFX900-NEXT:    s_setpc_b64 s[30:31]3647;3648; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_3_3:3649; GFX90A:       ; %bb.0:3650; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3651; GFX90A-NEXT:    v_mov_b32_e32 v8, 03652; GFX90A-NEXT:    ;;#ASMSTART3653; GFX90A-NEXT:    ; def v[0:7]3654; GFX90A-NEXT:    ;;#ASMEND3655; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163656; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3657; GFX90A-NEXT:    s_waitcnt vmcnt(0)3658; GFX90A-NEXT:    s_setpc_b64 s[30:31]3659;3660; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_3_3:3661; GFX942:       ; %bb.0:3662; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3663; GFX942-NEXT:    v_mov_b32_e32 v8, 03664; GFX942-NEXT:    ;;#ASMSTART3665; GFX942-NEXT:    ; def v[0:7]3666; GFX942-NEXT:    ;;#ASMEND3667; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:163668; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]3669; GFX942-NEXT:    s_waitcnt vmcnt(0)3670; GFX942-NEXT:    s_setpc_b64 s[30:31]3671  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3672  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 3, i32 3>3673  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323674  ret void3675}3676 3677define void @v_shuffle_v3p0_v4p0__0_3_3(ptr addrspace(1) inreg %ptr) {3678; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_3_3:3679; GFX900:       ; %bb.0:3680; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3681; GFX900-NEXT:    ;;#ASMSTART3682; GFX900-NEXT:    ; def v[0:7]3683; GFX900-NEXT:    ;;#ASMEND3684; GFX900-NEXT:    v_mov_b32_e32 v8, 03685; GFX900-NEXT:    v_mov_b32_e32 v2, v63686; GFX900-NEXT:    v_mov_b32_e32 v3, v73687; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163688; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]3689; GFX900-NEXT:    s_waitcnt vmcnt(0)3690; GFX900-NEXT:    s_setpc_b64 s[30:31]3691;3692; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_3_3:3693; GFX90A:       ; %bb.0:3694; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3695; GFX90A-NEXT:    ;;#ASMSTART3696; GFX90A-NEXT:    ; def v[0:7]3697; GFX90A-NEXT:    ;;#ASMEND3698; GFX90A-NEXT:    v_mov_b32_e32 v8, 03699; GFX90A-NEXT:    v_mov_b32_e32 v2, v63700; GFX90A-NEXT:    v_mov_b32_e32 v3, v73701; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163702; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]3703; GFX90A-NEXT:    s_waitcnt vmcnt(0)3704; GFX90A-NEXT:    s_setpc_b64 s[30:31]3705;3706; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_3_3:3707; GFX942:       ; %bb.0:3708; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3709; GFX942-NEXT:    ;;#ASMSTART3710; GFX942-NEXT:    ; def v[0:7]3711; GFX942-NEXT:    ;;#ASMEND3712; GFX942-NEXT:    v_mov_b32_e32 v8, 03713; GFX942-NEXT:    v_mov_b32_e32 v2, v63714; GFX942-NEXT:    v_mov_b32_e32 v3, v73715; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:163716; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]3717; GFX942-NEXT:    s_waitcnt vmcnt(0)3718; GFX942-NEXT:    s_setpc_b64 s[30:31]3719  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3720  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 3, i32 3>3721  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323722  ret void3723}3724 3725define void @v_shuffle_v3p0_v4p0__1_3_3(ptr addrspace(1) inreg %ptr) {3726; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_3_3:3727; GFX900:       ; %bb.0:3728; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3729; GFX900-NEXT:    ;;#ASMSTART3730; GFX900-NEXT:    ; def v[0:7]3731; GFX900-NEXT:    ;;#ASMEND3732; GFX900-NEXT:    v_mov_b32_e32 v8, 03733; GFX900-NEXT:    v_mov_b32_e32 v4, v63734; GFX900-NEXT:    v_mov_b32_e32 v5, v73735; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163736; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]3737; GFX900-NEXT:    s_waitcnt vmcnt(0)3738; GFX900-NEXT:    s_setpc_b64 s[30:31]3739;3740; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_3_3:3741; GFX90A:       ; %bb.0:3742; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3743; GFX90A-NEXT:    ;;#ASMSTART3744; GFX90A-NEXT:    ; def v[0:7]3745; GFX90A-NEXT:    ;;#ASMEND3746; GFX90A-NEXT:    v_mov_b32_e32 v8, 03747; GFX90A-NEXT:    v_mov_b32_e32 v4, v63748; GFX90A-NEXT:    v_mov_b32_e32 v5, v73749; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163750; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]3751; GFX90A-NEXT:    s_waitcnt vmcnt(0)3752; GFX90A-NEXT:    s_setpc_b64 s[30:31]3753;3754; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_3_3:3755; GFX942:       ; %bb.0:3756; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3757; GFX942-NEXT:    ;;#ASMSTART3758; GFX942-NEXT:    ; def v[0:7]3759; GFX942-NEXT:    ;;#ASMEND3760; GFX942-NEXT:    v_mov_b32_e32 v8, 03761; GFX942-NEXT:    v_mov_b32_e32 v4, v63762; GFX942-NEXT:    v_mov_b32_e32 v5, v73763; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:163764; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]3765; GFX942-NEXT:    s_waitcnt vmcnt(0)3766; GFX942-NEXT:    s_setpc_b64 s[30:31]3767  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3768  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 3, i32 3>3769  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323770  ret void3771}3772 3773define void @v_shuffle_v3p0_v4p0__2_3_3(ptr addrspace(1) inreg %ptr) {3774; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_3_3:3775; GFX900:       ; %bb.0:3776; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3777; GFX900-NEXT:    v_mov_b32_e32 v8, 03778; GFX900-NEXT:    ;;#ASMSTART3779; GFX900-NEXT:    ; def v[0:7]3780; GFX900-NEXT:    ;;#ASMEND3781; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163782; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3783; GFX900-NEXT:    s_waitcnt vmcnt(0)3784; GFX900-NEXT:    s_setpc_b64 s[30:31]3785;3786; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_3_3:3787; GFX90A:       ; %bb.0:3788; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3789; GFX90A-NEXT:    v_mov_b32_e32 v8, 03790; GFX90A-NEXT:    ;;#ASMSTART3791; GFX90A-NEXT:    ; def v[0:7]3792; GFX90A-NEXT:    ;;#ASMEND3793; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163794; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3795; GFX90A-NEXT:    s_waitcnt vmcnt(0)3796; GFX90A-NEXT:    s_setpc_b64 s[30:31]3797;3798; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_3_3:3799; GFX942:       ; %bb.0:3800; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3801; GFX942-NEXT:    v_mov_b32_e32 v8, 03802; GFX942-NEXT:    ;;#ASMSTART3803; GFX942-NEXT:    ; def v[0:7]3804; GFX942-NEXT:    ;;#ASMEND3805; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:163806; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]3807; GFX942-NEXT:    s_waitcnt vmcnt(0)3808; GFX942-NEXT:    s_setpc_b64 s[30:31]3809  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3810  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 3, i32 3>3811  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323812  ret void3813}3814 3815define void @v_shuffle_v3p0_v4p0__3_3_3(ptr addrspace(1) inreg %ptr) {3816; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_3_3:3817; GFX900:       ; %bb.0:3818; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3819; GFX900-NEXT:    v_mov_b32_e32 v10, 03820; GFX900-NEXT:    ;;#ASMSTART3821; GFX900-NEXT:    ; def v[0:7]3822; GFX900-NEXT:    ;;#ASMEND3823; GFX900-NEXT:    v_mov_b32_e32 v8, v63824; GFX900-NEXT:    v_mov_b32_e32 v9, v73825; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:163826; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]3827; GFX900-NEXT:    s_waitcnt vmcnt(0)3828; GFX900-NEXT:    s_setpc_b64 s[30:31]3829;3830; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_3_3:3831; GFX90A:       ; %bb.0:3832; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3833; GFX90A-NEXT:    v_mov_b32_e32 v10, 03834; GFX90A-NEXT:    ;;#ASMSTART3835; GFX90A-NEXT:    ; def v[0:7]3836; GFX90A-NEXT:    ;;#ASMEND3837; GFX90A-NEXT:    v_mov_b32_e32 v8, v63838; GFX90A-NEXT:    v_mov_b32_e32 v9, v73839; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:163840; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]3841; GFX90A-NEXT:    s_waitcnt vmcnt(0)3842; GFX90A-NEXT:    s_setpc_b64 s[30:31]3843;3844; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_3_3:3845; GFX942:       ; %bb.0:3846; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3847; GFX942-NEXT:    v_mov_b32_e32 v10, 03848; GFX942-NEXT:    ;;#ASMSTART3849; GFX942-NEXT:    ; def v[0:7]3850; GFX942-NEXT:    ;;#ASMEND3851; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:163852; GFX942-NEXT:    v_mov_b32_e32 v8, v63853; GFX942-NEXT:    v_mov_b32_e32 v9, v73854; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]3855; GFX942-NEXT:    s_waitcnt vmcnt(0)3856; GFX942-NEXT:    s_setpc_b64 s[30:31]3857  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3858  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 3, i32 3>3859  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323860  ret void3861}3862 3863define void @v_shuffle_v3p0_v4p0__4_3_3(ptr addrspace(1) inreg %ptr) {3864; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_3_3:3865; GFX900:       ; %bb.0:3866; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3867; GFX900-NEXT:    v_mov_b32_e32 v8, 03868; GFX900-NEXT:    ;;#ASMSTART3869; GFX900-NEXT:    ; def v[0:7]3870; GFX900-NEXT:    ;;#ASMEND3871; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163872; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3873; GFX900-NEXT:    s_waitcnt vmcnt(0)3874; GFX900-NEXT:    s_setpc_b64 s[30:31]3875;3876; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_3_3:3877; GFX90A:       ; %bb.0:3878; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3879; GFX90A-NEXT:    v_mov_b32_e32 v8, 03880; GFX90A-NEXT:    ;;#ASMSTART3881; GFX90A-NEXT:    ; def v[0:7]3882; GFX90A-NEXT:    ;;#ASMEND3883; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:163884; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]3885; GFX90A-NEXT:    s_waitcnt vmcnt(0)3886; GFX90A-NEXT:    s_setpc_b64 s[30:31]3887;3888; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_3_3:3889; GFX942:       ; %bb.0:3890; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3891; GFX942-NEXT:    v_mov_b32_e32 v8, 03892; GFX942-NEXT:    ;;#ASMSTART3893; GFX942-NEXT:    ; def v[0:7]3894; GFX942-NEXT:    ;;#ASMEND3895; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:163896; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]3897; GFX942-NEXT:    s_waitcnt vmcnt(0)3898; GFX942-NEXT:    s_setpc_b64 s[30:31]3899  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3900  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 3, i32 3>3901  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323902  ret void3903}3904 3905define void @v_shuffle_v3p0_v4p0__5_3_3(ptr addrspace(1) inreg %ptr) {3906; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_3_3:3907; GFX900:       ; %bb.0:3908; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3909; GFX900-NEXT:    ;;#ASMSTART3910; GFX900-NEXT:    ; def v[8:15]3911; GFX900-NEXT:    ;;#ASMEND3912; GFX900-NEXT:    v_mov_b32_e32 v16, 03913; GFX900-NEXT:    ;;#ASMSTART3914; GFX900-NEXT:    ; def v[0:7]3915; GFX900-NEXT:    ;;#ASMEND3916; GFX900-NEXT:    v_mov_b32_e32 v12, v63917; GFX900-NEXT:    v_mov_b32_e32 v13, v73918; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:163919; GFX900-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]3920; GFX900-NEXT:    s_waitcnt vmcnt(0)3921; GFX900-NEXT:    s_setpc_b64 s[30:31]3922;3923; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_3_3:3924; GFX90A:       ; %bb.0:3925; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3926; GFX90A-NEXT:    ;;#ASMSTART3927; GFX90A-NEXT:    ; def v[8:15]3928; GFX90A-NEXT:    ;;#ASMEND3929; GFX90A-NEXT:    v_mov_b32_e32 v16, 03930; GFX90A-NEXT:    ;;#ASMSTART3931; GFX90A-NEXT:    ; def v[0:7]3932; GFX90A-NEXT:    ;;#ASMEND3933; GFX90A-NEXT:    v_mov_b32_e32 v12, v63934; GFX90A-NEXT:    v_mov_b32_e32 v13, v73935; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:163936; GFX90A-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]3937; GFX90A-NEXT:    s_waitcnt vmcnt(0)3938; GFX90A-NEXT:    s_setpc_b64 s[30:31]3939;3940; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_3_3:3941; GFX942:       ; %bb.0:3942; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3943; GFX942-NEXT:    ;;#ASMSTART3944; GFX942-NEXT:    ; def v[8:15]3945; GFX942-NEXT:    ;;#ASMEND3946; GFX942-NEXT:    v_mov_b32_e32 v16, 03947; GFX942-NEXT:    ;;#ASMSTART3948; GFX942-NEXT:    ; def v[0:7]3949; GFX942-NEXT:    ;;#ASMEND3950; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:163951; GFX942-NEXT:    v_mov_b32_e32 v12, v63952; GFX942-NEXT:    v_mov_b32_e32 v13, v73953; GFX942-NEXT:    global_store_dwordx4 v16, v[10:13], s[0:1]3954; GFX942-NEXT:    s_waitcnt vmcnt(0)3955; GFX942-NEXT:    s_setpc_b64 s[30:31]3956  %vec0 = call <4 x ptr> asm "; def $0", "=v"()3957  %vec1 = call <4 x ptr> asm "; def $0", "=v"()3958  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 3, i32 3>3959  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 323960  ret void3961}3962 3963define void @v_shuffle_v3p0_v4p0__6_3_3(ptr addrspace(1) inreg %ptr) {3964; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_3_3:3965; GFX900:       ; %bb.0:3966; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3967; GFX900-NEXT:    ;;#ASMSTART3968; GFX900-NEXT:    ; def v[8:15]3969; GFX900-NEXT:    ;;#ASMEND3970; GFX900-NEXT:    v_mov_b32_e32 v16, 03971; GFX900-NEXT:    ;;#ASMSTART3972; GFX900-NEXT:    ; def v[0:7]3973; GFX900-NEXT:    ;;#ASMEND3974; GFX900-NEXT:    v_mov_b32_e32 v14, v63975; GFX900-NEXT:    v_mov_b32_e32 v15, v73976; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:163977; GFX900-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]3978; GFX900-NEXT:    s_waitcnt vmcnt(0)3979; GFX900-NEXT:    s_setpc_b64 s[30:31]3980;3981; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_3_3:3982; GFX90A:       ; %bb.0:3983; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3984; GFX90A-NEXT:    ;;#ASMSTART3985; GFX90A-NEXT:    ; def v[8:15]3986; GFX90A-NEXT:    ;;#ASMEND3987; GFX90A-NEXT:    v_mov_b32_e32 v16, 03988; GFX90A-NEXT:    ;;#ASMSTART3989; GFX90A-NEXT:    ; def v[0:7]3990; GFX90A-NEXT:    ;;#ASMEND3991; GFX90A-NEXT:    v_mov_b32_e32 v14, v63992; GFX90A-NEXT:    v_mov_b32_e32 v15, v73993; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:163994; GFX90A-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]3995; GFX90A-NEXT:    s_waitcnt vmcnt(0)3996; GFX90A-NEXT:    s_setpc_b64 s[30:31]3997;3998; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_3_3:3999; GFX942:       ; %bb.0:4000; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4001; GFX942-NEXT:    ;;#ASMSTART4002; GFX942-NEXT:    ; def v[8:15]4003; GFX942-NEXT:    ;;#ASMEND4004; GFX942-NEXT:    v_mov_b32_e32 v16, 04005; GFX942-NEXT:    ;;#ASMSTART4006; GFX942-NEXT:    ; def v[0:7]4007; GFX942-NEXT:    ;;#ASMEND4008; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:164009; GFX942-NEXT:    v_mov_b32_e32 v14, v64010; GFX942-NEXT:    v_mov_b32_e32 v15, v74011; GFX942-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1]4012; GFX942-NEXT:    s_waitcnt vmcnt(0)4013; GFX942-NEXT:    s_setpc_b64 s[30:31]4014  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4015  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4016  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 3, i32 3>4017  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324018  ret void4019}4020 4021define void @v_shuffle_v3p0_v4p0__7_3_3(ptr addrspace(1) inreg %ptr) {4022; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_3:4023; GFX900:       ; %bb.0:4024; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4025; GFX900-NEXT:    ;;#ASMSTART4026; GFX900-NEXT:    ; def v[2:9]4027; GFX900-NEXT:    ;;#ASMEND4028; GFX900-NEXT:    v_mov_b32_e32 v10, 04029; GFX900-NEXT:    ;;#ASMSTART4030; GFX900-NEXT:    ; def v[0:7]4031; GFX900-NEXT:    ;;#ASMEND4032; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164033; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4034; GFX900-NEXT:    s_waitcnt vmcnt(0)4035; GFX900-NEXT:    s_setpc_b64 s[30:31]4036;4037; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_3:4038; GFX90A:       ; %bb.0:4039; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4040; GFX90A-NEXT:    ;;#ASMSTART4041; GFX90A-NEXT:    ; def v[2:9]4042; GFX90A-NEXT:    ;;#ASMEND4043; GFX90A-NEXT:    v_mov_b32_e32 v10, 04044; GFX90A-NEXT:    ;;#ASMSTART4045; GFX90A-NEXT:    ; def v[0:7]4046; GFX90A-NEXT:    ;;#ASMEND4047; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164048; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4049; GFX90A-NEXT:    s_waitcnt vmcnt(0)4050; GFX90A-NEXT:    s_setpc_b64 s[30:31]4051;4052; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_3:4053; GFX942:       ; %bb.0:4054; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4055; GFX942-NEXT:    ;;#ASMSTART4056; GFX942-NEXT:    ; def v[2:9]4057; GFX942-NEXT:    ;;#ASMEND4058; GFX942-NEXT:    v_mov_b32_e32 v10, 04059; GFX942-NEXT:    ;;#ASMSTART4060; GFX942-NEXT:    ; def v[0:7]4061; GFX942-NEXT:    ;;#ASMEND4062; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:164063; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4064; GFX942-NEXT:    s_waitcnt vmcnt(0)4065; GFX942-NEXT:    s_setpc_b64 s[30:31]4066  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4067  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4068  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 3>4069  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324070  ret void4071}4072 4073define void @v_shuffle_v3p0_v4p0__7_u_3(ptr addrspace(1) inreg %ptr) {4074; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_3:4075; GFX900:       ; %bb.0:4076; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4077; GFX900-NEXT:    ;;#ASMSTART4078; GFX900-NEXT:    ; def v[2:9]4079; GFX900-NEXT:    ;;#ASMEND4080; GFX900-NEXT:    v_mov_b32_e32 v10, 04081; GFX900-NEXT:    ;;#ASMSTART4082; GFX900-NEXT:    ; def v[0:7]4083; GFX900-NEXT:    ;;#ASMEND4084; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164085; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4086; GFX900-NEXT:    s_waitcnt vmcnt(0)4087; GFX900-NEXT:    s_setpc_b64 s[30:31]4088;4089; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_3:4090; GFX90A:       ; %bb.0:4091; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4092; GFX90A-NEXT:    ;;#ASMSTART4093; GFX90A-NEXT:    ; def v[2:9]4094; GFX90A-NEXT:    ;;#ASMEND4095; GFX90A-NEXT:    v_mov_b32_e32 v10, 04096; GFX90A-NEXT:    ;;#ASMSTART4097; GFX90A-NEXT:    ; def v[0:7]4098; GFX90A-NEXT:    ;;#ASMEND4099; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164100; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4101; GFX90A-NEXT:    s_waitcnt vmcnt(0)4102; GFX90A-NEXT:    s_setpc_b64 s[30:31]4103;4104; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_3:4105; GFX942:       ; %bb.0:4106; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4107; GFX942-NEXT:    ;;#ASMSTART4108; GFX942-NEXT:    ; def v[2:9]4109; GFX942-NEXT:    ;;#ASMEND4110; GFX942-NEXT:    v_mov_b32_e32 v10, 04111; GFX942-NEXT:    ;;#ASMSTART4112; GFX942-NEXT:    ; def v[0:7]4113; GFX942-NEXT:    ;;#ASMEND4114; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:164115; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4116; GFX942-NEXT:    s_waitcnt vmcnt(0)4117; GFX942-NEXT:    s_setpc_b64 s[30:31]4118  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4119  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4120  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>4121  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324122  ret void4123}4124 4125define void @v_shuffle_v3p0_v4p0__7_0_3(ptr addrspace(1) inreg %ptr) {4126; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_3:4127; GFX900:       ; %bb.0:4128; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4129; GFX900-NEXT:    v_mov_b32_e32 v16, 04130; GFX900-NEXT:    ;;#ASMSTART4131; GFX900-NEXT:    ; def v[8:15]4132; GFX900-NEXT:    ;;#ASMEND4133; GFX900-NEXT:    ;;#ASMSTART4134; GFX900-NEXT:    ; def v[0:7]4135; GFX900-NEXT:    ;;#ASMEND4136; GFX900-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:164137; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]4138; GFX900-NEXT:    s_waitcnt vmcnt(0)4139; GFX900-NEXT:    s_setpc_b64 s[30:31]4140;4141; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_3:4142; GFX90A:       ; %bb.0:4143; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4144; GFX90A-NEXT:    v_mov_b32_e32 v16, 04145; GFX90A-NEXT:    ;;#ASMSTART4146; GFX90A-NEXT:    ; def v[8:15]4147; GFX90A-NEXT:    ;;#ASMEND4148; GFX90A-NEXT:    ;;#ASMSTART4149; GFX90A-NEXT:    ; def v[0:7]4150; GFX90A-NEXT:    ;;#ASMEND4151; GFX90A-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:164152; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]4153; GFX90A-NEXT:    s_waitcnt vmcnt(0)4154; GFX90A-NEXT:    s_setpc_b64 s[30:31]4155;4156; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_3:4157; GFX942:       ; %bb.0:4158; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4159; GFX942-NEXT:    v_mov_b32_e32 v16, 04160; GFX942-NEXT:    ;;#ASMSTART4161; GFX942-NEXT:    ; def v[8:15]4162; GFX942-NEXT:    ;;#ASMEND4163; GFX942-NEXT:    ;;#ASMSTART4164; GFX942-NEXT:    ; def v[0:7]4165; GFX942-NEXT:    ;;#ASMEND4166; GFX942-NEXT:    global_store_dwordx2 v16, v[14:15], s[0:1] offset:164167; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]4168; GFX942-NEXT:    s_waitcnt vmcnt(0)4169; GFX942-NEXT:    s_setpc_b64 s[30:31]4170  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4171  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4172  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 3>4173  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324174  ret void4175}4176 4177define void @v_shuffle_v3p0_v4p0__7_1_3(ptr addrspace(1) inreg %ptr) {4178; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_3:4179; GFX900:       ; %bb.0:4180; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4181; GFX900-NEXT:    v_mov_b32_e32 v14, 04182; GFX900-NEXT:    ;;#ASMSTART4183; GFX900-NEXT:    ; def v[6:13]4184; GFX900-NEXT:    ;;#ASMEND4185; GFX900-NEXT:    ;;#ASMSTART4186; GFX900-NEXT:    ; def v[0:7]4187; GFX900-NEXT:    ;;#ASMEND4188; GFX900-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:164189; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]4190; GFX900-NEXT:    s_waitcnt vmcnt(0)4191; GFX900-NEXT:    s_setpc_b64 s[30:31]4192;4193; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_3:4194; GFX90A:       ; %bb.0:4195; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4196; GFX90A-NEXT:    v_mov_b32_e32 v14, 04197; GFX90A-NEXT:    ;;#ASMSTART4198; GFX90A-NEXT:    ; def v[6:13]4199; GFX90A-NEXT:    ;;#ASMEND4200; GFX90A-NEXT:    ;;#ASMSTART4201; GFX90A-NEXT:    ; def v[0:7]4202; GFX90A-NEXT:    ;;#ASMEND4203; GFX90A-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:164204; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]4205; GFX90A-NEXT:    s_waitcnt vmcnt(0)4206; GFX90A-NEXT:    s_setpc_b64 s[30:31]4207;4208; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_3:4209; GFX942:       ; %bb.0:4210; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4211; GFX942-NEXT:    v_mov_b32_e32 v14, 04212; GFX942-NEXT:    ;;#ASMSTART4213; GFX942-NEXT:    ; def v[6:13]4214; GFX942-NEXT:    ;;#ASMEND4215; GFX942-NEXT:    s_nop 04216; GFX942-NEXT:    ;;#ASMSTART4217; GFX942-NEXT:    ; def v[0:7]4218; GFX942-NEXT:    ;;#ASMEND4219; GFX942-NEXT:    global_store_dwordx2 v14, v[12:13], s[0:1] offset:164220; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]4221; GFX942-NEXT:    s_waitcnt vmcnt(0)4222; GFX942-NEXT:    s_setpc_b64 s[30:31]4223  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4224  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4225  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 3>4226  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324227  ret void4228}4229 4230define void @v_shuffle_v3p0_v4p0__7_2_3(ptr addrspace(1) inreg %ptr) {4231; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_3:4232; GFX900:       ; %bb.0:4233; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4234; GFX900-NEXT:    v_mov_b32_e32 v12, 04235; GFX900-NEXT:    ;;#ASMSTART4236; GFX900-NEXT:    ; def v[4:11]4237; GFX900-NEXT:    ;;#ASMEND4238; GFX900-NEXT:    ;;#ASMSTART4239; GFX900-NEXT:    ; def v[0:7]4240; GFX900-NEXT:    ;;#ASMEND4241; GFX900-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:164242; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]4243; GFX900-NEXT:    s_waitcnt vmcnt(0)4244; GFX900-NEXT:    s_setpc_b64 s[30:31]4245;4246; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_3:4247; GFX90A:       ; %bb.0:4248; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4249; GFX90A-NEXT:    v_mov_b32_e32 v12, 04250; GFX90A-NEXT:    ;;#ASMSTART4251; GFX90A-NEXT:    ; def v[4:11]4252; GFX90A-NEXT:    ;;#ASMEND4253; GFX90A-NEXT:    ;;#ASMSTART4254; GFX90A-NEXT:    ; def v[0:7]4255; GFX90A-NEXT:    ;;#ASMEND4256; GFX90A-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:164257; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]4258; GFX90A-NEXT:    s_waitcnt vmcnt(0)4259; GFX90A-NEXT:    s_setpc_b64 s[30:31]4260;4261; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_3:4262; GFX942:       ; %bb.0:4263; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4264; GFX942-NEXT:    v_mov_b32_e32 v12, 04265; GFX942-NEXT:    ;;#ASMSTART4266; GFX942-NEXT:    ; def v[4:11]4267; GFX942-NEXT:    ;;#ASMEND4268; GFX942-NEXT:    s_nop 04269; GFX942-NEXT:    ;;#ASMSTART4270; GFX942-NEXT:    ; def v[0:7]4271; GFX942-NEXT:    ;;#ASMEND4272; GFX942-NEXT:    global_store_dwordx2 v12, v[10:11], s[0:1] offset:164273; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]4274; GFX942-NEXT:    s_waitcnt vmcnt(0)4275; GFX942-NEXT:    s_setpc_b64 s[30:31]4276  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4277  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4278  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 3>4279  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324280  ret void4281}4282 4283define void @v_shuffle_v3p0_v4p0__7_4_3(ptr addrspace(1) inreg %ptr) {4284; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_3:4285; GFX900:       ; %bb.0:4286; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4287; GFX900-NEXT:    v_mov_b32_e32 v10, 04288; GFX900-NEXT:    ;;#ASMSTART4289; GFX900-NEXT:    ; def v[2:9]4290; GFX900-NEXT:    ;;#ASMEND4291; GFX900-NEXT:    ;;#ASMSTART4292; GFX900-NEXT:    ; def v[0:7]4293; GFX900-NEXT:    ;;#ASMEND4294; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164295; GFX900-NEXT:    v_mov_b32_e32 v8, v04296; GFX900-NEXT:    v_mov_b32_e32 v9, v14297; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4298; GFX900-NEXT:    s_waitcnt vmcnt(0)4299; GFX900-NEXT:    s_setpc_b64 s[30:31]4300;4301; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_3:4302; GFX90A:       ; %bb.0:4303; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4304; GFX90A-NEXT:    v_mov_b32_e32 v10, 04305; GFX90A-NEXT:    ;;#ASMSTART4306; GFX90A-NEXT:    ; def v[2:9]4307; GFX90A-NEXT:    ;;#ASMEND4308; GFX90A-NEXT:    ;;#ASMSTART4309; GFX90A-NEXT:    ; def v[0:7]4310; GFX90A-NEXT:    ;;#ASMEND4311; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164312; GFX90A-NEXT:    v_mov_b32_e32 v8, v04313; GFX90A-NEXT:    v_mov_b32_e32 v9, v14314; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4315; GFX90A-NEXT:    s_waitcnt vmcnt(0)4316; GFX90A-NEXT:    s_setpc_b64 s[30:31]4317;4318; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_3:4319; GFX942:       ; %bb.0:4320; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4321; GFX942-NEXT:    v_mov_b32_e32 v10, 04322; GFX942-NEXT:    ;;#ASMSTART4323; GFX942-NEXT:    ; def v[2:9]4324; GFX942-NEXT:    ;;#ASMEND4325; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:164326; GFX942-NEXT:    ;;#ASMSTART4327; GFX942-NEXT:    ; def v[0:7]4328; GFX942-NEXT:    ;;#ASMEND4329; GFX942-NEXT:    s_nop 04330; GFX942-NEXT:    v_mov_b32_e32 v8, v04331; GFX942-NEXT:    v_mov_b32_e32 v9, v14332; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4333; GFX942-NEXT:    s_waitcnt vmcnt(0)4334; GFX942-NEXT:    s_setpc_b64 s[30:31]4335  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4336  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4337  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 3>4338  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324339  ret void4340}4341 4342define void @v_shuffle_v3p0_v4p0__7_5_3(ptr addrspace(1) inreg %ptr) {4343; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_3:4344; GFX900:       ; %bb.0:4345; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4346; GFX900-NEXT:    v_mov_b32_e32 v10, 04347; GFX900-NEXT:    ;;#ASMSTART4348; GFX900-NEXT:    ; def v[2:9]4349; GFX900-NEXT:    ;;#ASMEND4350; GFX900-NEXT:    ;;#ASMSTART4351; GFX900-NEXT:    ; def v[0:7]4352; GFX900-NEXT:    ;;#ASMEND4353; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164354; GFX900-NEXT:    v_mov_b32_e32 v8, v24355; GFX900-NEXT:    v_mov_b32_e32 v9, v34356; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4357; GFX900-NEXT:    s_waitcnt vmcnt(0)4358; GFX900-NEXT:    s_setpc_b64 s[30:31]4359;4360; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_3:4361; GFX90A:       ; %bb.0:4362; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4363; GFX90A-NEXT:    v_mov_b32_e32 v10, 04364; GFX90A-NEXT:    ;;#ASMSTART4365; GFX90A-NEXT:    ; def v[2:9]4366; GFX90A-NEXT:    ;;#ASMEND4367; GFX90A-NEXT:    ;;#ASMSTART4368; GFX90A-NEXT:    ; def v[0:7]4369; GFX90A-NEXT:    ;;#ASMEND4370; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164371; GFX90A-NEXT:    v_mov_b32_e32 v8, v24372; GFX90A-NEXT:    v_mov_b32_e32 v9, v34373; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4374; GFX90A-NEXT:    s_waitcnt vmcnt(0)4375; GFX90A-NEXT:    s_setpc_b64 s[30:31]4376;4377; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_3:4378; GFX942:       ; %bb.0:4379; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4380; GFX942-NEXT:    v_mov_b32_e32 v10, 04381; GFX942-NEXT:    ;;#ASMSTART4382; GFX942-NEXT:    ; def v[2:9]4383; GFX942-NEXT:    ;;#ASMEND4384; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:164385; GFX942-NEXT:    ;;#ASMSTART4386; GFX942-NEXT:    ; def v[0:7]4387; GFX942-NEXT:    ;;#ASMEND4388; GFX942-NEXT:    s_nop 04389; GFX942-NEXT:    v_mov_b32_e32 v8, v24390; GFX942-NEXT:    v_mov_b32_e32 v9, v34391; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4392; GFX942-NEXT:    s_waitcnt vmcnt(0)4393; GFX942-NEXT:    s_setpc_b64 s[30:31]4394  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4395  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4396  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 3>4397  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324398  ret void4399}4400 4401define void @v_shuffle_v3p0_v4p0__7_6_3(ptr addrspace(1) inreg %ptr) {4402; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_3:4403; GFX900:       ; %bb.0:4404; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4405; GFX900-NEXT:    v_mov_b32_e32 v10, 04406; GFX900-NEXT:    ;;#ASMSTART4407; GFX900-NEXT:    ; def v[2:9]4408; GFX900-NEXT:    ;;#ASMEND4409; GFX900-NEXT:    ;;#ASMSTART4410; GFX900-NEXT:    ; def v[0:7]4411; GFX900-NEXT:    ;;#ASMEND4412; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164413; GFX900-NEXT:    v_mov_b32_e32 v8, v44414; GFX900-NEXT:    v_mov_b32_e32 v9, v54415; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4416; GFX900-NEXT:    s_waitcnt vmcnt(0)4417; GFX900-NEXT:    s_setpc_b64 s[30:31]4418;4419; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_3:4420; GFX90A:       ; %bb.0:4421; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4422; GFX90A-NEXT:    v_mov_b32_e32 v10, 04423; GFX90A-NEXT:    ;;#ASMSTART4424; GFX90A-NEXT:    ; def v[2:9]4425; GFX90A-NEXT:    ;;#ASMEND4426; GFX90A-NEXT:    ;;#ASMSTART4427; GFX90A-NEXT:    ; def v[0:7]4428; GFX90A-NEXT:    ;;#ASMEND4429; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:164430; GFX90A-NEXT:    v_mov_b32_e32 v8, v44431; GFX90A-NEXT:    v_mov_b32_e32 v9, v54432; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4433; GFX90A-NEXT:    s_waitcnt vmcnt(0)4434; GFX90A-NEXT:    s_setpc_b64 s[30:31]4435;4436; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_3:4437; GFX942:       ; %bb.0:4438; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4439; GFX942-NEXT:    v_mov_b32_e32 v10, 04440; GFX942-NEXT:    ;;#ASMSTART4441; GFX942-NEXT:    ; def v[2:9]4442; GFX942-NEXT:    ;;#ASMEND4443; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:164444; GFX942-NEXT:    ;;#ASMSTART4445; GFX942-NEXT:    ; def v[0:7]4446; GFX942-NEXT:    ;;#ASMEND4447; GFX942-NEXT:    s_nop 04448; GFX942-NEXT:    v_mov_b32_e32 v8, v44449; GFX942-NEXT:    v_mov_b32_e32 v9, v54450; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4451; GFX942-NEXT:    s_waitcnt vmcnt(0)4452; GFX942-NEXT:    s_setpc_b64 s[30:31]4453  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4454  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4455  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 3>4456  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324457  ret void4458}4459 4460define void @v_shuffle_v3p0_v4p0__u_4_4(ptr addrspace(1) inreg %ptr) {4461; GFX9-LABEL: v_shuffle_v3p0_v4p0__u_4_4:4462; GFX9:       ; %bb.0:4463; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4464; GFX9-NEXT:    s_setpc_b64 s[30:31]4465  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4466  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 4, i32 4>4467  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324468  ret void4469}4470 4471define void @v_shuffle_v3p0_v4p0__0_4_4(ptr addrspace(1) inreg %ptr) {4472; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_4_4:4473; GFX900:       ; %bb.0:4474; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4475; GFX900-NEXT:    v_mov_b32_e32 v8, 04476; GFX900-NEXT:    ;;#ASMSTART4477; GFX900-NEXT:    ; def v[0:7]4478; GFX900-NEXT:    ;;#ASMEND4479; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:164480; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]4481; GFX900-NEXT:    s_waitcnt vmcnt(0)4482; GFX900-NEXT:    s_setpc_b64 s[30:31]4483;4484; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_4_4:4485; GFX90A:       ; %bb.0:4486; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4487; GFX90A-NEXT:    v_mov_b32_e32 v8, 04488; GFX90A-NEXT:    ;;#ASMSTART4489; GFX90A-NEXT:    ; def v[0:7]4490; GFX90A-NEXT:    ;;#ASMEND4491; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:164492; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]4493; GFX90A-NEXT:    s_waitcnt vmcnt(0)4494; GFX90A-NEXT:    s_setpc_b64 s[30:31]4495;4496; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_4_4:4497; GFX942:       ; %bb.0:4498; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4499; GFX942-NEXT:    v_mov_b32_e32 v8, 04500; GFX942-NEXT:    ;;#ASMSTART4501; GFX942-NEXT:    ; def v[0:7]4502; GFX942-NEXT:    ;;#ASMEND4503; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:164504; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]4505; GFX942-NEXT:    s_waitcnt vmcnt(0)4506; GFX942-NEXT:    s_setpc_b64 s[30:31]4507  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4508  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 4, i32 4>4509  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324510  ret void4511}4512 4513define void @v_shuffle_v3p0_v4p0__1_4_4(ptr addrspace(1) inreg %ptr) {4514; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_4_4:4515; GFX900:       ; %bb.0:4516; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4517; GFX900-NEXT:    v_mov_b32_e32 v8, 04518; GFX900-NEXT:    ;;#ASMSTART4519; GFX900-NEXT:    ; def v[0:7]4520; GFX900-NEXT:    ;;#ASMEND4521; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]4522; GFX900-NEXT:    s_waitcnt vmcnt(0)4523; GFX900-NEXT:    s_setpc_b64 s[30:31]4524;4525; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_4_4:4526; GFX90A:       ; %bb.0:4527; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4528; GFX90A-NEXT:    v_mov_b32_e32 v8, 04529; GFX90A-NEXT:    ;;#ASMSTART4530; GFX90A-NEXT:    ; def v[0:7]4531; GFX90A-NEXT:    ;;#ASMEND4532; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]4533; GFX90A-NEXT:    s_waitcnt vmcnt(0)4534; GFX90A-NEXT:    s_setpc_b64 s[30:31]4535;4536; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_4_4:4537; GFX942:       ; %bb.0:4538; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4539; GFX942-NEXT:    v_mov_b32_e32 v8, 04540; GFX942-NEXT:    ;;#ASMSTART4541; GFX942-NEXT:    ; def v[0:7]4542; GFX942-NEXT:    ;;#ASMEND4543; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]4544; GFX942-NEXT:    s_waitcnt vmcnt(0)4545; GFX942-NEXT:    s_setpc_b64 s[30:31]4546  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4547  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 4, i32 4>4548  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324549  ret void4550}4551 4552define void @v_shuffle_v3p0_v4p0__2_4_4(ptr addrspace(1) inreg %ptr) {4553; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_4_4:4554; GFX900:       ; %bb.0:4555; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4556; GFX900-NEXT:    v_mov_b32_e32 v8, 04557; GFX900-NEXT:    ;;#ASMSTART4558; GFX900-NEXT:    ; def v[0:7]4559; GFX900-NEXT:    ;;#ASMEND4560; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]4561; GFX900-NEXT:    s_waitcnt vmcnt(0)4562; GFX900-NEXT:    s_setpc_b64 s[30:31]4563;4564; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_4_4:4565; GFX90A:       ; %bb.0:4566; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4567; GFX90A-NEXT:    v_mov_b32_e32 v8, 04568; GFX90A-NEXT:    ;;#ASMSTART4569; GFX90A-NEXT:    ; def v[0:7]4570; GFX90A-NEXT:    ;;#ASMEND4571; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]4572; GFX90A-NEXT:    s_waitcnt vmcnt(0)4573; GFX90A-NEXT:    s_setpc_b64 s[30:31]4574;4575; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_4_4:4576; GFX942:       ; %bb.0:4577; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4578; GFX942-NEXT:    v_mov_b32_e32 v8, 04579; GFX942-NEXT:    ;;#ASMSTART4580; GFX942-NEXT:    ; def v[0:7]4581; GFX942-NEXT:    ;;#ASMEND4582; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]4583; GFX942-NEXT:    s_waitcnt vmcnt(0)4584; GFX942-NEXT:    s_setpc_b64 s[30:31]4585  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4586  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 4, i32 4>4587  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324588  ret void4589}4590 4591define void @v_shuffle_v3p0_v4p0__3_4_4(ptr addrspace(1) inreg %ptr) {4592; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_4_4:4593; GFX900:       ; %bb.0:4594; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4595; GFX900-NEXT:    v_mov_b32_e32 v8, 04596; GFX900-NEXT:    ;;#ASMSTART4597; GFX900-NEXT:    ; def v[0:7]4598; GFX900-NEXT:    ;;#ASMEND4599; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]4600; GFX900-NEXT:    s_waitcnt vmcnt(0)4601; GFX900-NEXT:    s_setpc_b64 s[30:31]4602;4603; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_4_4:4604; GFX90A:       ; %bb.0:4605; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4606; GFX90A-NEXT:    v_mov_b32_e32 v8, 04607; GFX90A-NEXT:    ;;#ASMSTART4608; GFX90A-NEXT:    ; def v[0:7]4609; GFX90A-NEXT:    ;;#ASMEND4610; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]4611; GFX90A-NEXT:    s_waitcnt vmcnt(0)4612; GFX90A-NEXT:    s_setpc_b64 s[30:31]4613;4614; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_4_4:4615; GFX942:       ; %bb.0:4616; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4617; GFX942-NEXT:    v_mov_b32_e32 v8, 04618; GFX942-NEXT:    ;;#ASMSTART4619; GFX942-NEXT:    ; def v[0:7]4620; GFX942-NEXT:    ;;#ASMEND4621; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]4622; GFX942-NEXT:    s_waitcnt vmcnt(0)4623; GFX942-NEXT:    s_setpc_b64 s[30:31]4624  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4625  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 4, i32 4>4626  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324627  ret void4628}4629 4630define void @v_shuffle_v3p0_v4p0__4_4_4(ptr addrspace(1) inreg %ptr) {4631; GFX9-LABEL: v_shuffle_v3p0_v4p0__4_4_4:4632; GFX9:       ; %bb.0:4633; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4634; GFX9-NEXT:    s_setpc_b64 s[30:31]4635  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4636  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 4, i32 4>4637  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324638  ret void4639}4640 4641define void @v_shuffle_v3p0_v4p0__5_4_4(ptr addrspace(1) inreg %ptr) {4642; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_4_4:4643; GFX900:       ; %bb.0:4644; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4645; GFX900-NEXT:    ;;#ASMSTART4646; GFX900-NEXT:    ; def v[0:7]4647; GFX900-NEXT:    ;;#ASMEND4648; GFX900-NEXT:    v_mov_b32_e32 v8, 04649; GFX900-NEXT:    v_mov_b32_e32 v4, v04650; GFX900-NEXT:    v_mov_b32_e32 v5, v14651; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164652; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]4653; GFX900-NEXT:    s_waitcnt vmcnt(0)4654; GFX900-NEXT:    s_setpc_b64 s[30:31]4655;4656; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_4_4:4657; GFX90A:       ; %bb.0:4658; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4659; GFX90A-NEXT:    ;;#ASMSTART4660; GFX90A-NEXT:    ; def v[0:7]4661; GFX90A-NEXT:    ;;#ASMEND4662; GFX90A-NEXT:    v_mov_b32_e32 v8, 04663; GFX90A-NEXT:    v_mov_b32_e32 v4, v04664; GFX90A-NEXT:    v_mov_b32_e32 v5, v14665; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164666; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]4667; GFX90A-NEXT:    s_waitcnt vmcnt(0)4668; GFX90A-NEXT:    s_setpc_b64 s[30:31]4669;4670; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_4_4:4671; GFX942:       ; %bb.0:4672; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4673; GFX942-NEXT:    ;;#ASMSTART4674; GFX942-NEXT:    ; def v[0:7]4675; GFX942-NEXT:    ;;#ASMEND4676; GFX942-NEXT:    v_mov_b32_e32 v8, 04677; GFX942-NEXT:    v_mov_b32_e32 v4, v04678; GFX942-NEXT:    v_mov_b32_e32 v5, v14679; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:164680; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]4681; GFX942-NEXT:    s_waitcnt vmcnt(0)4682; GFX942-NEXT:    s_setpc_b64 s[30:31]4683  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4684  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4685  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 4, i32 4>4686  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324687  ret void4688}4689 4690define void @v_shuffle_v3p0_v4p0__6_4_4(ptr addrspace(1) inreg %ptr) {4691; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_4_4:4692; GFX900:       ; %bb.0:4693; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4694; GFX900-NEXT:    ;;#ASMSTART4695; GFX900-NEXT:    ; def v[0:7]4696; GFX900-NEXT:    ;;#ASMEND4697; GFX900-NEXT:    v_mov_b32_e32 v8, 04698; GFX900-NEXT:    v_mov_b32_e32 v6, v04699; GFX900-NEXT:    v_mov_b32_e32 v7, v14700; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164701; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]4702; GFX900-NEXT:    s_waitcnt vmcnt(0)4703; GFX900-NEXT:    s_setpc_b64 s[30:31]4704;4705; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_4_4:4706; GFX90A:       ; %bb.0:4707; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4708; GFX90A-NEXT:    ;;#ASMSTART4709; GFX90A-NEXT:    ; def v[0:7]4710; GFX90A-NEXT:    ;;#ASMEND4711; GFX90A-NEXT:    v_mov_b32_e32 v8, 04712; GFX90A-NEXT:    v_mov_b32_e32 v6, v04713; GFX90A-NEXT:    v_mov_b32_e32 v7, v14714; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164715; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]4716; GFX90A-NEXT:    s_waitcnt vmcnt(0)4717; GFX90A-NEXT:    s_setpc_b64 s[30:31]4718;4719; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_4_4:4720; GFX942:       ; %bb.0:4721; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4722; GFX942-NEXT:    ;;#ASMSTART4723; GFX942-NEXT:    ; def v[0:7]4724; GFX942-NEXT:    ;;#ASMEND4725; GFX942-NEXT:    v_mov_b32_e32 v8, 04726; GFX942-NEXT:    v_mov_b32_e32 v6, v04727; GFX942-NEXT:    v_mov_b32_e32 v7, v14728; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:164729; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]4730; GFX942-NEXT:    s_waitcnt vmcnt(0)4731; GFX942-NEXT:    s_setpc_b64 s[30:31]4732  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4733  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4734  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 4, i32 4>4735  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324736  ret void4737}4738 4739define void @v_shuffle_v3p0_v4p0__7_4_4(ptr addrspace(1) inreg %ptr) {4740; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_4:4741; GFX900:       ; %bb.0:4742; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4743; GFX900-NEXT:    v_mov_b32_e32 v10, 04744; GFX900-NEXT:    ;;#ASMSTART4745; GFX900-NEXT:    ; def v[0:7]4746; GFX900-NEXT:    ;;#ASMEND4747; GFX900-NEXT:    v_mov_b32_e32 v8, v04748; GFX900-NEXT:    v_mov_b32_e32 v9, v14749; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:164750; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4751; GFX900-NEXT:    s_waitcnt vmcnt(0)4752; GFX900-NEXT:    s_setpc_b64 s[30:31]4753;4754; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_4:4755; GFX90A:       ; %bb.0:4756; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4757; GFX90A-NEXT:    v_mov_b32_e32 v10, 04758; GFX90A-NEXT:    ;;#ASMSTART4759; GFX90A-NEXT:    ; def v[0:7]4760; GFX90A-NEXT:    ;;#ASMEND4761; GFX90A-NEXT:    v_mov_b32_e32 v8, v04762; GFX90A-NEXT:    v_mov_b32_e32 v9, v14763; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:164764; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]4765; GFX90A-NEXT:    s_waitcnt vmcnt(0)4766; GFX90A-NEXT:    s_setpc_b64 s[30:31]4767;4768; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_4:4769; GFX942:       ; %bb.0:4770; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4771; GFX942-NEXT:    v_mov_b32_e32 v10, 04772; GFX942-NEXT:    ;;#ASMSTART4773; GFX942-NEXT:    ; def v[0:7]4774; GFX942-NEXT:    ;;#ASMEND4775; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:164776; GFX942-NEXT:    v_mov_b32_e32 v8, v04777; GFX942-NEXT:    v_mov_b32_e32 v9, v14778; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]4779; GFX942-NEXT:    s_waitcnt vmcnt(0)4780; GFX942-NEXT:    s_setpc_b64 s[30:31]4781  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4782  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4783  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 4>4784  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324785  ret void4786}4787 4788define void @v_shuffle_v3p0_v4p0__7_u_4(ptr addrspace(1) inreg %ptr) {4789; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_4:4790; GFX900:       ; %bb.0:4791; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4792; GFX900-NEXT:    v_mov_b32_e32 v8, 04793; GFX900-NEXT:    ;;#ASMSTART4794; GFX900-NEXT:    ; def v[0:7]4795; GFX900-NEXT:    ;;#ASMEND4796; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164797; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]4798; GFX900-NEXT:    s_waitcnt vmcnt(0)4799; GFX900-NEXT:    s_setpc_b64 s[30:31]4800;4801; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_4:4802; GFX90A:       ; %bb.0:4803; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4804; GFX90A-NEXT:    v_mov_b32_e32 v8, 04805; GFX90A-NEXT:    ;;#ASMSTART4806; GFX90A-NEXT:    ; def v[0:7]4807; GFX90A-NEXT:    ;;#ASMEND4808; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:164809; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]4810; GFX90A-NEXT:    s_waitcnt vmcnt(0)4811; GFX90A-NEXT:    s_setpc_b64 s[30:31]4812;4813; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_4:4814; GFX942:       ; %bb.0:4815; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4816; GFX942-NEXT:    v_mov_b32_e32 v8, 04817; GFX942-NEXT:    ;;#ASMSTART4818; GFX942-NEXT:    ; def v[0:7]4819; GFX942-NEXT:    ;;#ASMEND4820; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:164821; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]4822; GFX942-NEXT:    s_waitcnt vmcnt(0)4823; GFX942-NEXT:    s_setpc_b64 s[30:31]4824  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4825  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4826  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>4827  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324828  ret void4829}4830 4831define void @v_shuffle_v3p0_v4p0__7_0_4(ptr addrspace(1) inreg %ptr) {4832; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_4:4833; GFX900:       ; %bb.0:4834; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4835; GFX900-NEXT:    v_mov_b32_e32 v16, 04836; GFX900-NEXT:    ;;#ASMSTART4837; GFX900-NEXT:    ; def v[0:7]4838; GFX900-NEXT:    ;;#ASMEND4839; GFX900-NEXT:    ;;#ASMSTART4840; GFX900-NEXT:    ; def v[8:15]4841; GFX900-NEXT:    ;;#ASMEND4842; GFX900-NEXT:    global_store_dwordx2 v16, v[0:1], s[16:17] offset:164843; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]4844; GFX900-NEXT:    s_waitcnt vmcnt(0)4845; GFX900-NEXT:    s_setpc_b64 s[30:31]4846;4847; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_4:4848; GFX90A:       ; %bb.0:4849; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4850; GFX90A-NEXT:    v_mov_b32_e32 v16, 04851; GFX90A-NEXT:    ;;#ASMSTART4852; GFX90A-NEXT:    ; def v[0:7]4853; GFX90A-NEXT:    ;;#ASMEND4854; GFX90A-NEXT:    ;;#ASMSTART4855; GFX90A-NEXT:    ; def v[8:15]4856; GFX90A-NEXT:    ;;#ASMEND4857; GFX90A-NEXT:    global_store_dwordx2 v16, v[0:1], s[16:17] offset:164858; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]4859; GFX90A-NEXT:    s_waitcnt vmcnt(0)4860; GFX90A-NEXT:    s_setpc_b64 s[30:31]4861;4862; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_4:4863; GFX942:       ; %bb.0:4864; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4865; GFX942-NEXT:    v_mov_b32_e32 v16, 04866; GFX942-NEXT:    ;;#ASMSTART4867; GFX942-NEXT:    ; def v[0:7]4868; GFX942-NEXT:    ;;#ASMEND4869; GFX942-NEXT:    ;;#ASMSTART4870; GFX942-NEXT:    ; def v[8:15]4871; GFX942-NEXT:    ;;#ASMEND4872; GFX942-NEXT:    global_store_dwordx2 v16, v[0:1], s[0:1] offset:164873; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]4874; GFX942-NEXT:    s_waitcnt vmcnt(0)4875; GFX942-NEXT:    s_setpc_b64 s[30:31]4876  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4877  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4878  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 4>4879  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324880  ret void4881}4882 4883define void @v_shuffle_v3p0_v4p0__7_1_4(ptr addrspace(1) inreg %ptr) {4884; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_4:4885; GFX900:       ; %bb.0:4886; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4887; GFX900-NEXT:    ;;#ASMSTART4888; GFX900-NEXT:    ; def v[6:13]4889; GFX900-NEXT:    ;;#ASMEND4890; GFX900-NEXT:    v_mov_b32_e32 v14, 04891; GFX900-NEXT:    ;;#ASMSTART4892; GFX900-NEXT:    ; def v[0:7]4893; GFX900-NEXT:    ;;#ASMEND4894; GFX900-NEXT:    global_store_dwordx2 v14, v[0:1], s[16:17] offset:164895; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]4896; GFX900-NEXT:    s_waitcnt vmcnt(0)4897; GFX900-NEXT:    s_setpc_b64 s[30:31]4898;4899; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_4:4900; GFX90A:       ; %bb.0:4901; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4902; GFX90A-NEXT:    ;;#ASMSTART4903; GFX90A-NEXT:    ; def v[6:13]4904; GFX90A-NEXT:    ;;#ASMEND4905; GFX90A-NEXT:    v_mov_b32_e32 v14, 04906; GFX90A-NEXT:    ;;#ASMSTART4907; GFX90A-NEXT:    ; def v[0:7]4908; GFX90A-NEXT:    ;;#ASMEND4909; GFX90A-NEXT:    global_store_dwordx2 v14, v[0:1], s[16:17] offset:164910; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]4911; GFX90A-NEXT:    s_waitcnt vmcnt(0)4912; GFX90A-NEXT:    s_setpc_b64 s[30:31]4913;4914; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_4:4915; GFX942:       ; %bb.0:4916; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4917; GFX942-NEXT:    ;;#ASMSTART4918; GFX942-NEXT:    ; def v[6:13]4919; GFX942-NEXT:    ;;#ASMEND4920; GFX942-NEXT:    v_mov_b32_e32 v14, 04921; GFX942-NEXT:    ;;#ASMSTART4922; GFX942-NEXT:    ; def v[0:7]4923; GFX942-NEXT:    ;;#ASMEND4924; GFX942-NEXT:    global_store_dwordx2 v14, v[0:1], s[0:1] offset:164925; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]4926; GFX942-NEXT:    s_waitcnt vmcnt(0)4927; GFX942-NEXT:    s_setpc_b64 s[30:31]4928  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4929  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4930  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 4>4931  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324932  ret void4933}4934 4935define void @v_shuffle_v3p0_v4p0__7_2_4(ptr addrspace(1) inreg %ptr) {4936; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_4:4937; GFX900:       ; %bb.0:4938; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4939; GFX900-NEXT:    ;;#ASMSTART4940; GFX900-NEXT:    ; def v[4:11]4941; GFX900-NEXT:    ;;#ASMEND4942; GFX900-NEXT:    v_mov_b32_e32 v12, 04943; GFX900-NEXT:    ;;#ASMSTART4944; GFX900-NEXT:    ; def v[0:7]4945; GFX900-NEXT:    ;;#ASMEND4946; GFX900-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:164947; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]4948; GFX900-NEXT:    s_waitcnt vmcnt(0)4949; GFX900-NEXT:    s_setpc_b64 s[30:31]4950;4951; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_4:4952; GFX90A:       ; %bb.0:4953; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4954; GFX90A-NEXT:    ;;#ASMSTART4955; GFX90A-NEXT:    ; def v[4:11]4956; GFX90A-NEXT:    ;;#ASMEND4957; GFX90A-NEXT:    v_mov_b32_e32 v12, 04958; GFX90A-NEXT:    ;;#ASMSTART4959; GFX90A-NEXT:    ; def v[0:7]4960; GFX90A-NEXT:    ;;#ASMEND4961; GFX90A-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:164962; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]4963; GFX90A-NEXT:    s_waitcnt vmcnt(0)4964; GFX90A-NEXT:    s_setpc_b64 s[30:31]4965;4966; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_4:4967; GFX942:       ; %bb.0:4968; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4969; GFX942-NEXT:    ;;#ASMSTART4970; GFX942-NEXT:    ; def v[4:11]4971; GFX942-NEXT:    ;;#ASMEND4972; GFX942-NEXT:    v_mov_b32_e32 v12, 04973; GFX942-NEXT:    ;;#ASMSTART4974; GFX942-NEXT:    ; def v[0:7]4975; GFX942-NEXT:    ;;#ASMEND4976; GFX942-NEXT:    global_store_dwordx2 v12, v[0:1], s[0:1] offset:164977; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]4978; GFX942-NEXT:    s_waitcnt vmcnt(0)4979; GFX942-NEXT:    s_setpc_b64 s[30:31]4980  %vec0 = call <4 x ptr> asm "; def $0", "=v"()4981  %vec1 = call <4 x ptr> asm "; def $0", "=v"()4982  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 4>4983  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 324984  ret void4985}4986 4987define void @v_shuffle_v3p0_v4p0__7_3_4(ptr addrspace(1) inreg %ptr) {4988; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_4:4989; GFX900:       ; %bb.0:4990; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4991; GFX900-NEXT:    ;;#ASMSTART4992; GFX900-NEXT:    ; def v[2:9]4993; GFX900-NEXT:    ;;#ASMEND4994; GFX900-NEXT:    v_mov_b32_e32 v10, 04995; GFX900-NEXT:    ;;#ASMSTART4996; GFX900-NEXT:    ; def v[0:7]4997; GFX900-NEXT:    ;;#ASMEND4998; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:164999; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5000; GFX900-NEXT:    s_waitcnt vmcnt(0)5001; GFX900-NEXT:    s_setpc_b64 s[30:31]5002;5003; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_4:5004; GFX90A:       ; %bb.0:5005; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5006; GFX90A-NEXT:    ;;#ASMSTART5007; GFX90A-NEXT:    ; def v[2:9]5008; GFX90A-NEXT:    ;;#ASMEND5009; GFX90A-NEXT:    v_mov_b32_e32 v10, 05010; GFX90A-NEXT:    ;;#ASMSTART5011; GFX90A-NEXT:    ; def v[0:7]5012; GFX90A-NEXT:    ;;#ASMEND5013; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:165014; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5015; GFX90A-NEXT:    s_waitcnt vmcnt(0)5016; GFX90A-NEXT:    s_setpc_b64 s[30:31]5017;5018; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_4:5019; GFX942:       ; %bb.0:5020; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5021; GFX942-NEXT:    ;;#ASMSTART5022; GFX942-NEXT:    ; def v[2:9]5023; GFX942-NEXT:    ;;#ASMEND5024; GFX942-NEXT:    v_mov_b32_e32 v10, 05025; GFX942-NEXT:    ;;#ASMSTART5026; GFX942-NEXT:    ; def v[0:7]5027; GFX942-NEXT:    ;;#ASMEND5028; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:165029; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5030; GFX942-NEXT:    s_waitcnt vmcnt(0)5031; GFX942-NEXT:    s_setpc_b64 s[30:31]5032  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5033  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5034  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 4>5035  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325036  ret void5037}5038 5039define void @v_shuffle_v3p0_v4p0__7_5_4(ptr addrspace(1) inreg %ptr) {5040; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_4:5041; GFX900:       ; %bb.0:5042; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5043; GFX900-NEXT:    v_mov_b32_e32 v10, 05044; GFX900-NEXT:    ;;#ASMSTART5045; GFX900-NEXT:    ; def v[0:7]5046; GFX900-NEXT:    ;;#ASMEND5047; GFX900-NEXT:    v_mov_b32_e32 v8, v25048; GFX900-NEXT:    v_mov_b32_e32 v9, v35049; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:165050; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5051; GFX900-NEXT:    s_waitcnt vmcnt(0)5052; GFX900-NEXT:    s_setpc_b64 s[30:31]5053;5054; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_4:5055; GFX90A:       ; %bb.0:5056; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5057; GFX90A-NEXT:    v_mov_b32_e32 v10, 05058; GFX90A-NEXT:    ;;#ASMSTART5059; GFX90A-NEXT:    ; def v[0:7]5060; GFX90A-NEXT:    ;;#ASMEND5061; GFX90A-NEXT:    v_mov_b32_e32 v8, v25062; GFX90A-NEXT:    v_mov_b32_e32 v9, v35063; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:165064; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5065; GFX90A-NEXT:    s_waitcnt vmcnt(0)5066; GFX90A-NEXT:    s_setpc_b64 s[30:31]5067;5068; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_4:5069; GFX942:       ; %bb.0:5070; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5071; GFX942-NEXT:    v_mov_b32_e32 v10, 05072; GFX942-NEXT:    ;;#ASMSTART5073; GFX942-NEXT:    ; def v[0:7]5074; GFX942-NEXT:    ;;#ASMEND5075; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:165076; GFX942-NEXT:    v_mov_b32_e32 v8, v25077; GFX942-NEXT:    v_mov_b32_e32 v9, v35078; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5079; GFX942-NEXT:    s_waitcnt vmcnt(0)5080; GFX942-NEXT:    s_setpc_b64 s[30:31]5081  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5082  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5083  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 4>5084  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325085  ret void5086}5087 5088define void @v_shuffle_v3p0_v4p0__7_6_4(ptr addrspace(1) inreg %ptr) {5089; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_4:5090; GFX900:       ; %bb.0:5091; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5092; GFX900-NEXT:    v_mov_b32_e32 v10, 05093; GFX900-NEXT:    ;;#ASMSTART5094; GFX900-NEXT:    ; def v[0:7]5095; GFX900-NEXT:    ;;#ASMEND5096; GFX900-NEXT:    v_mov_b32_e32 v8, v45097; GFX900-NEXT:    v_mov_b32_e32 v9, v55098; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:165099; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5100; GFX900-NEXT:    s_waitcnt vmcnt(0)5101; GFX900-NEXT:    s_setpc_b64 s[30:31]5102;5103; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_4:5104; GFX90A:       ; %bb.0:5105; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5106; GFX90A-NEXT:    v_mov_b32_e32 v10, 05107; GFX90A-NEXT:    ;;#ASMSTART5108; GFX90A-NEXT:    ; def v[0:7]5109; GFX90A-NEXT:    ;;#ASMEND5110; GFX90A-NEXT:    v_mov_b32_e32 v8, v45111; GFX90A-NEXT:    v_mov_b32_e32 v9, v55112; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:165113; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5114; GFX90A-NEXT:    s_waitcnt vmcnt(0)5115; GFX90A-NEXT:    s_setpc_b64 s[30:31]5116;5117; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_4:5118; GFX942:       ; %bb.0:5119; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5120; GFX942-NEXT:    v_mov_b32_e32 v10, 05121; GFX942-NEXT:    ;;#ASMSTART5122; GFX942-NEXT:    ; def v[0:7]5123; GFX942-NEXT:    ;;#ASMEND5124; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:165125; GFX942-NEXT:    v_mov_b32_e32 v8, v45126; GFX942-NEXT:    v_mov_b32_e32 v9, v55127; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5128; GFX942-NEXT:    s_waitcnt vmcnt(0)5129; GFX942-NEXT:    s_setpc_b64 s[30:31]5130  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5131  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5132  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 4>5133  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325134  ret void5135}5136 5137define void @v_shuffle_v3p0_v4p0__u_5_5(ptr addrspace(1) inreg %ptr) {5138; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_5_5:5139; GFX900:       ; %bb.0:5140; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5141; GFX900-NEXT:    v_mov_b32_e32 v8, 05142; GFX900-NEXT:    ;;#ASMSTART5143; GFX900-NEXT:    ; def v[0:7]5144; GFX900-NEXT:    ;;#ASMEND5145; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165146; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]5147; GFX900-NEXT:    s_waitcnt vmcnt(0)5148; GFX900-NEXT:    s_setpc_b64 s[30:31]5149;5150; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_5_5:5151; GFX90A:       ; %bb.0:5152; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5153; GFX90A-NEXT:    v_mov_b32_e32 v8, 05154; GFX90A-NEXT:    ;;#ASMSTART5155; GFX90A-NEXT:    ; def v[0:7]5156; GFX90A-NEXT:    ;;#ASMEND5157; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165158; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]5159; GFX90A-NEXT:    s_waitcnt vmcnt(0)5160; GFX90A-NEXT:    s_setpc_b64 s[30:31]5161;5162; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_5_5:5163; GFX942:       ; %bb.0:5164; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5165; GFX942-NEXT:    v_mov_b32_e32 v8, 05166; GFX942-NEXT:    ;;#ASMSTART5167; GFX942-NEXT:    ; def v[0:7]5168; GFX942-NEXT:    ;;#ASMEND5169; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:165170; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]5171; GFX942-NEXT:    s_waitcnt vmcnt(0)5172; GFX942-NEXT:    s_setpc_b64 s[30:31]5173  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5174  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5175  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>5176  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325177  ret void5178}5179 5180define void @v_shuffle_v3p0_v4p0__0_5_5(ptr addrspace(1) inreg %ptr) {5181; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_5_5:5182; GFX900:       ; %bb.0:5183; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5184; GFX900-NEXT:    ;;#ASMSTART5185; GFX900-NEXT:    ; def v[0:7]5186; GFX900-NEXT:    ;;#ASMEND5187; GFX900-NEXT:    ;;#ASMSTART5188; GFX900-NEXT:    ; def v[2:9]5189; GFX900-NEXT:    ;;#ASMEND5190; GFX900-NEXT:    v_mov_b32_e32 v10, 05191; GFX900-NEXT:    v_mov_b32_e32 v2, v45192; GFX900-NEXT:    v_mov_b32_e32 v3, v55193; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:165194; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]5195; GFX900-NEXT:    s_waitcnt vmcnt(0)5196; GFX900-NEXT:    s_setpc_b64 s[30:31]5197;5198; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_5_5:5199; GFX90A:       ; %bb.0:5200; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5201; GFX90A-NEXT:    ;;#ASMSTART5202; GFX90A-NEXT:    ; def v[0:7]5203; GFX90A-NEXT:    ;;#ASMEND5204; GFX90A-NEXT:    ;;#ASMSTART5205; GFX90A-NEXT:    ; def v[2:9]5206; GFX90A-NEXT:    ;;#ASMEND5207; GFX90A-NEXT:    v_mov_b32_e32 v10, 05208; GFX90A-NEXT:    v_mov_b32_e32 v2, v45209; GFX90A-NEXT:    v_mov_b32_e32 v3, v55210; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:165211; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]5212; GFX90A-NEXT:    s_waitcnt vmcnt(0)5213; GFX90A-NEXT:    s_setpc_b64 s[30:31]5214;5215; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_5_5:5216; GFX942:       ; %bb.0:5217; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5218; GFX942-NEXT:    ;;#ASMSTART5219; GFX942-NEXT:    ; def v[0:7]5220; GFX942-NEXT:    ;;#ASMEND5221; GFX942-NEXT:    v_mov_b32_e32 v10, 05222; GFX942-NEXT:    ;;#ASMSTART5223; GFX942-NEXT:    ; def v[2:9]5224; GFX942-NEXT:    ;;#ASMEND5225; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:165226; GFX942-NEXT:    v_mov_b32_e32 v2, v45227; GFX942-NEXT:    v_mov_b32_e32 v3, v55228; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]5229; GFX942-NEXT:    s_waitcnt vmcnt(0)5230; GFX942-NEXT:    s_setpc_b64 s[30:31]5231  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5232  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5233  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 5, i32 5>5234  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325235  ret void5236}5237 5238define void @v_shuffle_v3p0_v4p0__1_5_5(ptr addrspace(1) inreg %ptr) {5239; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_5_5:5240; GFX900:       ; %bb.0:5241; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5242; GFX900-NEXT:    ;;#ASMSTART5243; GFX900-NEXT:    ; def v[0:7]5244; GFX900-NEXT:    ;;#ASMEND5245; GFX900-NEXT:    ;;#ASMSTART5246; GFX900-NEXT:    ; def v[4:11]5247; GFX900-NEXT:    ;;#ASMEND5248; GFX900-NEXT:    v_mov_b32_e32 v12, 05249; GFX900-NEXT:    v_mov_b32_e32 v4, v65250; GFX900-NEXT:    v_mov_b32_e32 v5, v75251; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:165252; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]5253; GFX900-NEXT:    s_waitcnt vmcnt(0)5254; GFX900-NEXT:    s_setpc_b64 s[30:31]5255;5256; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_5_5:5257; GFX90A:       ; %bb.0:5258; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5259; GFX90A-NEXT:    ;;#ASMSTART5260; GFX90A-NEXT:    ; def v[0:7]5261; GFX90A-NEXT:    ;;#ASMEND5262; GFX90A-NEXT:    ;;#ASMSTART5263; GFX90A-NEXT:    ; def v[4:11]5264; GFX90A-NEXT:    ;;#ASMEND5265; GFX90A-NEXT:    v_mov_b32_e32 v12, 05266; GFX90A-NEXT:    v_mov_b32_e32 v4, v65267; GFX90A-NEXT:    v_mov_b32_e32 v5, v75268; GFX90A-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:165269; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]5270; GFX90A-NEXT:    s_waitcnt vmcnt(0)5271; GFX90A-NEXT:    s_setpc_b64 s[30:31]5272;5273; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_5_5:5274; GFX942:       ; %bb.0:5275; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5276; GFX942-NEXT:    ;;#ASMSTART5277; GFX942-NEXT:    ; def v[0:7]5278; GFX942-NEXT:    ;;#ASMEND5279; GFX942-NEXT:    v_mov_b32_e32 v12, 05280; GFX942-NEXT:    ;;#ASMSTART5281; GFX942-NEXT:    ; def v[4:11]5282; GFX942-NEXT:    ;;#ASMEND5283; GFX942-NEXT:    global_store_dwordx2 v12, v[6:7], s[0:1] offset:165284; GFX942-NEXT:    v_mov_b32_e32 v4, v65285; GFX942-NEXT:    v_mov_b32_e32 v5, v75286; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]5287; GFX942-NEXT:    s_waitcnt vmcnt(0)5288; GFX942-NEXT:    s_setpc_b64 s[30:31]5289  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5290  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5291  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 5, i32 5>5292  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325293  ret void5294}5295 5296define void @v_shuffle_v3p0_v4p0__2_5_5(ptr addrspace(1) inreg %ptr) {5297; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_5_5:5298; GFX900:       ; %bb.0:5299; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5300; GFX900-NEXT:    ;;#ASMSTART5301; GFX900-NEXT:    ; def v[0:7]5302; GFX900-NEXT:    ;;#ASMEND5303; GFX900-NEXT:    ;;#ASMSTART5304; GFX900-NEXT:    ; def v[6:13]5305; GFX900-NEXT:    ;;#ASMEND5306; GFX900-NEXT:    v_mov_b32_e32 v14, 05307; GFX900-NEXT:    v_mov_b32_e32 v6, v85308; GFX900-NEXT:    v_mov_b32_e32 v7, v95309; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:165310; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]5311; GFX900-NEXT:    s_waitcnt vmcnt(0)5312; GFX900-NEXT:    s_setpc_b64 s[30:31]5313;5314; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_5_5:5315; GFX90A:       ; %bb.0:5316; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5317; GFX90A-NEXT:    ;;#ASMSTART5318; GFX90A-NEXT:    ; def v[0:7]5319; GFX90A-NEXT:    ;;#ASMEND5320; GFX90A-NEXT:    ;;#ASMSTART5321; GFX90A-NEXT:    ; def v[6:13]5322; GFX90A-NEXT:    ;;#ASMEND5323; GFX90A-NEXT:    v_mov_b32_e32 v14, 05324; GFX90A-NEXT:    v_mov_b32_e32 v6, v85325; GFX90A-NEXT:    v_mov_b32_e32 v7, v95326; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:165327; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]5328; GFX90A-NEXT:    s_waitcnt vmcnt(0)5329; GFX90A-NEXT:    s_setpc_b64 s[30:31]5330;5331; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_5_5:5332; GFX942:       ; %bb.0:5333; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5334; GFX942-NEXT:    ;;#ASMSTART5335; GFX942-NEXT:    ; def v[0:7]5336; GFX942-NEXT:    ;;#ASMEND5337; GFX942-NEXT:    v_mov_b32_e32 v14, 05338; GFX942-NEXT:    ;;#ASMSTART5339; GFX942-NEXT:    ; def v[6:13]5340; GFX942-NEXT:    ;;#ASMEND5341; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:165342; GFX942-NEXT:    v_mov_b32_e32 v6, v85343; GFX942-NEXT:    v_mov_b32_e32 v7, v95344; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]5345; GFX942-NEXT:    s_waitcnt vmcnt(0)5346; GFX942-NEXT:    s_setpc_b64 s[30:31]5347  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5348  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5349  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 5, i32 5>5350  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325351  ret void5352}5353 5354define void @v_shuffle_v3p0_v4p0__3_5_5(ptr addrspace(1) inreg %ptr) {5355; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_5_5:5356; GFX900:       ; %bb.0:5357; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5358; GFX900-NEXT:    ;;#ASMSTART5359; GFX900-NEXT:    ; def v[8:15]5360; GFX900-NEXT:    ;;#ASMEND5361; GFX900-NEXT:    v_mov_b32_e32 v16, 05362; GFX900-NEXT:    v_mov_b32_e32 v8, v105363; GFX900-NEXT:    v_mov_b32_e32 v9, v115364; GFX900-NEXT:    ;;#ASMSTART5365; GFX900-NEXT:    ; def v[0:7]5366; GFX900-NEXT:    ;;#ASMEND5367; GFX900-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:165368; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]5369; GFX900-NEXT:    s_waitcnt vmcnt(0)5370; GFX900-NEXT:    s_setpc_b64 s[30:31]5371;5372; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_5_5:5373; GFX90A:       ; %bb.0:5374; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5375; GFX90A-NEXT:    ;;#ASMSTART5376; GFX90A-NEXT:    ; def v[8:15]5377; GFX90A-NEXT:    ;;#ASMEND5378; GFX90A-NEXT:    v_mov_b32_e32 v16, 05379; GFX90A-NEXT:    v_mov_b32_e32 v8, v105380; GFX90A-NEXT:    v_mov_b32_e32 v9, v115381; GFX90A-NEXT:    ;;#ASMSTART5382; GFX90A-NEXT:    ; def v[0:7]5383; GFX90A-NEXT:    ;;#ASMEND5384; GFX90A-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:165385; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]5386; GFX90A-NEXT:    s_waitcnt vmcnt(0)5387; GFX90A-NEXT:    s_setpc_b64 s[30:31]5388;5389; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_5_5:5390; GFX942:       ; %bb.0:5391; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5392; GFX942-NEXT:    ;;#ASMSTART5393; GFX942-NEXT:    ; def v[8:15]5394; GFX942-NEXT:    ;;#ASMEND5395; GFX942-NEXT:    v_mov_b32_e32 v16, 05396; GFX942-NEXT:    v_mov_b32_e32 v8, v105397; GFX942-NEXT:    v_mov_b32_e32 v9, v115398; GFX942-NEXT:    ;;#ASMSTART5399; GFX942-NEXT:    ; def v[0:7]5400; GFX942-NEXT:    ;;#ASMEND5401; GFX942-NEXT:    global_store_dwordx2 v16, v[10:11], s[0:1] offset:165402; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]5403; GFX942-NEXT:    s_waitcnt vmcnt(0)5404; GFX942-NEXT:    s_setpc_b64 s[30:31]5405  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5406  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5407  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 5, i32 5>5408  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325409  ret void5410}5411 5412define void @v_shuffle_v3p0_v4p0__4_5_5(ptr addrspace(1) inreg %ptr) {5413; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_5_5:5414; GFX900:       ; %bb.0:5415; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5416; GFX900-NEXT:    v_mov_b32_e32 v8, 05417; GFX900-NEXT:    ;;#ASMSTART5418; GFX900-NEXT:    ; def v[0:7]5419; GFX900-NEXT:    ;;#ASMEND5420; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165421; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]5422; GFX900-NEXT:    s_waitcnt vmcnt(0)5423; GFX900-NEXT:    s_setpc_b64 s[30:31]5424;5425; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_5_5:5426; GFX90A:       ; %bb.0:5427; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5428; GFX90A-NEXT:    v_mov_b32_e32 v8, 05429; GFX90A-NEXT:    ;;#ASMSTART5430; GFX90A-NEXT:    ; def v[0:7]5431; GFX90A-NEXT:    ;;#ASMEND5432; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165433; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]5434; GFX90A-NEXT:    s_waitcnt vmcnt(0)5435; GFX90A-NEXT:    s_setpc_b64 s[30:31]5436;5437; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_5_5:5438; GFX942:       ; %bb.0:5439; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5440; GFX942-NEXT:    v_mov_b32_e32 v8, 05441; GFX942-NEXT:    ;;#ASMSTART5442; GFX942-NEXT:    ; def v[0:7]5443; GFX942-NEXT:    ;;#ASMEND5444; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:165445; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]5446; GFX942-NEXT:    s_waitcnt vmcnt(0)5447; GFX942-NEXT:    s_setpc_b64 s[30:31]5448  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5449  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5450  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 5, i32 5>5451  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325452  ret void5453}5454 5455define void @v_shuffle_v3p0_v4p0__5_5_5(ptr addrspace(1) inreg %ptr) {5456; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_5_5:5457; GFX900:       ; %bb.0:5458; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5459; GFX900-NEXT:    ;;#ASMSTART5460; GFX900-NEXT:    ; def v[0:7]5461; GFX900-NEXT:    ;;#ASMEND5462; GFX900-NEXT:    v_mov_b32_e32 v8, 05463; GFX900-NEXT:    v_mov_b32_e32 v4, v25464; GFX900-NEXT:    v_mov_b32_e32 v5, v35465; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165466; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]5467; GFX900-NEXT:    s_waitcnt vmcnt(0)5468; GFX900-NEXT:    s_setpc_b64 s[30:31]5469;5470; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_5_5:5471; GFX90A:       ; %bb.0:5472; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5473; GFX90A-NEXT:    ;;#ASMSTART5474; GFX90A-NEXT:    ; def v[0:7]5475; GFX90A-NEXT:    ;;#ASMEND5476; GFX90A-NEXT:    v_mov_b32_e32 v8, 05477; GFX90A-NEXT:    v_mov_b32_e32 v4, v25478; GFX90A-NEXT:    v_mov_b32_e32 v5, v35479; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165480; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]5481; GFX90A-NEXT:    s_waitcnt vmcnt(0)5482; GFX90A-NEXT:    s_setpc_b64 s[30:31]5483;5484; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_5_5:5485; GFX942:       ; %bb.0:5486; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5487; GFX942-NEXT:    ;;#ASMSTART5488; GFX942-NEXT:    ; def v[0:7]5489; GFX942-NEXT:    ;;#ASMEND5490; GFX942-NEXT:    v_mov_b32_e32 v8, 05491; GFX942-NEXT:    v_mov_b32_e32 v4, v25492; GFX942-NEXT:    v_mov_b32_e32 v5, v35493; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:165494; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]5495; GFX942-NEXT:    s_waitcnt vmcnt(0)5496; GFX942-NEXT:    s_setpc_b64 s[30:31]5497  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5498  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5499  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 5, i32 5>5500  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325501  ret void5502}5503 5504define void @v_shuffle_v3p0_v4p0__6_5_5(ptr addrspace(1) inreg %ptr) {5505; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_5_5:5506; GFX900:       ; %bb.0:5507; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5508; GFX900-NEXT:    ;;#ASMSTART5509; GFX900-NEXT:    ; def v[0:7]5510; GFX900-NEXT:    ;;#ASMEND5511; GFX900-NEXT:    v_mov_b32_e32 v8, 05512; GFX900-NEXT:    v_mov_b32_e32 v6, v25513; GFX900-NEXT:    v_mov_b32_e32 v7, v35514; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165515; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]5516; GFX900-NEXT:    s_waitcnt vmcnt(0)5517; GFX900-NEXT:    s_setpc_b64 s[30:31]5518;5519; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_5_5:5520; GFX90A:       ; %bb.0:5521; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5522; GFX90A-NEXT:    ;;#ASMSTART5523; GFX90A-NEXT:    ; def v[0:7]5524; GFX90A-NEXT:    ;;#ASMEND5525; GFX90A-NEXT:    v_mov_b32_e32 v8, 05526; GFX90A-NEXT:    v_mov_b32_e32 v6, v25527; GFX90A-NEXT:    v_mov_b32_e32 v7, v35528; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165529; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]5530; GFX90A-NEXT:    s_waitcnt vmcnt(0)5531; GFX90A-NEXT:    s_setpc_b64 s[30:31]5532;5533; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_5_5:5534; GFX942:       ; %bb.0:5535; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5536; GFX942-NEXT:    ;;#ASMSTART5537; GFX942-NEXT:    ; def v[0:7]5538; GFX942-NEXT:    ;;#ASMEND5539; GFX942-NEXT:    v_mov_b32_e32 v8, 05540; GFX942-NEXT:    v_mov_b32_e32 v6, v25541; GFX942-NEXT:    v_mov_b32_e32 v7, v35542; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:165543; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]5544; GFX942-NEXT:    s_waitcnt vmcnt(0)5545; GFX942-NEXT:    s_setpc_b64 s[30:31]5546  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5547  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5548  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 5, i32 5>5549  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325550  ret void5551}5552 5553define void @v_shuffle_v3p0_v4p0__7_5_5(ptr addrspace(1) inreg %ptr) {5554; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_5:5555; GFX900:       ; %bb.0:5556; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5557; GFX900-NEXT:    v_mov_b32_e32 v10, 05558; GFX900-NEXT:    ;;#ASMSTART5559; GFX900-NEXT:    ; def v[0:7]5560; GFX900-NEXT:    ;;#ASMEND5561; GFX900-NEXT:    v_mov_b32_e32 v8, v25562; GFX900-NEXT:    v_mov_b32_e32 v9, v35563; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165564; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5565; GFX900-NEXT:    s_waitcnt vmcnt(0)5566; GFX900-NEXT:    s_setpc_b64 s[30:31]5567;5568; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_5:5569; GFX90A:       ; %bb.0:5570; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5571; GFX90A-NEXT:    v_mov_b32_e32 v10, 05572; GFX90A-NEXT:    ;;#ASMSTART5573; GFX90A-NEXT:    ; def v[0:7]5574; GFX90A-NEXT:    ;;#ASMEND5575; GFX90A-NEXT:    v_mov_b32_e32 v8, v25576; GFX90A-NEXT:    v_mov_b32_e32 v9, v35577; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165578; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5579; GFX90A-NEXT:    s_waitcnt vmcnt(0)5580; GFX90A-NEXT:    s_setpc_b64 s[30:31]5581;5582; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_5:5583; GFX942:       ; %bb.0:5584; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5585; GFX942-NEXT:    v_mov_b32_e32 v10, 05586; GFX942-NEXT:    ;;#ASMSTART5587; GFX942-NEXT:    ; def v[0:7]5588; GFX942-NEXT:    ;;#ASMEND5589; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:165590; GFX942-NEXT:    v_mov_b32_e32 v8, v25591; GFX942-NEXT:    v_mov_b32_e32 v9, v35592; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5593; GFX942-NEXT:    s_waitcnt vmcnt(0)5594; GFX942-NEXT:    s_setpc_b64 s[30:31]5595  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5596  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5597  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 5>5598  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325599  ret void5600}5601 5602define void @v_shuffle_v3p0_v4p0__7_u_5(ptr addrspace(1) inreg %ptr) {5603; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_5:5604; GFX900:       ; %bb.0:5605; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5606; GFX900-NEXT:    v_mov_b32_e32 v8, 05607; GFX900-NEXT:    ;;#ASMSTART5608; GFX900-NEXT:    ; def v[0:7]5609; GFX900-NEXT:    ;;#ASMEND5610; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165611; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]5612; GFX900-NEXT:    s_waitcnt vmcnt(0)5613; GFX900-NEXT:    s_setpc_b64 s[30:31]5614;5615; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_5:5616; GFX90A:       ; %bb.0:5617; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5618; GFX90A-NEXT:    v_mov_b32_e32 v8, 05619; GFX90A-NEXT:    ;;#ASMSTART5620; GFX90A-NEXT:    ; def v[0:7]5621; GFX90A-NEXT:    ;;#ASMEND5622; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:165623; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]5624; GFX90A-NEXT:    s_waitcnt vmcnt(0)5625; GFX90A-NEXT:    s_setpc_b64 s[30:31]5626;5627; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_5:5628; GFX942:       ; %bb.0:5629; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5630; GFX942-NEXT:    v_mov_b32_e32 v8, 05631; GFX942-NEXT:    ;;#ASMSTART5632; GFX942-NEXT:    ; def v[0:7]5633; GFX942-NEXT:    ;;#ASMEND5634; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:165635; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]5636; GFX942-NEXT:    s_waitcnt vmcnt(0)5637; GFX942-NEXT:    s_setpc_b64 s[30:31]5638  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5639  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5640  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>5641  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325642  ret void5643}5644 5645define void @v_shuffle_v3p0_v4p0__7_0_5(ptr addrspace(1) inreg %ptr) {5646; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_5:5647; GFX900:       ; %bb.0:5648; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5649; GFX900-NEXT:    v_mov_b32_e32 v16, 05650; GFX900-NEXT:    ;;#ASMSTART5651; GFX900-NEXT:    ; def v[0:7]5652; GFX900-NEXT:    ;;#ASMEND5653; GFX900-NEXT:    ;;#ASMSTART5654; GFX900-NEXT:    ; def v[8:15]5655; GFX900-NEXT:    ;;#ASMEND5656; GFX900-NEXT:    global_store_dwordx2 v16, v[2:3], s[16:17] offset:165657; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]5658; GFX900-NEXT:    s_waitcnt vmcnt(0)5659; GFX900-NEXT:    s_setpc_b64 s[30:31]5660;5661; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_5:5662; GFX90A:       ; %bb.0:5663; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5664; GFX90A-NEXT:    v_mov_b32_e32 v16, 05665; GFX90A-NEXT:    ;;#ASMSTART5666; GFX90A-NEXT:    ; def v[0:7]5667; GFX90A-NEXT:    ;;#ASMEND5668; GFX90A-NEXT:    ;;#ASMSTART5669; GFX90A-NEXT:    ; def v[8:15]5670; GFX90A-NEXT:    ;;#ASMEND5671; GFX90A-NEXT:    global_store_dwordx2 v16, v[2:3], s[16:17] offset:165672; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]5673; GFX90A-NEXT:    s_waitcnt vmcnt(0)5674; GFX90A-NEXT:    s_setpc_b64 s[30:31]5675;5676; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_5:5677; GFX942:       ; %bb.0:5678; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5679; GFX942-NEXT:    v_mov_b32_e32 v16, 05680; GFX942-NEXT:    ;;#ASMSTART5681; GFX942-NEXT:    ; def v[0:7]5682; GFX942-NEXT:    ;;#ASMEND5683; GFX942-NEXT:    ;;#ASMSTART5684; GFX942-NEXT:    ; def v[8:15]5685; GFX942-NEXT:    ;;#ASMEND5686; GFX942-NEXT:    global_store_dwordx2 v16, v[2:3], s[0:1] offset:165687; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]5688; GFX942-NEXT:    s_waitcnt vmcnt(0)5689; GFX942-NEXT:    s_setpc_b64 s[30:31]5690  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5691  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5692  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 5>5693  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325694  ret void5695}5696 5697define void @v_shuffle_v3p0_v4p0__7_1_5(ptr addrspace(1) inreg %ptr) {5698; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_5:5699; GFX900:       ; %bb.0:5700; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5701; GFX900-NEXT:    ;;#ASMSTART5702; GFX900-NEXT:    ; def v[6:13]5703; GFX900-NEXT:    ;;#ASMEND5704; GFX900-NEXT:    v_mov_b32_e32 v14, 05705; GFX900-NEXT:    ;;#ASMSTART5706; GFX900-NEXT:    ; def v[0:7]5707; GFX900-NEXT:    ;;#ASMEND5708; GFX900-NEXT:    global_store_dwordx2 v14, v[2:3], s[16:17] offset:165709; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]5710; GFX900-NEXT:    s_waitcnt vmcnt(0)5711; GFX900-NEXT:    s_setpc_b64 s[30:31]5712;5713; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_5:5714; GFX90A:       ; %bb.0:5715; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5716; GFX90A-NEXT:    ;;#ASMSTART5717; GFX90A-NEXT:    ; def v[6:13]5718; GFX90A-NEXT:    ;;#ASMEND5719; GFX90A-NEXT:    v_mov_b32_e32 v14, 05720; GFX90A-NEXT:    ;;#ASMSTART5721; GFX90A-NEXT:    ; def v[0:7]5722; GFX90A-NEXT:    ;;#ASMEND5723; GFX90A-NEXT:    global_store_dwordx2 v14, v[2:3], s[16:17] offset:165724; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]5725; GFX90A-NEXT:    s_waitcnt vmcnt(0)5726; GFX90A-NEXT:    s_setpc_b64 s[30:31]5727;5728; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_5:5729; GFX942:       ; %bb.0:5730; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5731; GFX942-NEXT:    ;;#ASMSTART5732; GFX942-NEXT:    ; def v[6:13]5733; GFX942-NEXT:    ;;#ASMEND5734; GFX942-NEXT:    v_mov_b32_e32 v14, 05735; GFX942-NEXT:    ;;#ASMSTART5736; GFX942-NEXT:    ; def v[0:7]5737; GFX942-NEXT:    ;;#ASMEND5738; GFX942-NEXT:    global_store_dwordx2 v14, v[2:3], s[0:1] offset:165739; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]5740; GFX942-NEXT:    s_waitcnt vmcnt(0)5741; GFX942-NEXT:    s_setpc_b64 s[30:31]5742  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5743  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5744  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 5>5745  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325746  ret void5747}5748 5749define void @v_shuffle_v3p0_v4p0__7_2_5(ptr addrspace(1) inreg %ptr) {5750; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_5:5751; GFX900:       ; %bb.0:5752; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5753; GFX900-NEXT:    ;;#ASMSTART5754; GFX900-NEXT:    ; def v[4:11]5755; GFX900-NEXT:    ;;#ASMEND5756; GFX900-NEXT:    v_mov_b32_e32 v12, 05757; GFX900-NEXT:    ;;#ASMSTART5758; GFX900-NEXT:    ; def v[0:7]5759; GFX900-NEXT:    ;;#ASMEND5760; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:165761; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]5762; GFX900-NEXT:    s_waitcnt vmcnt(0)5763; GFX900-NEXT:    s_setpc_b64 s[30:31]5764;5765; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_5:5766; GFX90A:       ; %bb.0:5767; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5768; GFX90A-NEXT:    ;;#ASMSTART5769; GFX90A-NEXT:    ; def v[4:11]5770; GFX90A-NEXT:    ;;#ASMEND5771; GFX90A-NEXT:    v_mov_b32_e32 v12, 05772; GFX90A-NEXT:    ;;#ASMSTART5773; GFX90A-NEXT:    ; def v[0:7]5774; GFX90A-NEXT:    ;;#ASMEND5775; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:165776; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]5777; GFX90A-NEXT:    s_waitcnt vmcnt(0)5778; GFX90A-NEXT:    s_setpc_b64 s[30:31]5779;5780; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_5:5781; GFX942:       ; %bb.0:5782; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5783; GFX942-NEXT:    ;;#ASMSTART5784; GFX942-NEXT:    ; def v[4:11]5785; GFX942-NEXT:    ;;#ASMEND5786; GFX942-NEXT:    v_mov_b32_e32 v12, 05787; GFX942-NEXT:    ;;#ASMSTART5788; GFX942-NEXT:    ; def v[0:7]5789; GFX942-NEXT:    ;;#ASMEND5790; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:165791; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]5792; GFX942-NEXT:    s_waitcnt vmcnt(0)5793; GFX942-NEXT:    s_setpc_b64 s[30:31]5794  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5795  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5796  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 5>5797  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325798  ret void5799}5800 5801define void @v_shuffle_v3p0_v4p0__7_3_5(ptr addrspace(1) inreg %ptr) {5802; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_5:5803; GFX900:       ; %bb.0:5804; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5805; GFX900-NEXT:    ;;#ASMSTART5806; GFX900-NEXT:    ; def v[2:9]5807; GFX900-NEXT:    ;;#ASMEND5808; GFX900-NEXT:    v_mov_b32_e32 v10, 05809; GFX900-NEXT:    ;;#ASMSTART5810; GFX900-NEXT:    ; def v[0:7]5811; GFX900-NEXT:    ;;#ASMEND5812; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165813; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5814; GFX900-NEXT:    s_waitcnt vmcnt(0)5815; GFX900-NEXT:    s_setpc_b64 s[30:31]5816;5817; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_5:5818; GFX90A:       ; %bb.0:5819; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5820; GFX90A-NEXT:    ;;#ASMSTART5821; GFX90A-NEXT:    ; def v[2:9]5822; GFX90A-NEXT:    ;;#ASMEND5823; GFX90A-NEXT:    v_mov_b32_e32 v10, 05824; GFX90A-NEXT:    ;;#ASMSTART5825; GFX90A-NEXT:    ; def v[0:7]5826; GFX90A-NEXT:    ;;#ASMEND5827; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165828; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5829; GFX90A-NEXT:    s_waitcnt vmcnt(0)5830; GFX90A-NEXT:    s_setpc_b64 s[30:31]5831;5832; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_5:5833; GFX942:       ; %bb.0:5834; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5835; GFX942-NEXT:    ;;#ASMSTART5836; GFX942-NEXT:    ; def v[2:9]5837; GFX942-NEXT:    ;;#ASMEND5838; GFX942-NEXT:    v_mov_b32_e32 v10, 05839; GFX942-NEXT:    ;;#ASMSTART5840; GFX942-NEXT:    ; def v[0:7]5841; GFX942-NEXT:    ;;#ASMEND5842; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:165843; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5844; GFX942-NEXT:    s_waitcnt vmcnt(0)5845; GFX942-NEXT:    s_setpc_b64 s[30:31]5846  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5847  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5848  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 5>5849  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325850  ret void5851}5852 5853define void @v_shuffle_v3p0_v4p0__7_4_5(ptr addrspace(1) inreg %ptr) {5854; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_5:5855; GFX900:       ; %bb.0:5856; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5857; GFX900-NEXT:    v_mov_b32_e32 v10, 05858; GFX900-NEXT:    ;;#ASMSTART5859; GFX900-NEXT:    ; def v[0:7]5860; GFX900-NEXT:    ;;#ASMEND5861; GFX900-NEXT:    v_mov_b32_e32 v8, v05862; GFX900-NEXT:    v_mov_b32_e32 v9, v15863; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165864; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5865; GFX900-NEXT:    s_waitcnt vmcnt(0)5866; GFX900-NEXT:    s_setpc_b64 s[30:31]5867;5868; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_5:5869; GFX90A:       ; %bb.0:5870; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5871; GFX90A-NEXT:    v_mov_b32_e32 v10, 05872; GFX90A-NEXT:    ;;#ASMSTART5873; GFX90A-NEXT:    ; def v[0:7]5874; GFX90A-NEXT:    ;;#ASMEND5875; GFX90A-NEXT:    v_mov_b32_e32 v8, v05876; GFX90A-NEXT:    v_mov_b32_e32 v9, v15877; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165878; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5879; GFX90A-NEXT:    s_waitcnt vmcnt(0)5880; GFX90A-NEXT:    s_setpc_b64 s[30:31]5881;5882; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_5:5883; GFX942:       ; %bb.0:5884; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5885; GFX942-NEXT:    v_mov_b32_e32 v10, 05886; GFX942-NEXT:    ;;#ASMSTART5887; GFX942-NEXT:    ; def v[0:7]5888; GFX942-NEXT:    ;;#ASMEND5889; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:165890; GFX942-NEXT:    v_mov_b32_e32 v8, v05891; GFX942-NEXT:    v_mov_b32_e32 v9, v15892; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5893; GFX942-NEXT:    s_waitcnt vmcnt(0)5894; GFX942-NEXT:    s_setpc_b64 s[30:31]5895  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5896  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5897  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 5>5898  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325899  ret void5900}5901 5902define void @v_shuffle_v3p0_v4p0__7_6_5(ptr addrspace(1) inreg %ptr) {5903; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_5:5904; GFX900:       ; %bb.0:5905; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5906; GFX900-NEXT:    v_mov_b32_e32 v10, 05907; GFX900-NEXT:    ;;#ASMSTART5908; GFX900-NEXT:    ; def v[0:7]5909; GFX900-NEXT:    ;;#ASMEND5910; GFX900-NEXT:    v_mov_b32_e32 v8, v45911; GFX900-NEXT:    v_mov_b32_e32 v9, v55912; GFX900-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165913; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5914; GFX900-NEXT:    s_waitcnt vmcnt(0)5915; GFX900-NEXT:    s_setpc_b64 s[30:31]5916;5917; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_5:5918; GFX90A:       ; %bb.0:5919; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5920; GFX90A-NEXT:    v_mov_b32_e32 v10, 05921; GFX90A-NEXT:    ;;#ASMSTART5922; GFX90A-NEXT:    ; def v[0:7]5923; GFX90A-NEXT:    ;;#ASMEND5924; GFX90A-NEXT:    v_mov_b32_e32 v8, v45925; GFX90A-NEXT:    v_mov_b32_e32 v9, v55926; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:165927; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]5928; GFX90A-NEXT:    s_waitcnt vmcnt(0)5929; GFX90A-NEXT:    s_setpc_b64 s[30:31]5930;5931; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_5:5932; GFX942:       ; %bb.0:5933; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5934; GFX942-NEXT:    v_mov_b32_e32 v10, 05935; GFX942-NEXT:    ;;#ASMSTART5936; GFX942-NEXT:    ; def v[0:7]5937; GFX942-NEXT:    ;;#ASMEND5938; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:165939; GFX942-NEXT:    v_mov_b32_e32 v8, v45940; GFX942-NEXT:    v_mov_b32_e32 v9, v55941; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]5942; GFX942-NEXT:    s_waitcnt vmcnt(0)5943; GFX942-NEXT:    s_setpc_b64 s[30:31]5944  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5945  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5946  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 5>5947  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325948  ret void5949}5950 5951define void @v_shuffle_v3p0_v4p0__u_6_6(ptr addrspace(1) inreg %ptr) {5952; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_6_6:5953; GFX900:       ; %bb.0:5954; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5955; GFX900-NEXT:    v_mov_b32_e32 v8, 05956; GFX900-NEXT:    ;;#ASMSTART5957; GFX900-NEXT:    ; def v[0:7]5958; GFX900-NEXT:    ;;#ASMEND5959; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:165960; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]5961; GFX900-NEXT:    s_waitcnt vmcnt(0)5962; GFX900-NEXT:    s_setpc_b64 s[30:31]5963;5964; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_6_6:5965; GFX90A:       ; %bb.0:5966; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5967; GFX90A-NEXT:    v_mov_b32_e32 v8, 05968; GFX90A-NEXT:    ;;#ASMSTART5969; GFX90A-NEXT:    ; def v[0:7]5970; GFX90A-NEXT:    ;;#ASMEND5971; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:165972; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]5973; GFX90A-NEXT:    s_waitcnt vmcnt(0)5974; GFX90A-NEXT:    s_setpc_b64 s[30:31]5975;5976; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_6_6:5977; GFX942:       ; %bb.0:5978; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5979; GFX942-NEXT:    v_mov_b32_e32 v8, 05980; GFX942-NEXT:    ;;#ASMSTART5981; GFX942-NEXT:    ; def v[0:7]5982; GFX942-NEXT:    ;;#ASMEND5983; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:165984; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]5985; GFX942-NEXT:    s_waitcnt vmcnt(0)5986; GFX942-NEXT:    s_setpc_b64 s[30:31]5987  %vec0 = call <4 x ptr> asm "; def $0", "=v"()5988  %vec1 = call <4 x ptr> asm "; def $0", "=v"()5989  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>5990  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 325991  ret void5992}5993 5994define void @v_shuffle_v3p0_v4p0__0_6_6(ptr addrspace(1) inreg %ptr) {5995; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_6_6:5996; GFX900:       ; %bb.0:5997; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5998; GFX900-NEXT:    ;;#ASMSTART5999; GFX900-NEXT:    ; def v[0:7]6000; GFX900-NEXT:    ;;#ASMEND6001; GFX900-NEXT:    ;;#ASMSTART6002; GFX900-NEXT:    ; def v[2:9]6003; GFX900-NEXT:    ;;#ASMEND6004; GFX900-NEXT:    v_mov_b32_e32 v10, 06005; GFX900-NEXT:    v_mov_b32_e32 v2, v66006; GFX900-NEXT:    v_mov_b32_e32 v3, v76007; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:166008; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]6009; GFX900-NEXT:    s_waitcnt vmcnt(0)6010; GFX900-NEXT:    s_setpc_b64 s[30:31]6011;6012; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_6_6:6013; GFX90A:       ; %bb.0:6014; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6015; GFX90A-NEXT:    ;;#ASMSTART6016; GFX90A-NEXT:    ; def v[0:7]6017; GFX90A-NEXT:    ;;#ASMEND6018; GFX90A-NEXT:    ;;#ASMSTART6019; GFX90A-NEXT:    ; def v[2:9]6020; GFX90A-NEXT:    ;;#ASMEND6021; GFX90A-NEXT:    v_mov_b32_e32 v10, 06022; GFX90A-NEXT:    v_mov_b32_e32 v2, v66023; GFX90A-NEXT:    v_mov_b32_e32 v3, v76024; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:166025; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]6026; GFX90A-NEXT:    s_waitcnt vmcnt(0)6027; GFX90A-NEXT:    s_setpc_b64 s[30:31]6028;6029; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_6_6:6030; GFX942:       ; %bb.0:6031; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6032; GFX942-NEXT:    ;;#ASMSTART6033; GFX942-NEXT:    ; def v[0:7]6034; GFX942-NEXT:    ;;#ASMEND6035; GFX942-NEXT:    v_mov_b32_e32 v10, 06036; GFX942-NEXT:    ;;#ASMSTART6037; GFX942-NEXT:    ; def v[2:9]6038; GFX942-NEXT:    ;;#ASMEND6039; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:166040; GFX942-NEXT:    v_mov_b32_e32 v2, v66041; GFX942-NEXT:    v_mov_b32_e32 v3, v76042; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]6043; GFX942-NEXT:    s_waitcnt vmcnt(0)6044; GFX942-NEXT:    s_setpc_b64 s[30:31]6045  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6046  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6047  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 6, i32 6>6048  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326049  ret void6050}6051 6052define void @v_shuffle_v3p0_v4p0__1_6_6(ptr addrspace(1) inreg %ptr) {6053; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_6_6:6054; GFX900:       ; %bb.0:6055; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6056; GFX900-NEXT:    ;;#ASMSTART6057; GFX900-NEXT:    ; def v[0:7]6058; GFX900-NEXT:    ;;#ASMEND6059; GFX900-NEXT:    ;;#ASMSTART6060; GFX900-NEXT:    ; def v[4:11]6061; GFX900-NEXT:    ;;#ASMEND6062; GFX900-NEXT:    v_mov_b32_e32 v12, 06063; GFX900-NEXT:    v_mov_b32_e32 v4, v86064; GFX900-NEXT:    v_mov_b32_e32 v5, v96065; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:166066; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]6067; GFX900-NEXT:    s_waitcnt vmcnt(0)6068; GFX900-NEXT:    s_setpc_b64 s[30:31]6069;6070; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_6_6:6071; GFX90A:       ; %bb.0:6072; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6073; GFX90A-NEXT:    ;;#ASMSTART6074; GFX90A-NEXT:    ; def v[0:7]6075; GFX90A-NEXT:    ;;#ASMEND6076; GFX90A-NEXT:    ;;#ASMSTART6077; GFX90A-NEXT:    ; def v[4:11]6078; GFX90A-NEXT:    ;;#ASMEND6079; GFX90A-NEXT:    v_mov_b32_e32 v12, 06080; GFX90A-NEXT:    v_mov_b32_e32 v4, v86081; GFX90A-NEXT:    v_mov_b32_e32 v5, v96082; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:166083; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]6084; GFX90A-NEXT:    s_waitcnt vmcnt(0)6085; GFX90A-NEXT:    s_setpc_b64 s[30:31]6086;6087; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_6_6:6088; GFX942:       ; %bb.0:6089; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6090; GFX942-NEXT:    ;;#ASMSTART6091; GFX942-NEXT:    ; def v[0:7]6092; GFX942-NEXT:    ;;#ASMEND6093; GFX942-NEXT:    v_mov_b32_e32 v12, 06094; GFX942-NEXT:    ;;#ASMSTART6095; GFX942-NEXT:    ; def v[4:11]6096; GFX942-NEXT:    ;;#ASMEND6097; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:166098; GFX942-NEXT:    v_mov_b32_e32 v4, v86099; GFX942-NEXT:    v_mov_b32_e32 v5, v96100; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]6101; GFX942-NEXT:    s_waitcnt vmcnt(0)6102; GFX942-NEXT:    s_setpc_b64 s[30:31]6103  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6104  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6105  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 6, i32 6>6106  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326107  ret void6108}6109 6110define void @v_shuffle_v3p0_v4p0__2_6_6(ptr addrspace(1) inreg %ptr) {6111; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_6_6:6112; GFX900:       ; %bb.0:6113; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6114; GFX900-NEXT:    ;;#ASMSTART6115; GFX900-NEXT:    ; def v[0:7]6116; GFX900-NEXT:    ;;#ASMEND6117; GFX900-NEXT:    ;;#ASMSTART6118; GFX900-NEXT:    ; def v[6:13]6119; GFX900-NEXT:    ;;#ASMEND6120; GFX900-NEXT:    v_mov_b32_e32 v14, 06121; GFX900-NEXT:    v_mov_b32_e32 v6, v106122; GFX900-NEXT:    v_mov_b32_e32 v7, v116123; GFX900-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:166124; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]6125; GFX900-NEXT:    s_waitcnt vmcnt(0)6126; GFX900-NEXT:    s_setpc_b64 s[30:31]6127;6128; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_6_6:6129; GFX90A:       ; %bb.0:6130; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6131; GFX90A-NEXT:    ;;#ASMSTART6132; GFX90A-NEXT:    ; def v[0:7]6133; GFX90A-NEXT:    ;;#ASMEND6134; GFX90A-NEXT:    ;;#ASMSTART6135; GFX90A-NEXT:    ; def v[6:13]6136; GFX90A-NEXT:    ;;#ASMEND6137; GFX90A-NEXT:    v_mov_b32_e32 v14, 06138; GFX90A-NEXT:    v_mov_b32_e32 v6, v106139; GFX90A-NEXT:    v_mov_b32_e32 v7, v116140; GFX90A-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:166141; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]6142; GFX90A-NEXT:    s_waitcnt vmcnt(0)6143; GFX90A-NEXT:    s_setpc_b64 s[30:31]6144;6145; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_6_6:6146; GFX942:       ; %bb.0:6147; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6148; GFX942-NEXT:    ;;#ASMSTART6149; GFX942-NEXT:    ; def v[0:7]6150; GFX942-NEXT:    ;;#ASMEND6151; GFX942-NEXT:    v_mov_b32_e32 v14, 06152; GFX942-NEXT:    ;;#ASMSTART6153; GFX942-NEXT:    ; def v[6:13]6154; GFX942-NEXT:    ;;#ASMEND6155; GFX942-NEXT:    global_store_dwordx2 v14, v[10:11], s[0:1] offset:166156; GFX942-NEXT:    v_mov_b32_e32 v6, v106157; GFX942-NEXT:    v_mov_b32_e32 v7, v116158; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]6159; GFX942-NEXT:    s_waitcnt vmcnt(0)6160; GFX942-NEXT:    s_setpc_b64 s[30:31]6161  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6162  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6163  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 6, i32 6>6164  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326165  ret void6166}6167 6168define void @v_shuffle_v3p0_v4p0__3_6_6(ptr addrspace(1) inreg %ptr) {6169; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_6_6:6170; GFX900:       ; %bb.0:6171; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6172; GFX900-NEXT:    ;;#ASMSTART6173; GFX900-NEXT:    ; def v[8:15]6174; GFX900-NEXT:    ;;#ASMEND6175; GFX900-NEXT:    v_mov_b32_e32 v16, 06176; GFX900-NEXT:    v_mov_b32_e32 v8, v126177; GFX900-NEXT:    v_mov_b32_e32 v9, v136178; GFX900-NEXT:    ;;#ASMSTART6179; GFX900-NEXT:    ; def v[0:7]6180; GFX900-NEXT:    ;;#ASMEND6181; GFX900-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:166182; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]6183; GFX900-NEXT:    s_waitcnt vmcnt(0)6184; GFX900-NEXT:    s_setpc_b64 s[30:31]6185;6186; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_6_6:6187; GFX90A:       ; %bb.0:6188; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6189; GFX90A-NEXT:    ;;#ASMSTART6190; GFX90A-NEXT:    ; def v[8:15]6191; GFX90A-NEXT:    ;;#ASMEND6192; GFX90A-NEXT:    v_mov_b32_e32 v16, 06193; GFX90A-NEXT:    v_mov_b32_e32 v8, v126194; GFX90A-NEXT:    v_mov_b32_e32 v9, v136195; GFX90A-NEXT:    ;;#ASMSTART6196; GFX90A-NEXT:    ; def v[0:7]6197; GFX90A-NEXT:    ;;#ASMEND6198; GFX90A-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:166199; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]6200; GFX90A-NEXT:    s_waitcnt vmcnt(0)6201; GFX90A-NEXT:    s_setpc_b64 s[30:31]6202;6203; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_6_6:6204; GFX942:       ; %bb.0:6205; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6206; GFX942-NEXT:    ;;#ASMSTART6207; GFX942-NEXT:    ; def v[8:15]6208; GFX942-NEXT:    ;;#ASMEND6209; GFX942-NEXT:    v_mov_b32_e32 v16, 06210; GFX942-NEXT:    v_mov_b32_e32 v8, v126211; GFX942-NEXT:    v_mov_b32_e32 v9, v136212; GFX942-NEXT:    ;;#ASMSTART6213; GFX942-NEXT:    ; def v[0:7]6214; GFX942-NEXT:    ;;#ASMEND6215; GFX942-NEXT:    global_store_dwordx2 v16, v[12:13], s[0:1] offset:166216; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]6217; GFX942-NEXT:    s_waitcnt vmcnt(0)6218; GFX942-NEXT:    s_setpc_b64 s[30:31]6219  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6220  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6221  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 6, i32 6>6222  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326223  ret void6224}6225 6226define void @v_shuffle_v3p0_v4p0__4_6_6(ptr addrspace(1) inreg %ptr) {6227; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_6_6:6228; GFX900:       ; %bb.0:6229; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6230; GFX900-NEXT:    ;;#ASMSTART6231; GFX900-NEXT:    ; def v[0:7]6232; GFX900-NEXT:    ;;#ASMEND6233; GFX900-NEXT:    v_mov_b32_e32 v8, 06234; GFX900-NEXT:    v_mov_b32_e32 v2, v46235; GFX900-NEXT:    v_mov_b32_e32 v3, v56236; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166237; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]6238; GFX900-NEXT:    s_waitcnt vmcnt(0)6239; GFX900-NEXT:    s_setpc_b64 s[30:31]6240;6241; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_6_6:6242; GFX90A:       ; %bb.0:6243; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6244; GFX90A-NEXT:    ;;#ASMSTART6245; GFX90A-NEXT:    ; def v[0:7]6246; GFX90A-NEXT:    ;;#ASMEND6247; GFX90A-NEXT:    v_mov_b32_e32 v8, 06248; GFX90A-NEXT:    v_mov_b32_e32 v2, v46249; GFX90A-NEXT:    v_mov_b32_e32 v3, v56250; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166251; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]6252; GFX90A-NEXT:    s_waitcnt vmcnt(0)6253; GFX90A-NEXT:    s_setpc_b64 s[30:31]6254;6255; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_6_6:6256; GFX942:       ; %bb.0:6257; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6258; GFX942-NEXT:    ;;#ASMSTART6259; GFX942-NEXT:    ; def v[0:7]6260; GFX942-NEXT:    ;;#ASMEND6261; GFX942-NEXT:    v_mov_b32_e32 v8, 06262; GFX942-NEXT:    v_mov_b32_e32 v2, v46263; GFX942-NEXT:    v_mov_b32_e32 v3, v56264; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:166265; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]6266; GFX942-NEXT:    s_waitcnt vmcnt(0)6267; GFX942-NEXT:    s_setpc_b64 s[30:31]6268  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6269  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6270  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 6, i32 6>6271  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326272  ret void6273}6274 6275define void @v_shuffle_v3p0_v4p0__5_6_6(ptr addrspace(1) inreg %ptr) {6276; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_6_6:6277; GFX900:       ; %bb.0:6278; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6279; GFX900-NEXT:    v_mov_b32_e32 v8, 06280; GFX900-NEXT:    ;;#ASMSTART6281; GFX900-NEXT:    ; def v[0:7]6282; GFX900-NEXT:    ;;#ASMEND6283; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166284; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]6285; GFX900-NEXT:    s_waitcnt vmcnt(0)6286; GFX900-NEXT:    s_setpc_b64 s[30:31]6287;6288; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_6_6:6289; GFX90A:       ; %bb.0:6290; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6291; GFX90A-NEXT:    v_mov_b32_e32 v8, 06292; GFX90A-NEXT:    ;;#ASMSTART6293; GFX90A-NEXT:    ; def v[0:7]6294; GFX90A-NEXT:    ;;#ASMEND6295; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166296; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]6297; GFX90A-NEXT:    s_waitcnt vmcnt(0)6298; GFX90A-NEXT:    s_setpc_b64 s[30:31]6299;6300; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_6_6:6301; GFX942:       ; %bb.0:6302; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6303; GFX942-NEXT:    v_mov_b32_e32 v8, 06304; GFX942-NEXT:    ;;#ASMSTART6305; GFX942-NEXT:    ; def v[0:7]6306; GFX942-NEXT:    ;;#ASMEND6307; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:166308; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]6309; GFX942-NEXT:    s_waitcnt vmcnt(0)6310; GFX942-NEXT:    s_setpc_b64 s[30:31]6311  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6312  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6313  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 6, i32 6>6314  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326315  ret void6316}6317 6318define void @v_shuffle_v3p0_v4p0__6_6_6(ptr addrspace(1) inreg %ptr) {6319; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_6_6:6320; GFX900:       ; %bb.0:6321; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6322; GFX900-NEXT:    ;;#ASMSTART6323; GFX900-NEXT:    ; def v[0:7]6324; GFX900-NEXT:    ;;#ASMEND6325; GFX900-NEXT:    v_mov_b32_e32 v8, 06326; GFX900-NEXT:    v_mov_b32_e32 v6, v46327; GFX900-NEXT:    v_mov_b32_e32 v7, v56328; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166329; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]6330; GFX900-NEXT:    s_waitcnt vmcnt(0)6331; GFX900-NEXT:    s_setpc_b64 s[30:31]6332;6333; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_6_6:6334; GFX90A:       ; %bb.0:6335; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6336; GFX90A-NEXT:    ;;#ASMSTART6337; GFX90A-NEXT:    ; def v[0:7]6338; GFX90A-NEXT:    ;;#ASMEND6339; GFX90A-NEXT:    v_mov_b32_e32 v8, 06340; GFX90A-NEXT:    v_mov_b32_e32 v6, v46341; GFX90A-NEXT:    v_mov_b32_e32 v7, v56342; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166343; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]6344; GFX90A-NEXT:    s_waitcnt vmcnt(0)6345; GFX90A-NEXT:    s_setpc_b64 s[30:31]6346;6347; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_6_6:6348; GFX942:       ; %bb.0:6349; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6350; GFX942-NEXT:    ;;#ASMSTART6351; GFX942-NEXT:    ; def v[0:7]6352; GFX942-NEXT:    ;;#ASMEND6353; GFX942-NEXT:    v_mov_b32_e32 v8, 06354; GFX942-NEXT:    v_mov_b32_e32 v6, v46355; GFX942-NEXT:    v_mov_b32_e32 v7, v56356; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:166357; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]6358; GFX942-NEXT:    s_waitcnt vmcnt(0)6359; GFX942-NEXT:    s_setpc_b64 s[30:31]6360  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6361  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6362  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 6, i32 6>6363  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326364  ret void6365}6366 6367define void @v_shuffle_v3p0_v4p0__7_6_6(ptr addrspace(1) inreg %ptr) {6368; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_6:6369; GFX900:       ; %bb.0:6370; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6371; GFX900-NEXT:    v_mov_b32_e32 v10, 06372; GFX900-NEXT:    ;;#ASMSTART6373; GFX900-NEXT:    ; def v[0:7]6374; GFX900-NEXT:    ;;#ASMEND6375; GFX900-NEXT:    v_mov_b32_e32 v8, v46376; GFX900-NEXT:    v_mov_b32_e32 v9, v56377; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166378; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6379; GFX900-NEXT:    s_waitcnt vmcnt(0)6380; GFX900-NEXT:    s_setpc_b64 s[30:31]6381;6382; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_6:6383; GFX90A:       ; %bb.0:6384; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6385; GFX90A-NEXT:    v_mov_b32_e32 v10, 06386; GFX90A-NEXT:    ;;#ASMSTART6387; GFX90A-NEXT:    ; def v[0:7]6388; GFX90A-NEXT:    ;;#ASMEND6389; GFX90A-NEXT:    v_mov_b32_e32 v8, v46390; GFX90A-NEXT:    v_mov_b32_e32 v9, v56391; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166392; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6393; GFX90A-NEXT:    s_waitcnt vmcnt(0)6394; GFX90A-NEXT:    s_setpc_b64 s[30:31]6395;6396; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_6:6397; GFX942:       ; %bb.0:6398; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6399; GFX942-NEXT:    v_mov_b32_e32 v10, 06400; GFX942-NEXT:    ;;#ASMSTART6401; GFX942-NEXT:    ; def v[0:7]6402; GFX942-NEXT:    ;;#ASMEND6403; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:166404; GFX942-NEXT:    v_mov_b32_e32 v8, v46405; GFX942-NEXT:    v_mov_b32_e32 v9, v56406; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]6407; GFX942-NEXT:    s_waitcnt vmcnt(0)6408; GFX942-NEXT:    s_setpc_b64 s[30:31]6409  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6410  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6411  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 6>6412  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326413  ret void6414}6415 6416define void @v_shuffle_v3p0_v4p0__7_u_6(ptr addrspace(1) inreg %ptr) {6417; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_6:6418; GFX900:       ; %bb.0:6419; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6420; GFX900-NEXT:    v_mov_b32_e32 v8, 06421; GFX900-NEXT:    ;;#ASMSTART6422; GFX900-NEXT:    ; def v[0:7]6423; GFX900-NEXT:    ;;#ASMEND6424; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166425; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]6426; GFX900-NEXT:    s_waitcnt vmcnt(0)6427; GFX900-NEXT:    s_setpc_b64 s[30:31]6428;6429; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_6:6430; GFX90A:       ; %bb.0:6431; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6432; GFX90A-NEXT:    v_mov_b32_e32 v8, 06433; GFX90A-NEXT:    ;;#ASMSTART6434; GFX90A-NEXT:    ; def v[0:7]6435; GFX90A-NEXT:    ;;#ASMEND6436; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:166437; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]6438; GFX90A-NEXT:    s_waitcnt vmcnt(0)6439; GFX90A-NEXT:    s_setpc_b64 s[30:31]6440;6441; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_6:6442; GFX942:       ; %bb.0:6443; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6444; GFX942-NEXT:    v_mov_b32_e32 v8, 06445; GFX942-NEXT:    ;;#ASMSTART6446; GFX942-NEXT:    ; def v[0:7]6447; GFX942-NEXT:    ;;#ASMEND6448; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:166449; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]6450; GFX942-NEXT:    s_waitcnt vmcnt(0)6451; GFX942-NEXT:    s_setpc_b64 s[30:31]6452  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6453  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6454  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>6455  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326456  ret void6457}6458 6459define void @v_shuffle_v3p0_v4p0__7_0_6(ptr addrspace(1) inreg %ptr) {6460; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_6:6461; GFX900:       ; %bb.0:6462; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6463; GFX900-NEXT:    v_mov_b32_e32 v16, 06464; GFX900-NEXT:    ;;#ASMSTART6465; GFX900-NEXT:    ; def v[0:7]6466; GFX900-NEXT:    ;;#ASMEND6467; GFX900-NEXT:    ;;#ASMSTART6468; GFX900-NEXT:    ; def v[8:15]6469; GFX900-NEXT:    ;;#ASMEND6470; GFX900-NEXT:    global_store_dwordx2 v16, v[4:5], s[16:17] offset:166471; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]6472; GFX900-NEXT:    s_waitcnt vmcnt(0)6473; GFX900-NEXT:    s_setpc_b64 s[30:31]6474;6475; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_6:6476; GFX90A:       ; %bb.0:6477; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6478; GFX90A-NEXT:    v_mov_b32_e32 v16, 06479; GFX90A-NEXT:    ;;#ASMSTART6480; GFX90A-NEXT:    ; def v[0:7]6481; GFX90A-NEXT:    ;;#ASMEND6482; GFX90A-NEXT:    ;;#ASMSTART6483; GFX90A-NEXT:    ; def v[8:15]6484; GFX90A-NEXT:    ;;#ASMEND6485; GFX90A-NEXT:    global_store_dwordx2 v16, v[4:5], s[16:17] offset:166486; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]6487; GFX90A-NEXT:    s_waitcnt vmcnt(0)6488; GFX90A-NEXT:    s_setpc_b64 s[30:31]6489;6490; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_6:6491; GFX942:       ; %bb.0:6492; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6493; GFX942-NEXT:    v_mov_b32_e32 v16, 06494; GFX942-NEXT:    ;;#ASMSTART6495; GFX942-NEXT:    ; def v[0:7]6496; GFX942-NEXT:    ;;#ASMEND6497; GFX942-NEXT:    ;;#ASMSTART6498; GFX942-NEXT:    ; def v[8:15]6499; GFX942-NEXT:    ;;#ASMEND6500; GFX942-NEXT:    global_store_dwordx2 v16, v[4:5], s[0:1] offset:166501; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]6502; GFX942-NEXT:    s_waitcnt vmcnt(0)6503; GFX942-NEXT:    s_setpc_b64 s[30:31]6504  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6505  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6506  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 6>6507  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326508  ret void6509}6510 6511define void @v_shuffle_v3p0_v4p0__7_1_6(ptr addrspace(1) inreg %ptr) {6512; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_6:6513; GFX900:       ; %bb.0:6514; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6515; GFX900-NEXT:    ;;#ASMSTART6516; GFX900-NEXT:    ; def v[6:13]6517; GFX900-NEXT:    ;;#ASMEND6518; GFX900-NEXT:    v_mov_b32_e32 v14, 06519; GFX900-NEXT:    ;;#ASMSTART6520; GFX900-NEXT:    ; def v[0:7]6521; GFX900-NEXT:    ;;#ASMEND6522; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:166523; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]6524; GFX900-NEXT:    s_waitcnt vmcnt(0)6525; GFX900-NEXT:    s_setpc_b64 s[30:31]6526;6527; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_6:6528; GFX90A:       ; %bb.0:6529; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6530; GFX90A-NEXT:    ;;#ASMSTART6531; GFX90A-NEXT:    ; def v[6:13]6532; GFX90A-NEXT:    ;;#ASMEND6533; GFX90A-NEXT:    v_mov_b32_e32 v14, 06534; GFX90A-NEXT:    ;;#ASMSTART6535; GFX90A-NEXT:    ; def v[0:7]6536; GFX90A-NEXT:    ;;#ASMEND6537; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:166538; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]6539; GFX90A-NEXT:    s_waitcnt vmcnt(0)6540; GFX90A-NEXT:    s_setpc_b64 s[30:31]6541;6542; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_6:6543; GFX942:       ; %bb.0:6544; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6545; GFX942-NEXT:    ;;#ASMSTART6546; GFX942-NEXT:    ; def v[6:13]6547; GFX942-NEXT:    ;;#ASMEND6548; GFX942-NEXT:    v_mov_b32_e32 v14, 06549; GFX942-NEXT:    ;;#ASMSTART6550; GFX942-NEXT:    ; def v[0:7]6551; GFX942-NEXT:    ;;#ASMEND6552; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:166553; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]6554; GFX942-NEXT:    s_waitcnt vmcnt(0)6555; GFX942-NEXT:    s_setpc_b64 s[30:31]6556  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6557  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6558  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 6>6559  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326560  ret void6561}6562 6563define void @v_shuffle_v3p0_v4p0__7_2_6(ptr addrspace(1) inreg %ptr) {6564; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_6:6565; GFX900:       ; %bb.0:6566; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6567; GFX900-NEXT:    ;;#ASMSTART6568; GFX900-NEXT:    ; def v[4:11]6569; GFX900-NEXT:    ;;#ASMEND6570; GFX900-NEXT:    v_mov_b32_e32 v12, 06571; GFX900-NEXT:    ;;#ASMSTART6572; GFX900-NEXT:    ; def v[0:7]6573; GFX900-NEXT:    ;;#ASMEND6574; GFX900-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:166575; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]6576; GFX900-NEXT:    s_waitcnt vmcnt(0)6577; GFX900-NEXT:    s_setpc_b64 s[30:31]6578;6579; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_6:6580; GFX90A:       ; %bb.0:6581; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6582; GFX90A-NEXT:    ;;#ASMSTART6583; GFX90A-NEXT:    ; def v[4:11]6584; GFX90A-NEXT:    ;;#ASMEND6585; GFX90A-NEXT:    v_mov_b32_e32 v12, 06586; GFX90A-NEXT:    ;;#ASMSTART6587; GFX90A-NEXT:    ; def v[0:7]6588; GFX90A-NEXT:    ;;#ASMEND6589; GFX90A-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:166590; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]6591; GFX90A-NEXT:    s_waitcnt vmcnt(0)6592; GFX90A-NEXT:    s_setpc_b64 s[30:31]6593;6594; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_6:6595; GFX942:       ; %bb.0:6596; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6597; GFX942-NEXT:    ;;#ASMSTART6598; GFX942-NEXT:    ; def v[4:11]6599; GFX942-NEXT:    ;;#ASMEND6600; GFX942-NEXT:    v_mov_b32_e32 v12, 06601; GFX942-NEXT:    ;;#ASMSTART6602; GFX942-NEXT:    ; def v[0:7]6603; GFX942-NEXT:    ;;#ASMEND6604; GFX942-NEXT:    global_store_dwordx2 v12, v[4:5], s[0:1] offset:166605; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]6606; GFX942-NEXT:    s_waitcnt vmcnt(0)6607; GFX942-NEXT:    s_setpc_b64 s[30:31]6608  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6609  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6610  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 6>6611  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326612  ret void6613}6614 6615define void @v_shuffle_v3p0_v4p0__7_3_6(ptr addrspace(1) inreg %ptr) {6616; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_6:6617; GFX900:       ; %bb.0:6618; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6619; GFX900-NEXT:    ;;#ASMSTART6620; GFX900-NEXT:    ; def v[2:9]6621; GFX900-NEXT:    ;;#ASMEND6622; GFX900-NEXT:    v_mov_b32_e32 v10, 06623; GFX900-NEXT:    ;;#ASMSTART6624; GFX900-NEXT:    ; def v[0:7]6625; GFX900-NEXT:    ;;#ASMEND6626; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166627; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6628; GFX900-NEXT:    s_waitcnt vmcnt(0)6629; GFX900-NEXT:    s_setpc_b64 s[30:31]6630;6631; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_6:6632; GFX90A:       ; %bb.0:6633; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6634; GFX90A-NEXT:    ;;#ASMSTART6635; GFX90A-NEXT:    ; def v[2:9]6636; GFX90A-NEXT:    ;;#ASMEND6637; GFX90A-NEXT:    v_mov_b32_e32 v10, 06638; GFX90A-NEXT:    ;;#ASMSTART6639; GFX90A-NEXT:    ; def v[0:7]6640; GFX90A-NEXT:    ;;#ASMEND6641; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166642; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6643; GFX90A-NEXT:    s_waitcnt vmcnt(0)6644; GFX90A-NEXT:    s_setpc_b64 s[30:31]6645;6646; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_6:6647; GFX942:       ; %bb.0:6648; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6649; GFX942-NEXT:    ;;#ASMSTART6650; GFX942-NEXT:    ; def v[2:9]6651; GFX942-NEXT:    ;;#ASMEND6652; GFX942-NEXT:    v_mov_b32_e32 v10, 06653; GFX942-NEXT:    ;;#ASMSTART6654; GFX942-NEXT:    ; def v[0:7]6655; GFX942-NEXT:    ;;#ASMEND6656; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:166657; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]6658; GFX942-NEXT:    s_waitcnt vmcnt(0)6659; GFX942-NEXT:    s_setpc_b64 s[30:31]6660  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6661  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6662  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 6>6663  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326664  ret void6665}6666 6667define void @v_shuffle_v3p0_v4p0__7_4_6(ptr addrspace(1) inreg %ptr) {6668; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_6:6669; GFX900:       ; %bb.0:6670; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6671; GFX900-NEXT:    v_mov_b32_e32 v10, 06672; GFX900-NEXT:    ;;#ASMSTART6673; GFX900-NEXT:    ; def v[0:7]6674; GFX900-NEXT:    ;;#ASMEND6675; GFX900-NEXT:    v_mov_b32_e32 v8, v06676; GFX900-NEXT:    v_mov_b32_e32 v9, v16677; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166678; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6679; GFX900-NEXT:    s_waitcnt vmcnt(0)6680; GFX900-NEXT:    s_setpc_b64 s[30:31]6681;6682; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_6:6683; GFX90A:       ; %bb.0:6684; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6685; GFX90A-NEXT:    v_mov_b32_e32 v10, 06686; GFX90A-NEXT:    ;;#ASMSTART6687; GFX90A-NEXT:    ; def v[0:7]6688; GFX90A-NEXT:    ;;#ASMEND6689; GFX90A-NEXT:    v_mov_b32_e32 v8, v06690; GFX90A-NEXT:    v_mov_b32_e32 v9, v16691; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166692; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6693; GFX90A-NEXT:    s_waitcnt vmcnt(0)6694; GFX90A-NEXT:    s_setpc_b64 s[30:31]6695;6696; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_6:6697; GFX942:       ; %bb.0:6698; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6699; GFX942-NEXT:    v_mov_b32_e32 v10, 06700; GFX942-NEXT:    ;;#ASMSTART6701; GFX942-NEXT:    ; def v[0:7]6702; GFX942-NEXT:    ;;#ASMEND6703; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:166704; GFX942-NEXT:    v_mov_b32_e32 v8, v06705; GFX942-NEXT:    v_mov_b32_e32 v9, v16706; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]6707; GFX942-NEXT:    s_waitcnt vmcnt(0)6708; GFX942-NEXT:    s_setpc_b64 s[30:31]6709  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6710  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6711  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 6>6712  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326713  ret void6714}6715 6716define void @v_shuffle_v3p0_v4p0__7_5_6(ptr addrspace(1) inreg %ptr) {6717; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_6:6718; GFX900:       ; %bb.0:6719; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6720; GFX900-NEXT:    v_mov_b32_e32 v10, 06721; GFX900-NEXT:    ;;#ASMSTART6722; GFX900-NEXT:    ; def v[0:7]6723; GFX900-NEXT:    ;;#ASMEND6724; GFX900-NEXT:    v_mov_b32_e32 v8, v26725; GFX900-NEXT:    v_mov_b32_e32 v9, v36726; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166727; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6728; GFX900-NEXT:    s_waitcnt vmcnt(0)6729; GFX900-NEXT:    s_setpc_b64 s[30:31]6730;6731; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_6:6732; GFX90A:       ; %bb.0:6733; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6734; GFX90A-NEXT:    v_mov_b32_e32 v10, 06735; GFX90A-NEXT:    ;;#ASMSTART6736; GFX90A-NEXT:    ; def v[0:7]6737; GFX90A-NEXT:    ;;#ASMEND6738; GFX90A-NEXT:    v_mov_b32_e32 v8, v26739; GFX90A-NEXT:    v_mov_b32_e32 v9, v36740; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:166741; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]6742; GFX90A-NEXT:    s_waitcnt vmcnt(0)6743; GFX90A-NEXT:    s_setpc_b64 s[30:31]6744;6745; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_6:6746; GFX942:       ; %bb.0:6747; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6748; GFX942-NEXT:    v_mov_b32_e32 v10, 06749; GFX942-NEXT:    ;;#ASMSTART6750; GFX942-NEXT:    ; def v[0:7]6751; GFX942-NEXT:    ;;#ASMEND6752; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:166753; GFX942-NEXT:    v_mov_b32_e32 v8, v26754; GFX942-NEXT:    v_mov_b32_e32 v9, v36755; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]6756; GFX942-NEXT:    s_waitcnt vmcnt(0)6757; GFX942-NEXT:    s_setpc_b64 s[30:31]6758  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6759  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6760  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 6>6761  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326762  ret void6763}6764 6765define void @v_shuffle_v3p0_v4p0__u_7_7(ptr addrspace(1) inreg %ptr) {6766; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_7_7:6767; GFX900:       ; %bb.0:6768; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6769; GFX900-NEXT:    v_mov_b32_e32 v8, 06770; GFX900-NEXT:    ;;#ASMSTART6771; GFX900-NEXT:    ; def v[0:7]6772; GFX900-NEXT:    ;;#ASMEND6773; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:166774; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]6775; GFX900-NEXT:    s_waitcnt vmcnt(0)6776; GFX900-NEXT:    s_setpc_b64 s[30:31]6777;6778; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_7_7:6779; GFX90A:       ; %bb.0:6780; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6781; GFX90A-NEXT:    v_mov_b32_e32 v8, 06782; GFX90A-NEXT:    ;;#ASMSTART6783; GFX90A-NEXT:    ; def v[0:7]6784; GFX90A-NEXT:    ;;#ASMEND6785; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:166786; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]6787; GFX90A-NEXT:    s_waitcnt vmcnt(0)6788; GFX90A-NEXT:    s_setpc_b64 s[30:31]6789;6790; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_7_7:6791; GFX942:       ; %bb.0:6792; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6793; GFX942-NEXT:    v_mov_b32_e32 v8, 06794; GFX942-NEXT:    ;;#ASMSTART6795; GFX942-NEXT:    ; def v[0:7]6796; GFX942-NEXT:    ;;#ASMEND6797; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:166798; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]6799; GFX942-NEXT:    s_waitcnt vmcnt(0)6800; GFX942-NEXT:    s_setpc_b64 s[30:31]6801  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6802  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6803  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>6804  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326805  ret void6806}6807 6808define void @v_shuffle_v3p0_v4p0__0_7_7(ptr addrspace(1) inreg %ptr) {6809; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_7_7:6810; GFX900:       ; %bb.0:6811; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6812; GFX900-NEXT:    ;;#ASMSTART6813; GFX900-NEXT:    ; def v[0:7]6814; GFX900-NEXT:    ;;#ASMEND6815; GFX900-NEXT:    ;;#ASMSTART6816; GFX900-NEXT:    ; def v[2:9]6817; GFX900-NEXT:    ;;#ASMEND6818; GFX900-NEXT:    v_mov_b32_e32 v10, 06819; GFX900-NEXT:    v_mov_b32_e32 v2, v86820; GFX900-NEXT:    v_mov_b32_e32 v3, v96821; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:166822; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]6823; GFX900-NEXT:    s_waitcnt vmcnt(0)6824; GFX900-NEXT:    s_setpc_b64 s[30:31]6825;6826; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_7_7:6827; GFX90A:       ; %bb.0:6828; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6829; GFX90A-NEXT:    ;;#ASMSTART6830; GFX90A-NEXT:    ; def v[0:7]6831; GFX90A-NEXT:    ;;#ASMEND6832; GFX90A-NEXT:    ;;#ASMSTART6833; GFX90A-NEXT:    ; def v[2:9]6834; GFX90A-NEXT:    ;;#ASMEND6835; GFX90A-NEXT:    v_mov_b32_e32 v10, 06836; GFX90A-NEXT:    v_mov_b32_e32 v2, v86837; GFX90A-NEXT:    v_mov_b32_e32 v3, v96838; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:166839; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]6840; GFX90A-NEXT:    s_waitcnt vmcnt(0)6841; GFX90A-NEXT:    s_setpc_b64 s[30:31]6842;6843; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_7_7:6844; GFX942:       ; %bb.0:6845; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6846; GFX942-NEXT:    ;;#ASMSTART6847; GFX942-NEXT:    ; def v[0:7]6848; GFX942-NEXT:    ;;#ASMEND6849; GFX942-NEXT:    v_mov_b32_e32 v10, 06850; GFX942-NEXT:    ;;#ASMSTART6851; GFX942-NEXT:    ; def v[2:9]6852; GFX942-NEXT:    ;;#ASMEND6853; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:166854; GFX942-NEXT:    v_mov_b32_e32 v2, v86855; GFX942-NEXT:    v_mov_b32_e32 v3, v96856; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]6857; GFX942-NEXT:    s_waitcnt vmcnt(0)6858; GFX942-NEXT:    s_setpc_b64 s[30:31]6859  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6860  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6861  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 7, i32 7>6862  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326863  ret void6864}6865 6866define void @v_shuffle_v3p0_v4p0__1_7_7(ptr addrspace(1) inreg %ptr) {6867; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_7_7:6868; GFX900:       ; %bb.0:6869; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6870; GFX900-NEXT:    ;;#ASMSTART6871; GFX900-NEXT:    ; def v[0:7]6872; GFX900-NEXT:    ;;#ASMEND6873; GFX900-NEXT:    ;;#ASMSTART6874; GFX900-NEXT:    ; def v[4:11]6875; GFX900-NEXT:    ;;#ASMEND6876; GFX900-NEXT:    v_mov_b32_e32 v12, 06877; GFX900-NEXT:    v_mov_b32_e32 v4, v106878; GFX900-NEXT:    v_mov_b32_e32 v5, v116879; GFX900-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:166880; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]6881; GFX900-NEXT:    s_waitcnt vmcnt(0)6882; GFX900-NEXT:    s_setpc_b64 s[30:31]6883;6884; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_7_7:6885; GFX90A:       ; %bb.0:6886; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6887; GFX90A-NEXT:    ;;#ASMSTART6888; GFX90A-NEXT:    ; def v[0:7]6889; GFX90A-NEXT:    ;;#ASMEND6890; GFX90A-NEXT:    ;;#ASMSTART6891; GFX90A-NEXT:    ; def v[4:11]6892; GFX90A-NEXT:    ;;#ASMEND6893; GFX90A-NEXT:    v_mov_b32_e32 v12, 06894; GFX90A-NEXT:    v_mov_b32_e32 v4, v106895; GFX90A-NEXT:    v_mov_b32_e32 v5, v116896; GFX90A-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:166897; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]6898; GFX90A-NEXT:    s_waitcnt vmcnt(0)6899; GFX90A-NEXT:    s_setpc_b64 s[30:31]6900;6901; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_7_7:6902; GFX942:       ; %bb.0:6903; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6904; GFX942-NEXT:    ;;#ASMSTART6905; GFX942-NEXT:    ; def v[0:7]6906; GFX942-NEXT:    ;;#ASMEND6907; GFX942-NEXT:    v_mov_b32_e32 v12, 06908; GFX942-NEXT:    ;;#ASMSTART6909; GFX942-NEXT:    ; def v[4:11]6910; GFX942-NEXT:    ;;#ASMEND6911; GFX942-NEXT:    global_store_dwordx2 v12, v[10:11], s[0:1] offset:166912; GFX942-NEXT:    v_mov_b32_e32 v4, v106913; GFX942-NEXT:    v_mov_b32_e32 v5, v116914; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]6915; GFX942-NEXT:    s_waitcnt vmcnt(0)6916; GFX942-NEXT:    s_setpc_b64 s[30:31]6917  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6918  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6919  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 7, i32 7>6920  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326921  ret void6922}6923 6924define void @v_shuffle_v3p0_v4p0__2_7_7(ptr addrspace(1) inreg %ptr) {6925; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_7_7:6926; GFX900:       ; %bb.0:6927; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6928; GFX900-NEXT:    ;;#ASMSTART6929; GFX900-NEXT:    ; def v[0:7]6930; GFX900-NEXT:    ;;#ASMEND6931; GFX900-NEXT:    ;;#ASMSTART6932; GFX900-NEXT:    ; def v[6:13]6933; GFX900-NEXT:    ;;#ASMEND6934; GFX900-NEXT:    v_mov_b32_e32 v14, 06935; GFX900-NEXT:    v_mov_b32_e32 v6, v126936; GFX900-NEXT:    v_mov_b32_e32 v7, v136937; GFX900-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:166938; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]6939; GFX900-NEXT:    s_waitcnt vmcnt(0)6940; GFX900-NEXT:    s_setpc_b64 s[30:31]6941;6942; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_7_7:6943; GFX90A:       ; %bb.0:6944; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6945; GFX90A-NEXT:    ;;#ASMSTART6946; GFX90A-NEXT:    ; def v[0:7]6947; GFX90A-NEXT:    ;;#ASMEND6948; GFX90A-NEXT:    ;;#ASMSTART6949; GFX90A-NEXT:    ; def v[6:13]6950; GFX90A-NEXT:    ;;#ASMEND6951; GFX90A-NEXT:    v_mov_b32_e32 v14, 06952; GFX90A-NEXT:    v_mov_b32_e32 v6, v126953; GFX90A-NEXT:    v_mov_b32_e32 v7, v136954; GFX90A-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:166955; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]6956; GFX90A-NEXT:    s_waitcnt vmcnt(0)6957; GFX90A-NEXT:    s_setpc_b64 s[30:31]6958;6959; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_7_7:6960; GFX942:       ; %bb.0:6961; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6962; GFX942-NEXT:    ;;#ASMSTART6963; GFX942-NEXT:    ; def v[0:7]6964; GFX942-NEXT:    ;;#ASMEND6965; GFX942-NEXT:    v_mov_b32_e32 v14, 06966; GFX942-NEXT:    ;;#ASMSTART6967; GFX942-NEXT:    ; def v[6:13]6968; GFX942-NEXT:    ;;#ASMEND6969; GFX942-NEXT:    global_store_dwordx2 v14, v[12:13], s[0:1] offset:166970; GFX942-NEXT:    v_mov_b32_e32 v6, v126971; GFX942-NEXT:    v_mov_b32_e32 v7, v136972; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]6973; GFX942-NEXT:    s_waitcnt vmcnt(0)6974; GFX942-NEXT:    s_setpc_b64 s[30:31]6975  %vec0 = call <4 x ptr> asm "; def $0", "=v"()6976  %vec1 = call <4 x ptr> asm "; def $0", "=v"()6977  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 7, i32 7>6978  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 326979  ret void6980}6981 6982define void @v_shuffle_v3p0_v4p0__3_7_7(ptr addrspace(1) inreg %ptr) {6983; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_7_7:6984; GFX900:       ; %bb.0:6985; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6986; GFX900-NEXT:    ;;#ASMSTART6987; GFX900-NEXT:    ; def v[8:15]6988; GFX900-NEXT:    ;;#ASMEND6989; GFX900-NEXT:    v_mov_b32_e32 v16, 06990; GFX900-NEXT:    v_mov_b32_e32 v8, v146991; GFX900-NEXT:    v_mov_b32_e32 v9, v156992; GFX900-NEXT:    ;;#ASMSTART6993; GFX900-NEXT:    ; def v[0:7]6994; GFX900-NEXT:    ;;#ASMEND6995; GFX900-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:166996; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]6997; GFX900-NEXT:    s_waitcnt vmcnt(0)6998; GFX900-NEXT:    s_setpc_b64 s[30:31]6999;7000; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_7_7:7001; GFX90A:       ; %bb.0:7002; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7003; GFX90A-NEXT:    ;;#ASMSTART7004; GFX90A-NEXT:    ; def v[8:15]7005; GFX90A-NEXT:    ;;#ASMEND7006; GFX90A-NEXT:    v_mov_b32_e32 v16, 07007; GFX90A-NEXT:    v_mov_b32_e32 v8, v147008; GFX90A-NEXT:    v_mov_b32_e32 v9, v157009; GFX90A-NEXT:    ;;#ASMSTART7010; GFX90A-NEXT:    ; def v[0:7]7011; GFX90A-NEXT:    ;;#ASMEND7012; GFX90A-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:167013; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]7014; GFX90A-NEXT:    s_waitcnt vmcnt(0)7015; GFX90A-NEXT:    s_setpc_b64 s[30:31]7016;7017; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_7_7:7018; GFX942:       ; %bb.0:7019; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7020; GFX942-NEXT:    ;;#ASMSTART7021; GFX942-NEXT:    ; def v[8:15]7022; GFX942-NEXT:    ;;#ASMEND7023; GFX942-NEXT:    v_mov_b32_e32 v16, 07024; GFX942-NEXT:    v_mov_b32_e32 v8, v147025; GFX942-NEXT:    v_mov_b32_e32 v9, v157026; GFX942-NEXT:    ;;#ASMSTART7027; GFX942-NEXT:    ; def v[0:7]7028; GFX942-NEXT:    ;;#ASMEND7029; GFX942-NEXT:    global_store_dwordx2 v16, v[14:15], s[0:1] offset:167030; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]7031; GFX942-NEXT:    s_waitcnt vmcnt(0)7032; GFX942-NEXT:    s_setpc_b64 s[30:31]7033  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7034  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7035  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 7, i32 7>7036  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327037  ret void7038}7039 7040define void @v_shuffle_v3p0_v4p0__4_7_7(ptr addrspace(1) inreg %ptr) {7041; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_7_7:7042; GFX900:       ; %bb.0:7043; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7044; GFX900-NEXT:    ;;#ASMSTART7045; GFX900-NEXT:    ; def v[0:7]7046; GFX900-NEXT:    ;;#ASMEND7047; GFX900-NEXT:    v_mov_b32_e32 v8, 07048; GFX900-NEXT:    v_mov_b32_e32 v2, v67049; GFX900-NEXT:    v_mov_b32_e32 v3, v77050; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167051; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]7052; GFX900-NEXT:    s_waitcnt vmcnt(0)7053; GFX900-NEXT:    s_setpc_b64 s[30:31]7054;7055; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_7_7:7056; GFX90A:       ; %bb.0:7057; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7058; GFX90A-NEXT:    ;;#ASMSTART7059; GFX90A-NEXT:    ; def v[0:7]7060; GFX90A-NEXT:    ;;#ASMEND7061; GFX90A-NEXT:    v_mov_b32_e32 v8, 07062; GFX90A-NEXT:    v_mov_b32_e32 v2, v67063; GFX90A-NEXT:    v_mov_b32_e32 v3, v77064; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167065; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]7066; GFX90A-NEXT:    s_waitcnt vmcnt(0)7067; GFX90A-NEXT:    s_setpc_b64 s[30:31]7068;7069; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_7_7:7070; GFX942:       ; %bb.0:7071; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7072; GFX942-NEXT:    ;;#ASMSTART7073; GFX942-NEXT:    ; def v[0:7]7074; GFX942-NEXT:    ;;#ASMEND7075; GFX942-NEXT:    v_mov_b32_e32 v8, 07076; GFX942-NEXT:    v_mov_b32_e32 v2, v67077; GFX942-NEXT:    v_mov_b32_e32 v3, v77078; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:167079; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]7080; GFX942-NEXT:    s_waitcnt vmcnt(0)7081; GFX942-NEXT:    s_setpc_b64 s[30:31]7082  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7083  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7084  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 7, i32 7>7085  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327086  ret void7087}7088 7089define void @v_shuffle_v3p0_v4p0__5_7_7(ptr addrspace(1) inreg %ptr) {7090; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_7_7:7091; GFX900:       ; %bb.0:7092; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7093; GFX900-NEXT:    ;;#ASMSTART7094; GFX900-NEXT:    ; def v[0:7]7095; GFX900-NEXT:    ;;#ASMEND7096; GFX900-NEXT:    v_mov_b32_e32 v8, 07097; GFX900-NEXT:    v_mov_b32_e32 v4, v67098; GFX900-NEXT:    v_mov_b32_e32 v5, v77099; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167100; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]7101; GFX900-NEXT:    s_waitcnt vmcnt(0)7102; GFX900-NEXT:    s_setpc_b64 s[30:31]7103;7104; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_7_7:7105; GFX90A:       ; %bb.0:7106; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7107; GFX90A-NEXT:    ;;#ASMSTART7108; GFX90A-NEXT:    ; def v[0:7]7109; GFX90A-NEXT:    ;;#ASMEND7110; GFX90A-NEXT:    v_mov_b32_e32 v8, 07111; GFX90A-NEXT:    v_mov_b32_e32 v4, v67112; GFX90A-NEXT:    v_mov_b32_e32 v5, v77113; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167114; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]7115; GFX90A-NEXT:    s_waitcnt vmcnt(0)7116; GFX90A-NEXT:    s_setpc_b64 s[30:31]7117;7118; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_7_7:7119; GFX942:       ; %bb.0:7120; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7121; GFX942-NEXT:    ;;#ASMSTART7122; GFX942-NEXT:    ; def v[0:7]7123; GFX942-NEXT:    ;;#ASMEND7124; GFX942-NEXT:    v_mov_b32_e32 v8, 07125; GFX942-NEXT:    v_mov_b32_e32 v4, v67126; GFX942-NEXT:    v_mov_b32_e32 v5, v77127; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:167128; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]7129; GFX942-NEXT:    s_waitcnt vmcnt(0)7130; GFX942-NEXT:    s_setpc_b64 s[30:31]7131  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7132  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7133  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 7, i32 7>7134  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327135  ret void7136}7137 7138define void @v_shuffle_v3p0_v4p0__6_7_7(ptr addrspace(1) inreg %ptr) {7139; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_7_7:7140; GFX900:       ; %bb.0:7141; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7142; GFX900-NEXT:    v_mov_b32_e32 v8, 07143; GFX900-NEXT:    ;;#ASMSTART7144; GFX900-NEXT:    ; def v[0:7]7145; GFX900-NEXT:    ;;#ASMEND7146; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167147; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]7148; GFX900-NEXT:    s_waitcnt vmcnt(0)7149; GFX900-NEXT:    s_setpc_b64 s[30:31]7150;7151; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_7_7:7152; GFX90A:       ; %bb.0:7153; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7154; GFX90A-NEXT:    v_mov_b32_e32 v8, 07155; GFX90A-NEXT:    ;;#ASMSTART7156; GFX90A-NEXT:    ; def v[0:7]7157; GFX90A-NEXT:    ;;#ASMEND7158; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167159; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]7160; GFX90A-NEXT:    s_waitcnt vmcnt(0)7161; GFX90A-NEXT:    s_setpc_b64 s[30:31]7162;7163; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_7_7:7164; GFX942:       ; %bb.0:7165; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7166; GFX942-NEXT:    v_mov_b32_e32 v8, 07167; GFX942-NEXT:    ;;#ASMSTART7168; GFX942-NEXT:    ; def v[0:7]7169; GFX942-NEXT:    ;;#ASMEND7170; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:167171; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]7172; GFX942-NEXT:    s_waitcnt vmcnt(0)7173; GFX942-NEXT:    s_setpc_b64 s[30:31]7174  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7175  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7176  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 7, i32 7>7177  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327178  ret void7179}7180 7181define void @v_shuffle_v3p0_v4p0__7_u_7(ptr addrspace(1) inreg %ptr) {7182; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_7:7183; GFX900:       ; %bb.0:7184; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7185; GFX900-NEXT:    v_mov_b32_e32 v8, 07186; GFX900-NEXT:    ;;#ASMSTART7187; GFX900-NEXT:    ; def v[0:7]7188; GFX900-NEXT:    ;;#ASMEND7189; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167190; GFX900-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]7191; GFX900-NEXT:    s_waitcnt vmcnt(0)7192; GFX900-NEXT:    s_setpc_b64 s[30:31]7193;7194; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_7:7195; GFX90A:       ; %bb.0:7196; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7197; GFX90A-NEXT:    v_mov_b32_e32 v8, 07198; GFX90A-NEXT:    ;;#ASMSTART7199; GFX90A-NEXT:    ; def v[0:7]7200; GFX90A-NEXT:    ;;#ASMEND7201; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:167202; GFX90A-NEXT:    global_store_dwordx4 v8, v[6:9], s[16:17]7203; GFX90A-NEXT:    s_waitcnt vmcnt(0)7204; GFX90A-NEXT:    s_setpc_b64 s[30:31]7205;7206; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_7:7207; GFX942:       ; %bb.0:7208; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7209; GFX942-NEXT:    v_mov_b32_e32 v8, 07210; GFX942-NEXT:    ;;#ASMSTART7211; GFX942-NEXT:    ; def v[0:7]7212; GFX942-NEXT:    ;;#ASMEND7213; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:167214; GFX942-NEXT:    global_store_dwordx4 v8, v[6:9], s[0:1]7215; GFX942-NEXT:    s_waitcnt vmcnt(0)7216; GFX942-NEXT:    s_setpc_b64 s[30:31]7217  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7218  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7219  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>7220  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327221  ret void7222}7223 7224define void @v_shuffle_v3p0_v4p0__7_0_7(ptr addrspace(1) inreg %ptr) {7225; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_7:7226; GFX900:       ; %bb.0:7227; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7228; GFX900-NEXT:    v_mov_b32_e32 v16, 07229; GFX900-NEXT:    ;;#ASMSTART7230; GFX900-NEXT:    ; def v[8:15]7231; GFX900-NEXT:    ;;#ASMEND7232; GFX900-NEXT:    ;;#ASMSTART7233; GFX900-NEXT:    ; def v[0:7]7234; GFX900-NEXT:    ;;#ASMEND7235; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:167236; GFX900-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]7237; GFX900-NEXT:    s_waitcnt vmcnt(0)7238; GFX900-NEXT:    s_setpc_b64 s[30:31]7239;7240; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_7:7241; GFX90A:       ; %bb.0:7242; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7243; GFX90A-NEXT:    v_mov_b32_e32 v16, 07244; GFX90A-NEXT:    ;;#ASMSTART7245; GFX90A-NEXT:    ; def v[8:15]7246; GFX90A-NEXT:    ;;#ASMEND7247; GFX90A-NEXT:    ;;#ASMSTART7248; GFX90A-NEXT:    ; def v[0:7]7249; GFX90A-NEXT:    ;;#ASMEND7250; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:167251; GFX90A-NEXT:    global_store_dwordx4 v16, v[6:9], s[16:17]7252; GFX90A-NEXT:    s_waitcnt vmcnt(0)7253; GFX90A-NEXT:    s_setpc_b64 s[30:31]7254;7255; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_7:7256; GFX942:       ; %bb.0:7257; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7258; GFX942-NEXT:    v_mov_b32_e32 v16, 07259; GFX942-NEXT:    ;;#ASMSTART7260; GFX942-NEXT:    ; def v[8:15]7261; GFX942-NEXT:    ;;#ASMEND7262; GFX942-NEXT:    ;;#ASMSTART7263; GFX942-NEXT:    ; def v[0:7]7264; GFX942-NEXT:    ;;#ASMEND7265; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:167266; GFX942-NEXT:    global_store_dwordx4 v16, v[6:9], s[0:1]7267; GFX942-NEXT:    s_waitcnt vmcnt(0)7268; GFX942-NEXT:    s_setpc_b64 s[30:31]7269  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7270  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7271  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 7>7272  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327273  ret void7274}7275 7276define void @v_shuffle_v3p0_v4p0__7_1_7(ptr addrspace(1) inreg %ptr) {7277; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_7:7278; GFX900:       ; %bb.0:7279; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7280; GFX900-NEXT:    ;;#ASMSTART7281; GFX900-NEXT:    ; def v[6:13]7282; GFX900-NEXT:    ;;#ASMEND7283; GFX900-NEXT:    v_mov_b32_e32 v14, 07284; GFX900-NEXT:    ;;#ASMSTART7285; GFX900-NEXT:    ; def v[0:7]7286; GFX900-NEXT:    ;;#ASMEND7287; GFX900-NEXT:    global_store_dwordx2 v14, v[6:7], s[16:17] offset:167288; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]7289; GFX900-NEXT:    s_waitcnt vmcnt(0)7290; GFX900-NEXT:    s_setpc_b64 s[30:31]7291;7292; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_7:7293; GFX90A:       ; %bb.0:7294; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7295; GFX90A-NEXT:    ;;#ASMSTART7296; GFX90A-NEXT:    ; def v[6:13]7297; GFX90A-NEXT:    ;;#ASMEND7298; GFX90A-NEXT:    v_mov_b32_e32 v14, 07299; GFX90A-NEXT:    ;;#ASMSTART7300; GFX90A-NEXT:    ; def v[0:7]7301; GFX90A-NEXT:    ;;#ASMEND7302; GFX90A-NEXT:    global_store_dwordx2 v14, v[6:7], s[16:17] offset:167303; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], 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_v3p0_v4p0__7_1_7:7308; GFX942:       ; %bb.0:7309; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7310; GFX942-NEXT:    ;;#ASMSTART7311; GFX942-NEXT:    ; def v[6:13]7312; GFX942-NEXT:    ;;#ASMEND7313; GFX942-NEXT:    v_mov_b32_e32 v14, 07314; GFX942-NEXT:    ;;#ASMSTART7315; GFX942-NEXT:    ; def v[0:7]7316; GFX942-NEXT:    ;;#ASMEND7317; GFX942-NEXT:    global_store_dwordx2 v14, v[6:7], s[0:1] offset:167318; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], 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> asm "; def $0", "=v"()7322  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7323  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 7>7324  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327325  ret void7326}7327 7328define void @v_shuffle_v3p0_v4p0__7_2_7(ptr addrspace(1) inreg %ptr) {7329; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_7:7330; GFX900:       ; %bb.0:7331; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7332; GFX900-NEXT:    ;;#ASMSTART7333; GFX900-NEXT:    ; def v[4:11]7334; GFX900-NEXT:    ;;#ASMEND7335; GFX900-NEXT:    v_mov_b32_e32 v12, 07336; GFX900-NEXT:    ;;#ASMSTART7337; GFX900-NEXT:    ; def v[0:7]7338; GFX900-NEXT:    ;;#ASMEND7339; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:167340; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]7341; GFX900-NEXT:    s_waitcnt vmcnt(0)7342; GFX900-NEXT:    s_setpc_b64 s[30:31]7343;7344; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_7:7345; GFX90A:       ; %bb.0:7346; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7347; GFX90A-NEXT:    ;;#ASMSTART7348; GFX90A-NEXT:    ; def v[4:11]7349; GFX90A-NEXT:    ;;#ASMEND7350; GFX90A-NEXT:    v_mov_b32_e32 v12, 07351; GFX90A-NEXT:    ;;#ASMSTART7352; GFX90A-NEXT:    ; def v[0:7]7353; GFX90A-NEXT:    ;;#ASMEND7354; GFX90A-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:167355; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]7356; GFX90A-NEXT:    s_waitcnt vmcnt(0)7357; GFX90A-NEXT:    s_setpc_b64 s[30:31]7358;7359; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_7:7360; GFX942:       ; %bb.0:7361; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7362; GFX942-NEXT:    ;;#ASMSTART7363; GFX942-NEXT:    ; def v[4:11]7364; GFX942-NEXT:    ;;#ASMEND7365; GFX942-NEXT:    v_mov_b32_e32 v12, 07366; GFX942-NEXT:    ;;#ASMSTART7367; GFX942-NEXT:    ; def v[0:7]7368; GFX942-NEXT:    ;;#ASMEND7369; GFX942-NEXT:    global_store_dwordx2 v12, v[6:7], s[0:1] offset:167370; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]7371; GFX942-NEXT:    s_waitcnt vmcnt(0)7372; GFX942-NEXT:    s_setpc_b64 s[30:31]7373  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7374  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7375  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 7>7376  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327377  ret void7378}7379 7380define void @v_shuffle_v3p0_v4p0__7_3_7(ptr addrspace(1) inreg %ptr) {7381; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_7:7382; GFX900:       ; %bb.0:7383; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7384; GFX900-NEXT:    ;;#ASMSTART7385; GFX900-NEXT:    ; def v[2:9]7386; GFX900-NEXT:    ;;#ASMEND7387; GFX900-NEXT:    v_mov_b32_e32 v10, 07388; GFX900-NEXT:    ;;#ASMSTART7389; GFX900-NEXT:    ; def v[0:7]7390; GFX900-NEXT:    ;;#ASMEND7391; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167392; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7393; GFX900-NEXT:    s_waitcnt vmcnt(0)7394; GFX900-NEXT:    s_setpc_b64 s[30:31]7395;7396; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_7:7397; GFX90A:       ; %bb.0:7398; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7399; GFX90A-NEXT:    ;;#ASMSTART7400; GFX90A-NEXT:    ; def v[2:9]7401; GFX90A-NEXT:    ;;#ASMEND7402; GFX90A-NEXT:    v_mov_b32_e32 v10, 07403; GFX90A-NEXT:    ;;#ASMSTART7404; GFX90A-NEXT:    ; def v[0:7]7405; GFX90A-NEXT:    ;;#ASMEND7406; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167407; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7408; GFX90A-NEXT:    s_waitcnt vmcnt(0)7409; GFX90A-NEXT:    s_setpc_b64 s[30:31]7410;7411; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_7:7412; GFX942:       ; %bb.0:7413; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7414; GFX942-NEXT:    ;;#ASMSTART7415; GFX942-NEXT:    ; def v[2:9]7416; GFX942-NEXT:    ;;#ASMEND7417; GFX942-NEXT:    v_mov_b32_e32 v10, 07418; GFX942-NEXT:    ;;#ASMSTART7419; GFX942-NEXT:    ; def v[0:7]7420; GFX942-NEXT:    ;;#ASMEND7421; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:167422; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]7423; GFX942-NEXT:    s_waitcnt vmcnt(0)7424; GFX942-NEXT:    s_setpc_b64 s[30:31]7425  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7426  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7427  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 7>7428  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327429  ret void7430}7431 7432define void @v_shuffle_v3p0_v4p0__7_4_7(ptr addrspace(1) inreg %ptr) {7433; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_7:7434; GFX900:       ; %bb.0:7435; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7436; GFX900-NEXT:    v_mov_b32_e32 v10, 07437; GFX900-NEXT:    ;;#ASMSTART7438; GFX900-NEXT:    ; def v[0:7]7439; GFX900-NEXT:    ;;#ASMEND7440; GFX900-NEXT:    v_mov_b32_e32 v8, v07441; GFX900-NEXT:    v_mov_b32_e32 v9, v17442; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167443; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7444; GFX900-NEXT:    s_waitcnt vmcnt(0)7445; GFX900-NEXT:    s_setpc_b64 s[30:31]7446;7447; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_7:7448; GFX90A:       ; %bb.0:7449; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7450; GFX90A-NEXT:    v_mov_b32_e32 v10, 07451; GFX90A-NEXT:    ;;#ASMSTART7452; GFX90A-NEXT:    ; def v[0:7]7453; GFX90A-NEXT:    ;;#ASMEND7454; GFX90A-NEXT:    v_mov_b32_e32 v8, v07455; GFX90A-NEXT:    v_mov_b32_e32 v9, v17456; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167457; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7458; GFX90A-NEXT:    s_waitcnt vmcnt(0)7459; GFX90A-NEXT:    s_setpc_b64 s[30:31]7460;7461; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_7:7462; GFX942:       ; %bb.0:7463; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7464; GFX942-NEXT:    v_mov_b32_e32 v10, 07465; GFX942-NEXT:    ;;#ASMSTART7466; GFX942-NEXT:    ; def v[0:7]7467; GFX942-NEXT:    ;;#ASMEND7468; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:167469; GFX942-NEXT:    v_mov_b32_e32 v8, v07470; GFX942-NEXT:    v_mov_b32_e32 v9, v17471; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]7472; GFX942-NEXT:    s_waitcnt vmcnt(0)7473; GFX942-NEXT:    s_setpc_b64 s[30:31]7474  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7475  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7476  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 7>7477  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327478  ret void7479}7480 7481define void @v_shuffle_v3p0_v4p0__7_5_7(ptr addrspace(1) inreg %ptr) {7482; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_7:7483; GFX900:       ; %bb.0:7484; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7485; GFX900-NEXT:    v_mov_b32_e32 v10, 07486; GFX900-NEXT:    ;;#ASMSTART7487; GFX900-NEXT:    ; def v[0:7]7488; GFX900-NEXT:    ;;#ASMEND7489; GFX900-NEXT:    v_mov_b32_e32 v8, v27490; GFX900-NEXT:    v_mov_b32_e32 v9, v37491; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167492; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7493; GFX900-NEXT:    s_waitcnt vmcnt(0)7494; GFX900-NEXT:    s_setpc_b64 s[30:31]7495;7496; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_7:7497; GFX90A:       ; %bb.0:7498; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7499; GFX90A-NEXT:    v_mov_b32_e32 v10, 07500; GFX90A-NEXT:    ;;#ASMSTART7501; GFX90A-NEXT:    ; def v[0:7]7502; GFX90A-NEXT:    ;;#ASMEND7503; GFX90A-NEXT:    v_mov_b32_e32 v8, v27504; GFX90A-NEXT:    v_mov_b32_e32 v9, v37505; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167506; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7507; GFX90A-NEXT:    s_waitcnt vmcnt(0)7508; GFX90A-NEXT:    s_setpc_b64 s[30:31]7509;7510; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_7:7511; GFX942:       ; %bb.0:7512; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7513; GFX942-NEXT:    v_mov_b32_e32 v10, 07514; GFX942-NEXT:    ;;#ASMSTART7515; GFX942-NEXT:    ; def v[0:7]7516; GFX942-NEXT:    ;;#ASMEND7517; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:167518; GFX942-NEXT:    v_mov_b32_e32 v8, v27519; GFX942-NEXT:    v_mov_b32_e32 v9, v37520; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]7521; GFX942-NEXT:    s_waitcnt vmcnt(0)7522; GFX942-NEXT:    s_setpc_b64 s[30:31]7523  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7524  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7525  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 7>7526  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327527  ret void7528}7529 7530define void @v_shuffle_v3p0_v4p0__7_6_7(ptr addrspace(1) inreg %ptr) {7531; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_7:7532; GFX900:       ; %bb.0:7533; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7534; GFX900-NEXT:    v_mov_b32_e32 v10, 07535; GFX900-NEXT:    ;;#ASMSTART7536; GFX900-NEXT:    ; def v[0:7]7537; GFX900-NEXT:    ;;#ASMEND7538; GFX900-NEXT:    v_mov_b32_e32 v8, v47539; GFX900-NEXT:    v_mov_b32_e32 v9, v57540; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167541; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7542; GFX900-NEXT:    s_waitcnt vmcnt(0)7543; GFX900-NEXT:    s_setpc_b64 s[30:31]7544;7545; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_7:7546; GFX90A:       ; %bb.0:7547; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7548; GFX90A-NEXT:    v_mov_b32_e32 v10, 07549; GFX90A-NEXT:    ;;#ASMSTART7550; GFX90A-NEXT:    ; def v[0:7]7551; GFX90A-NEXT:    ;;#ASMEND7552; GFX90A-NEXT:    v_mov_b32_e32 v8, v47553; GFX90A-NEXT:    v_mov_b32_e32 v9, v57554; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:167555; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]7556; GFX90A-NEXT:    s_waitcnt vmcnt(0)7557; GFX90A-NEXT:    s_setpc_b64 s[30:31]7558;7559; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_7:7560; GFX942:       ; %bb.0:7561; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7562; GFX942-NEXT:    v_mov_b32_e32 v10, 07563; GFX942-NEXT:    ;;#ASMSTART7564; GFX942-NEXT:    ; def v[0:7]7565; GFX942-NEXT:    ;;#ASMEND7566; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:167567; GFX942-NEXT:    v_mov_b32_e32 v8, v47568; GFX942-NEXT:    v_mov_b32_e32 v9, v57569; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]7570; GFX942-NEXT:    s_waitcnt vmcnt(0)7571; GFX942-NEXT:    s_setpc_b64 s[30:31]7572  %vec0 = call <4 x ptr> asm "; def $0", "=v"()7573  %vec1 = call <4 x ptr> asm "; def $0", "=v"()7574  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 7>7575  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 327576  ret void7577}7578 7579define void @s_shuffle_v3p0_v4p0__u_u_u() {7580; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_u_u:7581; GFX9:       ; %bb.0:7582; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7583; GFX9-NEXT:    ;;#ASMSTART7584; GFX9-NEXT:    ; use s[8:13]7585; GFX9-NEXT:    ;;#ASMEND7586; GFX9-NEXT:    s_setpc_b64 s[30:31]7587  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7588  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> poison7589  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7590  ret void7591}7592 7593define void @s_shuffle_v3p0_v4p0__0_u_u() {7594; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_u_u:7595; GFX900:       ; %bb.0:7596; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7597; GFX900-NEXT:    ;;#ASMSTART7598; GFX900-NEXT:    ; def s[8:15]7599; GFX900-NEXT:    ;;#ASMEND7600; GFX900-NEXT:    ;;#ASMSTART7601; GFX900-NEXT:    ; use s[8:13]7602; GFX900-NEXT:    ;;#ASMEND7603; GFX900-NEXT:    s_setpc_b64 s[30:31]7604;7605; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_u_u:7606; GFX90A:       ; %bb.0:7607; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7608; GFX90A-NEXT:    ;;#ASMSTART7609; GFX90A-NEXT:    ; def s[8:15]7610; GFX90A-NEXT:    ;;#ASMEND7611; GFX90A-NEXT:    ;;#ASMSTART7612; GFX90A-NEXT:    ; use s[8:13]7613; GFX90A-NEXT:    ;;#ASMEND7614; GFX90A-NEXT:    s_setpc_b64 s[30:31]7615;7616; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_u_u:7617; GFX942:       ; %bb.0:7618; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7619; GFX942-NEXT:    ;;#ASMSTART7620; GFX942-NEXT:    ; def s[8:15]7621; GFX942-NEXT:    ;;#ASMEND7622; GFX942-NEXT:    s_nop 07623; GFX942-NEXT:    ;;#ASMSTART7624; GFX942-NEXT:    ; use s[8:13]7625; GFX942-NEXT:    ;;#ASMEND7626; GFX942-NEXT:    s_setpc_b64 s[30:31]7627  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7628  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 poison, i32 poison>7629  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7630  ret void7631}7632 7633define void @s_shuffle_v3p0_v4p0__1_u_u() {7634; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_u_u:7635; GFX900:       ; %bb.0:7636; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7637; GFX900-NEXT:    ;;#ASMSTART7638; GFX900-NEXT:    ; def s[4:11]7639; GFX900-NEXT:    ;;#ASMEND7640; GFX900-NEXT:    s_mov_b32 s8, s67641; GFX900-NEXT:    s_mov_b32 s9, s77642; GFX900-NEXT:    ;;#ASMSTART7643; GFX900-NEXT:    ; use s[8:13]7644; GFX900-NEXT:    ;;#ASMEND7645; GFX900-NEXT:    s_setpc_b64 s[30:31]7646;7647; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_u_u:7648; GFX90A:       ; %bb.0:7649; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7650; GFX90A-NEXT:    ;;#ASMSTART7651; GFX90A-NEXT:    ; def s[4:11]7652; GFX90A-NEXT:    ;;#ASMEND7653; GFX90A-NEXT:    s_mov_b32 s8, s67654; GFX90A-NEXT:    s_mov_b32 s9, s77655; GFX90A-NEXT:    ;;#ASMSTART7656; GFX90A-NEXT:    ; use s[8:13]7657; GFX90A-NEXT:    ;;#ASMEND7658; GFX90A-NEXT:    s_setpc_b64 s[30:31]7659;7660; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_u_u:7661; GFX942:       ; %bb.0:7662; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7663; GFX942-NEXT:    ;;#ASMSTART7664; GFX942-NEXT:    ; def s[0:7]7665; GFX942-NEXT:    ;;#ASMEND7666; GFX942-NEXT:    s_mov_b32 s8, s27667; GFX942-NEXT:    s_mov_b32 s9, s37668; GFX942-NEXT:    ;;#ASMSTART7669; GFX942-NEXT:    ; use s[8:13]7670; GFX942-NEXT:    ;;#ASMEND7671; GFX942-NEXT:    s_setpc_b64 s[30:31]7672  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7673  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 poison, i32 poison>7674  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7675  ret void7676}7677 7678define void @s_shuffle_v3p0_v4p0__2_u_u() {7679; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_u_u:7680; GFX900:       ; %bb.0:7681; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7682; GFX900-NEXT:    ;;#ASMSTART7683; GFX900-NEXT:    ; def s[4:11]7684; GFX900-NEXT:    ;;#ASMEND7685; GFX900-NEXT:    ;;#ASMSTART7686; GFX900-NEXT:    ; use s[8:13]7687; GFX900-NEXT:    ;;#ASMEND7688; GFX900-NEXT:    s_setpc_b64 s[30:31]7689;7690; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_u_u:7691; GFX90A:       ; %bb.0:7692; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7693; GFX90A-NEXT:    ;;#ASMSTART7694; GFX90A-NEXT:    ; def s[4:11]7695; GFX90A-NEXT:    ;;#ASMEND7696; GFX90A-NEXT:    ;;#ASMSTART7697; GFX90A-NEXT:    ; use s[8:13]7698; GFX90A-NEXT:    ;;#ASMEND7699; GFX90A-NEXT:    s_setpc_b64 s[30:31]7700;7701; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_u_u:7702; GFX942:       ; %bb.0:7703; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7704; GFX942-NEXT:    ;;#ASMSTART7705; GFX942-NEXT:    ; def s[4:11]7706; GFX942-NEXT:    ;;#ASMEND7707; GFX942-NEXT:    s_nop 07708; GFX942-NEXT:    ;;#ASMSTART7709; GFX942-NEXT:    ; use s[8:13]7710; GFX942-NEXT:    ;;#ASMEND7711; GFX942-NEXT:    s_setpc_b64 s[30:31]7712  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7713  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 poison, i32 poison>7714  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7715  ret void7716}7717 7718define void @s_shuffle_v3p0_v4p0__3_u_u() {7719; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_u_u:7720; GFX900:       ; %bb.0:7721; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7722; GFX900-NEXT:    ;;#ASMSTART7723; GFX900-NEXT:    ; def s[4:11]7724; GFX900-NEXT:    ;;#ASMEND7725; GFX900-NEXT:    s_mov_b32 s8, s107726; GFX900-NEXT:    s_mov_b32 s9, s117727; GFX900-NEXT:    ;;#ASMSTART7728; GFX900-NEXT:    ; use s[8:13]7729; GFX900-NEXT:    ;;#ASMEND7730; GFX900-NEXT:    s_setpc_b64 s[30:31]7731;7732; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_u_u:7733; GFX90A:       ; %bb.0:7734; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7735; GFX90A-NEXT:    ;;#ASMSTART7736; GFX90A-NEXT:    ; def s[4:11]7737; GFX90A-NEXT:    ;;#ASMEND7738; GFX90A-NEXT:    s_mov_b32 s8, s107739; GFX90A-NEXT:    s_mov_b32 s9, s117740; GFX90A-NEXT:    ;;#ASMSTART7741; GFX90A-NEXT:    ; use s[8:13]7742; GFX90A-NEXT:    ;;#ASMEND7743; GFX90A-NEXT:    s_setpc_b64 s[30:31]7744;7745; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_u_u:7746; GFX942:       ; %bb.0:7747; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7748; GFX942-NEXT:    ;;#ASMSTART7749; GFX942-NEXT:    ; def s[0:7]7750; GFX942-NEXT:    ;;#ASMEND7751; GFX942-NEXT:    s_mov_b32 s8, s67752; GFX942-NEXT:    s_mov_b32 s9, s77753; GFX942-NEXT:    ;;#ASMSTART7754; GFX942-NEXT:    ; use s[8:13]7755; GFX942-NEXT:    ;;#ASMEND7756; GFX942-NEXT:    s_setpc_b64 s[30:31]7757  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7758  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 poison, i32 poison>7759  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7760  ret void7761}7762 7763define void @s_shuffle_v3p0_v4p0__4_u_u() {7764; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_u_u:7765; GFX9:       ; %bb.0:7766; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7767; GFX9-NEXT:    ;;#ASMSTART7768; GFX9-NEXT:    ; use s[8:13]7769; GFX9-NEXT:    ;;#ASMEND7770; GFX9-NEXT:    s_setpc_b64 s[30:31]7771  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7772  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 poison, i32 poison>7773  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7774  ret void7775}7776 7777define void @s_shuffle_v3p0_v4p0__5_u_u() {7778; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_u_u:7779; GFX900:       ; %bb.0:7780; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7781; GFX900-NEXT:    ;;#ASMSTART7782; GFX900-NEXT:    ; def s[4:11]7783; GFX900-NEXT:    ;;#ASMEND7784; GFX900-NEXT:    s_mov_b32 s8, s67785; GFX900-NEXT:    s_mov_b32 s9, s77786; GFX900-NEXT:    ;;#ASMSTART7787; GFX900-NEXT:    ; use s[8:13]7788; GFX900-NEXT:    ;;#ASMEND7789; GFX900-NEXT:    s_setpc_b64 s[30:31]7790;7791; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_u_u:7792; GFX90A:       ; %bb.0:7793; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7794; GFX90A-NEXT:    ;;#ASMSTART7795; GFX90A-NEXT:    ; def s[4:11]7796; GFX90A-NEXT:    ;;#ASMEND7797; GFX90A-NEXT:    s_mov_b32 s8, s67798; GFX90A-NEXT:    s_mov_b32 s9, s77799; GFX90A-NEXT:    ;;#ASMSTART7800; GFX90A-NEXT:    ; use s[8:13]7801; GFX90A-NEXT:    ;;#ASMEND7802; GFX90A-NEXT:    s_setpc_b64 s[30:31]7803;7804; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_u_u:7805; GFX942:       ; %bb.0:7806; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7807; GFX942-NEXT:    ;;#ASMSTART7808; GFX942-NEXT:    ; def s[0:7]7809; GFX942-NEXT:    ;;#ASMEND7810; GFX942-NEXT:    s_mov_b32 s8, s27811; GFX942-NEXT:    s_mov_b32 s9, s37812; GFX942-NEXT:    ;;#ASMSTART7813; GFX942-NEXT:    ; use s[8:13]7814; GFX942-NEXT:    ;;#ASMEND7815; GFX942-NEXT:    s_setpc_b64 s[30:31]7816  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7817  %vec1 = call <4 x ptr> asm "; def $0", "=s"()7818  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>7819  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7820  ret void7821}7822 7823define void @s_shuffle_v3p0_v4p0__6_u_u() {7824; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_u_u:7825; GFX900:       ; %bb.0:7826; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7827; GFX900-NEXT:    ;;#ASMSTART7828; GFX900-NEXT:    ; def s[4:11]7829; GFX900-NEXT:    ;;#ASMEND7830; GFX900-NEXT:    ;;#ASMSTART7831; GFX900-NEXT:    ; use s[8:13]7832; GFX900-NEXT:    ;;#ASMEND7833; GFX900-NEXT:    s_setpc_b64 s[30:31]7834;7835; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_u_u:7836; GFX90A:       ; %bb.0:7837; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7838; GFX90A-NEXT:    ;;#ASMSTART7839; GFX90A-NEXT:    ; def s[4:11]7840; GFX90A-NEXT:    ;;#ASMEND7841; GFX90A-NEXT:    ;;#ASMSTART7842; GFX90A-NEXT:    ; use s[8:13]7843; GFX90A-NEXT:    ;;#ASMEND7844; GFX90A-NEXT:    s_setpc_b64 s[30:31]7845;7846; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_u_u:7847; GFX942:       ; %bb.0:7848; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7849; GFX942-NEXT:    ;;#ASMSTART7850; GFX942-NEXT:    ; def s[4:11]7851; GFX942-NEXT:    ;;#ASMEND7852; GFX942-NEXT:    s_nop 07853; GFX942-NEXT:    ;;#ASMSTART7854; GFX942-NEXT:    ; use s[8:13]7855; GFX942-NEXT:    ;;#ASMEND7856; GFX942-NEXT:    s_setpc_b64 s[30:31]7857  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7858  %vec1 = call <4 x ptr> asm "; def $0", "=s"()7859  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>7860  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7861  ret void7862}7863 7864define void @s_shuffle_v3p0_v4p0__7_u_u() {7865; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_u:7866; GFX900:       ; %bb.0:7867; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7868; GFX900-NEXT:    ;;#ASMSTART7869; GFX900-NEXT:    ; def s[4:11]7870; GFX900-NEXT:    ;;#ASMEND7871; GFX900-NEXT:    s_mov_b32 s8, s107872; GFX900-NEXT:    s_mov_b32 s9, s117873; GFX900-NEXT:    ;;#ASMSTART7874; GFX900-NEXT:    ; use s[8:13]7875; GFX900-NEXT:    ;;#ASMEND7876; GFX900-NEXT:    s_setpc_b64 s[30:31]7877;7878; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_u:7879; GFX90A:       ; %bb.0:7880; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7881; GFX90A-NEXT:    ;;#ASMSTART7882; GFX90A-NEXT:    ; def s[4:11]7883; GFX90A-NEXT:    ;;#ASMEND7884; GFX90A-NEXT:    s_mov_b32 s8, s107885; GFX90A-NEXT:    s_mov_b32 s9, s117886; GFX90A-NEXT:    ;;#ASMSTART7887; GFX90A-NEXT:    ; use s[8:13]7888; GFX90A-NEXT:    ;;#ASMEND7889; GFX90A-NEXT:    s_setpc_b64 s[30:31]7890;7891; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_u:7892; GFX942:       ; %bb.0:7893; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7894; GFX942-NEXT:    ;;#ASMSTART7895; GFX942-NEXT:    ; def s[0:7]7896; GFX942-NEXT:    ;;#ASMEND7897; GFX942-NEXT:    s_mov_b32 s8, s67898; GFX942-NEXT:    s_mov_b32 s9, s77899; GFX942-NEXT:    ;;#ASMSTART7900; GFX942-NEXT:    ; use s[8:13]7901; GFX942-NEXT:    ;;#ASMEND7902; GFX942-NEXT:    s_setpc_b64 s[30:31]7903  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7904  %vec1 = call <4 x ptr> asm "; def $0", "=s"()7905  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>7906  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7907  ret void7908}7909 7910define void @s_shuffle_v3p0_v4p0__7_0_u() {7911; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_u:7912; GFX900:       ; %bb.0:7913; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7914; GFX900-NEXT:    ;;#ASMSTART7915; GFX900-NEXT:    ; def s[4:11]7916; GFX900-NEXT:    ;;#ASMEND7917; GFX900-NEXT:    ;;#ASMSTART7918; GFX900-NEXT:    ; def s[8:15]7919; GFX900-NEXT:    ;;#ASMEND7920; GFX900-NEXT:    s_mov_b32 s8, s147921; GFX900-NEXT:    s_mov_b32 s9, s157922; GFX900-NEXT:    s_mov_b32 s10, s47923; GFX900-NEXT:    s_mov_b32 s11, s57924; GFX900-NEXT:    ;;#ASMSTART7925; GFX900-NEXT:    ; use s[8:13]7926; GFX900-NEXT:    ;;#ASMEND7927; GFX900-NEXT:    s_setpc_b64 s[30:31]7928;7929; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_u:7930; GFX90A:       ; %bb.0:7931; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7932; GFX90A-NEXT:    ;;#ASMSTART7933; GFX90A-NEXT:    ; def s[4:11]7934; GFX90A-NEXT:    ;;#ASMEND7935; GFX90A-NEXT:    ;;#ASMSTART7936; GFX90A-NEXT:    ; def s[8:15]7937; GFX90A-NEXT:    ;;#ASMEND7938; GFX90A-NEXT:    s_mov_b32 s8, s147939; GFX90A-NEXT:    s_mov_b32 s9, s157940; GFX90A-NEXT:    s_mov_b32 s10, s47941; GFX90A-NEXT:    s_mov_b32 s11, s57942; GFX90A-NEXT:    ;;#ASMSTART7943; GFX90A-NEXT:    ; use s[8:13]7944; GFX90A-NEXT:    ;;#ASMEND7945; GFX90A-NEXT:    s_setpc_b64 s[30:31]7946;7947; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_u:7948; GFX942:       ; %bb.0:7949; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7950; GFX942-NEXT:    ;;#ASMSTART7951; GFX942-NEXT:    ; def s[0:7]7952; GFX942-NEXT:    ;;#ASMEND7953; GFX942-NEXT:    s_nop 07954; GFX942-NEXT:    ;;#ASMSTART7955; GFX942-NEXT:    ; def s[4:11]7956; GFX942-NEXT:    ;;#ASMEND7957; GFX942-NEXT:    s_mov_b32 s8, s107958; GFX942-NEXT:    s_mov_b32 s9, s117959; GFX942-NEXT:    s_mov_b32 s10, s07960; GFX942-NEXT:    s_mov_b32 s11, s17961; GFX942-NEXT:    ;;#ASMSTART7962; GFX942-NEXT:    ; use s[8:13]7963; GFX942-NEXT:    ;;#ASMEND7964; GFX942-NEXT:    s_setpc_b64 s[30:31]7965  %vec0 = call <4 x ptr> asm "; def $0", "=s"()7966  %vec1 = call <4 x ptr> asm "; def $0", "=s"()7967  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>7968  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)7969  ret void7970}7971 7972define void @s_shuffle_v3p0_v4p0__7_1_u() {7973; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_u:7974; GFX900:       ; %bb.0:7975; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7976; GFX900-NEXT:    ;;#ASMSTART7977; GFX900-NEXT:    ; def s[8:15]7978; GFX900-NEXT:    ;;#ASMEND7979; GFX900-NEXT:    ;;#ASMSTART7980; GFX900-NEXT:    ; def s[12:19]7981; GFX900-NEXT:    ;;#ASMEND7982; GFX900-NEXT:    s_mov_b32 s8, s187983; GFX900-NEXT:    s_mov_b32 s9, s197984; GFX900-NEXT:    ;;#ASMSTART7985; GFX900-NEXT:    ; use s[8:13]7986; GFX900-NEXT:    ;;#ASMEND7987; GFX900-NEXT:    s_setpc_b64 s[30:31]7988;7989; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_u:7990; GFX90A:       ; %bb.0:7991; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7992; GFX90A-NEXT:    ;;#ASMSTART7993; GFX90A-NEXT:    ; def s[8:15]7994; GFX90A-NEXT:    ;;#ASMEND7995; GFX90A-NEXT:    ;;#ASMSTART7996; GFX90A-NEXT:    ; def s[12:19]7997; GFX90A-NEXT:    ;;#ASMEND7998; GFX90A-NEXT:    s_mov_b32 s8, s187999; GFX90A-NEXT:    s_mov_b32 s9, s198000; GFX90A-NEXT:    ;;#ASMSTART8001; GFX90A-NEXT:    ; use s[8:13]8002; GFX90A-NEXT:    ;;#ASMEND8003; GFX90A-NEXT:    s_setpc_b64 s[30:31]8004;8005; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_u:8006; GFX942:       ; %bb.0:8007; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8008; GFX942-NEXT:    ;;#ASMSTART8009; GFX942-NEXT:    ; def s[8:15]8010; GFX942-NEXT:    ;;#ASMEND8011; GFX942-NEXT:    ;;#ASMSTART8012; GFX942-NEXT:    ; def s[0:7]8013; GFX942-NEXT:    ;;#ASMEND8014; GFX942-NEXT:    s_mov_b32 s8, s68015; GFX942-NEXT:    s_mov_b32 s9, s78016; GFX942-NEXT:    ;;#ASMSTART8017; GFX942-NEXT:    ; use s[8:13]8018; GFX942-NEXT:    ;;#ASMEND8019; GFX942-NEXT:    s_setpc_b64 s[30:31]8020  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8021  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8022  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>8023  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8024  ret void8025}8026 8027define void @s_shuffle_v3p0_v4p0__7_2_u() {8028; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_u:8029; GFX900:       ; %bb.0:8030; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8031; GFX900-NEXT:    ;;#ASMSTART8032; GFX900-NEXT:    ; def s[8:15]8033; GFX900-NEXT:    ;;#ASMEND8034; GFX900-NEXT:    ;;#ASMSTART8035; GFX900-NEXT:    ; def s[4:11]8036; GFX900-NEXT:    ;;#ASMEND8037; GFX900-NEXT:    s_mov_b32 s8, s108038; GFX900-NEXT:    s_mov_b32 s9, s118039; GFX900-NEXT:    s_mov_b32 s10, s128040; GFX900-NEXT:    s_mov_b32 s11, s138041; GFX900-NEXT:    ;;#ASMSTART8042; GFX900-NEXT:    ; use s[8:13]8043; GFX900-NEXT:    ;;#ASMEND8044; GFX900-NEXT:    s_setpc_b64 s[30:31]8045;8046; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_u:8047; GFX90A:       ; %bb.0:8048; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8049; GFX90A-NEXT:    ;;#ASMSTART8050; GFX90A-NEXT:    ; def s[8:15]8051; GFX90A-NEXT:    ;;#ASMEND8052; GFX90A-NEXT:    ;;#ASMSTART8053; GFX90A-NEXT:    ; def s[4:11]8054; GFX90A-NEXT:    ;;#ASMEND8055; GFX90A-NEXT:    s_mov_b32 s8, s108056; GFX90A-NEXT:    s_mov_b32 s9, s118057; GFX90A-NEXT:    s_mov_b32 s10, s128058; GFX90A-NEXT:    s_mov_b32 s11, s138059; GFX90A-NEXT:    ;;#ASMSTART8060; GFX90A-NEXT:    ; use s[8:13]8061; GFX90A-NEXT:    ;;#ASMEND8062; GFX90A-NEXT:    s_setpc_b64 s[30:31]8063;8064; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_u:8065; GFX942:       ; %bb.0:8066; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8067; GFX942-NEXT:    ;;#ASMSTART8068; GFX942-NEXT:    ; def s[8:15]8069; GFX942-NEXT:    ;;#ASMEND8070; GFX942-NEXT:    ;;#ASMSTART8071; GFX942-NEXT:    ; def s[0:7]8072; GFX942-NEXT:    ;;#ASMEND8073; GFX942-NEXT:    s_mov_b32 s8, s148074; GFX942-NEXT:    s_mov_b32 s9, s158075; GFX942-NEXT:    s_mov_b32 s10, s48076; GFX942-NEXT:    s_mov_b32 s11, s58077; GFX942-NEXT:    ;;#ASMSTART8078; GFX942-NEXT:    ; use s[8:13]8079; GFX942-NEXT:    ;;#ASMEND8080; GFX942-NEXT:    s_setpc_b64 s[30:31]8081  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8082  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8083  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>8084  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8085  ret void8086}8087 8088define void @s_shuffle_v3p0_v4p0__7_3_u() {8089; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_u:8090; GFX900:       ; %bb.0:8091; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8092; GFX900-NEXT:    ;;#ASMSTART8093; GFX900-NEXT:    ; def s[4:11]8094; GFX900-NEXT:    ;;#ASMEND8095; GFX900-NEXT:    ;;#ASMSTART8096; GFX900-NEXT:    ; def s[12:19]8097; GFX900-NEXT:    ;;#ASMEND8098; GFX900-NEXT:    s_mov_b32 s8, s188099; GFX900-NEXT:    s_mov_b32 s9, s198100; GFX900-NEXT:    ;;#ASMSTART8101; GFX900-NEXT:    ; use s[8:13]8102; GFX900-NEXT:    ;;#ASMEND8103; GFX900-NEXT:    s_setpc_b64 s[30:31]8104;8105; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_u:8106; GFX90A:       ; %bb.0:8107; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8108; GFX90A-NEXT:    ;;#ASMSTART8109; GFX90A-NEXT:    ; def s[4:11]8110; GFX90A-NEXT:    ;;#ASMEND8111; GFX90A-NEXT:    ;;#ASMSTART8112; GFX90A-NEXT:    ; def s[12:19]8113; GFX90A-NEXT:    ;;#ASMEND8114; GFX90A-NEXT:    s_mov_b32 s8, s188115; GFX90A-NEXT:    s_mov_b32 s9, s198116; GFX90A-NEXT:    ;;#ASMSTART8117; GFX90A-NEXT:    ; use s[8:13]8118; GFX90A-NEXT:    ;;#ASMEND8119; GFX90A-NEXT:    s_setpc_b64 s[30:31]8120;8121; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_u:8122; GFX942:       ; %bb.0:8123; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8124; GFX942-NEXT:    ;;#ASMSTART8125; GFX942-NEXT:    ; def s[4:11]8126; GFX942-NEXT:    ;;#ASMEND8127; GFX942-NEXT:    s_nop 08128; GFX942-NEXT:    ;;#ASMSTART8129; GFX942-NEXT:    ; def s[0:7]8130; GFX942-NEXT:    ;;#ASMEND8131; GFX942-NEXT:    s_mov_b32 s8, s68132; GFX942-NEXT:    s_mov_b32 s9, s78133; GFX942-NEXT:    ;;#ASMSTART8134; GFX942-NEXT:    ; use s[8:13]8135; GFX942-NEXT:    ;;#ASMEND8136; GFX942-NEXT:    s_setpc_b64 s[30:31]8137  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8138  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8139  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>8140  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8141  ret void8142}8143 8144define void @s_shuffle_v3p0_v4p0__7_4_u() {8145; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_u:8146; GFX900:       ; %bb.0:8147; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8148; GFX900-NEXT:    ;;#ASMSTART8149; GFX900-NEXT:    ; def s[4:11]8150; GFX900-NEXT:    ;;#ASMEND8151; GFX900-NEXT:    s_mov_b32 s8, s108152; GFX900-NEXT:    s_mov_b32 s9, s118153; GFX900-NEXT:    s_mov_b32 s10, s48154; GFX900-NEXT:    s_mov_b32 s11, s58155; GFX900-NEXT:    ;;#ASMSTART8156; GFX900-NEXT:    ; use s[8:13]8157; GFX900-NEXT:    ;;#ASMEND8158; GFX900-NEXT:    s_setpc_b64 s[30:31]8159;8160; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_u:8161; GFX90A:       ; %bb.0:8162; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8163; GFX90A-NEXT:    ;;#ASMSTART8164; GFX90A-NEXT:    ; def s[4:11]8165; GFX90A-NEXT:    ;;#ASMEND8166; GFX90A-NEXT:    s_mov_b32 s8, s108167; GFX90A-NEXT:    s_mov_b32 s9, s118168; GFX90A-NEXT:    s_mov_b32 s10, s48169; GFX90A-NEXT:    s_mov_b32 s11, s58170; GFX90A-NEXT:    ;;#ASMSTART8171; GFX90A-NEXT:    ; use s[8:13]8172; GFX90A-NEXT:    ;;#ASMEND8173; GFX90A-NEXT:    s_setpc_b64 s[30:31]8174;8175; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_u:8176; GFX942:       ; %bb.0:8177; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8178; GFX942-NEXT:    ;;#ASMSTART8179; GFX942-NEXT:    ; def s[0:7]8180; GFX942-NEXT:    ;;#ASMEND8181; GFX942-NEXT:    s_mov_b32 s8, s68182; GFX942-NEXT:    s_mov_b32 s9, s78183; GFX942-NEXT:    s_mov_b32 s10, s08184; GFX942-NEXT:    s_mov_b32 s11, s18185; GFX942-NEXT:    ;;#ASMSTART8186; GFX942-NEXT:    ; use s[8:13]8187; GFX942-NEXT:    ;;#ASMEND8188; GFX942-NEXT:    s_setpc_b64 s[30:31]8189  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8190  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8191  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>8192  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8193  ret void8194}8195 8196define void @s_shuffle_v3p0_v4p0__7_5_u() {8197; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_u:8198; GFX9:       ; %bb.0:8199; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8200; GFX9-NEXT:    ;;#ASMSTART8201; GFX9-NEXT:    ; def s[8:15]8202; GFX9-NEXT:    ;;#ASMEND8203; GFX9-NEXT:    s_mov_b32 s8, s148204; GFX9-NEXT:    s_mov_b32 s9, s158205; GFX9-NEXT:    ;;#ASMSTART8206; GFX9-NEXT:    ; use s[8:13]8207; GFX9-NEXT:    ;;#ASMEND8208; GFX9-NEXT:    s_setpc_b64 s[30:31]8209  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8210  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8211  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>8212  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8213  ret void8214}8215 8216define void @s_shuffle_v3p0_v4p0__7_6_u() {8217; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_u:8218; GFX900:       ; %bb.0:8219; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8220; GFX900-NEXT:    ;;#ASMSTART8221; GFX900-NEXT:    ; def s[8:15]8222; GFX900-NEXT:    ;;#ASMEND8223; GFX900-NEXT:    s_mov_b32 s8, s148224; GFX900-NEXT:    s_mov_b32 s9, s158225; GFX900-NEXT:    s_mov_b32 s10, s128226; GFX900-NEXT:    s_mov_b32 s11, s138227; GFX900-NEXT:    ;;#ASMSTART8228; GFX900-NEXT:    ; use s[8:13]8229; GFX900-NEXT:    ;;#ASMEND8230; GFX900-NEXT:    s_setpc_b64 s[30:31]8231;8232; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_u:8233; GFX90A:       ; %bb.0:8234; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8235; GFX90A-NEXT:    ;;#ASMSTART8236; GFX90A-NEXT:    ; def s[8:15]8237; GFX90A-NEXT:    ;;#ASMEND8238; GFX90A-NEXT:    s_mov_b32 s8, s148239; GFX90A-NEXT:    s_mov_b32 s9, s158240; GFX90A-NEXT:    s_mov_b32 s10, s128241; GFX90A-NEXT:    s_mov_b32 s11, s138242; GFX90A-NEXT:    ;;#ASMSTART8243; GFX90A-NEXT:    ; use s[8:13]8244; GFX90A-NEXT:    ;;#ASMEND8245; GFX90A-NEXT:    s_setpc_b64 s[30:31]8246;8247; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_u:8248; GFX942:       ; %bb.0:8249; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8250; GFX942-NEXT:    ;;#ASMSTART8251; GFX942-NEXT:    ; def s[0:7]8252; GFX942-NEXT:    ;;#ASMEND8253; GFX942-NEXT:    s_mov_b32 s8, s68254; GFX942-NEXT:    s_mov_b32 s9, s78255; GFX942-NEXT:    s_mov_b32 s10, s48256; GFX942-NEXT:    s_mov_b32 s11, s58257; GFX942-NEXT:    ;;#ASMSTART8258; GFX942-NEXT:    ; use s[8:13]8259; GFX942-NEXT:    ;;#ASMEND8260; GFX942-NEXT:    s_setpc_b64 s[30:31]8261  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8262  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8263  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>8264  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8265  ret void8266}8267 8268define void @s_shuffle_v3p0_v4p0__7_7_u() {8269; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_u:8270; GFX9:       ; %bb.0:8271; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8272; GFX9-NEXT:    ;;#ASMSTART8273; GFX9-NEXT:    ; def s[4:11]8274; GFX9-NEXT:    ;;#ASMEND8275; GFX9-NEXT:    s_mov_b32 s8, s108276; GFX9-NEXT:    s_mov_b32 s9, s118277; GFX9-NEXT:    ;;#ASMSTART8278; GFX9-NEXT:    ; use s[8:13]8279; GFX9-NEXT:    ;;#ASMEND8280; GFX9-NEXT:    s_setpc_b64 s[30:31]8281  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8282  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8283  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>8284  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8285  ret void8286}8287 8288define void @s_shuffle_v3p0_v4p0__7_7_0() {8289; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_0:8290; GFX9:       ; %bb.0:8291; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8292; GFX9-NEXT:    ;;#ASMSTART8293; GFX9-NEXT:    ; def s[4:11]8294; GFX9-NEXT:    ;;#ASMEND8295; GFX9-NEXT:    ;;#ASMSTART8296; GFX9-NEXT:    ; def s[12:19]8297; GFX9-NEXT:    ;;#ASMEND8298; GFX9-NEXT:    s_mov_b32 s8, s108299; GFX9-NEXT:    s_mov_b32 s9, s118300; GFX9-NEXT:    ;;#ASMSTART8301; GFX9-NEXT:    ; use s[8:13]8302; GFX9-NEXT:    ;;#ASMEND8303; GFX9-NEXT:    s_setpc_b64 s[30:31]8304  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8305  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8306  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 0>8307  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8308  ret void8309}8310 8311define void @s_shuffle_v3p0_v4p0__7_7_1() {8312; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_1:8313; GFX900:       ; %bb.0:8314; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8315; GFX900-NEXT:    ;;#ASMSTART8316; GFX900-NEXT:    ; def s[12:19]8317; GFX900-NEXT:    ;;#ASMEND8318; GFX900-NEXT:    ;;#ASMSTART8319; GFX900-NEXT:    ; def s[4:11]8320; GFX900-NEXT:    ;;#ASMEND8321; GFX900-NEXT:    s_mov_b32 s8, s108322; GFX900-NEXT:    s_mov_b32 s9, s118323; GFX900-NEXT:    s_mov_b32 s12, s148324; GFX900-NEXT:    s_mov_b32 s13, s158325; GFX900-NEXT:    ;;#ASMSTART8326; GFX900-NEXT:    ; use s[8:13]8327; GFX900-NEXT:    ;;#ASMEND8328; GFX900-NEXT:    s_setpc_b64 s[30:31]8329;8330; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_1:8331; GFX90A:       ; %bb.0:8332; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8333; GFX90A-NEXT:    ;;#ASMSTART8334; GFX90A-NEXT:    ; def s[12:19]8335; GFX90A-NEXT:    ;;#ASMEND8336; GFX90A-NEXT:    ;;#ASMSTART8337; GFX90A-NEXT:    ; def s[4:11]8338; GFX90A-NEXT:    ;;#ASMEND8339; GFX90A-NEXT:    s_mov_b32 s8, s108340; GFX90A-NEXT:    s_mov_b32 s9, s118341; GFX90A-NEXT:    s_mov_b32 s12, s148342; GFX90A-NEXT:    s_mov_b32 s13, s158343; GFX90A-NEXT:    ;;#ASMSTART8344; GFX90A-NEXT:    ; use s[8:13]8345; GFX90A-NEXT:    ;;#ASMEND8346; GFX90A-NEXT:    s_setpc_b64 s[30:31]8347;8348; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_1:8349; GFX942:       ; %bb.0:8350; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8351; GFX942-NEXT:    ;;#ASMSTART8352; GFX942-NEXT:    ; def s[0:7]8353; GFX942-NEXT:    ;;#ASMEND8354; GFX942-NEXT:    s_mov_b32 s12, s28355; GFX942-NEXT:    ;;#ASMSTART8356; GFX942-NEXT:    ; def s[4:11]8357; GFX942-NEXT:    ;;#ASMEND8358; GFX942-NEXT:    s_mov_b32 s8, s108359; GFX942-NEXT:    s_mov_b32 s9, s118360; GFX942-NEXT:    s_mov_b32 s13, s38361; GFX942-NEXT:    ;;#ASMSTART8362; GFX942-NEXT:    ; use s[8:13]8363; GFX942-NEXT:    ;;#ASMEND8364; GFX942-NEXT:    s_setpc_b64 s[30:31]8365  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8366  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8367  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 1>8368  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8369  ret void8370}8371 8372define void @s_shuffle_v3p0_v4p0__7_7_2() {8373; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_2:8374; GFX900:       ; %bb.0:8375; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8376; GFX900-NEXT:    ;;#ASMSTART8377; GFX900-NEXT:    ; def s[8:15]8378; GFX900-NEXT:    ;;#ASMEND8379; GFX900-NEXT:    ;;#ASMSTART8380; GFX900-NEXT:    ; def s[4:11]8381; GFX900-NEXT:    ;;#ASMEND8382; GFX900-NEXT:    s_mov_b32 s8, s108383; GFX900-NEXT:    s_mov_b32 s9, s118384; GFX900-NEXT:    ;;#ASMSTART8385; GFX900-NEXT:    ; use s[8:13]8386; GFX900-NEXT:    ;;#ASMEND8387; GFX900-NEXT:    s_setpc_b64 s[30:31]8388;8389; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_2:8390; GFX90A:       ; %bb.0:8391; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8392; GFX90A-NEXT:    ;;#ASMSTART8393; GFX90A-NEXT:    ; def s[8:15]8394; GFX90A-NEXT:    ;;#ASMEND8395; GFX90A-NEXT:    ;;#ASMSTART8396; GFX90A-NEXT:    ; def s[4:11]8397; GFX90A-NEXT:    ;;#ASMEND8398; GFX90A-NEXT:    s_mov_b32 s8, s108399; GFX90A-NEXT:    s_mov_b32 s9, s118400; GFX90A-NEXT:    ;;#ASMSTART8401; GFX90A-NEXT:    ; use s[8:13]8402; GFX90A-NEXT:    ;;#ASMEND8403; GFX90A-NEXT:    s_setpc_b64 s[30:31]8404;8405; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_2:8406; GFX942:       ; %bb.0:8407; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8408; GFX942-NEXT:    ;;#ASMSTART8409; GFX942-NEXT:    ; def s[8:15]8410; GFX942-NEXT:    ;;#ASMEND8411; GFX942-NEXT:    s_nop 08412; GFX942-NEXT:    ;;#ASMSTART8413; GFX942-NEXT:    ; def s[4:11]8414; GFX942-NEXT:    ;;#ASMEND8415; GFX942-NEXT:    s_mov_b32 s8, s108416; GFX942-NEXT:    s_mov_b32 s9, s118417; GFX942-NEXT:    ;;#ASMSTART8418; GFX942-NEXT:    ; use s[8:13]8419; GFX942-NEXT:    ;;#ASMEND8420; GFX942-NEXT:    s_setpc_b64 s[30:31]8421  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8422  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8423  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 2>8424  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8425  ret void8426}8427 8428define void @s_shuffle_v3p0_v4p0__7_7_3() {8429; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_3:8430; GFX900:       ; %bb.0:8431; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8432; GFX900-NEXT:    ;;#ASMSTART8433; GFX900-NEXT:    ; def s[8:15]8434; GFX900-NEXT:    ;;#ASMEND8435; GFX900-NEXT:    ;;#ASMSTART8436; GFX900-NEXT:    ; def s[4:11]8437; GFX900-NEXT:    ;;#ASMEND8438; GFX900-NEXT:    s_mov_b32 s8, s108439; GFX900-NEXT:    s_mov_b32 s9, s118440; GFX900-NEXT:    s_mov_b32 s12, s148441; GFX900-NEXT:    s_mov_b32 s13, s158442; GFX900-NEXT:    ;;#ASMSTART8443; GFX900-NEXT:    ; use s[8:13]8444; GFX900-NEXT:    ;;#ASMEND8445; GFX900-NEXT:    s_setpc_b64 s[30:31]8446;8447; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_3:8448; GFX90A:       ; %bb.0:8449; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8450; GFX90A-NEXT:    ;;#ASMSTART8451; GFX90A-NEXT:    ; def s[8:15]8452; GFX90A-NEXT:    ;;#ASMEND8453; GFX90A-NEXT:    ;;#ASMSTART8454; GFX90A-NEXT:    ; def s[4:11]8455; GFX90A-NEXT:    ;;#ASMEND8456; GFX90A-NEXT:    s_mov_b32 s8, s108457; GFX90A-NEXT:    s_mov_b32 s9, s118458; GFX90A-NEXT:    s_mov_b32 s12, s148459; GFX90A-NEXT:    s_mov_b32 s13, s158460; GFX90A-NEXT:    ;;#ASMSTART8461; GFX90A-NEXT:    ; use s[8:13]8462; GFX90A-NEXT:    ;;#ASMEND8463; GFX90A-NEXT:    s_setpc_b64 s[30:31]8464;8465; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_3:8466; GFX942:       ; %bb.0:8467; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8468; GFX942-NEXT:    ;;#ASMSTART8469; GFX942-NEXT:    ; def s[8:15]8470; GFX942-NEXT:    ;;#ASMEND8471; GFX942-NEXT:    s_mov_b32 s12, s148472; GFX942-NEXT:    ;;#ASMSTART8473; GFX942-NEXT:    ; def s[4:11]8474; GFX942-NEXT:    ;;#ASMEND8475; GFX942-NEXT:    s_mov_b32 s8, s108476; GFX942-NEXT:    s_mov_b32 s9, s118477; GFX942-NEXT:    s_mov_b32 s13, s158478; GFX942-NEXT:    ;;#ASMSTART8479; GFX942-NEXT:    ; use s[8:13]8480; GFX942-NEXT:    ;;#ASMEND8481; GFX942-NEXT:    s_setpc_b64 s[30:31]8482  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8483  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8484  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 3>8485  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8486  ret void8487}8488 8489define void @s_shuffle_v3p0_v4p0__7_7_4() {8490; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_4:8491; GFX9:       ; %bb.0:8492; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8493; GFX9-NEXT:    ;;#ASMSTART8494; GFX9-NEXT:    ; def s[4:11]8495; GFX9-NEXT:    ;;#ASMEND8496; GFX9-NEXT:    s_mov_b32 s8, s108497; GFX9-NEXT:    s_mov_b32 s9, s118498; GFX9-NEXT:    s_mov_b32 s12, s48499; GFX9-NEXT:    s_mov_b32 s13, s58500; GFX9-NEXT:    ;;#ASMSTART8501; GFX9-NEXT:    ; use s[8:13]8502; GFX9-NEXT:    ;;#ASMEND8503; GFX9-NEXT:    s_setpc_b64 s[30:31]8504  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8505  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8506  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 4>8507  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8508  ret void8509}8510 8511define void @s_shuffle_v3p0_v4p0__7_7_5() {8512; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_5:8513; GFX9:       ; %bb.0:8514; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8515; GFX9-NEXT:    ;;#ASMSTART8516; GFX9-NEXT:    ; def s[4:11]8517; GFX9-NEXT:    ;;#ASMEND8518; GFX9-NEXT:    s_mov_b32 s8, s108519; GFX9-NEXT:    s_mov_b32 s9, s118520; GFX9-NEXT:    s_mov_b32 s12, s68521; GFX9-NEXT:    s_mov_b32 s13, s78522; GFX9-NEXT:    ;;#ASMSTART8523; GFX9-NEXT:    ; use s[8:13]8524; GFX9-NEXT:    ;;#ASMEND8525; GFX9-NEXT:    s_setpc_b64 s[30:31]8526  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8527  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8528  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 5>8529  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8530  ret void8531}8532 8533define void @s_shuffle_v3p0_v4p0__7_7_6() {8534; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_6:8535; GFX9:       ; %bb.0:8536; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8537; GFX9-NEXT:    ;;#ASMSTART8538; GFX9-NEXT:    ; def s[8:15]8539; GFX9-NEXT:    ;;#ASMEND8540; GFX9-NEXT:    s_mov_b32 s8, s148541; GFX9-NEXT:    s_mov_b32 s9, s158542; GFX9-NEXT:    s_mov_b32 s10, s148543; GFX9-NEXT:    s_mov_b32 s11, s158544; GFX9-NEXT:    ;;#ASMSTART8545; GFX9-NEXT:    ; use s[8:13]8546; GFX9-NEXT:    ;;#ASMEND8547; GFX9-NEXT:    s_setpc_b64 s[30:31]8548  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8549  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8550  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 6>8551  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8552  ret void8553}8554 8555define void @s_shuffle_v3p0_v4p0__7_7_7() {8556; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_7:8557; GFX9:       ; %bb.0:8558; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8559; GFX9-NEXT:    ;;#ASMSTART8560; GFX9-NEXT:    ; def s[4:11]8561; GFX9-NEXT:    ;;#ASMEND8562; GFX9-NEXT:    s_mov_b32 s8, s108563; GFX9-NEXT:    s_mov_b32 s9, s118564; GFX9-NEXT:    s_mov_b32 s12, s108565; GFX9-NEXT:    s_mov_b32 s13, s118566; GFX9-NEXT:    ;;#ASMSTART8567; GFX9-NEXT:    ; use s[8:13]8568; GFX9-NEXT:    ;;#ASMEND8569; GFX9-NEXT:    s_setpc_b64 s[30:31]8570  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8571  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8572  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 7>8573  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8574  ret void8575}8576 8577define void @s_shuffle_v3p0_v4p0__u_0_0() {8578; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_0_0:8579; GFX9:       ; %bb.0:8580; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8581; GFX9-NEXT:    ;;#ASMSTART8582; GFX9-NEXT:    ; def s[12:19]8583; GFX9-NEXT:    ;;#ASMEND8584; GFX9-NEXT:    s_mov_b32 s10, s128585; GFX9-NEXT:    s_mov_b32 s11, s138586; GFX9-NEXT:    ;;#ASMSTART8587; GFX9-NEXT:    ; use s[8:13]8588; GFX9-NEXT:    ;;#ASMEND8589; GFX9-NEXT:    s_setpc_b64 s[30:31]8590  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8591  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 0, i32 0>8592  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8593  ret void8594}8595 8596define void @s_shuffle_v3p0_v4p0__0_0_0() {8597; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_0_0:8598; GFX9:       ; %bb.0:8599; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8600; GFX9-NEXT:    ;;#ASMSTART8601; GFX9-NEXT:    ; def s[8:15]8602; GFX9-NEXT:    ;;#ASMEND8603; GFX9-NEXT:    s_mov_b32 s10, s88604; GFX9-NEXT:    s_mov_b32 s11, s98605; GFX9-NEXT:    s_mov_b32 s12, s88606; GFX9-NEXT:    s_mov_b32 s13, s98607; GFX9-NEXT:    ;;#ASMSTART8608; GFX9-NEXT:    ; use s[8:13]8609; GFX9-NEXT:    ;;#ASMEND8610; GFX9-NEXT:    s_setpc_b64 s[30:31]8611  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8612  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> zeroinitializer8613  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8614  ret void8615}8616 8617define void @s_shuffle_v3p0_v4p0__1_0_0() {8618; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_0_0:8619; GFX9:       ; %bb.0:8620; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8621; GFX9-NEXT:    ;;#ASMSTART8622; GFX9-NEXT:    ; def s[12:19]8623; GFX9-NEXT:    ;;#ASMEND8624; GFX9-NEXT:    s_mov_b32 s8, s148625; GFX9-NEXT:    s_mov_b32 s9, s158626; GFX9-NEXT:    s_mov_b32 s10, s128627; GFX9-NEXT:    s_mov_b32 s11, s138628; GFX9-NEXT:    ;;#ASMSTART8629; GFX9-NEXT:    ; use s[8:13]8630; GFX9-NEXT:    ;;#ASMEND8631; GFX9-NEXT:    s_setpc_b64 s[30:31]8632  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8633  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 0, i32 0>8634  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8635  ret void8636}8637 8638define void @s_shuffle_v3p0_v4p0__2_0_0() {8639; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_0_0:8640; GFX9:       ; %bb.0:8641; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8642; GFX9-NEXT:    ;;#ASMSTART8643; GFX9-NEXT:    ; def s[4:11]8644; GFX9-NEXT:    ;;#ASMEND8645; GFX9-NEXT:    s_mov_b32 s10, s48646; GFX9-NEXT:    s_mov_b32 s11, s58647; GFX9-NEXT:    s_mov_b32 s12, s48648; GFX9-NEXT:    s_mov_b32 s13, s58649; GFX9-NEXT:    ;;#ASMSTART8650; GFX9-NEXT:    ; use s[8:13]8651; GFX9-NEXT:    ;;#ASMEND8652; GFX9-NEXT:    s_setpc_b64 s[30:31]8653  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8654  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 0, i32 0>8655  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8656  ret void8657}8658 8659define void @s_shuffle_v3p0_v4p0__3_0_0() {8660; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_0_0:8661; GFX9:       ; %bb.0:8662; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8663; GFX9-NEXT:    ;;#ASMSTART8664; GFX9-NEXT:    ; def s[12:19]8665; GFX9-NEXT:    ;;#ASMEND8666; GFX9-NEXT:    s_mov_b32 s8, s188667; GFX9-NEXT:    s_mov_b32 s9, s198668; GFX9-NEXT:    s_mov_b32 s10, s128669; GFX9-NEXT:    s_mov_b32 s11, s138670; GFX9-NEXT:    ;;#ASMSTART8671; GFX9-NEXT:    ; use s[8:13]8672; GFX9-NEXT:    ;;#ASMEND8673; GFX9-NEXT:    s_setpc_b64 s[30:31]8674  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8675  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 0, i32 0>8676  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8677  ret void8678}8679 8680define void @s_shuffle_v3p0_v4p0__4_0_0() {8681; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_0_0:8682; GFX9:       ; %bb.0:8683; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8684; GFX9-NEXT:    ;;#ASMSTART8685; GFX9-NEXT:    ; def s[12:19]8686; GFX9-NEXT:    ;;#ASMEND8687; GFX9-NEXT:    s_mov_b32 s10, s128688; GFX9-NEXT:    s_mov_b32 s11, s138689; GFX9-NEXT:    ;;#ASMSTART8690; GFX9-NEXT:    ; use s[8:13]8691; GFX9-NEXT:    ;;#ASMEND8692; GFX9-NEXT:    s_setpc_b64 s[30:31]8693  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8694  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 0, i32 0>8695  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8696  ret void8697}8698 8699define void @s_shuffle_v3p0_v4p0__5_0_0() {8700; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_0_0:8701; GFX900:       ; %bb.0:8702; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8703; GFX900-NEXT:    ;;#ASMSTART8704; GFX900-NEXT:    ; def s[4:11]8705; GFX900-NEXT:    ;;#ASMEND8706; GFX900-NEXT:    ;;#ASMSTART8707; GFX900-NEXT:    ; def s[12:19]8708; GFX900-NEXT:    ;;#ASMEND8709; GFX900-NEXT:    s_mov_b32 s8, s68710; GFX900-NEXT:    s_mov_b32 s9, s78711; GFX900-NEXT:    s_mov_b32 s10, s128712; GFX900-NEXT:    s_mov_b32 s11, s138713; GFX900-NEXT:    ;;#ASMSTART8714; GFX900-NEXT:    ; use s[8:13]8715; GFX900-NEXT:    ;;#ASMEND8716; GFX900-NEXT:    s_setpc_b64 s[30:31]8717;8718; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_0_0:8719; GFX90A:       ; %bb.0:8720; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8721; GFX90A-NEXT:    ;;#ASMSTART8722; GFX90A-NEXT:    ; def s[4:11]8723; GFX90A-NEXT:    ;;#ASMEND8724; GFX90A-NEXT:    ;;#ASMSTART8725; GFX90A-NEXT:    ; def s[12:19]8726; GFX90A-NEXT:    ;;#ASMEND8727; GFX90A-NEXT:    s_mov_b32 s8, s68728; GFX90A-NEXT:    s_mov_b32 s9, s78729; GFX90A-NEXT:    s_mov_b32 s10, s128730; GFX90A-NEXT:    s_mov_b32 s11, s138731; GFX90A-NEXT:    ;;#ASMSTART8732; GFX90A-NEXT:    ; use s[8:13]8733; GFX90A-NEXT:    ;;#ASMEND8734; GFX90A-NEXT:    s_setpc_b64 s[30:31]8735;8736; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_0_0:8737; GFX942:       ; %bb.0:8738; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8739; GFX942-NEXT:    ;;#ASMSTART8740; GFX942-NEXT:    ; def s[12:19]8741; GFX942-NEXT:    ;;#ASMEND8742; GFX942-NEXT:    ;;#ASMSTART8743; GFX942-NEXT:    ; def s[0:7]8744; GFX942-NEXT:    ;;#ASMEND8745; GFX942-NEXT:    s_mov_b32 s8, s28746; GFX942-NEXT:    s_mov_b32 s9, s38747; GFX942-NEXT:    s_mov_b32 s10, s128748; GFX942-NEXT:    s_mov_b32 s11, s138749; GFX942-NEXT:    ;;#ASMSTART8750; GFX942-NEXT:    ; use s[8:13]8751; GFX942-NEXT:    ;;#ASMEND8752; GFX942-NEXT:    s_setpc_b64 s[30:31]8753  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8754  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8755  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 0, i32 0>8756  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8757  ret void8758}8759 8760define void @s_shuffle_v3p0_v4p0__6_0_0() {8761; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_0_0:8762; GFX9:       ; %bb.0:8763; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8764; GFX9-NEXT:    ;;#ASMSTART8765; GFX9-NEXT:    ; def s[4:11]8766; GFX9-NEXT:    ;;#ASMEND8767; GFX9-NEXT:    ;;#ASMSTART8768; GFX9-NEXT:    ; def s[12:19]8769; GFX9-NEXT:    ;;#ASMEND8770; GFX9-NEXT:    s_mov_b32 s10, s128771; GFX9-NEXT:    s_mov_b32 s11, s138772; GFX9-NEXT:    ;;#ASMSTART8773; GFX9-NEXT:    ; use s[8:13]8774; GFX9-NEXT:    ;;#ASMEND8775; GFX9-NEXT:    s_setpc_b64 s[30:31]8776  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8777  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8778  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 0, i32 0>8779  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8780  ret void8781}8782 8783define void @s_shuffle_v3p0_v4p0__7_0_0() {8784; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_0:8785; GFX900:       ; %bb.0:8786; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8787; GFX900-NEXT:    ;;#ASMSTART8788; GFX900-NEXT:    ; def s[4:11]8789; GFX900-NEXT:    ;;#ASMEND8790; GFX900-NEXT:    ;;#ASMSTART8791; GFX900-NEXT:    ; def s[12:19]8792; GFX900-NEXT:    ;;#ASMEND8793; GFX900-NEXT:    s_mov_b32 s8, s108794; GFX900-NEXT:    s_mov_b32 s9, s118795; GFX900-NEXT:    s_mov_b32 s10, s128796; GFX900-NEXT:    s_mov_b32 s11, s138797; GFX900-NEXT:    ;;#ASMSTART8798; GFX900-NEXT:    ; use s[8:13]8799; GFX900-NEXT:    ;;#ASMEND8800; GFX900-NEXT:    s_setpc_b64 s[30:31]8801;8802; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_0:8803; GFX90A:       ; %bb.0:8804; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8805; GFX90A-NEXT:    ;;#ASMSTART8806; GFX90A-NEXT:    ; def s[4:11]8807; GFX90A-NEXT:    ;;#ASMEND8808; GFX90A-NEXT:    ;;#ASMSTART8809; GFX90A-NEXT:    ; def s[12:19]8810; GFX90A-NEXT:    ;;#ASMEND8811; GFX90A-NEXT:    s_mov_b32 s8, s108812; GFX90A-NEXT:    s_mov_b32 s9, s118813; GFX90A-NEXT:    s_mov_b32 s10, s128814; GFX90A-NEXT:    s_mov_b32 s11, s138815; GFX90A-NEXT:    ;;#ASMSTART8816; GFX90A-NEXT:    ; use s[8:13]8817; GFX90A-NEXT:    ;;#ASMEND8818; GFX90A-NEXT:    s_setpc_b64 s[30:31]8819;8820; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_0:8821; GFX942:       ; %bb.0:8822; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8823; GFX942-NEXT:    ;;#ASMSTART8824; GFX942-NEXT:    ; def s[12:19]8825; GFX942-NEXT:    ;;#ASMEND8826; GFX942-NEXT:    ;;#ASMSTART8827; GFX942-NEXT:    ; def s[0:7]8828; GFX942-NEXT:    ;;#ASMEND8829; GFX942-NEXT:    s_mov_b32 s8, s68830; GFX942-NEXT:    s_mov_b32 s9, s78831; GFX942-NEXT:    s_mov_b32 s10, s128832; GFX942-NEXT:    s_mov_b32 s11, s138833; GFX942-NEXT:    ;;#ASMSTART8834; GFX942-NEXT:    ; use s[8:13]8835; GFX942-NEXT:    ;;#ASMEND8836; GFX942-NEXT:    s_setpc_b64 s[30:31]8837  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8838  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8839  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 0>8840  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8841  ret void8842}8843 8844define void @s_shuffle_v3p0_v4p0__7_u_0() {8845; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_0:8846; GFX900:       ; %bb.0:8847; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8848; GFX900-NEXT:    ;;#ASMSTART8849; GFX900-NEXT:    ; def s[4:11]8850; GFX900-NEXT:    ;;#ASMEND8851; GFX900-NEXT:    ;;#ASMSTART8852; GFX900-NEXT:    ; def s[12:19]8853; GFX900-NEXT:    ;;#ASMEND8854; GFX900-NEXT:    s_mov_b32 s8, s108855; GFX900-NEXT:    s_mov_b32 s9, s118856; GFX900-NEXT:    ;;#ASMSTART8857; GFX900-NEXT:    ; use s[8:13]8858; GFX900-NEXT:    ;;#ASMEND8859; GFX900-NEXT:    s_setpc_b64 s[30:31]8860;8861; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_0:8862; GFX90A:       ; %bb.0:8863; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8864; GFX90A-NEXT:    ;;#ASMSTART8865; GFX90A-NEXT:    ; def s[4:11]8866; GFX90A-NEXT:    ;;#ASMEND8867; GFX90A-NEXT:    ;;#ASMSTART8868; GFX90A-NEXT:    ; def s[12:19]8869; GFX90A-NEXT:    ;;#ASMEND8870; GFX90A-NEXT:    s_mov_b32 s8, s108871; GFX90A-NEXT:    s_mov_b32 s9, s118872; GFX90A-NEXT:    ;;#ASMSTART8873; GFX90A-NEXT:    ; use s[8:13]8874; GFX90A-NEXT:    ;;#ASMEND8875; GFX90A-NEXT:    s_setpc_b64 s[30:31]8876;8877; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_0:8878; GFX942:       ; %bb.0:8879; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8880; GFX942-NEXT:    ;;#ASMSTART8881; GFX942-NEXT:    ; def s[12:19]8882; GFX942-NEXT:    ;;#ASMEND8883; GFX942-NEXT:    ;;#ASMSTART8884; GFX942-NEXT:    ; def s[0:7]8885; GFX942-NEXT:    ;;#ASMEND8886; GFX942-NEXT:    s_mov_b32 s8, s68887; GFX942-NEXT:    s_mov_b32 s9, s78888; GFX942-NEXT:    ;;#ASMSTART8889; GFX942-NEXT:    ; use s[8:13]8890; GFX942-NEXT:    ;;#ASMEND8891; GFX942-NEXT:    s_setpc_b64 s[30:31]8892  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8893  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8894  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>8895  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8896  ret void8897}8898 8899define void @s_shuffle_v3p0_v4p0__7_1_0() {8900; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_0:8901; GFX900:       ; %bb.0:8902; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8903; GFX900-NEXT:    ;;#ASMSTART8904; GFX900-NEXT:    ; def s[4:11]8905; GFX900-NEXT:    ;;#ASMEND8906; GFX900-NEXT:    ;;#ASMSTART8907; GFX900-NEXT:    ; def s[12:19]8908; GFX900-NEXT:    ;;#ASMEND8909; GFX900-NEXT:    s_mov_b32 s8, s108910; GFX900-NEXT:    s_mov_b32 s9, s118911; GFX900-NEXT:    s_mov_b32 s10, s148912; GFX900-NEXT:    s_mov_b32 s11, s158913; GFX900-NEXT:    ;;#ASMSTART8914; GFX900-NEXT:    ; use s[8:13]8915; GFX900-NEXT:    ;;#ASMEND8916; GFX900-NEXT:    s_setpc_b64 s[30:31]8917;8918; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_0:8919; GFX90A:       ; %bb.0:8920; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8921; GFX90A-NEXT:    ;;#ASMSTART8922; GFX90A-NEXT:    ; def s[4:11]8923; GFX90A-NEXT:    ;;#ASMEND8924; GFX90A-NEXT:    ;;#ASMSTART8925; GFX90A-NEXT:    ; def s[12:19]8926; GFX90A-NEXT:    ;;#ASMEND8927; GFX90A-NEXT:    s_mov_b32 s8, s108928; GFX90A-NEXT:    s_mov_b32 s9, s118929; GFX90A-NEXT:    s_mov_b32 s10, s148930; GFX90A-NEXT:    s_mov_b32 s11, s158931; GFX90A-NEXT:    ;;#ASMSTART8932; GFX90A-NEXT:    ; use s[8:13]8933; GFX90A-NEXT:    ;;#ASMEND8934; GFX90A-NEXT:    s_setpc_b64 s[30:31]8935;8936; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_0:8937; GFX942:       ; %bb.0:8938; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8939; GFX942-NEXT:    ;;#ASMSTART8940; GFX942-NEXT:    ; def s[12:19]8941; GFX942-NEXT:    ;;#ASMEND8942; GFX942-NEXT:    ;;#ASMSTART8943; GFX942-NEXT:    ; def s[0:7]8944; GFX942-NEXT:    ;;#ASMEND8945; GFX942-NEXT:    s_mov_b32 s8, s68946; GFX942-NEXT:    s_mov_b32 s9, s78947; GFX942-NEXT:    s_mov_b32 s10, s148948; GFX942-NEXT:    s_mov_b32 s11, s158949; GFX942-NEXT:    ;;#ASMSTART8950; GFX942-NEXT:    ; use s[8:13]8951; GFX942-NEXT:    ;;#ASMEND8952; GFX942-NEXT:    s_setpc_b64 s[30:31]8953  %vec0 = call <4 x ptr> asm "; def $0", "=s"()8954  %vec1 = call <4 x ptr> asm "; def $0", "=s"()8955  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 0>8956  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)8957  ret void8958}8959 8960define void @s_shuffle_v3p0_v4p0__7_2_0() {8961; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_0:8962; GFX900:       ; %bb.0:8963; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8964; GFX900-NEXT:    ;;#ASMSTART8965; GFX900-NEXT:    ; def s[4:11]8966; GFX900-NEXT:    ;;#ASMEND8967; GFX900-NEXT:    ;;#ASMSTART8968; GFX900-NEXT:    ; def s[12:19]8969; GFX900-NEXT:    ;;#ASMEND8970; GFX900-NEXT:    s_mov_b32 s8, s108971; GFX900-NEXT:    s_mov_b32 s9, s118972; GFX900-NEXT:    s_mov_b32 s10, s168973; GFX900-NEXT:    s_mov_b32 s11, s178974; GFX900-NEXT:    ;;#ASMSTART8975; GFX900-NEXT:    ; use s[8:13]8976; GFX900-NEXT:    ;;#ASMEND8977; GFX900-NEXT:    s_setpc_b64 s[30:31]8978;8979; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_0:8980; GFX90A:       ; %bb.0:8981; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8982; GFX90A-NEXT:    ;;#ASMSTART8983; GFX90A-NEXT:    ; def s[4:11]8984; GFX90A-NEXT:    ;;#ASMEND8985; GFX90A-NEXT:    ;;#ASMSTART8986; GFX90A-NEXT:    ; def s[12:19]8987; GFX90A-NEXT:    ;;#ASMEND8988; GFX90A-NEXT:    s_mov_b32 s8, s108989; GFX90A-NEXT:    s_mov_b32 s9, s118990; GFX90A-NEXT:    s_mov_b32 s10, s168991; GFX90A-NEXT:    s_mov_b32 s11, s178992; GFX90A-NEXT:    ;;#ASMSTART8993; GFX90A-NEXT:    ; use s[8:13]8994; GFX90A-NEXT:    ;;#ASMEND8995; GFX90A-NEXT:    s_setpc_b64 s[30:31]8996;8997; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_0:8998; GFX942:       ; %bb.0:8999; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9000; GFX942-NEXT:    ;;#ASMSTART9001; GFX942-NEXT:    ; def s[12:19]9002; GFX942-NEXT:    ;;#ASMEND9003; GFX942-NEXT:    ;;#ASMSTART9004; GFX942-NEXT:    ; def s[0:7]9005; GFX942-NEXT:    ;;#ASMEND9006; GFX942-NEXT:    s_mov_b32 s8, s69007; GFX942-NEXT:    s_mov_b32 s9, s79008; GFX942-NEXT:    s_mov_b32 s10, s169009; GFX942-NEXT:    s_mov_b32 s11, s179010; GFX942-NEXT:    ;;#ASMSTART9011; GFX942-NEXT:    ; use s[8:13]9012; GFX942-NEXT:    ;;#ASMEND9013; GFX942-NEXT:    s_setpc_b64 s[30:31]9014  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9015  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9016  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 0>9017  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9018  ret void9019}9020 9021define void @s_shuffle_v3p0_v4p0__7_3_0() {9022; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_3_0:9023; GFX9:       ; %bb.0:9024; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9025; GFX9-NEXT:    ;;#ASMSTART9026; GFX9-NEXT:    ; def s[4:11]9027; GFX9-NEXT:    ;;#ASMEND9028; GFX9-NEXT:    ;;#ASMSTART9029; GFX9-NEXT:    ; def s[12:19]9030; GFX9-NEXT:    ;;#ASMEND9031; GFX9-NEXT:    s_mov_b32 s8, s189032; GFX9-NEXT:    s_mov_b32 s9, s199033; GFX9-NEXT:    s_mov_b32 s12, s49034; GFX9-NEXT:    s_mov_b32 s13, s59035; GFX9-NEXT:    ;;#ASMSTART9036; GFX9-NEXT:    ; use s[8:13]9037; GFX9-NEXT:    ;;#ASMEND9038; GFX9-NEXT:    s_setpc_b64 s[30:31]9039  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9040  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9041  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 0>9042  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9043  ret void9044}9045 9046define void @s_shuffle_v3p0_v4p0__7_4_0() {9047; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_0:9048; GFX900:       ; %bb.0:9049; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9050; GFX900-NEXT:    ;;#ASMSTART9051; GFX900-NEXT:    ; def s[4:11]9052; GFX900-NEXT:    ;;#ASMEND9053; GFX900-NEXT:    ;;#ASMSTART9054; GFX900-NEXT:    ; def s[12:19]9055; GFX900-NEXT:    ;;#ASMEND9056; GFX900-NEXT:    s_mov_b32 s8, s109057; GFX900-NEXT:    s_mov_b32 s9, s119058; GFX900-NEXT:    s_mov_b32 s10, s49059; GFX900-NEXT:    s_mov_b32 s11, s59060; GFX900-NEXT:    ;;#ASMSTART9061; GFX900-NEXT:    ; use s[8:13]9062; GFX900-NEXT:    ;;#ASMEND9063; GFX900-NEXT:    s_setpc_b64 s[30:31]9064;9065; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_0:9066; GFX90A:       ; %bb.0:9067; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9068; GFX90A-NEXT:    ;;#ASMSTART9069; GFX90A-NEXT:    ; def s[4:11]9070; GFX90A-NEXT:    ;;#ASMEND9071; GFX90A-NEXT:    ;;#ASMSTART9072; GFX90A-NEXT:    ; def s[12:19]9073; GFX90A-NEXT:    ;;#ASMEND9074; GFX90A-NEXT:    s_mov_b32 s8, s109075; GFX90A-NEXT:    s_mov_b32 s9, s119076; GFX90A-NEXT:    s_mov_b32 s10, s49077; GFX90A-NEXT:    s_mov_b32 s11, s59078; GFX90A-NEXT:    ;;#ASMSTART9079; GFX90A-NEXT:    ; use s[8:13]9080; GFX90A-NEXT:    ;;#ASMEND9081; GFX90A-NEXT:    s_setpc_b64 s[30:31]9082;9083; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_0:9084; GFX942:       ; %bb.0:9085; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9086; GFX942-NEXT:    ;;#ASMSTART9087; GFX942-NEXT:    ; def s[12:19]9088; GFX942-NEXT:    ;;#ASMEND9089; GFX942-NEXT:    ;;#ASMSTART9090; GFX942-NEXT:    ; def s[0:7]9091; GFX942-NEXT:    ;;#ASMEND9092; GFX942-NEXT:    s_mov_b32 s8, s69093; GFX942-NEXT:    s_mov_b32 s9, s79094; GFX942-NEXT:    s_mov_b32 s10, s09095; GFX942-NEXT:    s_mov_b32 s11, s19096; GFX942-NEXT:    ;;#ASMSTART9097; GFX942-NEXT:    ; use s[8:13]9098; GFX942-NEXT:    ;;#ASMEND9099; GFX942-NEXT:    s_setpc_b64 s[30:31]9100  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9101  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9102  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 0>9103  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9104  ret void9105}9106 9107define void @s_shuffle_v3p0_v4p0__7_5_0() {9108; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_0:9109; GFX900:       ; %bb.0:9110; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9111; GFX900-NEXT:    ;;#ASMSTART9112; GFX900-NEXT:    ; def s[4:11]9113; GFX900-NEXT:    ;;#ASMEND9114; GFX900-NEXT:    ;;#ASMSTART9115; GFX900-NEXT:    ; def s[8:15]9116; GFX900-NEXT:    ;;#ASMEND9117; GFX900-NEXT:    s_mov_b32 s8, s149118; GFX900-NEXT:    s_mov_b32 s9, s159119; GFX900-NEXT:    s_mov_b32 s12, s49120; GFX900-NEXT:    s_mov_b32 s13, s59121; GFX900-NEXT:    ;;#ASMSTART9122; GFX900-NEXT:    ; use s[8:13]9123; GFX900-NEXT:    ;;#ASMEND9124; GFX900-NEXT:    s_setpc_b64 s[30:31]9125;9126; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_0:9127; GFX90A:       ; %bb.0:9128; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9129; GFX90A-NEXT:    ;;#ASMSTART9130; GFX90A-NEXT:    ; def s[4:11]9131; GFX90A-NEXT:    ;;#ASMEND9132; GFX90A-NEXT:    ;;#ASMSTART9133; GFX90A-NEXT:    ; def s[8:15]9134; GFX90A-NEXT:    ;;#ASMEND9135; GFX90A-NEXT:    s_mov_b32 s8, s149136; GFX90A-NEXT:    s_mov_b32 s9, s159137; GFX90A-NEXT:    s_mov_b32 s12, s49138; GFX90A-NEXT:    s_mov_b32 s13, s59139; GFX90A-NEXT:    ;;#ASMSTART9140; GFX90A-NEXT:    ; use s[8:13]9141; GFX90A-NEXT:    ;;#ASMEND9142; GFX90A-NEXT:    s_setpc_b64 s[30:31]9143;9144; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_0:9145; GFX942:       ; %bb.0:9146; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9147; GFX942-NEXT:    ;;#ASMSTART9148; GFX942-NEXT:    ; def s[8:15]9149; GFX942-NEXT:    ;;#ASMEND9150; GFX942-NEXT:    ;;#ASMSTART9151; GFX942-NEXT:    ; def s[0:7]9152; GFX942-NEXT:    ;;#ASMEND9153; GFX942-NEXT:    s_mov_b32 s8, s149154; GFX942-NEXT:    s_mov_b32 s9, s159155; GFX942-NEXT:    s_mov_b32 s12, s09156; GFX942-NEXT:    s_mov_b32 s13, s19157; GFX942-NEXT:    ;;#ASMSTART9158; GFX942-NEXT:    ; use s[8:13]9159; GFX942-NEXT:    ;;#ASMEND9160; GFX942-NEXT:    s_setpc_b64 s[30:31]9161  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9162  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9163  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 0>9164  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9165  ret void9166}9167 9168define void @s_shuffle_v3p0_v4p0__7_6_0() {9169; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_0:9170; GFX900:       ; %bb.0:9171; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9172; GFX900-NEXT:    ;;#ASMSTART9173; GFX900-NEXT:    ; def s[12:19]9174; GFX900-NEXT:    ;;#ASMEND9175; GFX900-NEXT:    ;;#ASMSTART9176; GFX900-NEXT:    ; def s[16:23]9177; GFX900-NEXT:    ;;#ASMEND9178; GFX900-NEXT:    s_mov_b32 s8, s229179; GFX900-NEXT:    s_mov_b32 s9, s239180; GFX900-NEXT:    s_mov_b32 s10, s209181; GFX900-NEXT:    s_mov_b32 s11, s219182; GFX900-NEXT:    ;;#ASMSTART9183; GFX900-NEXT:    ; use s[8:13]9184; GFX900-NEXT:    ;;#ASMEND9185; GFX900-NEXT:    s_setpc_b64 s[30:31]9186;9187; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_0:9188; GFX90A:       ; %bb.0:9189; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9190; GFX90A-NEXT:    ;;#ASMSTART9191; GFX90A-NEXT:    ; def s[12:19]9192; GFX90A-NEXT:    ;;#ASMEND9193; GFX90A-NEXT:    ;;#ASMSTART9194; GFX90A-NEXT:    ; def s[16:23]9195; GFX90A-NEXT:    ;;#ASMEND9196; GFX90A-NEXT:    s_mov_b32 s8, s229197; GFX90A-NEXT:    s_mov_b32 s9, s239198; GFX90A-NEXT:    s_mov_b32 s10, s209199; GFX90A-NEXT:    s_mov_b32 s11, s219200; GFX90A-NEXT:    ;;#ASMSTART9201; GFX90A-NEXT:    ; use s[8:13]9202; GFX90A-NEXT:    ;;#ASMEND9203; GFX90A-NEXT:    s_setpc_b64 s[30:31]9204;9205; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_0:9206; GFX942:       ; %bb.0:9207; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9208; GFX942-NEXT:    ;;#ASMSTART9209; GFX942-NEXT:    ; def s[12:19]9210; GFX942-NEXT:    ;;#ASMEND9211; GFX942-NEXT:    ;;#ASMSTART9212; GFX942-NEXT:    ; def s[0:7]9213; GFX942-NEXT:    ;;#ASMEND9214; GFX942-NEXT:    s_mov_b32 s8, s69215; GFX942-NEXT:    s_mov_b32 s9, s79216; GFX942-NEXT:    s_mov_b32 s10, s49217; GFX942-NEXT:    s_mov_b32 s11, s59218; GFX942-NEXT:    ;;#ASMSTART9219; GFX942-NEXT:    ; use s[8:13]9220; GFX942-NEXT:    ;;#ASMEND9221; GFX942-NEXT:    s_setpc_b64 s[30:31]9222  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9223  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9224  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 0>9225  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9226  ret void9227}9228 9229define void @s_shuffle_v3p0_v4p0__u_1_1() {9230; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_1_1:9231; GFX9:       ; %bb.0:9232; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9233; GFX9-NEXT:    ;;#ASMSTART9234; GFX9-NEXT:    ; def s[8:15]9235; GFX9-NEXT:    ;;#ASMEND9236; GFX9-NEXT:    s_mov_b32 s12, s109237; GFX9-NEXT:    s_mov_b32 s13, s119238; GFX9-NEXT:    ;;#ASMSTART9239; GFX9-NEXT:    ; use s[8:13]9240; GFX9-NEXT:    ;;#ASMEND9241; GFX9-NEXT:    s_setpc_b64 s[30:31]9242  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9243  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 1, i32 1>9244  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9245  ret void9246}9247 9248define void @s_shuffle_v3p0_v4p0__0_1_1() {9249; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_1_1:9250; GFX9:       ; %bb.0:9251; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9252; GFX9-NEXT:    ;;#ASMSTART9253; GFX9-NEXT:    ; def s[8:15]9254; GFX9-NEXT:    ;;#ASMEND9255; GFX9-NEXT:    s_mov_b32 s12, s109256; GFX9-NEXT:    s_mov_b32 s13, s119257; GFX9-NEXT:    ;;#ASMSTART9258; GFX9-NEXT:    ; use s[8:13]9259; GFX9-NEXT:    ;;#ASMEND9260; GFX9-NEXT:    s_setpc_b64 s[30:31]9261  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9262  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 1, i32 1>9263  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9264  ret void9265}9266 9267define void @s_shuffle_v3p0_v4p0__1_1_1() {9268; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_1_1:9269; GFX9:       ; %bb.0:9270; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9271; GFX9-NEXT:    ;;#ASMSTART9272; GFX9-NEXT:    ; def s[8:15]9273; GFX9-NEXT:    ;;#ASMEND9274; GFX9-NEXT:    s_mov_b32 s8, s109275; GFX9-NEXT:    s_mov_b32 s9, s119276; GFX9-NEXT:    s_mov_b32 s12, s109277; GFX9-NEXT:    s_mov_b32 s13, s119278; GFX9-NEXT:    ;;#ASMSTART9279; GFX9-NEXT:    ; use s[8:13]9280; GFX9-NEXT:    ;;#ASMEND9281; GFX9-NEXT:    s_setpc_b64 s[30:31]9282  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9283  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 1, i32 1>9284  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9285  ret void9286}9287 9288define void @s_shuffle_v3p0_v4p0__2_1_1() {9289; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_1_1:9290; GFX9:       ; %bb.0:9291; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9292; GFX9-NEXT:    ;;#ASMSTART9293; GFX9-NEXT:    ; def s[4:11]9294; GFX9-NEXT:    ;;#ASMEND9295; GFX9-NEXT:    s_mov_b32 s10, s69296; GFX9-NEXT:    s_mov_b32 s11, s79297; GFX9-NEXT:    s_mov_b32 s12, s69298; GFX9-NEXT:    s_mov_b32 s13, s79299; GFX9-NEXT:    ;;#ASMSTART9300; GFX9-NEXT:    ; use s[8:13]9301; GFX9-NEXT:    ;;#ASMEND9302; GFX9-NEXT:    s_setpc_b64 s[30:31]9303  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9304  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 1, i32 1>9305  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9306  ret void9307}9308 9309define void @s_shuffle_v3p0_v4p0__3_1_1() {9310; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_1_1:9311; GFX9:       ; %bb.0:9312; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9313; GFX9-NEXT:    ;;#ASMSTART9314; GFX9-NEXT:    ; def s[8:15]9315; GFX9-NEXT:    ;;#ASMEND9316; GFX9-NEXT:    s_mov_b32 s8, s149317; GFX9-NEXT:    s_mov_b32 s9, s159318; GFX9-NEXT:    s_mov_b32 s12, s109319; GFX9-NEXT:    s_mov_b32 s13, s119320; GFX9-NEXT:    ;;#ASMSTART9321; GFX9-NEXT:    ; use s[8:13]9322; GFX9-NEXT:    ;;#ASMEND9323; GFX9-NEXT:    s_setpc_b64 s[30:31]9324  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9325  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 1, i32 1>9326  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9327  ret void9328}9329 9330define void @s_shuffle_v3p0_v4p0__4_1_1() {9331; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_1_1:9332; GFX9:       ; %bb.0:9333; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9334; GFX9-NEXT:    ;;#ASMSTART9335; GFX9-NEXT:    ; def s[8:15]9336; GFX9-NEXT:    ;;#ASMEND9337; GFX9-NEXT:    s_mov_b32 s12, s109338; GFX9-NEXT:    s_mov_b32 s13, s119339; GFX9-NEXT:    ;;#ASMSTART9340; GFX9-NEXT:    ; use s[8:13]9341; GFX9-NEXT:    ;;#ASMEND9342; GFX9-NEXT:    s_setpc_b64 s[30:31]9343  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9344  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 1, i32 1>9345  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9346  ret void9347}9348 9349define void @s_shuffle_v3p0_v4p0__5_1_1() {9350; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_1_1:9351; GFX900:       ; %bb.0:9352; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9353; GFX900-NEXT:    ;;#ASMSTART9354; GFX900-NEXT:    ; def s[8:15]9355; GFX900-NEXT:    ;;#ASMEND9356; GFX900-NEXT:    ;;#ASMSTART9357; GFX900-NEXT:    ; def s[12:19]9358; GFX900-NEXT:    ;;#ASMEND9359; GFX900-NEXT:    s_mov_b32 s8, s149360; GFX900-NEXT:    s_mov_b32 s9, s159361; GFX900-NEXT:    s_mov_b32 s12, s109362; GFX900-NEXT:    s_mov_b32 s13, s119363; GFX900-NEXT:    ;;#ASMSTART9364; GFX900-NEXT:    ; use s[8:13]9365; GFX900-NEXT:    ;;#ASMEND9366; GFX900-NEXT:    s_setpc_b64 s[30:31]9367;9368; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_1_1:9369; GFX90A:       ; %bb.0:9370; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9371; GFX90A-NEXT:    ;;#ASMSTART9372; GFX90A-NEXT:    ; def s[8:15]9373; GFX90A-NEXT:    ;;#ASMEND9374; GFX90A-NEXT:    ;;#ASMSTART9375; GFX90A-NEXT:    ; def s[12:19]9376; GFX90A-NEXT:    ;;#ASMEND9377; GFX90A-NEXT:    s_mov_b32 s8, s149378; GFX90A-NEXT:    s_mov_b32 s9, s159379; GFX90A-NEXT:    s_mov_b32 s12, s109380; GFX90A-NEXT:    s_mov_b32 s13, s119381; GFX90A-NEXT:    ;;#ASMSTART9382; GFX90A-NEXT:    ; use s[8:13]9383; GFX90A-NEXT:    ;;#ASMEND9384; GFX90A-NEXT:    s_setpc_b64 s[30:31]9385;9386; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_1_1:9387; GFX942:       ; %bb.0:9388; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9389; GFX942-NEXT:    ;;#ASMSTART9390; GFX942-NEXT:    ; def s[8:15]9391; GFX942-NEXT:    ;;#ASMEND9392; GFX942-NEXT:    ;;#ASMSTART9393; GFX942-NEXT:    ; def s[0:7]9394; GFX942-NEXT:    ;;#ASMEND9395; GFX942-NEXT:    s_mov_b32 s8, s29396; GFX942-NEXT:    s_mov_b32 s9, s39397; GFX942-NEXT:    s_mov_b32 s12, s109398; GFX942-NEXT:    s_mov_b32 s13, s119399; GFX942-NEXT:    ;;#ASMSTART9400; GFX942-NEXT:    ; use s[8:13]9401; GFX942-NEXT:    ;;#ASMEND9402; GFX942-NEXT:    s_setpc_b64 s[30:31]9403  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9404  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9405  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 1, i32 1>9406  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9407  ret void9408}9409 9410define void @s_shuffle_v3p0_v4p0__6_1_1() {9411; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_1_1:9412; GFX900:       ; %bb.0:9413; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9414; GFX900-NEXT:    ;;#ASMSTART9415; GFX900-NEXT:    ; def s[12:19]9416; GFX900-NEXT:    ;;#ASMEND9417; GFX900-NEXT:    ;;#ASMSTART9418; GFX900-NEXT:    ; def s[4:11]9419; GFX900-NEXT:    ;;#ASMEND9420; GFX900-NEXT:    s_mov_b32 s10, s149421; GFX900-NEXT:    s_mov_b32 s11, s159422; GFX900-NEXT:    s_mov_b32 s12, s149423; GFX900-NEXT:    s_mov_b32 s13, s159424; GFX900-NEXT:    ;;#ASMSTART9425; GFX900-NEXT:    ; use s[8:13]9426; GFX900-NEXT:    ;;#ASMEND9427; GFX900-NEXT:    s_setpc_b64 s[30:31]9428;9429; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_1_1:9430; GFX90A:       ; %bb.0:9431; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9432; GFX90A-NEXT:    ;;#ASMSTART9433; GFX90A-NEXT:    ; def s[12:19]9434; GFX90A-NEXT:    ;;#ASMEND9435; GFX90A-NEXT:    ;;#ASMSTART9436; GFX90A-NEXT:    ; def s[4:11]9437; GFX90A-NEXT:    ;;#ASMEND9438; GFX90A-NEXT:    s_mov_b32 s10, s149439; GFX90A-NEXT:    s_mov_b32 s11, s159440; GFX90A-NEXT:    s_mov_b32 s12, s149441; GFX90A-NEXT:    s_mov_b32 s13, s159442; GFX90A-NEXT:    ;;#ASMSTART9443; GFX90A-NEXT:    ; use s[8:13]9444; GFX90A-NEXT:    ;;#ASMEND9445; GFX90A-NEXT:    s_setpc_b64 s[30:31]9446;9447; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_1_1:9448; GFX942:       ; %bb.0:9449; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9450; GFX942-NEXT:    ;;#ASMSTART9451; GFX942-NEXT:    ; def s[0:7]9452; GFX942-NEXT:    ;;#ASMEND9453; GFX942-NEXT:    s_mov_b32 s12, s29454; GFX942-NEXT:    ;;#ASMSTART9455; GFX942-NEXT:    ; def s[4:11]9456; GFX942-NEXT:    ;;#ASMEND9457; GFX942-NEXT:    s_mov_b32 s10, s29458; GFX942-NEXT:    s_mov_b32 s11, s39459; GFX942-NEXT:    s_mov_b32 s13, s39460; GFX942-NEXT:    ;;#ASMSTART9461; GFX942-NEXT:    ; use s[8:13]9462; GFX942-NEXT:    ;;#ASMEND9463; GFX942-NEXT:    s_setpc_b64 s[30:31]9464  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9465  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9466  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 1, i32 1>9467  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9468  ret void9469}9470 9471define void @s_shuffle_v3p0_v4p0__7_1_1() {9472; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_1:9473; GFX900:       ; %bb.0:9474; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9475; GFX900-NEXT:    ;;#ASMSTART9476; GFX900-NEXT:    ; def s[8:15]9477; GFX900-NEXT:    ;;#ASMEND9478; GFX900-NEXT:    ;;#ASMSTART9479; GFX900-NEXT:    ; def s[12:19]9480; GFX900-NEXT:    ;;#ASMEND9481; GFX900-NEXT:    s_mov_b32 s8, s189482; GFX900-NEXT:    s_mov_b32 s9, s199483; GFX900-NEXT:    s_mov_b32 s12, s109484; GFX900-NEXT:    s_mov_b32 s13, s119485; GFX900-NEXT:    ;;#ASMSTART9486; GFX900-NEXT:    ; use s[8:13]9487; GFX900-NEXT:    ;;#ASMEND9488; GFX900-NEXT:    s_setpc_b64 s[30:31]9489;9490; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_1:9491; GFX90A:       ; %bb.0:9492; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9493; GFX90A-NEXT:    ;;#ASMSTART9494; GFX90A-NEXT:    ; def s[8:15]9495; GFX90A-NEXT:    ;;#ASMEND9496; GFX90A-NEXT:    ;;#ASMSTART9497; GFX90A-NEXT:    ; def s[12:19]9498; GFX90A-NEXT:    ;;#ASMEND9499; GFX90A-NEXT:    s_mov_b32 s8, s189500; GFX90A-NEXT:    s_mov_b32 s9, s199501; GFX90A-NEXT:    s_mov_b32 s12, s109502; GFX90A-NEXT:    s_mov_b32 s13, s119503; GFX90A-NEXT:    ;;#ASMSTART9504; GFX90A-NEXT:    ; use s[8:13]9505; GFX90A-NEXT:    ;;#ASMEND9506; GFX90A-NEXT:    s_setpc_b64 s[30:31]9507;9508; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_1:9509; GFX942:       ; %bb.0:9510; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9511; GFX942-NEXT:    ;;#ASMSTART9512; GFX942-NEXT:    ; def s[8:15]9513; GFX942-NEXT:    ;;#ASMEND9514; GFX942-NEXT:    ;;#ASMSTART9515; GFX942-NEXT:    ; def s[0:7]9516; GFX942-NEXT:    ;;#ASMEND9517; GFX942-NEXT:    s_mov_b32 s8, s69518; GFX942-NEXT:    s_mov_b32 s9, s79519; GFX942-NEXT:    s_mov_b32 s12, s109520; GFX942-NEXT:    s_mov_b32 s13, s119521; GFX942-NEXT:    ;;#ASMSTART9522; GFX942-NEXT:    ; use s[8:13]9523; GFX942-NEXT:    ;;#ASMEND9524; GFX942-NEXT:    s_setpc_b64 s[30:31]9525  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9526  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9527  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 1>9528  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9529  ret void9530}9531 9532define void @s_shuffle_v3p0_v4p0__7_u_1() {9533; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_1:9534; GFX900:       ; %bb.0:9535; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9536; GFX900-NEXT:    ;;#ASMSTART9537; GFX900-NEXT:    ; def s[4:11]9538; GFX900-NEXT:    ;;#ASMEND9539; GFX900-NEXT:    ;;#ASMSTART9540; GFX900-NEXT:    ; def s[8:15]9541; GFX900-NEXT:    ;;#ASMEND9542; GFX900-NEXT:    s_mov_b32 s8, s149543; GFX900-NEXT:    s_mov_b32 s9, s159544; GFX900-NEXT:    s_mov_b32 s12, s69545; GFX900-NEXT:    s_mov_b32 s13, s79546; GFX900-NEXT:    ;;#ASMSTART9547; GFX900-NEXT:    ; use s[8:13]9548; GFX900-NEXT:    ;;#ASMEND9549; GFX900-NEXT:    s_setpc_b64 s[30:31]9550;9551; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_1:9552; GFX90A:       ; %bb.0:9553; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9554; GFX90A-NEXT:    ;;#ASMSTART9555; GFX90A-NEXT:    ; def s[4:11]9556; GFX90A-NEXT:    ;;#ASMEND9557; GFX90A-NEXT:    ;;#ASMSTART9558; GFX90A-NEXT:    ; def s[8:15]9559; GFX90A-NEXT:    ;;#ASMEND9560; GFX90A-NEXT:    s_mov_b32 s8, s149561; GFX90A-NEXT:    s_mov_b32 s9, s159562; GFX90A-NEXT:    s_mov_b32 s12, s69563; GFX90A-NEXT:    s_mov_b32 s13, s79564; GFX90A-NEXT:    ;;#ASMSTART9565; GFX90A-NEXT:    ; use s[8:13]9566; GFX90A-NEXT:    ;;#ASMEND9567; GFX90A-NEXT:    s_setpc_b64 s[30:31]9568;9569; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_1:9570; GFX942:       ; %bb.0:9571; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9572; GFX942-NEXT:    ;;#ASMSTART9573; GFX942-NEXT:    ; def s[0:7]9574; GFX942-NEXT:    ;;#ASMEND9575; GFX942-NEXT:    s_mov_b32 s12, s29576; GFX942-NEXT:    ;;#ASMSTART9577; GFX942-NEXT:    ; def s[4:11]9578; GFX942-NEXT:    ;;#ASMEND9579; GFX942-NEXT:    s_mov_b32 s8, s109580; GFX942-NEXT:    s_mov_b32 s9, s119581; GFX942-NEXT:    s_mov_b32 s13, s39582; GFX942-NEXT:    ;;#ASMSTART9583; GFX942-NEXT:    ; use s[8:13]9584; GFX942-NEXT:    ;;#ASMEND9585; GFX942-NEXT:    s_setpc_b64 s[30:31]9586  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9587  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9588  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>9589  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9590  ret void9591}9592 9593define void @s_shuffle_v3p0_v4p0__7_0_1() {9594; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_1:9595; GFX900:       ; %bb.0:9596; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9597; GFX900-NEXT:    ;;#ASMSTART9598; GFX900-NEXT:    ; def s[4:11]9599; GFX900-NEXT:    ;;#ASMEND9600; GFX900-NEXT:    ;;#ASMSTART9601; GFX900-NEXT:    ; def s[8:15]9602; GFX900-NEXT:    ;;#ASMEND9603; GFX900-NEXT:    s_mov_b32 s8, s149604; GFX900-NEXT:    s_mov_b32 s9, s159605; GFX900-NEXT:    s_mov_b32 s10, s49606; GFX900-NEXT:    s_mov_b32 s11, s59607; GFX900-NEXT:    s_mov_b32 s12, s69608; GFX900-NEXT:    s_mov_b32 s13, s79609; GFX900-NEXT:    ;;#ASMSTART9610; GFX900-NEXT:    ; use s[8:13]9611; GFX900-NEXT:    ;;#ASMEND9612; GFX900-NEXT:    s_setpc_b64 s[30:31]9613;9614; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_1:9615; GFX90A:       ; %bb.0:9616; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9617; GFX90A-NEXT:    ;;#ASMSTART9618; GFX90A-NEXT:    ; def s[4:11]9619; GFX90A-NEXT:    ;;#ASMEND9620; GFX90A-NEXT:    ;;#ASMSTART9621; GFX90A-NEXT:    ; def s[8:15]9622; GFX90A-NEXT:    ;;#ASMEND9623; GFX90A-NEXT:    s_mov_b32 s8, s149624; GFX90A-NEXT:    s_mov_b32 s9, s159625; GFX90A-NEXT:    s_mov_b32 s10, s49626; GFX90A-NEXT:    s_mov_b32 s11, s59627; GFX90A-NEXT:    s_mov_b32 s12, s69628; GFX90A-NEXT:    s_mov_b32 s13, s79629; GFX90A-NEXT:    ;;#ASMSTART9630; GFX90A-NEXT:    ; use s[8:13]9631; GFX90A-NEXT:    ;;#ASMEND9632; GFX90A-NEXT:    s_setpc_b64 s[30:31]9633;9634; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_1:9635; GFX942:       ; %bb.0:9636; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9637; GFX942-NEXT:    ;;#ASMSTART9638; GFX942-NEXT:    ; def s[0:7]9639; GFX942-NEXT:    ;;#ASMEND9640; GFX942-NEXT:    s_mov_b32 s12, s29641; GFX942-NEXT:    ;;#ASMSTART9642; GFX942-NEXT:    ; def s[4:11]9643; GFX942-NEXT:    ;;#ASMEND9644; GFX942-NEXT:    s_mov_b32 s8, s109645; GFX942-NEXT:    s_mov_b32 s9, s119646; GFX942-NEXT:    s_mov_b32 s10, s09647; GFX942-NEXT:    s_mov_b32 s11, s19648; GFX942-NEXT:    s_mov_b32 s13, s39649; GFX942-NEXT:    ;;#ASMSTART9650; GFX942-NEXT:    ; use s[8:13]9651; GFX942-NEXT:    ;;#ASMEND9652; GFX942-NEXT:    s_setpc_b64 s[30:31]9653  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9654  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9655  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 1>9656  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9657  ret void9658}9659 9660define void @s_shuffle_v3p0_v4p0__7_2_1() {9661; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_1:9662; GFX900:       ; %bb.0:9663; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9664; GFX900-NEXT:    ;;#ASMSTART9665; GFX900-NEXT:    ; def s[12:19]9666; GFX900-NEXT:    ;;#ASMEND9667; GFX900-NEXT:    ;;#ASMSTART9668; GFX900-NEXT:    ; def s[4:11]9669; GFX900-NEXT:    ;;#ASMEND9670; GFX900-NEXT:    s_mov_b32 s8, s109671; GFX900-NEXT:    s_mov_b32 s9, s119672; GFX900-NEXT:    s_mov_b32 s10, s169673; GFX900-NEXT:    s_mov_b32 s11, s179674; GFX900-NEXT:    s_mov_b32 s12, s149675; GFX900-NEXT:    s_mov_b32 s13, s159676; GFX900-NEXT:    ;;#ASMSTART9677; GFX900-NEXT:    ; use s[8:13]9678; GFX900-NEXT:    ;;#ASMEND9679; GFX900-NEXT:    s_setpc_b64 s[30:31]9680;9681; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_1:9682; GFX90A:       ; %bb.0:9683; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9684; GFX90A-NEXT:    ;;#ASMSTART9685; GFX90A-NEXT:    ; def s[12:19]9686; GFX90A-NEXT:    ;;#ASMEND9687; GFX90A-NEXT:    ;;#ASMSTART9688; GFX90A-NEXT:    ; def s[4:11]9689; GFX90A-NEXT:    ;;#ASMEND9690; GFX90A-NEXT:    s_mov_b32 s8, s109691; GFX90A-NEXT:    s_mov_b32 s9, s119692; GFX90A-NEXT:    s_mov_b32 s10, s169693; GFX90A-NEXT:    s_mov_b32 s11, s179694; GFX90A-NEXT:    s_mov_b32 s12, s149695; GFX90A-NEXT:    s_mov_b32 s13, s159696; GFX90A-NEXT:    ;;#ASMSTART9697; GFX90A-NEXT:    ; use s[8:13]9698; GFX90A-NEXT:    ;;#ASMEND9699; GFX90A-NEXT:    s_setpc_b64 s[30:31]9700;9701; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_1:9702; GFX942:       ; %bb.0:9703; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9704; GFX942-NEXT:    ;;#ASMSTART9705; GFX942-NEXT:    ; def s[8:15]9706; GFX942-NEXT:    ;;#ASMEND9707; GFX942-NEXT:    ;;#ASMSTART9708; GFX942-NEXT:    ; def s[0:7]9709; GFX942-NEXT:    ;;#ASMEND9710; GFX942-NEXT:    s_mov_b32 s8, s149711; GFX942-NEXT:    s_mov_b32 s9, s159712; GFX942-NEXT:    s_mov_b32 s10, s49713; GFX942-NEXT:    s_mov_b32 s11, s59714; GFX942-NEXT:    s_mov_b32 s12, s29715; GFX942-NEXT:    s_mov_b32 s13, s39716; GFX942-NEXT:    ;;#ASMSTART9717; GFX942-NEXT:    ; use s[8:13]9718; GFX942-NEXT:    ;;#ASMEND9719; GFX942-NEXT:    s_setpc_b64 s[30:31]9720  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9721  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9722  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 1>9723  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9724  ret void9725}9726 9727define void @s_shuffle_v3p0_v4p0__7_3_1() {9728; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_3_1:9729; GFX9:       ; %bb.0:9730; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9731; GFX9-NEXT:    ;;#ASMSTART9732; GFX9-NEXT:    ; def s[4:11]9733; GFX9-NEXT:    ;;#ASMEND9734; GFX9-NEXT:    ;;#ASMSTART9735; GFX9-NEXT:    ; def s[12:19]9736; GFX9-NEXT:    ;;#ASMEND9737; GFX9-NEXT:    s_mov_b32 s8, s189738; GFX9-NEXT:    s_mov_b32 s9, s199739; GFX9-NEXT:    s_mov_b32 s12, s69740; GFX9-NEXT:    s_mov_b32 s13, s79741; GFX9-NEXT:    ;;#ASMSTART9742; GFX9-NEXT:    ; use s[8:13]9743; GFX9-NEXT:    ;;#ASMEND9744; GFX9-NEXT:    s_setpc_b64 s[30:31]9745  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9746  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9747  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 1>9748  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9749  ret void9750}9751 9752define void @s_shuffle_v3p0_v4p0__7_4_1() {9753; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_1:9754; GFX900:       ; %bb.0:9755; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9756; GFX900-NEXT:    ;;#ASMSTART9757; GFX900-NEXT:    ; def s[4:11]9758; GFX900-NEXT:    ;;#ASMEND9759; GFX900-NEXT:    ;;#ASMSTART9760; GFX900-NEXT:    ; def s[12:19]9761; GFX900-NEXT:    ;;#ASMEND9762; GFX900-NEXT:    s_mov_b32 s8, s189763; GFX900-NEXT:    s_mov_b32 s9, s199764; GFX900-NEXT:    s_mov_b32 s10, s129765; GFX900-NEXT:    s_mov_b32 s11, s139766; GFX900-NEXT:    s_mov_b32 s12, s69767; GFX900-NEXT:    s_mov_b32 s13, s79768; GFX900-NEXT:    ;;#ASMSTART9769; GFX900-NEXT:    ; use s[8:13]9770; GFX900-NEXT:    ;;#ASMEND9771; GFX900-NEXT:    s_setpc_b64 s[30:31]9772;9773; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_1:9774; GFX90A:       ; %bb.0:9775; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9776; GFX90A-NEXT:    ;;#ASMSTART9777; GFX90A-NEXT:    ; def s[4:11]9778; GFX90A-NEXT:    ;;#ASMEND9779; GFX90A-NEXT:    ;;#ASMSTART9780; GFX90A-NEXT:    ; def s[12:19]9781; GFX90A-NEXT:    ;;#ASMEND9782; GFX90A-NEXT:    s_mov_b32 s8, s189783; GFX90A-NEXT:    s_mov_b32 s9, s199784; GFX90A-NEXT:    s_mov_b32 s10, s129785; GFX90A-NEXT:    s_mov_b32 s11, s139786; GFX90A-NEXT:    s_mov_b32 s12, s69787; GFX90A-NEXT:    s_mov_b32 s13, s79788; GFX90A-NEXT:    ;;#ASMSTART9789; GFX90A-NEXT:    ; use s[8:13]9790; GFX90A-NEXT:    ;;#ASMEND9791; GFX90A-NEXT:    s_setpc_b64 s[30:31]9792;9793; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_1:9794; GFX942:       ; %bb.0:9795; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9796; GFX942-NEXT:    ;;#ASMSTART9797; GFX942-NEXT:    ; def s[0:7]9798; GFX942-NEXT:    ;;#ASMEND9799; GFX942-NEXT:    s_mov_b32 s12, s29800; GFX942-NEXT:    ;;#ASMSTART9801; GFX942-NEXT:    ; def s[4:11]9802; GFX942-NEXT:    ;;#ASMEND9803; GFX942-NEXT:    s_mov_b32 s8, s109804; GFX942-NEXT:    s_mov_b32 s9, s119805; GFX942-NEXT:    s_mov_b32 s10, s49806; GFX942-NEXT:    s_mov_b32 s11, s59807; GFX942-NEXT:    s_mov_b32 s13, s39808; GFX942-NEXT:    ;;#ASMSTART9809; GFX942-NEXT:    ; use s[8:13]9810; GFX942-NEXT:    ;;#ASMEND9811; GFX942-NEXT:    s_setpc_b64 s[30:31]9812  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9813  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9814  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 1>9815  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9816  ret void9817}9818 9819define void @s_shuffle_v3p0_v4p0__7_5_1() {9820; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_1:9821; GFX900:       ; %bb.0:9822; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9823; GFX900-NEXT:    ;;#ASMSTART9824; GFX900-NEXT:    ; def s[4:11]9825; GFX900-NEXT:    ;;#ASMEND9826; GFX900-NEXT:    ;;#ASMSTART9827; GFX900-NEXT:    ; def s[8:15]9828; GFX900-NEXT:    ;;#ASMEND9829; GFX900-NEXT:    s_mov_b32 s8, s149830; GFX900-NEXT:    s_mov_b32 s9, s159831; GFX900-NEXT:    s_mov_b32 s12, s69832; GFX900-NEXT:    s_mov_b32 s13, s79833; GFX900-NEXT:    ;;#ASMSTART9834; GFX900-NEXT:    ; use s[8:13]9835; GFX900-NEXT:    ;;#ASMEND9836; GFX900-NEXT:    s_setpc_b64 s[30:31]9837;9838; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_1:9839; GFX90A:       ; %bb.0:9840; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9841; GFX90A-NEXT:    ;;#ASMSTART9842; GFX90A-NEXT:    ; def s[4:11]9843; GFX90A-NEXT:    ;;#ASMEND9844; GFX90A-NEXT:    ;;#ASMSTART9845; GFX90A-NEXT:    ; def s[8:15]9846; GFX90A-NEXT:    ;;#ASMEND9847; GFX90A-NEXT:    s_mov_b32 s8, s149848; GFX90A-NEXT:    s_mov_b32 s9, s159849; GFX90A-NEXT:    s_mov_b32 s12, s69850; GFX90A-NEXT:    s_mov_b32 s13, s79851; GFX90A-NEXT:    ;;#ASMSTART9852; GFX90A-NEXT:    ; use s[8:13]9853; GFX90A-NEXT:    ;;#ASMEND9854; GFX90A-NEXT:    s_setpc_b64 s[30:31]9855;9856; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_1:9857; GFX942:       ; %bb.0:9858; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9859; GFX942-NEXT:    ;;#ASMSTART9860; GFX942-NEXT:    ; def s[8:15]9861; GFX942-NEXT:    ;;#ASMEND9862; GFX942-NEXT:    ;;#ASMSTART9863; GFX942-NEXT:    ; def s[0:7]9864; GFX942-NEXT:    ;;#ASMEND9865; GFX942-NEXT:    s_mov_b32 s8, s149866; GFX942-NEXT:    s_mov_b32 s9, s159867; GFX942-NEXT:    s_mov_b32 s12, s29868; GFX942-NEXT:    s_mov_b32 s13, s39869; GFX942-NEXT:    ;;#ASMSTART9870; GFX942-NEXT:    ; use s[8:13]9871; GFX942-NEXT:    ;;#ASMEND9872; GFX942-NEXT:    s_setpc_b64 s[30:31]9873  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9874  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9875  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 1>9876  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9877  ret void9878}9879 9880define void @s_shuffle_v3p0_v4p0__7_6_1() {9881; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_1:9882; GFX900:       ; %bb.0:9883; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9884; GFX900-NEXT:    ;;#ASMSTART9885; GFX900-NEXT:    ; def s[4:11]9886; GFX900-NEXT:    ;;#ASMEND9887; GFX900-NEXT:    ;;#ASMSTART9888; GFX900-NEXT:    ; def s[8:15]9889; GFX900-NEXT:    ;;#ASMEND9890; GFX900-NEXT:    s_mov_b32 s8, s149891; GFX900-NEXT:    s_mov_b32 s9, s159892; GFX900-NEXT:    s_mov_b32 s10, s129893; GFX900-NEXT:    s_mov_b32 s11, s139894; GFX900-NEXT:    s_mov_b32 s12, s69895; GFX900-NEXT:    s_mov_b32 s13, s79896; GFX900-NEXT:    ;;#ASMSTART9897; GFX900-NEXT:    ; use s[8:13]9898; GFX900-NEXT:    ;;#ASMEND9899; GFX900-NEXT:    s_setpc_b64 s[30:31]9900;9901; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_1:9902; GFX90A:       ; %bb.0:9903; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9904; GFX90A-NEXT:    ;;#ASMSTART9905; GFX90A-NEXT:    ; def s[4:11]9906; GFX90A-NEXT:    ;;#ASMEND9907; GFX90A-NEXT:    ;;#ASMSTART9908; GFX90A-NEXT:    ; def s[8:15]9909; GFX90A-NEXT:    ;;#ASMEND9910; GFX90A-NEXT:    s_mov_b32 s8, s149911; GFX90A-NEXT:    s_mov_b32 s9, s159912; GFX90A-NEXT:    s_mov_b32 s10, s129913; GFX90A-NEXT:    s_mov_b32 s11, s139914; GFX90A-NEXT:    s_mov_b32 s12, s69915; GFX90A-NEXT:    s_mov_b32 s13, s79916; GFX90A-NEXT:    ;;#ASMSTART9917; GFX90A-NEXT:    ; use s[8:13]9918; GFX90A-NEXT:    ;;#ASMEND9919; GFX90A-NEXT:    s_setpc_b64 s[30:31]9920;9921; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_1:9922; GFX942:       ; %bb.0:9923; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9924; GFX942-NEXT:    ;;#ASMSTART9925; GFX942-NEXT:    ; def s[8:15]9926; GFX942-NEXT:    ;;#ASMEND9927; GFX942-NEXT:    ;;#ASMSTART9928; GFX942-NEXT:    ; def s[0:7]9929; GFX942-NEXT:    ;;#ASMEND9930; GFX942-NEXT:    s_mov_b32 s8, s149931; GFX942-NEXT:    s_mov_b32 s9, s159932; GFX942-NEXT:    s_mov_b32 s10, s129933; GFX942-NEXT:    s_mov_b32 s11, s139934; GFX942-NEXT:    s_mov_b32 s12, s29935; GFX942-NEXT:    s_mov_b32 s13, s39936; GFX942-NEXT:    ;;#ASMSTART9937; GFX942-NEXT:    ; use s[8:13]9938; GFX942-NEXT:    ;;#ASMEND9939; GFX942-NEXT:    s_setpc_b64 s[30:31]9940  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9941  %vec1 = call <4 x ptr> asm "; def $0", "=s"()9942  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 1>9943  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9944  ret void9945}9946 9947define void @s_shuffle_v3p0_v4p0__u_2_2() {9948; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_2_2:9949; GFX9:       ; %bb.0:9950; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9951; GFX9-NEXT:    ;;#ASMSTART9952; GFX9-NEXT:    ; def s[8:15]9953; GFX9-NEXT:    ;;#ASMEND9954; GFX9-NEXT:    s_mov_b32 s10, s129955; GFX9-NEXT:    s_mov_b32 s11, s139956; GFX9-NEXT:    ;;#ASMSTART9957; GFX9-NEXT:    ; use s[8:13]9958; GFX9-NEXT:    ;;#ASMEND9959; GFX9-NEXT:    s_setpc_b64 s[30:31]9960  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9961  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 2, i32 2>9962  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9963  ret void9964}9965 9966define void @s_shuffle_v3p0_v4p0__0_2_2() {9967; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_2_2:9968; GFX9:       ; %bb.0:9969; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9970; GFX9-NEXT:    ;;#ASMSTART9971; GFX9-NEXT:    ; def s[8:15]9972; GFX9-NEXT:    ;;#ASMEND9973; GFX9-NEXT:    s_mov_b32 s10, s129974; GFX9-NEXT:    s_mov_b32 s11, s139975; GFX9-NEXT:    ;;#ASMSTART9976; GFX9-NEXT:    ; use s[8:13]9977; GFX9-NEXT:    ;;#ASMEND9978; GFX9-NEXT:    s_setpc_b64 s[30:31]9979  %vec0 = call <4 x ptr> asm "; def $0", "=s"()9980  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 2, i32 2>9981  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)9982  ret void9983}9984 9985define void @s_shuffle_v3p0_v4p0__1_2_2() {9986; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_2_2:9987; GFX9:       ; %bb.0:9988; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9989; GFX9-NEXT:    ;;#ASMSTART9990; GFX9-NEXT:    ; def s[8:15]9991; GFX9-NEXT:    ;;#ASMEND9992; GFX9-NEXT:    s_mov_b32 s8, s109993; GFX9-NEXT:    s_mov_b32 s9, s119994; GFX9-NEXT:    s_mov_b32 s10, s129995; GFX9-NEXT:    s_mov_b32 s11, s139996; GFX9-NEXT:    ;;#ASMSTART9997; GFX9-NEXT:    ; use s[8:13]9998; GFX9-NEXT:    ;;#ASMEND9999; GFX9-NEXT:    s_setpc_b64 s[30:31]10000  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10001  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 2, i32 2>10002  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10003  ret void10004}10005 10006define void @s_shuffle_v3p0_v4p0__2_2_2() {10007; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_2_2:10008; GFX9:       ; %bb.0:10009; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10010; GFX9-NEXT:    ;;#ASMSTART10011; GFX9-NEXT:    ; def s[4:11]10012; GFX9-NEXT:    ;;#ASMEND10013; GFX9-NEXT:    s_mov_b32 s10, s810014; GFX9-NEXT:    s_mov_b32 s11, s910015; GFX9-NEXT:    s_mov_b32 s12, s810016; GFX9-NEXT:    s_mov_b32 s13, s910017; GFX9-NEXT:    ;;#ASMSTART10018; GFX9-NEXT:    ; use s[8:13]10019; GFX9-NEXT:    ;;#ASMEND10020; GFX9-NEXT:    s_setpc_b64 s[30:31]10021  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10022  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 2, i32 2>10023  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10024  ret void10025}10026 10027define void @s_shuffle_v3p0_v4p0__3_2_2() {10028; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_2_2:10029; GFX9:       ; %bb.0:10030; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10031; GFX9-NEXT:    ;;#ASMSTART10032; GFX9-NEXT:    ; def s[8:15]10033; GFX9-NEXT:    ;;#ASMEND10034; GFX9-NEXT:    s_mov_b32 s8, s1410035; GFX9-NEXT:    s_mov_b32 s9, s1510036; GFX9-NEXT:    s_mov_b32 s10, s1210037; GFX9-NEXT:    s_mov_b32 s11, s1310038; GFX9-NEXT:    ;;#ASMSTART10039; GFX9-NEXT:    ; use s[8:13]10040; GFX9-NEXT:    ;;#ASMEND10041; GFX9-NEXT:    s_setpc_b64 s[30:31]10042  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10043  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 2, i32 2>10044  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10045  ret void10046}10047 10048define void @s_shuffle_v3p0_v4p0__4_2_2() {10049; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_2_2:10050; GFX9:       ; %bb.0:10051; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10052; GFX9-NEXT:    ;;#ASMSTART10053; GFX9-NEXT:    ; def s[8:15]10054; GFX9-NEXT:    ;;#ASMEND10055; GFX9-NEXT:    s_mov_b32 s10, s1210056; GFX9-NEXT:    s_mov_b32 s11, s1310057; GFX9-NEXT:    ;;#ASMSTART10058; GFX9-NEXT:    ; use s[8:13]10059; GFX9-NEXT:    ;;#ASMEND10060; GFX9-NEXT:    s_setpc_b64 s[30:31]10061  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10062  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 2, i32 2>10063  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10064  ret void10065}10066 10067define void @s_shuffle_v3p0_v4p0__5_2_2() {10068; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_2_2:10069; GFX900:       ; %bb.0:10070; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10071; GFX900-NEXT:    ;;#ASMSTART10072; GFX900-NEXT:    ; def s[8:15]10073; GFX900-NEXT:    ;;#ASMEND10074; GFX900-NEXT:    ;;#ASMSTART10075; GFX900-NEXT:    ; def s[4:11]10076; GFX900-NEXT:    ;;#ASMEND10077; GFX900-NEXT:    s_mov_b32 s8, s610078; GFX900-NEXT:    s_mov_b32 s9, s710079; GFX900-NEXT:    s_mov_b32 s10, s1210080; GFX900-NEXT:    s_mov_b32 s11, s1310081; GFX900-NEXT:    ;;#ASMSTART10082; GFX900-NEXT:    ; use s[8:13]10083; GFX900-NEXT:    ;;#ASMEND10084; GFX900-NEXT:    s_setpc_b64 s[30:31]10085;10086; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_2_2:10087; GFX90A:       ; %bb.0:10088; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10089; GFX90A-NEXT:    ;;#ASMSTART10090; GFX90A-NEXT:    ; def s[8:15]10091; GFX90A-NEXT:    ;;#ASMEND10092; GFX90A-NEXT:    ;;#ASMSTART10093; GFX90A-NEXT:    ; def s[4:11]10094; GFX90A-NEXT:    ;;#ASMEND10095; GFX90A-NEXT:    s_mov_b32 s8, s610096; GFX90A-NEXT:    s_mov_b32 s9, s710097; GFX90A-NEXT:    s_mov_b32 s10, s1210098; GFX90A-NEXT:    s_mov_b32 s11, s1310099; GFX90A-NEXT:    ;;#ASMSTART10100; GFX90A-NEXT:    ; use s[8:13]10101; GFX90A-NEXT:    ;;#ASMEND10102; GFX90A-NEXT:    s_setpc_b64 s[30:31]10103;10104; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_2_2:10105; GFX942:       ; %bb.0:10106; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10107; GFX942-NEXT:    ;;#ASMSTART10108; GFX942-NEXT:    ; def s[8:15]10109; GFX942-NEXT:    ;;#ASMEND10110; GFX942-NEXT:    ;;#ASMSTART10111; GFX942-NEXT:    ; def s[0:7]10112; GFX942-NEXT:    ;;#ASMEND10113; GFX942-NEXT:    s_mov_b32 s8, s210114; GFX942-NEXT:    s_mov_b32 s9, s310115; GFX942-NEXT:    s_mov_b32 s10, s1210116; GFX942-NEXT:    s_mov_b32 s11, s1310117; GFX942-NEXT:    ;;#ASMSTART10118; GFX942-NEXT:    ; use s[8:13]10119; GFX942-NEXT:    ;;#ASMEND10120; GFX942-NEXT:    s_setpc_b64 s[30:31]10121  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10122  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10123  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 2, i32 2>10124  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10125  ret void10126}10127 10128define void @s_shuffle_v3p0_v4p0__6_2_2() {10129; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_2_2:10130; GFX900:       ; %bb.0:10131; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10132; GFX900-NEXT:    ;;#ASMSTART10133; GFX900-NEXT:    ; def s[8:15]10134; GFX900-NEXT:    ;;#ASMEND10135; GFX900-NEXT:    ;;#ASMSTART10136; GFX900-NEXT:    ; def s[4:11]10137; GFX900-NEXT:    ;;#ASMEND10138; GFX900-NEXT:    s_mov_b32 s10, s1210139; GFX900-NEXT:    s_mov_b32 s11, s1310140; GFX900-NEXT:    ;;#ASMSTART10141; GFX900-NEXT:    ; use s[8:13]10142; GFX900-NEXT:    ;;#ASMEND10143; GFX900-NEXT:    s_setpc_b64 s[30:31]10144;10145; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_2_2:10146; GFX90A:       ; %bb.0:10147; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10148; GFX90A-NEXT:    ;;#ASMSTART10149; GFX90A-NEXT:    ; def s[8:15]10150; GFX90A-NEXT:    ;;#ASMEND10151; GFX90A-NEXT:    ;;#ASMSTART10152; GFX90A-NEXT:    ; def s[4:11]10153; GFX90A-NEXT:    ;;#ASMEND10154; GFX90A-NEXT:    s_mov_b32 s10, s1210155; GFX90A-NEXT:    s_mov_b32 s11, s1310156; GFX90A-NEXT:    ;;#ASMSTART10157; GFX90A-NEXT:    ; use s[8:13]10158; GFX90A-NEXT:    ;;#ASMEND10159; GFX90A-NEXT:    s_setpc_b64 s[30:31]10160;10161; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_2_2:10162; GFX942:       ; %bb.0:10163; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10164; GFX942-NEXT:    ;;#ASMSTART10165; GFX942-NEXT:    ; def s[8:15]10166; GFX942-NEXT:    ;;#ASMEND10167; GFX942-NEXT:    s_nop 010168; GFX942-NEXT:    ;;#ASMSTART10169; GFX942-NEXT:    ; def s[4:11]10170; GFX942-NEXT:    ;;#ASMEND10171; GFX942-NEXT:    s_mov_b32 s10, s1210172; GFX942-NEXT:    s_mov_b32 s11, s1310173; GFX942-NEXT:    ;;#ASMSTART10174; GFX942-NEXT:    ; use s[8:13]10175; GFX942-NEXT:    ;;#ASMEND10176; GFX942-NEXT:    s_setpc_b64 s[30:31]10177  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10178  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10179  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 2, i32 2>10180  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10181  ret void10182}10183 10184define void @s_shuffle_v3p0_v4p0__7_2_2() {10185; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_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:15]10190; GFX900-NEXT:    ;;#ASMEND10191; GFX900-NEXT:    ;;#ASMSTART10192; GFX900-NEXT:    ; def s[4:11]10193; GFX900-NEXT:    ;;#ASMEND10194; GFX900-NEXT:    s_mov_b32 s8, s1010195; GFX900-NEXT:    s_mov_b32 s9, s1110196; GFX900-NEXT:    s_mov_b32 s10, s1210197; GFX900-NEXT:    s_mov_b32 s11, s1310198; GFX900-NEXT:    ;;#ASMSTART10199; GFX900-NEXT:    ; use s[8:13]10200; GFX900-NEXT:    ;;#ASMEND10201; GFX900-NEXT:    s_setpc_b64 s[30:31]10202;10203; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_2:10204; GFX90A:       ; %bb.0:10205; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10206; GFX90A-NEXT:    ;;#ASMSTART10207; GFX90A-NEXT:    ; def s[8:15]10208; GFX90A-NEXT:    ;;#ASMEND10209; GFX90A-NEXT:    ;;#ASMSTART10210; GFX90A-NEXT:    ; def s[4:11]10211; GFX90A-NEXT:    ;;#ASMEND10212; GFX90A-NEXT:    s_mov_b32 s8, s1010213; GFX90A-NEXT:    s_mov_b32 s9, s1110214; GFX90A-NEXT:    s_mov_b32 s10, s1210215; GFX90A-NEXT:    s_mov_b32 s11, s1310216; GFX90A-NEXT:    ;;#ASMSTART10217; GFX90A-NEXT:    ; use s[8:13]10218; GFX90A-NEXT:    ;;#ASMEND10219; GFX90A-NEXT:    s_setpc_b64 s[30:31]10220;10221; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_2:10222; GFX942:       ; %bb.0:10223; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10224; GFX942-NEXT:    ;;#ASMSTART10225; GFX942-NEXT:    ; def s[8:15]10226; GFX942-NEXT:    ;;#ASMEND10227; GFX942-NEXT:    ;;#ASMSTART10228; GFX942-NEXT:    ; def s[0:7]10229; GFX942-NEXT:    ;;#ASMEND10230; GFX942-NEXT:    s_mov_b32 s8, s610231; GFX942-NEXT:    s_mov_b32 s9, s710232; GFX942-NEXT:    s_mov_b32 s10, s1210233; GFX942-NEXT:    s_mov_b32 s11, s1310234; GFX942-NEXT:    ;;#ASMSTART10235; GFX942-NEXT:    ; use s[8:13]10236; GFX942-NEXT:    ;;#ASMEND10237; GFX942-NEXT:    s_setpc_b64 s[30:31]10238  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10239  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10240  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 2>10241  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10242  ret void10243}10244 10245define void @s_shuffle_v3p0_v4p0__7_u_2() {10246; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_2:10247; GFX900:       ; %bb.0:10248; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10249; GFX900-NEXT:    ;;#ASMSTART10250; GFX900-NEXT:    ; def s[8:15]10251; GFX900-NEXT:    ;;#ASMEND10252; GFX900-NEXT:    ;;#ASMSTART10253; GFX900-NEXT:    ; def s[4:11]10254; GFX900-NEXT:    ;;#ASMEND10255; GFX900-NEXT:    s_mov_b32 s8, s1010256; GFX900-NEXT:    s_mov_b32 s9, s1110257; GFX900-NEXT:    ;;#ASMSTART10258; GFX900-NEXT:    ; use s[8:13]10259; GFX900-NEXT:    ;;#ASMEND10260; GFX900-NEXT:    s_setpc_b64 s[30:31]10261;10262; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_2:10263; GFX90A:       ; %bb.0:10264; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10265; GFX90A-NEXT:    ;;#ASMSTART10266; GFX90A-NEXT:    ; def s[8:15]10267; GFX90A-NEXT:    ;;#ASMEND10268; GFX90A-NEXT:    ;;#ASMSTART10269; GFX90A-NEXT:    ; def s[4:11]10270; GFX90A-NEXT:    ;;#ASMEND10271; GFX90A-NEXT:    s_mov_b32 s8, s1010272; GFX90A-NEXT:    s_mov_b32 s9, s1110273; GFX90A-NEXT:    ;;#ASMSTART10274; GFX90A-NEXT:    ; use s[8:13]10275; GFX90A-NEXT:    ;;#ASMEND10276; GFX90A-NEXT:    s_setpc_b64 s[30:31]10277;10278; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_2:10279; GFX942:       ; %bb.0:10280; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10281; GFX942-NEXT:    ;;#ASMSTART10282; GFX942-NEXT:    ; def s[8:15]10283; GFX942-NEXT:    ;;#ASMEND10284; GFX942-NEXT:    ;;#ASMSTART10285; GFX942-NEXT:    ; def s[0:7]10286; GFX942-NEXT:    ;;#ASMEND10287; GFX942-NEXT:    s_mov_b32 s8, s610288; GFX942-NEXT:    s_mov_b32 s9, s710289; GFX942-NEXT:    ;;#ASMSTART10290; GFX942-NEXT:    ; use s[8:13]10291; GFX942-NEXT:    ;;#ASMEND10292; GFX942-NEXT:    s_setpc_b64 s[30:31]10293  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10294  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10295  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>10296  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10297  ret void10298}10299 10300define void @s_shuffle_v3p0_v4p0__7_0_2() {10301; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_2:10302; GFX900:       ; %bb.0:10303; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10304; GFX900-NEXT:    ;;#ASMSTART10305; GFX900-NEXT:    ; def s[12:19]10306; GFX900-NEXT:    ;;#ASMEND10307; GFX900-NEXT:    ;;#ASMSTART10308; GFX900-NEXT:    ; def s[4:11]10309; GFX900-NEXT:    ;;#ASMEND10310; GFX900-NEXT:    s_mov_b32 s8, s1010311; GFX900-NEXT:    s_mov_b32 s9, s1110312; GFX900-NEXT:    s_mov_b32 s10, s1210313; GFX900-NEXT:    s_mov_b32 s11, s1310314; GFX900-NEXT:    s_mov_b32 s12, s1610315; GFX900-NEXT:    s_mov_b32 s13, s1710316; GFX900-NEXT:    ;;#ASMSTART10317; GFX900-NEXT:    ; use s[8:13]10318; GFX900-NEXT:    ;;#ASMEND10319; GFX900-NEXT:    s_setpc_b64 s[30:31]10320;10321; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_2:10322; GFX90A:       ; %bb.0:10323; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10324; GFX90A-NEXT:    ;;#ASMSTART10325; GFX90A-NEXT:    ; def s[12:19]10326; GFX90A-NEXT:    ;;#ASMEND10327; GFX90A-NEXT:    ;;#ASMSTART10328; GFX90A-NEXT:    ; def s[4:11]10329; GFX90A-NEXT:    ;;#ASMEND10330; GFX90A-NEXT:    s_mov_b32 s8, s1010331; GFX90A-NEXT:    s_mov_b32 s9, s1110332; GFX90A-NEXT:    s_mov_b32 s10, s1210333; GFX90A-NEXT:    s_mov_b32 s11, s1310334; GFX90A-NEXT:    s_mov_b32 s12, s1610335; GFX90A-NEXT:    s_mov_b32 s13, s1710336; GFX90A-NEXT:    ;;#ASMSTART10337; GFX90A-NEXT:    ; use s[8:13]10338; GFX90A-NEXT:    ;;#ASMEND10339; GFX90A-NEXT:    s_setpc_b64 s[30:31]10340;10341; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_2:10342; GFX942:       ; %bb.0:10343; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10344; GFX942-NEXT:    ;;#ASMSTART10345; GFX942-NEXT:    ; def s[8:15]10346; GFX942-NEXT:    ;;#ASMEND10347; GFX942-NEXT:    ;;#ASMSTART10348; GFX942-NEXT:    ; def s[0:7]10349; GFX942-NEXT:    ;;#ASMEND10350; GFX942-NEXT:    s_mov_b32 s8, s1410351; GFX942-NEXT:    s_mov_b32 s9, s1510352; GFX942-NEXT:    s_mov_b32 s10, s010353; GFX942-NEXT:    s_mov_b32 s11, s110354; GFX942-NEXT:    s_mov_b32 s12, s410355; GFX942-NEXT:    s_mov_b32 s13, s510356; GFX942-NEXT:    ;;#ASMSTART10357; GFX942-NEXT:    ; use s[8:13]10358; GFX942-NEXT:    ;;#ASMEND10359; GFX942-NEXT:    s_setpc_b64 s[30:31]10360  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10361  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10362  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 2>10363  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10364  ret void10365}10366 10367define void @s_shuffle_v3p0_v4p0__7_1_2() {10368; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_2:10369; GFX900:       ; %bb.0:10370; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10371; GFX900-NEXT:    ;;#ASMSTART10372; GFX900-NEXT:    ; def s[8:15]10373; GFX900-NEXT:    ;;#ASMEND10374; GFX900-NEXT:    ;;#ASMSTART10375; GFX900-NEXT:    ; def s[16:23]10376; GFX900-NEXT:    ;;#ASMEND10377; GFX900-NEXT:    s_mov_b32 s8, s2210378; GFX900-NEXT:    s_mov_b32 s9, s2310379; GFX900-NEXT:    ;;#ASMSTART10380; GFX900-NEXT:    ; use s[8:13]10381; GFX900-NEXT:    ;;#ASMEND10382; GFX900-NEXT:    s_setpc_b64 s[30:31]10383;10384; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_2:10385; GFX90A:       ; %bb.0:10386; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10387; GFX90A-NEXT:    ;;#ASMSTART10388; GFX90A-NEXT:    ; def s[8:15]10389; GFX90A-NEXT:    ;;#ASMEND10390; GFX90A-NEXT:    ;;#ASMSTART10391; GFX90A-NEXT:    ; def s[16:23]10392; GFX90A-NEXT:    ;;#ASMEND10393; GFX90A-NEXT:    s_mov_b32 s8, s2210394; GFX90A-NEXT:    s_mov_b32 s9, s2310395; GFX90A-NEXT:    ;;#ASMSTART10396; GFX90A-NEXT:    ; use s[8:13]10397; GFX90A-NEXT:    ;;#ASMEND10398; GFX90A-NEXT:    s_setpc_b64 s[30:31]10399;10400; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_2:10401; GFX942:       ; %bb.0:10402; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10403; GFX942-NEXT:    ;;#ASMSTART10404; GFX942-NEXT:    ; def s[8:15]10405; GFX942-NEXT:    ;;#ASMEND10406; GFX942-NEXT:    ;;#ASMSTART10407; GFX942-NEXT:    ; def s[0:7]10408; GFX942-NEXT:    ;;#ASMEND10409; GFX942-NEXT:    s_mov_b32 s8, s610410; GFX942-NEXT:    s_mov_b32 s9, s710411; GFX942-NEXT:    ;;#ASMSTART10412; GFX942-NEXT:    ; use s[8:13]10413; GFX942-NEXT:    ;;#ASMEND10414; GFX942-NEXT:    s_setpc_b64 s[30:31]10415  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10416  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10417  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 2>10418  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10419  ret void10420}10421 10422define void @s_shuffle_v3p0_v4p0__7_3_2() {10423; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_2:10424; GFX900:       ; %bb.0:10425; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10426; GFX900-NEXT:    ;;#ASMSTART10427; GFX900-NEXT:    ; def s[8:15]10428; GFX900-NEXT:    ;;#ASMEND10429; GFX900-NEXT:    ;;#ASMSTART10430; GFX900-NEXT:    ; def s[4:11]10431; GFX900-NEXT:    ;;#ASMEND10432; GFX900-NEXT:    s_mov_b32 s8, s1010433; GFX900-NEXT:    s_mov_b32 s9, s1110434; GFX900-NEXT:    s_mov_b32 s10, s1410435; GFX900-NEXT:    s_mov_b32 s11, s1510436; GFX900-NEXT:    ;;#ASMSTART10437; GFX900-NEXT:    ; use s[8:13]10438; GFX900-NEXT:    ;;#ASMEND10439; GFX900-NEXT:    s_setpc_b64 s[30:31]10440;10441; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_2:10442; GFX90A:       ; %bb.0:10443; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10444; GFX90A-NEXT:    ;;#ASMSTART10445; GFX90A-NEXT:    ; def s[8:15]10446; GFX90A-NEXT:    ;;#ASMEND10447; GFX90A-NEXT:    ;;#ASMSTART10448; GFX90A-NEXT:    ; def s[4:11]10449; GFX90A-NEXT:    ;;#ASMEND10450; GFX90A-NEXT:    s_mov_b32 s8, s1010451; GFX90A-NEXT:    s_mov_b32 s9, s1110452; GFX90A-NEXT:    s_mov_b32 s10, s1410453; GFX90A-NEXT:    s_mov_b32 s11, s1510454; GFX90A-NEXT:    ;;#ASMSTART10455; GFX90A-NEXT:    ; use s[8:13]10456; GFX90A-NEXT:    ;;#ASMEND10457; GFX90A-NEXT:    s_setpc_b64 s[30:31]10458;10459; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_2:10460; GFX942:       ; %bb.0:10461; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10462; GFX942-NEXT:    ;;#ASMSTART10463; GFX942-NEXT:    ; def s[8:15]10464; GFX942-NEXT:    ;;#ASMEND10465; GFX942-NEXT:    ;;#ASMSTART10466; GFX942-NEXT:    ; def s[0:7]10467; GFX942-NEXT:    ;;#ASMEND10468; GFX942-NEXT:    s_mov_b32 s8, s610469; GFX942-NEXT:    s_mov_b32 s9, s710470; GFX942-NEXT:    s_mov_b32 s10, s1410471; GFX942-NEXT:    s_mov_b32 s11, s1510472; GFX942-NEXT:    ;;#ASMSTART10473; GFX942-NEXT:    ; use s[8:13]10474; GFX942-NEXT:    ;;#ASMEND10475; GFX942-NEXT:    s_setpc_b64 s[30:31]10476  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10477  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10478  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 2>10479  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10480  ret void10481}10482 10483define void @s_shuffle_v3p0_v4p0__7_4_2() {10484; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_2:10485; GFX900:       ; %bb.0:10486; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10487; GFX900-NEXT:    ;;#ASMSTART10488; GFX900-NEXT:    ; def s[8:15]10489; GFX900-NEXT:    ;;#ASMEND10490; GFX900-NEXT:    ;;#ASMSTART10491; GFX900-NEXT:    ; def s[4:11]10492; GFX900-NEXT:    ;;#ASMEND10493; GFX900-NEXT:    s_mov_b32 s8, s1010494; GFX900-NEXT:    s_mov_b32 s9, s1110495; GFX900-NEXT:    s_mov_b32 s10, s410496; GFX900-NEXT:    s_mov_b32 s11, s510497; GFX900-NEXT:    ;;#ASMSTART10498; GFX900-NEXT:    ; use s[8:13]10499; GFX900-NEXT:    ;;#ASMEND10500; GFX900-NEXT:    s_setpc_b64 s[30:31]10501;10502; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_2:10503; GFX90A:       ; %bb.0:10504; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10505; GFX90A-NEXT:    ;;#ASMSTART10506; GFX90A-NEXT:    ; def s[8:15]10507; GFX90A-NEXT:    ;;#ASMEND10508; GFX90A-NEXT:    ;;#ASMSTART10509; GFX90A-NEXT:    ; def s[4:11]10510; GFX90A-NEXT:    ;;#ASMEND10511; GFX90A-NEXT:    s_mov_b32 s8, s1010512; GFX90A-NEXT:    s_mov_b32 s9, s1110513; GFX90A-NEXT:    s_mov_b32 s10, s410514; GFX90A-NEXT:    s_mov_b32 s11, s510515; GFX90A-NEXT:    ;;#ASMSTART10516; GFX90A-NEXT:    ; use s[8:13]10517; GFX90A-NEXT:    ;;#ASMEND10518; GFX90A-NEXT:    s_setpc_b64 s[30:31]10519;10520; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_2:10521; GFX942:       ; %bb.0:10522; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10523; GFX942-NEXT:    ;;#ASMSTART10524; GFX942-NEXT:    ; def s[8:15]10525; GFX942-NEXT:    ;;#ASMEND10526; GFX942-NEXT:    ;;#ASMSTART10527; GFX942-NEXT:    ; def s[0:7]10528; GFX942-NEXT:    ;;#ASMEND10529; GFX942-NEXT:    s_mov_b32 s8, s610530; GFX942-NEXT:    s_mov_b32 s9, s710531; GFX942-NEXT:    s_mov_b32 s10, s010532; GFX942-NEXT:    s_mov_b32 s11, s110533; GFX942-NEXT:    ;;#ASMSTART10534; GFX942-NEXT:    ; use s[8:13]10535; GFX942-NEXT:    ;;#ASMEND10536; GFX942-NEXT:    s_setpc_b64 s[30:31]10537  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10538  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10539  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 2>10540  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10541  ret void10542}10543 10544define void @s_shuffle_v3p0_v4p0__7_5_2() {10545; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_2:10546; GFX900:       ; %bb.0:10547; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10548; GFX900-NEXT:    ;;#ASMSTART10549; GFX900-NEXT:    ; def s[12:19]10550; GFX900-NEXT:    ;;#ASMEND10551; GFX900-NEXT:    ;;#ASMSTART10552; GFX900-NEXT:    ; def s[8:15]10553; GFX900-NEXT:    ;;#ASMEND10554; GFX900-NEXT:    s_mov_b32 s8, s1410555; GFX900-NEXT:    s_mov_b32 s9, s1510556; GFX900-NEXT:    s_mov_b32 s12, s1610557; GFX900-NEXT:    s_mov_b32 s13, s1710558; GFX900-NEXT:    ;;#ASMSTART10559; GFX900-NEXT:    ; use s[8:13]10560; GFX900-NEXT:    ;;#ASMEND10561; GFX900-NEXT:    s_setpc_b64 s[30:31]10562;10563; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_2:10564; GFX90A:       ; %bb.0:10565; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10566; GFX90A-NEXT:    ;;#ASMSTART10567; GFX90A-NEXT:    ; def s[12:19]10568; GFX90A-NEXT:    ;;#ASMEND10569; GFX90A-NEXT:    ;;#ASMSTART10570; GFX90A-NEXT:    ; def s[8:15]10571; GFX90A-NEXT:    ;;#ASMEND10572; GFX90A-NEXT:    s_mov_b32 s8, s1410573; GFX90A-NEXT:    s_mov_b32 s9, s1510574; GFX90A-NEXT:    s_mov_b32 s12, s1610575; GFX90A-NEXT:    s_mov_b32 s13, s1710576; GFX90A-NEXT:    ;;#ASMSTART10577; GFX90A-NEXT:    ; use s[8:13]10578; GFX90A-NEXT:    ;;#ASMEND10579; GFX90A-NEXT:    s_setpc_b64 s[30:31]10580;10581; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_2:10582; GFX942:       ; %bb.0:10583; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10584; GFX942-NEXT:    ;;#ASMSTART10585; GFX942-NEXT:    ; def s[8:15]10586; GFX942-NEXT:    ;;#ASMEND10587; GFX942-NEXT:    ;;#ASMSTART10588; GFX942-NEXT:    ; def s[0:7]10589; GFX942-NEXT:    ;;#ASMEND10590; GFX942-NEXT:    s_mov_b32 s8, s1410591; GFX942-NEXT:    s_mov_b32 s9, s1510592; GFX942-NEXT:    s_mov_b32 s12, s410593; GFX942-NEXT:    s_mov_b32 s13, s510594; GFX942-NEXT:    ;;#ASMSTART10595; GFX942-NEXT:    ; use s[8:13]10596; GFX942-NEXT:    ;;#ASMEND10597; GFX942-NEXT:    s_setpc_b64 s[30:31]10598  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10599  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10600  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 2>10601  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10602  ret void10603}10604 10605define void @s_shuffle_v3p0_v4p0__7_6_2() {10606; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_2:10607; GFX900:       ; %bb.0:10608; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10609; GFX900-NEXT:    ;;#ASMSTART10610; GFX900-NEXT:    ; def s[8:15]10611; GFX900-NEXT:    ;;#ASMEND10612; GFX900-NEXT:    ;;#ASMSTART10613; GFX900-NEXT:    ; def s[16:23]10614; GFX900-NEXT:    ;;#ASMEND10615; GFX900-NEXT:    s_mov_b32 s8, s2210616; GFX900-NEXT:    s_mov_b32 s9, s2310617; GFX900-NEXT:    s_mov_b32 s10, s2010618; GFX900-NEXT:    s_mov_b32 s11, s2110619; GFX900-NEXT:    ;;#ASMSTART10620; GFX900-NEXT:    ; use s[8:13]10621; GFX900-NEXT:    ;;#ASMEND10622; GFX900-NEXT:    s_setpc_b64 s[30:31]10623;10624; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_2:10625; GFX90A:       ; %bb.0:10626; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10627; GFX90A-NEXT:    ;;#ASMSTART10628; GFX90A-NEXT:    ; def s[8:15]10629; GFX90A-NEXT:    ;;#ASMEND10630; GFX90A-NEXT:    ;;#ASMSTART10631; GFX90A-NEXT:    ; def s[16:23]10632; GFX90A-NEXT:    ;;#ASMEND10633; GFX90A-NEXT:    s_mov_b32 s8, s2210634; GFX90A-NEXT:    s_mov_b32 s9, s2310635; GFX90A-NEXT:    s_mov_b32 s10, s2010636; GFX90A-NEXT:    s_mov_b32 s11, s2110637; GFX90A-NEXT:    ;;#ASMSTART10638; GFX90A-NEXT:    ; use s[8:13]10639; GFX90A-NEXT:    ;;#ASMEND10640; GFX90A-NEXT:    s_setpc_b64 s[30:31]10641;10642; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_2:10643; GFX942:       ; %bb.0:10644; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10645; GFX942-NEXT:    ;;#ASMSTART10646; GFX942-NEXT:    ; def s[8:15]10647; GFX942-NEXT:    ;;#ASMEND10648; GFX942-NEXT:    ;;#ASMSTART10649; GFX942-NEXT:    ; def s[0:7]10650; GFX942-NEXT:    ;;#ASMEND10651; GFX942-NEXT:    s_mov_b32 s8, s610652; GFX942-NEXT:    s_mov_b32 s9, s710653; GFX942-NEXT:    s_mov_b32 s10, s410654; GFX942-NEXT:    s_mov_b32 s11, s510655; GFX942-NEXT:    ;;#ASMSTART10656; GFX942-NEXT:    ; use s[8:13]10657; GFX942-NEXT:    ;;#ASMEND10658; GFX942-NEXT:    s_setpc_b64 s[30:31]10659  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10660  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10661  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 2>10662  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10663  ret void10664}10665 10666define void @s_shuffle_v3p0_v4p0__u_3_3() {10667; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_3_3:10668; GFX9:       ; %bb.0:10669; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10670; GFX9-NEXT:    ;;#ASMSTART10671; GFX9-NEXT:    ; def s[4:11]10672; GFX9-NEXT:    ;;#ASMEND10673; GFX9-NEXT:    s_mov_b32 s12, s1010674; GFX9-NEXT:    s_mov_b32 s13, s1110675; GFX9-NEXT:    ;;#ASMSTART10676; GFX9-NEXT:    ; use s[8:13]10677; GFX9-NEXT:    ;;#ASMEND10678; GFX9-NEXT:    s_setpc_b64 s[30:31]10679  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10680  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 3, i32 3>10681  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10682  ret void10683}10684 10685define void @s_shuffle_v3p0_v4p0__0_3_3() {10686; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_3_3:10687; GFX9:       ; %bb.0:10688; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10689; GFX9-NEXT:    ;;#ASMSTART10690; GFX9-NEXT:    ; def s[8:15]10691; GFX9-NEXT:    ;;#ASMEND10692; GFX9-NEXT:    s_mov_b32 s10, s1410693; GFX9-NEXT:    s_mov_b32 s11, s1510694; GFX9-NEXT:    s_mov_b32 s12, s1410695; GFX9-NEXT:    s_mov_b32 s13, s1510696; GFX9-NEXT:    ;;#ASMSTART10697; GFX9-NEXT:    ; use s[8:13]10698; GFX9-NEXT:    ;;#ASMEND10699; GFX9-NEXT:    s_setpc_b64 s[30:31]10700  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10701  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 3, i32 3>10702  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10703  ret void10704}10705 10706define void @s_shuffle_v3p0_v4p0__1_3_3() {10707; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_3_3:10708; GFX9:       ; %bb.0:10709; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10710; GFX9-NEXT:    ;;#ASMSTART10711; GFX9-NEXT:    ; def s[4:11]10712; GFX9-NEXT:    ;;#ASMEND10713; GFX9-NEXT:    s_mov_b32 s8, s610714; GFX9-NEXT:    s_mov_b32 s9, s710715; GFX9-NEXT:    s_mov_b32 s12, s1010716; GFX9-NEXT:    s_mov_b32 s13, s1110717; GFX9-NEXT:    ;;#ASMSTART10718; GFX9-NEXT:    ; use s[8:13]10719; GFX9-NEXT:    ;;#ASMEND10720; GFX9-NEXT:    s_setpc_b64 s[30:31]10721  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10722  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 3, i32 3>10723  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10724  ret void10725}10726 10727define void @s_shuffle_v3p0_v4p0__2_3_3() {10728; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_3_3:10729; GFX9:       ; %bb.0:10730; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10731; GFX9-NEXT:    ;;#ASMSTART10732; GFX9-NEXT:    ; def s[4:11]10733; GFX9-NEXT:    ;;#ASMEND10734; GFX9-NEXT:    s_mov_b32 s12, s1010735; GFX9-NEXT:    s_mov_b32 s13, s1110736; GFX9-NEXT:    ;;#ASMSTART10737; GFX9-NEXT:    ; use s[8:13]10738; GFX9-NEXT:    ;;#ASMEND10739; GFX9-NEXT:    s_setpc_b64 s[30:31]10740  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10741  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 3, i32 3>10742  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10743  ret void10744}10745 10746define void @s_shuffle_v3p0_v4p0__3_3_3() {10747; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_3_3:10748; GFX9:       ; %bb.0:10749; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10750; GFX9-NEXT:    ;;#ASMSTART10751; GFX9-NEXT:    ; def s[4:11]10752; GFX9-NEXT:    ;;#ASMEND10753; GFX9-NEXT:    s_mov_b32 s8, s1010754; GFX9-NEXT:    s_mov_b32 s9, s1110755; GFX9-NEXT:    s_mov_b32 s12, s1010756; GFX9-NEXT:    s_mov_b32 s13, s1110757; GFX9-NEXT:    ;;#ASMSTART10758; GFX9-NEXT:    ; use s[8:13]10759; GFX9-NEXT:    ;;#ASMEND10760; GFX9-NEXT:    s_setpc_b64 s[30:31]10761  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10762  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 3, i32 3>10763  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10764  ret void10765}10766 10767define void @s_shuffle_v3p0_v4p0__4_3_3() {10768; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_3_3:10769; GFX9:       ; %bb.0:10770; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10771; GFX9-NEXT:    ;;#ASMSTART10772; GFX9-NEXT:    ; def s[4:11]10773; GFX9-NEXT:    ;;#ASMEND10774; GFX9-NEXT:    s_mov_b32 s12, s1010775; GFX9-NEXT:    s_mov_b32 s13, s1110776; GFX9-NEXT:    ;;#ASMSTART10777; GFX9-NEXT:    ; use s[8:13]10778; GFX9-NEXT:    ;;#ASMEND10779; GFX9-NEXT:    s_setpc_b64 s[30:31]10780  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10781  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 3, i32 3>10782  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10783  ret void10784}10785 10786define void @s_shuffle_v3p0_v4p0__5_3_3() {10787; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_3_3:10788; GFX900:       ; %bb.0:10789; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10790; GFX900-NEXT:    ;;#ASMSTART10791; GFX900-NEXT:    ; def s[4:11]10792; GFX900-NEXT:    ;;#ASMEND10793; GFX900-NEXT:    ;;#ASMSTART10794; GFX900-NEXT:    ; def s[12:19]10795; GFX900-NEXT:    ;;#ASMEND10796; GFX900-NEXT:    s_mov_b32 s8, s1410797; GFX900-NEXT:    s_mov_b32 s9, s1510798; GFX900-NEXT:    s_mov_b32 s12, s1010799; GFX900-NEXT:    s_mov_b32 s13, s1110800; GFX900-NEXT:    ;;#ASMSTART10801; GFX900-NEXT:    ; use s[8:13]10802; GFX900-NEXT:    ;;#ASMEND10803; GFX900-NEXT:    s_setpc_b64 s[30:31]10804;10805; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_3_3:10806; GFX90A:       ; %bb.0:10807; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10808; GFX90A-NEXT:    ;;#ASMSTART10809; GFX90A-NEXT:    ; def s[4:11]10810; GFX90A-NEXT:    ;;#ASMEND10811; GFX90A-NEXT:    ;;#ASMSTART10812; GFX90A-NEXT:    ; def s[12:19]10813; GFX90A-NEXT:    ;;#ASMEND10814; GFX90A-NEXT:    s_mov_b32 s8, s1410815; GFX90A-NEXT:    s_mov_b32 s9, s1510816; GFX90A-NEXT:    s_mov_b32 s12, s1010817; GFX90A-NEXT:    s_mov_b32 s13, s1110818; GFX90A-NEXT:    ;;#ASMSTART10819; GFX90A-NEXT:    ; use s[8:13]10820; GFX90A-NEXT:    ;;#ASMEND10821; GFX90A-NEXT:    s_setpc_b64 s[30:31]10822;10823; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_3_3:10824; GFX942:       ; %bb.0:10825; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10826; GFX942-NEXT:    ;;#ASMSTART10827; GFX942-NEXT:    ; def s[4:11]10828; GFX942-NEXT:    ;;#ASMEND10829; GFX942-NEXT:    s_mov_b32 s12, s1010830; GFX942-NEXT:    ;;#ASMSTART10831; GFX942-NEXT:    ; def s[0:7]10832; GFX942-NEXT:    ;;#ASMEND10833; GFX942-NEXT:    s_mov_b32 s8, s210834; GFX942-NEXT:    s_mov_b32 s9, s310835; GFX942-NEXT:    s_mov_b32 s13, s1110836; GFX942-NEXT:    ;;#ASMSTART10837; GFX942-NEXT:    ; use s[8:13]10838; GFX942-NEXT:    ;;#ASMEND10839; GFX942-NEXT:    s_setpc_b64 s[30:31]10840  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10841  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10842  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 3, i32 3>10843  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10844  ret void10845}10846 10847define void @s_shuffle_v3p0_v4p0__6_3_3() {10848; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_3_3:10849; GFX900:       ; %bb.0:10850; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10851; GFX900-NEXT:    ;;#ASMSTART10852; GFX900-NEXT:    ; def s[8:15]10853; GFX900-NEXT:    ;;#ASMEND10854; GFX900-NEXT:    ;;#ASMSTART10855; GFX900-NEXT:    ; def s[4:11]10856; GFX900-NEXT:    ;;#ASMEND10857; GFX900-NEXT:    s_mov_b32 s10, s1410858; GFX900-NEXT:    s_mov_b32 s11, s1510859; GFX900-NEXT:    s_mov_b32 s12, s1410860; GFX900-NEXT:    s_mov_b32 s13, s1510861; GFX900-NEXT:    ;;#ASMSTART10862; GFX900-NEXT:    ; use s[8:13]10863; GFX900-NEXT:    ;;#ASMEND10864; GFX900-NEXT:    s_setpc_b64 s[30:31]10865;10866; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_3_3:10867; GFX90A:       ; %bb.0:10868; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10869; GFX90A-NEXT:    ;;#ASMSTART10870; GFX90A-NEXT:    ; def s[8:15]10871; GFX90A-NEXT:    ;;#ASMEND10872; GFX90A-NEXT:    ;;#ASMSTART10873; GFX90A-NEXT:    ; def s[4:11]10874; GFX90A-NEXT:    ;;#ASMEND10875; GFX90A-NEXT:    s_mov_b32 s10, s1410876; GFX90A-NEXT:    s_mov_b32 s11, s1510877; GFX90A-NEXT:    s_mov_b32 s12, s1410878; GFX90A-NEXT:    s_mov_b32 s13, s1510879; GFX90A-NEXT:    ;;#ASMSTART10880; GFX90A-NEXT:    ; use s[8:13]10881; GFX90A-NEXT:    ;;#ASMEND10882; GFX90A-NEXT:    s_setpc_b64 s[30:31]10883;10884; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_3_3:10885; GFX942:       ; %bb.0:10886; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10887; GFX942-NEXT:    ;;#ASMSTART10888; GFX942-NEXT:    ; def s[8:15]10889; GFX942-NEXT:    ;;#ASMEND10890; GFX942-NEXT:    s_mov_b32 s12, s1410891; GFX942-NEXT:    ;;#ASMSTART10892; GFX942-NEXT:    ; def s[4:11]10893; GFX942-NEXT:    ;;#ASMEND10894; GFX942-NEXT:    s_mov_b32 s10, s1410895; GFX942-NEXT:    s_mov_b32 s11, s1510896; GFX942-NEXT:    s_mov_b32 s13, s1510897; GFX942-NEXT:    ;;#ASMSTART10898; GFX942-NEXT:    ; use s[8:13]10899; GFX942-NEXT:    ;;#ASMEND10900; GFX942-NEXT:    s_setpc_b64 s[30:31]10901  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10902  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10903  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 3, i32 3>10904  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10905  ret void10906}10907 10908define void @s_shuffle_v3p0_v4p0__7_3_3() {10909; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_3:10910; GFX900:       ; %bb.0:10911; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10912; GFX900-NEXT:    ;;#ASMSTART10913; GFX900-NEXT:    ; def s[4:11]10914; GFX900-NEXT:    ;;#ASMEND10915; GFX900-NEXT:    ;;#ASMSTART10916; GFX900-NEXT:    ; def s[12:19]10917; GFX900-NEXT:    ;;#ASMEND10918; GFX900-NEXT:    s_mov_b32 s8, s1810919; GFX900-NEXT:    s_mov_b32 s9, s1910920; GFX900-NEXT:    s_mov_b32 s12, s1010921; GFX900-NEXT:    s_mov_b32 s13, s1110922; GFX900-NEXT:    ;;#ASMSTART10923; GFX900-NEXT:    ; use s[8:13]10924; GFX900-NEXT:    ;;#ASMEND10925; GFX900-NEXT:    s_setpc_b64 s[30:31]10926;10927; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_3:10928; GFX90A:       ; %bb.0:10929; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10930; GFX90A-NEXT:    ;;#ASMSTART10931; GFX90A-NEXT:    ; def s[4:11]10932; GFX90A-NEXT:    ;;#ASMEND10933; GFX90A-NEXT:    ;;#ASMSTART10934; GFX90A-NEXT:    ; def s[12:19]10935; GFX90A-NEXT:    ;;#ASMEND10936; GFX90A-NEXT:    s_mov_b32 s8, s1810937; GFX90A-NEXT:    s_mov_b32 s9, s1910938; GFX90A-NEXT:    s_mov_b32 s12, s1010939; GFX90A-NEXT:    s_mov_b32 s13, s1110940; GFX90A-NEXT:    ;;#ASMSTART10941; GFX90A-NEXT:    ; use s[8:13]10942; GFX90A-NEXT:    ;;#ASMEND10943; GFX90A-NEXT:    s_setpc_b64 s[30:31]10944;10945; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_3:10946; GFX942:       ; %bb.0:10947; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10948; GFX942-NEXT:    ;;#ASMSTART10949; GFX942-NEXT:    ; def s[4:11]10950; GFX942-NEXT:    ;;#ASMEND10951; GFX942-NEXT:    s_mov_b32 s12, s1010952; GFX942-NEXT:    ;;#ASMSTART10953; GFX942-NEXT:    ; def s[0:7]10954; GFX942-NEXT:    ;;#ASMEND10955; GFX942-NEXT:    s_mov_b32 s8, s610956; GFX942-NEXT:    s_mov_b32 s9, s710957; GFX942-NEXT:    s_mov_b32 s13, s1110958; GFX942-NEXT:    ;;#ASMSTART10959; GFX942-NEXT:    ; use s[8:13]10960; GFX942-NEXT:    ;;#ASMEND10961; GFX942-NEXT:    s_setpc_b64 s[30:31]10962  %vec0 = call <4 x ptr> asm "; def $0", "=s"()10963  %vec1 = call <4 x ptr> asm "; def $0", "=s"()10964  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 3>10965  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)10966  ret void10967}10968 10969define void @s_shuffle_v3p0_v4p0__7_u_3() {10970; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_3:10971; GFX900:       ; %bb.0:10972; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10973; GFX900-NEXT:    ;;#ASMSTART10974; GFX900-NEXT:    ; def s[4:11]10975; GFX900-NEXT:    ;;#ASMEND10976; GFX900-NEXT:    ;;#ASMSTART10977; GFX900-NEXT:    ; def s[12:19]10978; GFX900-NEXT:    ;;#ASMEND10979; GFX900-NEXT:    s_mov_b32 s8, s1810980; GFX900-NEXT:    s_mov_b32 s9, s1910981; GFX900-NEXT:    s_mov_b32 s12, s1010982; GFX900-NEXT:    s_mov_b32 s13, s1110983; GFX900-NEXT:    ;;#ASMSTART10984; GFX900-NEXT:    ; use s[8:13]10985; GFX900-NEXT:    ;;#ASMEND10986; GFX900-NEXT:    s_setpc_b64 s[30:31]10987;10988; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_3:10989; GFX90A:       ; %bb.0:10990; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10991; GFX90A-NEXT:    ;;#ASMSTART10992; GFX90A-NEXT:    ; def s[4:11]10993; GFX90A-NEXT:    ;;#ASMEND10994; GFX90A-NEXT:    ;;#ASMSTART10995; GFX90A-NEXT:    ; def s[12:19]10996; GFX90A-NEXT:    ;;#ASMEND10997; GFX90A-NEXT:    s_mov_b32 s8, s1810998; GFX90A-NEXT:    s_mov_b32 s9, s1910999; GFX90A-NEXT:    s_mov_b32 s12, s1011000; GFX90A-NEXT:    s_mov_b32 s13, s1111001; GFX90A-NEXT:    ;;#ASMSTART11002; GFX90A-NEXT:    ; use s[8:13]11003; GFX90A-NEXT:    ;;#ASMEND11004; GFX90A-NEXT:    s_setpc_b64 s[30:31]11005;11006; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_3:11007; GFX942:       ; %bb.0:11008; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11009; GFX942-NEXT:    ;;#ASMSTART11010; GFX942-NEXT:    ; def s[8:15]11011; GFX942-NEXT:    ;;#ASMEND11012; GFX942-NEXT:    ;;#ASMSTART11013; GFX942-NEXT:    ; def s[0:7]11014; GFX942-NEXT:    ;;#ASMEND11015; GFX942-NEXT:    s_mov_b32 s8, s1411016; GFX942-NEXT:    s_mov_b32 s9, s1511017; GFX942-NEXT:    s_mov_b32 s12, s611018; GFX942-NEXT:    s_mov_b32 s13, s711019; GFX942-NEXT:    ;;#ASMSTART11020; GFX942-NEXT:    ; use s[8:13]11021; GFX942-NEXT:    ;;#ASMEND11022; GFX942-NEXT:    s_setpc_b64 s[30:31]11023  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11024  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11025  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>11026  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11027  ret void11028}11029 11030define void @s_shuffle_v3p0_v4p0__7_0_3() {11031; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_3:11032; GFX900:       ; %bb.0:11033; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11034; GFX900-NEXT:    ;;#ASMSTART11035; GFX900-NEXT:    ; def s[12:19]11036; GFX900-NEXT:    ;;#ASMEND11037; GFX900-NEXT:    ;;#ASMSTART11038; GFX900-NEXT:    ; def s[4:11]11039; GFX900-NEXT:    ;;#ASMEND11040; GFX900-NEXT:    s_mov_b32 s8, s1011041; GFX900-NEXT:    s_mov_b32 s9, s1111042; GFX900-NEXT:    s_mov_b32 s10, s1211043; GFX900-NEXT:    s_mov_b32 s11, s1311044; GFX900-NEXT:    s_mov_b32 s12, s1811045; GFX900-NEXT:    s_mov_b32 s13, s1911046; GFX900-NEXT:    ;;#ASMSTART11047; GFX900-NEXT:    ; use s[8:13]11048; GFX900-NEXT:    ;;#ASMEND11049; GFX900-NEXT:    s_setpc_b64 s[30:31]11050;11051; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_3:11052; GFX90A:       ; %bb.0:11053; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11054; GFX90A-NEXT:    ;;#ASMSTART11055; GFX90A-NEXT:    ; def s[12:19]11056; GFX90A-NEXT:    ;;#ASMEND11057; GFX90A-NEXT:    ;;#ASMSTART11058; GFX90A-NEXT:    ; def s[4:11]11059; GFX90A-NEXT:    ;;#ASMEND11060; GFX90A-NEXT:    s_mov_b32 s8, s1011061; GFX90A-NEXT:    s_mov_b32 s9, s1111062; GFX90A-NEXT:    s_mov_b32 s10, s1211063; GFX90A-NEXT:    s_mov_b32 s11, s1311064; GFX90A-NEXT:    s_mov_b32 s12, s1811065; GFX90A-NEXT:    s_mov_b32 s13, s1911066; GFX90A-NEXT:    ;;#ASMSTART11067; GFX90A-NEXT:    ; use s[8:13]11068; GFX90A-NEXT:    ;;#ASMEND11069; GFX90A-NEXT:    s_setpc_b64 s[30:31]11070;11071; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_3:11072; GFX942:       ; %bb.0:11073; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11074; GFX942-NEXT:    ;;#ASMSTART11075; GFX942-NEXT:    ; def s[8:15]11076; GFX942-NEXT:    ;;#ASMEND11077; GFX942-NEXT:    ;;#ASMSTART11078; GFX942-NEXT:    ; def s[0:7]11079; GFX942-NEXT:    ;;#ASMEND11080; GFX942-NEXT:    s_mov_b32 s8, s1411081; GFX942-NEXT:    s_mov_b32 s9, s1511082; GFX942-NEXT:    s_mov_b32 s10, s011083; GFX942-NEXT:    s_mov_b32 s11, s111084; GFX942-NEXT:    s_mov_b32 s12, s611085; GFX942-NEXT:    s_mov_b32 s13, s711086; GFX942-NEXT:    ;;#ASMSTART11087; GFX942-NEXT:    ; use s[8:13]11088; GFX942-NEXT:    ;;#ASMEND11089; GFX942-NEXT:    s_setpc_b64 s[30:31]11090  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11091  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11092  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 3>11093  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11094  ret void11095}11096 11097define void @s_shuffle_v3p0_v4p0__7_1_3() {11098; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_3:11099; GFX900:       ; %bb.0:11100; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11101; GFX900-NEXT:    ;;#ASMSTART11102; GFX900-NEXT:    ; def s[8:15]11103; GFX900-NEXT:    ;;#ASMEND11104; GFX900-NEXT:    ;;#ASMSTART11105; GFX900-NEXT:    ; def s[16:23]11106; GFX900-NEXT:    ;;#ASMEND11107; GFX900-NEXT:    s_mov_b32 s8, s2211108; GFX900-NEXT:    s_mov_b32 s9, s2311109; GFX900-NEXT:    s_mov_b32 s12, s1411110; GFX900-NEXT:    s_mov_b32 s13, s1511111; GFX900-NEXT:    ;;#ASMSTART11112; GFX900-NEXT:    ; use s[8:13]11113; GFX900-NEXT:    ;;#ASMEND11114; GFX900-NEXT:    s_setpc_b64 s[30:31]11115;11116; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_3:11117; GFX90A:       ; %bb.0:11118; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11119; GFX90A-NEXT:    ;;#ASMSTART11120; GFX90A-NEXT:    ; def s[8:15]11121; GFX90A-NEXT:    ;;#ASMEND11122; GFX90A-NEXT:    ;;#ASMSTART11123; GFX90A-NEXT:    ; def s[16:23]11124; GFX90A-NEXT:    ;;#ASMEND11125; GFX90A-NEXT:    s_mov_b32 s8, s2211126; GFX90A-NEXT:    s_mov_b32 s9, s2311127; GFX90A-NEXT:    s_mov_b32 s12, s1411128; GFX90A-NEXT:    s_mov_b32 s13, s1511129; GFX90A-NEXT:    ;;#ASMSTART11130; GFX90A-NEXT:    ; use s[8:13]11131; GFX90A-NEXT:    ;;#ASMEND11132; GFX90A-NEXT:    s_setpc_b64 s[30:31]11133;11134; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_3:11135; GFX942:       ; %bb.0:11136; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11137; GFX942-NEXT:    ;;#ASMSTART11138; GFX942-NEXT:    ; def s[8:15]11139; GFX942-NEXT:    ;;#ASMEND11140; GFX942-NEXT:    ;;#ASMSTART11141; GFX942-NEXT:    ; def s[0:7]11142; GFX942-NEXT:    ;;#ASMEND11143; GFX942-NEXT:    s_mov_b32 s8, s611144; GFX942-NEXT:    s_mov_b32 s9, s711145; GFX942-NEXT:    s_mov_b32 s12, s1411146; GFX942-NEXT:    s_mov_b32 s13, s1511147; GFX942-NEXT:    ;;#ASMSTART11148; GFX942-NEXT:    ; use s[8:13]11149; GFX942-NEXT:    ;;#ASMEND11150; GFX942-NEXT:    s_setpc_b64 s[30:31]11151  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11152  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11153  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 3>11154  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11155  ret void11156}11157 11158define void @s_shuffle_v3p0_v4p0__7_2_3() {11159; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_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:15]11164; GFX900-NEXT:    ;;#ASMEND11165; GFX900-NEXT:    ;;#ASMSTART11166; GFX900-NEXT:    ; def s[4:11]11167; GFX900-NEXT:    ;;#ASMEND11168; GFX900-NEXT:    s_mov_b32 s8, s1011169; GFX900-NEXT:    s_mov_b32 s9, s1111170; GFX900-NEXT:    s_mov_b32 s10, s1211171; GFX900-NEXT:    s_mov_b32 s11, s1311172; GFX900-NEXT:    s_mov_b32 s12, s1411173; GFX900-NEXT:    s_mov_b32 s13, s1511174; GFX900-NEXT:    ;;#ASMSTART11175; GFX900-NEXT:    ; use s[8:13]11176; GFX900-NEXT:    ;;#ASMEND11177; GFX900-NEXT:    s_setpc_b64 s[30:31]11178;11179; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_3:11180; GFX90A:       ; %bb.0:11181; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11182; GFX90A-NEXT:    ;;#ASMSTART11183; GFX90A-NEXT:    ; def s[8:15]11184; GFX90A-NEXT:    ;;#ASMEND11185; GFX90A-NEXT:    ;;#ASMSTART11186; GFX90A-NEXT:    ; def s[4:11]11187; GFX90A-NEXT:    ;;#ASMEND11188; GFX90A-NEXT:    s_mov_b32 s8, s1011189; GFX90A-NEXT:    s_mov_b32 s9, s1111190; GFX90A-NEXT:    s_mov_b32 s10, s1211191; GFX90A-NEXT:    s_mov_b32 s11, s1311192; GFX90A-NEXT:    s_mov_b32 s12, s1411193; GFX90A-NEXT:    s_mov_b32 s13, s1511194; GFX90A-NEXT:    ;;#ASMSTART11195; GFX90A-NEXT:    ; use s[8:13]11196; GFX90A-NEXT:    ;;#ASMEND11197; GFX90A-NEXT:    s_setpc_b64 s[30:31]11198;11199; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_3:11200; GFX942:       ; %bb.0:11201; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11202; GFX942-NEXT:    ;;#ASMSTART11203; GFX942-NEXT:    ; def s[8:15]11204; GFX942-NEXT:    ;;#ASMEND11205; GFX942-NEXT:    ;;#ASMSTART11206; GFX942-NEXT:    ; def s[0:7]11207; GFX942-NEXT:    ;;#ASMEND11208; GFX942-NEXT:    s_mov_b32 s8, s1411209; GFX942-NEXT:    s_mov_b32 s9, s1511210; GFX942-NEXT:    s_mov_b32 s10, s411211; GFX942-NEXT:    s_mov_b32 s11, s511212; GFX942-NEXT:    s_mov_b32 s12, s611213; GFX942-NEXT:    s_mov_b32 s13, s711214; GFX942-NEXT:    ;;#ASMSTART11215; GFX942-NEXT:    ; use s[8:13]11216; GFX942-NEXT:    ;;#ASMEND11217; GFX942-NEXT:    s_setpc_b64 s[30:31]11218  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11219  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11220  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 3>11221  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11222  ret void11223}11224 11225define void @s_shuffle_v3p0_v4p0__7_4_3() {11226; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_3:11227; GFX900:       ; %bb.0:11228; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11229; GFX900-NEXT:    ;;#ASMSTART11230; GFX900-NEXT:    ; def s[8:15]11231; GFX900-NEXT:    ;;#ASMEND11232; GFX900-NEXT:    ;;#ASMSTART11233; GFX900-NEXT:    ; def s[4:11]11234; GFX900-NEXT:    ;;#ASMEND11235; GFX900-NEXT:    s_mov_b32 s8, s1011236; GFX900-NEXT:    s_mov_b32 s9, s1111237; GFX900-NEXT:    s_mov_b32 s10, s411238; GFX900-NEXT:    s_mov_b32 s11, s511239; GFX900-NEXT:    s_mov_b32 s12, s1411240; GFX900-NEXT:    s_mov_b32 s13, s1511241; GFX900-NEXT:    ;;#ASMSTART11242; GFX900-NEXT:    ; use s[8:13]11243; GFX900-NEXT:    ;;#ASMEND11244; GFX900-NEXT:    s_setpc_b64 s[30:31]11245;11246; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_3:11247; GFX90A:       ; %bb.0:11248; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11249; GFX90A-NEXT:    ;;#ASMSTART11250; GFX90A-NEXT:    ; def s[8:15]11251; GFX90A-NEXT:    ;;#ASMEND11252; GFX90A-NEXT:    ;;#ASMSTART11253; GFX90A-NEXT:    ; def s[4:11]11254; GFX90A-NEXT:    ;;#ASMEND11255; GFX90A-NEXT:    s_mov_b32 s8, s1011256; GFX90A-NEXT:    s_mov_b32 s9, s1111257; GFX90A-NEXT:    s_mov_b32 s10, s411258; GFX90A-NEXT:    s_mov_b32 s11, s511259; GFX90A-NEXT:    s_mov_b32 s12, s1411260; GFX90A-NEXT:    s_mov_b32 s13, s1511261; GFX90A-NEXT:    ;;#ASMSTART11262; GFX90A-NEXT:    ; use s[8:13]11263; GFX90A-NEXT:    ;;#ASMEND11264; GFX90A-NEXT:    s_setpc_b64 s[30:31]11265;11266; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_3:11267; GFX942:       ; %bb.0:11268; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11269; GFX942-NEXT:    ;;#ASMSTART11270; GFX942-NEXT:    ; def s[12:19]11271; GFX942-NEXT:    ;;#ASMEND11272; GFX942-NEXT:    ;;#ASMSTART11273; GFX942-NEXT:    ; def s[0:7]11274; GFX942-NEXT:    ;;#ASMEND11275; GFX942-NEXT:    s_mov_b32 s8, s1811276; GFX942-NEXT:    s_mov_b32 s9, s1911277; GFX942-NEXT:    s_mov_b32 s10, s1211278; GFX942-NEXT:    s_mov_b32 s11, s1311279; GFX942-NEXT:    s_mov_b32 s12, s611280; GFX942-NEXT:    s_mov_b32 s13, s711281; GFX942-NEXT:    ;;#ASMSTART11282; GFX942-NEXT:    ; use s[8:13]11283; GFX942-NEXT:    ;;#ASMEND11284; GFX942-NEXT:    s_setpc_b64 s[30:31]11285  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11286  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11287  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 3>11288  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11289  ret void11290}11291 11292define void @s_shuffle_v3p0_v4p0__7_5_3() {11293; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_3:11294; GFX900:       ; %bb.0:11295; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11296; GFX900-NEXT:    ;;#ASMSTART11297; GFX900-NEXT:    ; def s[12:19]11298; GFX900-NEXT:    ;;#ASMEND11299; GFX900-NEXT:    ;;#ASMSTART11300; GFX900-NEXT:    ; def s[8:15]11301; GFX900-NEXT:    ;;#ASMEND11302; GFX900-NEXT:    s_mov_b32 s8, s1411303; GFX900-NEXT:    s_mov_b32 s9, s1511304; GFX900-NEXT:    s_mov_b32 s12, s1811305; GFX900-NEXT:    s_mov_b32 s13, s1911306; GFX900-NEXT:    ;;#ASMSTART11307; GFX900-NEXT:    ; use s[8:13]11308; GFX900-NEXT:    ;;#ASMEND11309; GFX900-NEXT:    s_setpc_b64 s[30:31]11310;11311; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_3:11312; GFX90A:       ; %bb.0:11313; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11314; GFX90A-NEXT:    ;;#ASMSTART11315; GFX90A-NEXT:    ; def s[12:19]11316; GFX90A-NEXT:    ;;#ASMEND11317; GFX90A-NEXT:    ;;#ASMSTART11318; GFX90A-NEXT:    ; def s[8:15]11319; GFX90A-NEXT:    ;;#ASMEND11320; GFX90A-NEXT:    s_mov_b32 s8, s1411321; GFX90A-NEXT:    s_mov_b32 s9, s1511322; GFX90A-NEXT:    s_mov_b32 s12, s1811323; GFX90A-NEXT:    s_mov_b32 s13, s1911324; GFX90A-NEXT:    ;;#ASMSTART11325; GFX90A-NEXT:    ; use s[8:13]11326; GFX90A-NEXT:    ;;#ASMEND11327; GFX90A-NEXT:    s_setpc_b64 s[30:31]11328;11329; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_3:11330; GFX942:       ; %bb.0:11331; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11332; GFX942-NEXT:    ;;#ASMSTART11333; GFX942-NEXT:    ; def s[8:15]11334; GFX942-NEXT:    ;;#ASMEND11335; GFX942-NEXT:    ;;#ASMSTART11336; GFX942-NEXT:    ; def s[0:7]11337; GFX942-NEXT:    ;;#ASMEND11338; GFX942-NEXT:    s_mov_b32 s8, s1411339; GFX942-NEXT:    s_mov_b32 s9, s1511340; GFX942-NEXT:    s_mov_b32 s12, s611341; GFX942-NEXT:    s_mov_b32 s13, s711342; GFX942-NEXT:    ;;#ASMSTART11343; GFX942-NEXT:    ; use s[8:13]11344; GFX942-NEXT:    ;;#ASMEND11345; GFX942-NEXT:    s_setpc_b64 s[30:31]11346  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11347  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11348  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 3>11349  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11350  ret void11351}11352 11353define void @s_shuffle_v3p0_v4p0__7_6_3() {11354; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_3:11355; GFX900:       ; %bb.0:11356; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11357; GFX900-NEXT:    ;;#ASMSTART11358; GFX900-NEXT:    ; def s[8:15]11359; GFX900-NEXT:    ;;#ASMEND11360; GFX900-NEXT:    ;;#ASMSTART11361; GFX900-NEXT:    ; def s[16:23]11362; GFX900-NEXT:    ;;#ASMEND11363; GFX900-NEXT:    s_mov_b32 s8, s2211364; GFX900-NEXT:    s_mov_b32 s9, s2311365; GFX900-NEXT:    s_mov_b32 s10, s2011366; GFX900-NEXT:    s_mov_b32 s11, s2111367; GFX900-NEXT:    s_mov_b32 s12, s1411368; GFX900-NEXT:    s_mov_b32 s13, s1511369; GFX900-NEXT:    ;;#ASMSTART11370; GFX900-NEXT:    ; use s[8:13]11371; GFX900-NEXT:    ;;#ASMEND11372; GFX900-NEXT:    s_setpc_b64 s[30:31]11373;11374; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_3:11375; GFX90A:       ; %bb.0:11376; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11377; GFX90A-NEXT:    ;;#ASMSTART11378; GFX90A-NEXT:    ; def s[8:15]11379; GFX90A-NEXT:    ;;#ASMEND11380; GFX90A-NEXT:    ;;#ASMSTART11381; GFX90A-NEXT:    ; def s[16:23]11382; GFX90A-NEXT:    ;;#ASMEND11383; GFX90A-NEXT:    s_mov_b32 s8, s2211384; GFX90A-NEXT:    s_mov_b32 s9, s2311385; GFX90A-NEXT:    s_mov_b32 s10, s2011386; GFX90A-NEXT:    s_mov_b32 s11, s2111387; GFX90A-NEXT:    s_mov_b32 s12, s1411388; GFX90A-NEXT:    s_mov_b32 s13, s1511389; GFX90A-NEXT:    ;;#ASMSTART11390; GFX90A-NEXT:    ; use s[8:13]11391; GFX90A-NEXT:    ;;#ASMEND11392; GFX90A-NEXT:    s_setpc_b64 s[30:31]11393;11394; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_3:11395; GFX942:       ; %bb.0:11396; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11397; GFX942-NEXT:    ;;#ASMSTART11398; GFX942-NEXT:    ; def s[8:15]11399; GFX942-NEXT:    ;;#ASMEND11400; GFX942-NEXT:    ;;#ASMSTART11401; GFX942-NEXT:    ; def s[0:7]11402; GFX942-NEXT:    ;;#ASMEND11403; GFX942-NEXT:    s_mov_b32 s8, s1411404; GFX942-NEXT:    s_mov_b32 s9, s1511405; GFX942-NEXT:    s_mov_b32 s10, s1211406; GFX942-NEXT:    s_mov_b32 s11, s1311407; GFX942-NEXT:    s_mov_b32 s12, s611408; GFX942-NEXT:    s_mov_b32 s13, s711409; GFX942-NEXT:    ;;#ASMSTART11410; GFX942-NEXT:    ; use s[8:13]11411; GFX942-NEXT:    ;;#ASMEND11412; GFX942-NEXT:    s_setpc_b64 s[30:31]11413  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11414  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11415  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 3>11416  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11417  ret void11418}11419 11420define void @s_shuffle_v3p0_v4p0__u_4_4() {11421; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_4_4:11422; GFX9:       ; %bb.0:11423; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11424; GFX9-NEXT:    ;;#ASMSTART11425; GFX9-NEXT:    ; use s[8:13]11426; GFX9-NEXT:    ;;#ASMEND11427; GFX9-NEXT:    s_setpc_b64 s[30:31]11428  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11429  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 4, i32 4>11430  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11431  ret void11432}11433 11434define void @s_shuffle_v3p0_v4p0__0_4_4() {11435; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_4_4:11436; GFX900:       ; %bb.0:11437; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11438; GFX900-NEXT:    ;;#ASMSTART11439; GFX900-NEXT:    ; def s[8:15]11440; GFX900-NEXT:    ;;#ASMEND11441; GFX900-NEXT:    ;;#ASMSTART11442; GFX900-NEXT:    ; use s[8:13]11443; GFX900-NEXT:    ;;#ASMEND11444; GFX900-NEXT:    s_setpc_b64 s[30:31]11445;11446; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_4_4:11447; GFX90A:       ; %bb.0:11448; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11449; GFX90A-NEXT:    ;;#ASMSTART11450; GFX90A-NEXT:    ; def s[8:15]11451; GFX90A-NEXT:    ;;#ASMEND11452; GFX90A-NEXT:    ;;#ASMSTART11453; GFX90A-NEXT:    ; use s[8:13]11454; GFX90A-NEXT:    ;;#ASMEND11455; GFX90A-NEXT:    s_setpc_b64 s[30:31]11456;11457; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_4_4:11458; GFX942:       ; %bb.0:11459; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11460; GFX942-NEXT:    ;;#ASMSTART11461; GFX942-NEXT:    ; def s[8:15]11462; GFX942-NEXT:    ;;#ASMEND11463; GFX942-NEXT:    s_nop 011464; GFX942-NEXT:    ;;#ASMSTART11465; GFX942-NEXT:    ; use s[8:13]11466; GFX942-NEXT:    ;;#ASMEND11467; GFX942-NEXT:    s_setpc_b64 s[30:31]11468  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11469  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 4, i32 4>11470  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11471  ret void11472}11473 11474define void @s_shuffle_v3p0_v4p0__1_4_4() {11475; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_4_4:11476; GFX900:       ; %bb.0:11477; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11478; GFX900-NEXT:    ;;#ASMSTART11479; GFX900-NEXT:    ; def s[4:11]11480; GFX900-NEXT:    ;;#ASMEND11481; GFX900-NEXT:    s_mov_b32 s8, s611482; GFX900-NEXT:    s_mov_b32 s9, s711483; GFX900-NEXT:    ;;#ASMSTART11484; GFX900-NEXT:    ; use s[8:13]11485; GFX900-NEXT:    ;;#ASMEND11486; GFX900-NEXT:    s_setpc_b64 s[30:31]11487;11488; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_4_4:11489; GFX90A:       ; %bb.0:11490; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11491; GFX90A-NEXT:    ;;#ASMSTART11492; GFX90A-NEXT:    ; def s[4:11]11493; GFX90A-NEXT:    ;;#ASMEND11494; GFX90A-NEXT:    s_mov_b32 s8, s611495; GFX90A-NEXT:    s_mov_b32 s9, s711496; GFX90A-NEXT:    ;;#ASMSTART11497; GFX90A-NEXT:    ; use s[8:13]11498; GFX90A-NEXT:    ;;#ASMEND11499; GFX90A-NEXT:    s_setpc_b64 s[30:31]11500;11501; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_4_4:11502; GFX942:       ; %bb.0:11503; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11504; GFX942-NEXT:    ;;#ASMSTART11505; GFX942-NEXT:    ; def s[0:7]11506; GFX942-NEXT:    ;;#ASMEND11507; GFX942-NEXT:    s_mov_b32 s8, s211508; GFX942-NEXT:    s_mov_b32 s9, s311509; GFX942-NEXT:    ;;#ASMSTART11510; GFX942-NEXT:    ; use s[8:13]11511; GFX942-NEXT:    ;;#ASMEND11512; GFX942-NEXT:    s_setpc_b64 s[30:31]11513  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11514  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 4, i32 4>11515  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11516  ret void11517}11518 11519define void @s_shuffle_v3p0_v4p0__2_4_4() {11520; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_4_4:11521; GFX900:       ; %bb.0:11522; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11523; GFX900-NEXT:    ;;#ASMSTART11524; GFX900-NEXT:    ; def s[4:11]11525; GFX900-NEXT:    ;;#ASMEND11526; GFX900-NEXT:    ;;#ASMSTART11527; GFX900-NEXT:    ; use s[8:13]11528; GFX900-NEXT:    ;;#ASMEND11529; GFX900-NEXT:    s_setpc_b64 s[30:31]11530;11531; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_4_4:11532; GFX90A:       ; %bb.0:11533; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11534; GFX90A-NEXT:    ;;#ASMSTART11535; GFX90A-NEXT:    ; def s[4:11]11536; GFX90A-NEXT:    ;;#ASMEND11537; GFX90A-NEXT:    ;;#ASMSTART11538; GFX90A-NEXT:    ; use s[8:13]11539; GFX90A-NEXT:    ;;#ASMEND11540; GFX90A-NEXT:    s_setpc_b64 s[30:31]11541;11542; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_4_4:11543; GFX942:       ; %bb.0:11544; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11545; GFX942-NEXT:    ;;#ASMSTART11546; GFX942-NEXT:    ; def s[4:11]11547; GFX942-NEXT:    ;;#ASMEND11548; GFX942-NEXT:    s_nop 011549; GFX942-NEXT:    ;;#ASMSTART11550; GFX942-NEXT:    ; use s[8:13]11551; GFX942-NEXT:    ;;#ASMEND11552; GFX942-NEXT:    s_setpc_b64 s[30:31]11553  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11554  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 4, i32 4>11555  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11556  ret void11557}11558 11559define void @s_shuffle_v3p0_v4p0__3_4_4() {11560; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_4_4:11561; GFX900:       ; %bb.0:11562; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11563; GFX900-NEXT:    ;;#ASMSTART11564; GFX900-NEXT:    ; def s[4:11]11565; GFX900-NEXT:    ;;#ASMEND11566; GFX900-NEXT:    s_mov_b32 s8, s1011567; GFX900-NEXT:    s_mov_b32 s9, s1111568; GFX900-NEXT:    ;;#ASMSTART11569; GFX900-NEXT:    ; use s[8:13]11570; GFX900-NEXT:    ;;#ASMEND11571; GFX900-NEXT:    s_setpc_b64 s[30:31]11572;11573; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_4_4:11574; GFX90A:       ; %bb.0:11575; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11576; GFX90A-NEXT:    ;;#ASMSTART11577; GFX90A-NEXT:    ; def s[4:11]11578; GFX90A-NEXT:    ;;#ASMEND11579; GFX90A-NEXT:    s_mov_b32 s8, s1011580; GFX90A-NEXT:    s_mov_b32 s9, s1111581; GFX90A-NEXT:    ;;#ASMSTART11582; GFX90A-NEXT:    ; use s[8:13]11583; GFX90A-NEXT:    ;;#ASMEND11584; GFX90A-NEXT:    s_setpc_b64 s[30:31]11585;11586; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_4_4:11587; GFX942:       ; %bb.0:11588; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11589; GFX942-NEXT:    ;;#ASMSTART11590; GFX942-NEXT:    ; def s[0:7]11591; GFX942-NEXT:    ;;#ASMEND11592; GFX942-NEXT:    s_mov_b32 s8, s611593; GFX942-NEXT:    s_mov_b32 s9, s711594; GFX942-NEXT:    ;;#ASMSTART11595; GFX942-NEXT:    ; use s[8:13]11596; GFX942-NEXT:    ;;#ASMEND11597; GFX942-NEXT:    s_setpc_b64 s[30:31]11598  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11599  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 4, i32 4>11600  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11601  ret void11602}11603 11604define void @s_shuffle_v3p0_v4p0__4_4_4() {11605; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_4_4:11606; GFX9:       ; %bb.0:11607; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11608; GFX9-NEXT:    ;;#ASMSTART11609; GFX9-NEXT:    ; use s[8:13]11610; GFX9-NEXT:    ;;#ASMEND11611; GFX9-NEXT:    s_setpc_b64 s[30:31]11612  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11613  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 4, i32 4>11614  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11615  ret void11616}11617 11618define void @s_shuffle_v3p0_v4p0__5_4_4() {11619; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_4_4:11620; GFX9:       ; %bb.0:11621; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11622; GFX9-NEXT:    ;;#ASMSTART11623; GFX9-NEXT:    ; def s[12:19]11624; GFX9-NEXT:    ;;#ASMEND11625; GFX9-NEXT:    s_mov_b32 s8, s1411626; GFX9-NEXT:    s_mov_b32 s9, s1511627; GFX9-NEXT:    s_mov_b32 s10, s1211628; GFX9-NEXT:    s_mov_b32 s11, s1311629; GFX9-NEXT:    ;;#ASMSTART11630; GFX9-NEXT:    ; use s[8:13]11631; GFX9-NEXT:    ;;#ASMEND11632; GFX9-NEXT:    s_setpc_b64 s[30:31]11633  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11634  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11635  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 4, i32 4>11636  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11637  ret void11638}11639 11640define void @s_shuffle_v3p0_v4p0__6_4_4() {11641; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_4_4:11642; GFX9:       ; %bb.0:11643; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11644; GFX9-NEXT:    ;;#ASMSTART11645; GFX9-NEXT:    ; def s[4:11]11646; GFX9-NEXT:    ;;#ASMEND11647; GFX9-NEXT:    s_mov_b32 s10, s411648; GFX9-NEXT:    s_mov_b32 s11, s511649; GFX9-NEXT:    s_mov_b32 s12, s411650; GFX9-NEXT:    s_mov_b32 s13, s511651; GFX9-NEXT:    ;;#ASMSTART11652; GFX9-NEXT:    ; use s[8:13]11653; GFX9-NEXT:    ;;#ASMEND11654; GFX9-NEXT:    s_setpc_b64 s[30:31]11655  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11656  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11657  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 4, i32 4>11658  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11659  ret void11660}11661 11662define void @s_shuffle_v3p0_v4p0__7_4_4() {11663; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_4_4:11664; GFX9:       ; %bb.0:11665; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11666; GFX9-NEXT:    ;;#ASMSTART11667; GFX9-NEXT:    ; def s[12:19]11668; GFX9-NEXT:    ;;#ASMEND11669; GFX9-NEXT:    s_mov_b32 s8, s1811670; GFX9-NEXT:    s_mov_b32 s9, s1911671; GFX9-NEXT:    s_mov_b32 s10, s1211672; GFX9-NEXT:    s_mov_b32 s11, s1311673; GFX9-NEXT:    ;;#ASMSTART11674; GFX9-NEXT:    ; use s[8:13]11675; GFX9-NEXT:    ;;#ASMEND11676; GFX9-NEXT:    s_setpc_b64 s[30:31]11677  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11678  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11679  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 4>11680  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11681  ret void11682}11683 11684define void @s_shuffle_v3p0_v4p0__7_u_4() {11685; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_u_4:11686; GFX9:       ; %bb.0:11687; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11688; GFX9-NEXT:    ;;#ASMSTART11689; GFX9-NEXT:    ; def s[12:19]11690; GFX9-NEXT:    ;;#ASMEND11691; GFX9-NEXT:    s_mov_b32 s8, s1811692; GFX9-NEXT:    s_mov_b32 s9, s1911693; GFX9-NEXT:    ;;#ASMSTART11694; GFX9-NEXT:    ; use s[8:13]11695; GFX9-NEXT:    ;;#ASMEND11696; GFX9-NEXT:    s_setpc_b64 s[30:31]11697  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11698  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11699  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>11700  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11701  ret void11702}11703 11704define void @s_shuffle_v3p0_v4p0__7_0_4() {11705; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_4:11706; GFX900:       ; %bb.0:11707; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11708; GFX900-NEXT:    ;;#ASMSTART11709; GFX900-NEXT:    ; def s[4:11]11710; GFX900-NEXT:    ;;#ASMEND11711; GFX900-NEXT:    ;;#ASMSTART11712; GFX900-NEXT:    ; def s[12:19]11713; GFX900-NEXT:    ;;#ASMEND11714; GFX900-NEXT:    s_mov_b32 s8, s1811715; GFX900-NEXT:    s_mov_b32 s9, s1911716; GFX900-NEXT:    s_mov_b32 s10, s411717; GFX900-NEXT:    s_mov_b32 s11, s511718; GFX900-NEXT:    ;;#ASMSTART11719; GFX900-NEXT:    ; use s[8:13]11720; GFX900-NEXT:    ;;#ASMEND11721; GFX900-NEXT:    s_setpc_b64 s[30:31]11722;11723; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_4:11724; GFX90A:       ; %bb.0:11725; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11726; GFX90A-NEXT:    ;;#ASMSTART11727; GFX90A-NEXT:    ; def s[4:11]11728; GFX90A-NEXT:    ;;#ASMEND11729; GFX90A-NEXT:    ;;#ASMSTART11730; GFX90A-NEXT:    ; def s[12:19]11731; GFX90A-NEXT:    ;;#ASMEND11732; GFX90A-NEXT:    s_mov_b32 s8, s1811733; GFX90A-NEXT:    s_mov_b32 s9, s1911734; GFX90A-NEXT:    s_mov_b32 s10, s411735; GFX90A-NEXT:    s_mov_b32 s11, s511736; GFX90A-NEXT:    ;;#ASMSTART11737; GFX90A-NEXT:    ; use s[8:13]11738; GFX90A-NEXT:    ;;#ASMEND11739; GFX90A-NEXT:    s_setpc_b64 s[30:31]11740;11741; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_4:11742; GFX942:       ; %bb.0:11743; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11744; GFX942-NEXT:    ;;#ASMSTART11745; GFX942-NEXT:    ; def s[0:7]11746; GFX942-NEXT:    ;;#ASMEND11747; GFX942-NEXT:    ;;#ASMSTART11748; GFX942-NEXT:    ; def s[12:19]11749; GFX942-NEXT:    ;;#ASMEND11750; GFX942-NEXT:    s_mov_b32 s8, s1811751; GFX942-NEXT:    s_mov_b32 s9, s1911752; GFX942-NEXT:    s_mov_b32 s10, s011753; GFX942-NEXT:    s_mov_b32 s11, s111754; GFX942-NEXT:    ;;#ASMSTART11755; GFX942-NEXT:    ; use s[8:13]11756; GFX942-NEXT:    ;;#ASMEND11757; GFX942-NEXT:    s_setpc_b64 s[30:31]11758  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11759  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11760  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 4>11761  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11762  ret void11763}11764 11765define void @s_shuffle_v3p0_v4p0__7_1_4() {11766; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_4:11767; GFX900:       ; %bb.0:11768; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11769; GFX900-NEXT:    ;;#ASMSTART11770; GFX900-NEXT:    ; def s[8:15]11771; GFX900-NEXT:    ;;#ASMEND11772; GFX900-NEXT:    ;;#ASMSTART11773; GFX900-NEXT:    ; def s[12:19]11774; GFX900-NEXT:    ;;#ASMEND11775; GFX900-NEXT:    s_mov_b32 s8, s1811776; GFX900-NEXT:    s_mov_b32 s9, s1911777; GFX900-NEXT:    ;;#ASMSTART11778; GFX900-NEXT:    ; use s[8:13]11779; GFX900-NEXT:    ;;#ASMEND11780; GFX900-NEXT:    s_setpc_b64 s[30:31]11781;11782; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_4:11783; GFX90A:       ; %bb.0:11784; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11785; GFX90A-NEXT:    ;;#ASMSTART11786; GFX90A-NEXT:    ; def s[8:15]11787; GFX90A-NEXT:    ;;#ASMEND11788; GFX90A-NEXT:    ;;#ASMSTART11789; GFX90A-NEXT:    ; def s[12:19]11790; GFX90A-NEXT:    ;;#ASMEND11791; GFX90A-NEXT:    s_mov_b32 s8, s1811792; GFX90A-NEXT:    s_mov_b32 s9, s1911793; GFX90A-NEXT:    ;;#ASMSTART11794; GFX90A-NEXT:    ; use s[8:13]11795; GFX90A-NEXT:    ;;#ASMEND11796; GFX90A-NEXT:    s_setpc_b64 s[30:31]11797;11798; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_4:11799; GFX942:       ; %bb.0:11800; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11801; GFX942-NEXT:    ;;#ASMSTART11802; GFX942-NEXT:    ; def s[8:15]11803; GFX942-NEXT:    ;;#ASMEND11804; GFX942-NEXT:    s_nop 011805; GFX942-NEXT:    ;;#ASMSTART11806; GFX942-NEXT:    ; def s[12:19]11807; GFX942-NEXT:    ;;#ASMEND11808; GFX942-NEXT:    s_mov_b32 s8, s1811809; GFX942-NEXT:    s_mov_b32 s9, s1911810; GFX942-NEXT:    ;;#ASMSTART11811; GFX942-NEXT:    ; use s[8:13]11812; GFX942-NEXT:    ;;#ASMEND11813; GFX942-NEXT:    s_setpc_b64 s[30:31]11814  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11815  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11816  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 4>11817  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11818  ret void11819}11820 11821define void @s_shuffle_v3p0_v4p0__7_2_4() {11822; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_4:11823; GFX900:       ; %bb.0:11824; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11825; GFX900-NEXT:    ;;#ASMSTART11826; GFX900-NEXT:    ; def s[16:23]11827; GFX900-NEXT:    ;;#ASMEND11828; GFX900-NEXT:    ;;#ASMSTART11829; GFX900-NEXT:    ; def s[12:19]11830; GFX900-NEXT:    ;;#ASMEND11831; GFX900-NEXT:    s_mov_b32 s8, s1811832; GFX900-NEXT:    s_mov_b32 s9, s1911833; GFX900-NEXT:    s_mov_b32 s10, s2011834; GFX900-NEXT:    s_mov_b32 s11, s2111835; GFX900-NEXT:    ;;#ASMSTART11836; GFX900-NEXT:    ; use s[8:13]11837; GFX900-NEXT:    ;;#ASMEND11838; GFX900-NEXT:    s_setpc_b64 s[30:31]11839;11840; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_4:11841; GFX90A:       ; %bb.0:11842; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11843; GFX90A-NEXT:    ;;#ASMSTART11844; GFX90A-NEXT:    ; def s[16:23]11845; GFX90A-NEXT:    ;;#ASMEND11846; GFX90A-NEXT:    ;;#ASMSTART11847; GFX90A-NEXT:    ; def s[12:19]11848; GFX90A-NEXT:    ;;#ASMEND11849; GFX90A-NEXT:    s_mov_b32 s8, s1811850; GFX90A-NEXT:    s_mov_b32 s9, s1911851; GFX90A-NEXT:    s_mov_b32 s10, s2011852; GFX90A-NEXT:    s_mov_b32 s11, s2111853; GFX90A-NEXT:    ;;#ASMSTART11854; GFX90A-NEXT:    ; use s[8:13]11855; GFX90A-NEXT:    ;;#ASMEND11856; GFX90A-NEXT:    s_setpc_b64 s[30:31]11857;11858; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_4:11859; GFX942:       ; %bb.0:11860; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11861; GFX942-NEXT:    ;;#ASMSTART11862; GFX942-NEXT:    ; def s[0:7]11863; GFX942-NEXT:    ;;#ASMEND11864; GFX942-NEXT:    ;;#ASMSTART11865; GFX942-NEXT:    ; def s[12:19]11866; GFX942-NEXT:    ;;#ASMEND11867; GFX942-NEXT:    s_mov_b32 s8, s1811868; GFX942-NEXT:    s_mov_b32 s9, s1911869; GFX942-NEXT:    s_mov_b32 s10, s411870; GFX942-NEXT:    s_mov_b32 s11, s511871; GFX942-NEXT:    ;;#ASMSTART11872; GFX942-NEXT:    ; use s[8:13]11873; GFX942-NEXT:    ;;#ASMEND11874; GFX942-NEXT:    s_setpc_b64 s[30:31]11875  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11876  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11877  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 4>11878  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11879  ret void11880}11881 11882define void @s_shuffle_v3p0_v4p0__7_3_4() {11883; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_3_4:11884; GFX9:       ; %bb.0:11885; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11886; GFX9-NEXT:    ;;#ASMSTART11887; GFX9-NEXT:    ; def s[4:11]11888; GFX9-NEXT:    ;;#ASMEND11889; GFX9-NEXT:    ;;#ASMSTART11890; GFX9-NEXT:    ; def s[12:19]11891; GFX9-NEXT:    ;;#ASMEND11892; GFX9-NEXT:    s_mov_b32 s8, s1811893; GFX9-NEXT:    s_mov_b32 s9, s1911894; GFX9-NEXT:    ;;#ASMSTART11895; GFX9-NEXT:    ; use s[8:13]11896; GFX9-NEXT:    ;;#ASMEND11897; GFX9-NEXT:    s_setpc_b64 s[30:31]11898  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11899  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11900  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 4>11901  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11902  ret void11903}11904 11905define void @s_shuffle_v3p0_v4p0__7_5_4() {11906; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_4:11907; GFX9:       ; %bb.0:11908; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11909; GFX9-NEXT:    ;;#ASMSTART11910; GFX9-NEXT:    ; def s[12:19]11911; GFX9-NEXT:    ;;#ASMEND11912; GFX9-NEXT:    s_mov_b32 s8, s1811913; GFX9-NEXT:    s_mov_b32 s9, s1911914; GFX9-NEXT:    s_mov_b32 s10, s1411915; GFX9-NEXT:    s_mov_b32 s11, s1511916; GFX9-NEXT:    ;;#ASMSTART11917; GFX9-NEXT:    ; use s[8:13]11918; GFX9-NEXT:    ;;#ASMEND11919; GFX9-NEXT:    s_setpc_b64 s[30:31]11920  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11921  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11922  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 4>11923  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11924  ret void11925}11926 11927define void @s_shuffle_v3p0_v4p0__7_6_4() {11928; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_6_4:11929; GFX9:       ; %bb.0:11930; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11931; GFX9-NEXT:    ;;#ASMSTART11932; GFX9-NEXT:    ; def s[12:19]11933; GFX9-NEXT:    ;;#ASMEND11934; GFX9-NEXT:    s_mov_b32 s8, s1811935; GFX9-NEXT:    s_mov_b32 s9, s1911936; GFX9-NEXT:    s_mov_b32 s10, s1611937; GFX9-NEXT:    s_mov_b32 s11, s1711938; GFX9-NEXT:    ;;#ASMSTART11939; GFX9-NEXT:    ; use s[8:13]11940; GFX9-NEXT:    ;;#ASMEND11941; GFX9-NEXT:    s_setpc_b64 s[30:31]11942  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11943  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11944  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 4>11945  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11946  ret void11947}11948 11949define void @s_shuffle_v3p0_v4p0__u_5_5() {11950; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_5_5:11951; GFX9:       ; %bb.0:11952; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11953; GFX9-NEXT:    ;;#ASMSTART11954; GFX9-NEXT:    ; def s[8:15]11955; GFX9-NEXT:    ;;#ASMEND11956; GFX9-NEXT:    s_mov_b32 s12, s1011957; GFX9-NEXT:    s_mov_b32 s13, s1111958; GFX9-NEXT:    ;;#ASMSTART11959; GFX9-NEXT:    ; use s[8:13]11960; GFX9-NEXT:    ;;#ASMEND11961; GFX9-NEXT:    s_setpc_b64 s[30:31]11962  %vec0 = call <4 x ptr> asm "; def $0", "=s"()11963  %vec1 = call <4 x ptr> asm "; def $0", "=s"()11964  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>11965  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)11966  ret void11967}11968 11969define void @s_shuffle_v3p0_v4p0__0_5_5() {11970; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_5_5:11971; GFX900:       ; %bb.0:11972; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11973; GFX900-NEXT:    ;;#ASMSTART11974; GFX900-NEXT:    ; def s[8:15]11975; GFX900-NEXT:    ;;#ASMEND11976; GFX900-NEXT:    ;;#ASMSTART11977; GFX900-NEXT:    ; def s[12:19]11978; GFX900-NEXT:    ;;#ASMEND11979; GFX900-NEXT:    s_mov_b32 s10, s1411980; GFX900-NEXT:    s_mov_b32 s11, s1511981; GFX900-NEXT:    s_mov_b32 s12, s1411982; GFX900-NEXT:    s_mov_b32 s13, s1511983; GFX900-NEXT:    ;;#ASMSTART11984; GFX900-NEXT:    ; use s[8:13]11985; GFX900-NEXT:    ;;#ASMEND11986; GFX900-NEXT:    s_setpc_b64 s[30:31]11987;11988; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_5_5:11989; GFX90A:       ; %bb.0:11990; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11991; GFX90A-NEXT:    ;;#ASMSTART11992; GFX90A-NEXT:    ; def s[8:15]11993; GFX90A-NEXT:    ;;#ASMEND11994; GFX90A-NEXT:    ;;#ASMSTART11995; GFX90A-NEXT:    ; def s[12:19]11996; GFX90A-NEXT:    ;;#ASMEND11997; GFX90A-NEXT:    s_mov_b32 s10, s1411998; GFX90A-NEXT:    s_mov_b32 s11, s1511999; GFX90A-NEXT:    s_mov_b32 s12, s1412000; GFX90A-NEXT:    s_mov_b32 s13, s1512001; GFX90A-NEXT:    ;;#ASMSTART12002; GFX90A-NEXT:    ; use s[8:13]12003; GFX90A-NEXT:    ;;#ASMEND12004; GFX90A-NEXT:    s_setpc_b64 s[30:31]12005;12006; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_5_5:12007; GFX942:       ; %bb.0:12008; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12009; GFX942-NEXT:    ;;#ASMSTART12010; GFX942-NEXT:    ; def s[8:15]12011; GFX942-NEXT:    ;;#ASMEND12012; GFX942-NEXT:    ;;#ASMSTART12013; GFX942-NEXT:    ; def s[0:7]12014; GFX942-NEXT:    ;;#ASMEND12015; GFX942-NEXT:    s_mov_b32 s10, s212016; GFX942-NEXT:    s_mov_b32 s11, s312017; GFX942-NEXT:    s_mov_b32 s12, s212018; GFX942-NEXT:    s_mov_b32 s13, s312019; GFX942-NEXT:    ;;#ASMSTART12020; GFX942-NEXT:    ; use s[8:13]12021; GFX942-NEXT:    ;;#ASMEND12022; GFX942-NEXT:    s_setpc_b64 s[30:31]12023  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12024  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12025  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 5, i32 5>12026  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12027  ret void12028}12029 12030define void @s_shuffle_v3p0_v4p0__1_5_5() {12031; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_5_5:12032; GFX900:       ; %bb.0:12033; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12034; GFX900-NEXT:    ;;#ASMSTART12035; GFX900-NEXT:    ; def s[4:11]12036; GFX900-NEXT:    ;;#ASMEND12037; GFX900-NEXT:    ;;#ASMSTART12038; GFX900-NEXT:    ; def s[8:15]12039; GFX900-NEXT:    ;;#ASMEND12040; GFX900-NEXT:    s_mov_b32 s8, s612041; GFX900-NEXT:    s_mov_b32 s9, s712042; GFX900-NEXT:    s_mov_b32 s12, s1012043; GFX900-NEXT:    s_mov_b32 s13, s1112044; GFX900-NEXT:    ;;#ASMSTART12045; GFX900-NEXT:    ; use s[8:13]12046; GFX900-NEXT:    ;;#ASMEND12047; GFX900-NEXT:    s_setpc_b64 s[30:31]12048;12049; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_5_5:12050; GFX90A:       ; %bb.0:12051; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12052; GFX90A-NEXT:    ;;#ASMSTART12053; GFX90A-NEXT:    ; def s[4:11]12054; GFX90A-NEXT:    ;;#ASMEND12055; GFX90A-NEXT:    ;;#ASMSTART12056; GFX90A-NEXT:    ; def s[8:15]12057; GFX90A-NEXT:    ;;#ASMEND12058; GFX90A-NEXT:    s_mov_b32 s8, s612059; GFX90A-NEXT:    s_mov_b32 s9, s712060; GFX90A-NEXT:    s_mov_b32 s12, s1012061; GFX90A-NEXT:    s_mov_b32 s13, s1112062; GFX90A-NEXT:    ;;#ASMSTART12063; GFX90A-NEXT:    ; use s[8:13]12064; GFX90A-NEXT:    ;;#ASMEND12065; GFX90A-NEXT:    s_setpc_b64 s[30:31]12066;12067; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_5_5:12068; GFX942:       ; %bb.0:12069; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12070; GFX942-NEXT:    ;;#ASMSTART12071; GFX942-NEXT:    ; def s[8:15]12072; GFX942-NEXT:    ;;#ASMEND12073; GFX942-NEXT:    ;;#ASMSTART12074; GFX942-NEXT:    ; def s[0:7]12075; GFX942-NEXT:    ;;#ASMEND12076; GFX942-NEXT:    s_mov_b32 s8, s212077; GFX942-NEXT:    s_mov_b32 s9, s312078; GFX942-NEXT:    s_mov_b32 s12, s1012079; GFX942-NEXT:    s_mov_b32 s13, s1112080; GFX942-NEXT:    ;;#ASMSTART12081; GFX942-NEXT:    ; use s[8:13]12082; GFX942-NEXT:    ;;#ASMEND12083; GFX942-NEXT:    s_setpc_b64 s[30:31]12084  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12085  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12086  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 5, i32 5>12087  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12088  ret void12089}12090 12091define void @s_shuffle_v3p0_v4p0__2_5_5() {12092; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_5_5:12093; GFX900:       ; %bb.0:12094; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12095; GFX900-NEXT:    ;;#ASMSTART12096; GFX900-NEXT:    ; def s[4:11]12097; GFX900-NEXT:    ;;#ASMEND12098; GFX900-NEXT:    ;;#ASMSTART12099; GFX900-NEXT:    ; def s[12:19]12100; GFX900-NEXT:    ;;#ASMEND12101; GFX900-NEXT:    s_mov_b32 s10, s1412102; GFX900-NEXT:    s_mov_b32 s11, s1512103; GFX900-NEXT:    s_mov_b32 s12, s1412104; GFX900-NEXT:    s_mov_b32 s13, s1512105; GFX900-NEXT:    ;;#ASMSTART12106; GFX900-NEXT:    ; use s[8:13]12107; GFX900-NEXT:    ;;#ASMEND12108; GFX900-NEXT:    s_setpc_b64 s[30:31]12109;12110; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_5_5:12111; GFX90A:       ; %bb.0:12112; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12113; GFX90A-NEXT:    ;;#ASMSTART12114; GFX90A-NEXT:    ; def s[4:11]12115; GFX90A-NEXT:    ;;#ASMEND12116; GFX90A-NEXT:    ;;#ASMSTART12117; GFX90A-NEXT:    ; def s[12:19]12118; GFX90A-NEXT:    ;;#ASMEND12119; GFX90A-NEXT:    s_mov_b32 s10, s1412120; GFX90A-NEXT:    s_mov_b32 s11, s1512121; GFX90A-NEXT:    s_mov_b32 s12, s1412122; GFX90A-NEXT:    s_mov_b32 s13, s1512123; GFX90A-NEXT:    ;;#ASMSTART12124; GFX90A-NEXT:    ; use s[8:13]12125; GFX90A-NEXT:    ;;#ASMEND12126; GFX90A-NEXT:    s_setpc_b64 s[30:31]12127;12128; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_5_5:12129; GFX942:       ; %bb.0:12130; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12131; GFX942-NEXT:    ;;#ASMSTART12132; GFX942-NEXT:    ; def s[4:11]12133; GFX942-NEXT:    ;;#ASMEND12134; GFX942-NEXT:    s_nop 012135; GFX942-NEXT:    ;;#ASMSTART12136; GFX942-NEXT:    ; def s[0:7]12137; GFX942-NEXT:    ;;#ASMEND12138; GFX942-NEXT:    s_mov_b32 s10, s212139; GFX942-NEXT:    s_mov_b32 s11, s312140; GFX942-NEXT:    s_mov_b32 s12, s212141; GFX942-NEXT:    s_mov_b32 s13, s312142; GFX942-NEXT:    ;;#ASMSTART12143; GFX942-NEXT:    ; use s[8:13]12144; GFX942-NEXT:    ;;#ASMEND12145; GFX942-NEXT:    s_setpc_b64 s[30:31]12146  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12147  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12148  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 5, i32 5>12149  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12150  ret void12151}12152 12153define void @s_shuffle_v3p0_v4p0__3_5_5() {12154; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_5_5:12155; GFX900:       ; %bb.0:12156; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12157; GFX900-NEXT:    ;;#ASMSTART12158; GFX900-NEXT:    ; def s[12:19]12159; GFX900-NEXT:    ;;#ASMEND12160; GFX900-NEXT:    ;;#ASMSTART12161; GFX900-NEXT:    ; def s[8:15]12162; GFX900-NEXT:    ;;#ASMEND12163; GFX900-NEXT:    s_mov_b32 s8, s1812164; GFX900-NEXT:    s_mov_b32 s9, s1912165; GFX900-NEXT:    s_mov_b32 s12, s1012166; GFX900-NEXT:    s_mov_b32 s13, s1112167; GFX900-NEXT:    ;;#ASMSTART12168; GFX900-NEXT:    ; use s[8:13]12169; GFX900-NEXT:    ;;#ASMEND12170; GFX900-NEXT:    s_setpc_b64 s[30:31]12171;12172; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_5_5:12173; GFX90A:       ; %bb.0:12174; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12175; GFX90A-NEXT:    ;;#ASMSTART12176; GFX90A-NEXT:    ; def s[12:19]12177; GFX90A-NEXT:    ;;#ASMEND12178; GFX90A-NEXT:    ;;#ASMSTART12179; GFX90A-NEXT:    ; def s[8:15]12180; GFX90A-NEXT:    ;;#ASMEND12181; GFX90A-NEXT:    s_mov_b32 s8, s1812182; GFX90A-NEXT:    s_mov_b32 s9, s1912183; GFX90A-NEXT:    s_mov_b32 s12, s1012184; GFX90A-NEXT:    s_mov_b32 s13, s1112185; GFX90A-NEXT:    ;;#ASMSTART12186; GFX90A-NEXT:    ; use s[8:13]12187; GFX90A-NEXT:    ;;#ASMEND12188; GFX90A-NEXT:    s_setpc_b64 s[30:31]12189;12190; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_5_5:12191; GFX942:       ; %bb.0:12192; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12193; GFX942-NEXT:    ;;#ASMSTART12194; GFX942-NEXT:    ; def s[8:15]12195; GFX942-NEXT:    ;;#ASMEND12196; GFX942-NEXT:    ;;#ASMSTART12197; GFX942-NEXT:    ; def s[0:7]12198; GFX942-NEXT:    ;;#ASMEND12199; GFX942-NEXT:    s_mov_b32 s8, s612200; GFX942-NEXT:    s_mov_b32 s9, s712201; GFX942-NEXT:    s_mov_b32 s12, s1012202; GFX942-NEXT:    s_mov_b32 s13, s1112203; GFX942-NEXT:    ;;#ASMSTART12204; GFX942-NEXT:    ; use s[8:13]12205; GFX942-NEXT:    ;;#ASMEND12206; GFX942-NEXT:    s_setpc_b64 s[30:31]12207  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12208  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12209  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 5, i32 5>12210  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12211  ret void12212}12213 12214define void @s_shuffle_v3p0_v4p0__4_5_5() {12215; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_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:15]12220; GFX9-NEXT:    ;;#ASMEND12221; GFX9-NEXT:    s_mov_b32 s12, s1012222; GFX9-NEXT:    s_mov_b32 s13, s1112223; GFX9-NEXT:    ;;#ASMSTART12224; GFX9-NEXT:    ; use s[8:13]12225; GFX9-NEXT:    ;;#ASMEND12226; GFX9-NEXT:    s_setpc_b64 s[30:31]12227  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12228  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12229  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 5, i32 5>12230  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12231  ret void12232}12233 12234define void @s_shuffle_v3p0_v4p0__5_5_5() {12235; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_5_5:12236; GFX9:       ; %bb.0:12237; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12238; GFX9-NEXT:    ;;#ASMSTART12239; GFX9-NEXT:    ; def s[8:15]12240; GFX9-NEXT:    ;;#ASMEND12241; GFX9-NEXT:    s_mov_b32 s8, s1012242; GFX9-NEXT:    s_mov_b32 s9, s1112243; GFX9-NEXT:    s_mov_b32 s12, s1012244; GFX9-NEXT:    s_mov_b32 s13, s1112245; GFX9-NEXT:    ;;#ASMSTART12246; GFX9-NEXT:    ; use s[8:13]12247; GFX9-NEXT:    ;;#ASMEND12248; GFX9-NEXT:    s_setpc_b64 s[30:31]12249  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12250  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12251  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 5, i32 5>12252  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12253  ret void12254}12255 12256define void @s_shuffle_v3p0_v4p0__6_5_5() {12257; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_5_5:12258; GFX9:       ; %bb.0:12259; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12260; GFX9-NEXT:    ;;#ASMSTART12261; GFX9-NEXT:    ; def s[4:11]12262; GFX9-NEXT:    ;;#ASMEND12263; GFX9-NEXT:    s_mov_b32 s10, s612264; GFX9-NEXT:    s_mov_b32 s11, s712265; GFX9-NEXT:    s_mov_b32 s12, s612266; GFX9-NEXT:    s_mov_b32 s13, s712267; GFX9-NEXT:    ;;#ASMSTART12268; GFX9-NEXT:    ; use s[8:13]12269; GFX9-NEXT:    ;;#ASMEND12270; GFX9-NEXT:    s_setpc_b64 s[30:31]12271  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12272  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12273  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 5, i32 5>12274  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12275  ret void12276}12277 12278define void @s_shuffle_v3p0_v4p0__7_5_5() {12279; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_5:12280; GFX9:       ; %bb.0:12281; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12282; GFX9-NEXT:    ;;#ASMSTART12283; GFX9-NEXT:    ; def s[8:15]12284; GFX9-NEXT:    ;;#ASMEND12285; GFX9-NEXT:    s_mov_b32 s8, s1412286; GFX9-NEXT:    s_mov_b32 s9, s1512287; GFX9-NEXT:    s_mov_b32 s12, s1012288; GFX9-NEXT:    s_mov_b32 s13, s1112289; GFX9-NEXT:    ;;#ASMSTART12290; GFX9-NEXT:    ; use s[8:13]12291; GFX9-NEXT:    ;;#ASMEND12292; GFX9-NEXT:    s_setpc_b64 s[30:31]12293  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12294  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12295  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 5>12296  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12297  ret void12298}12299 12300define void @s_shuffle_v3p0_v4p0__7_u_5() {12301; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_5:12302; GFX900:       ; %bb.0:12303; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12304; GFX900-NEXT:    ;;#ASMSTART12305; GFX900-NEXT:    ; def s[4:11]12306; GFX900-NEXT:    ;;#ASMEND12307; GFX900-NEXT:    s_mov_b32 s8, s1012308; GFX900-NEXT:    s_mov_b32 s9, s1112309; GFX900-NEXT:    s_mov_b32 s12, s612310; GFX900-NEXT:    s_mov_b32 s13, s712311; GFX900-NEXT:    ;;#ASMSTART12312; GFX900-NEXT:    ; use s[8:13]12313; GFX900-NEXT:    ;;#ASMEND12314; GFX900-NEXT:    s_setpc_b64 s[30:31]12315;12316; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_5:12317; GFX90A:       ; %bb.0:12318; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12319; GFX90A-NEXT:    ;;#ASMSTART12320; GFX90A-NEXT:    ; def s[4:11]12321; GFX90A-NEXT:    ;;#ASMEND12322; GFX90A-NEXT:    s_mov_b32 s8, s1012323; GFX90A-NEXT:    s_mov_b32 s9, s1112324; GFX90A-NEXT:    s_mov_b32 s12, s612325; GFX90A-NEXT:    s_mov_b32 s13, s712326; GFX90A-NEXT:    ;;#ASMSTART12327; GFX90A-NEXT:    ; use s[8:13]12328; GFX90A-NEXT:    ;;#ASMEND12329; GFX90A-NEXT:    s_setpc_b64 s[30:31]12330;12331; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_5:12332; GFX942:       ; %bb.0:12333; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12334; GFX942-NEXT:    ;;#ASMSTART12335; GFX942-NEXT:    ; def s[0:7]12336; GFX942-NEXT:    ;;#ASMEND12337; GFX942-NEXT:    s_mov_b32 s8, s612338; GFX942-NEXT:    s_mov_b32 s9, s712339; GFX942-NEXT:    s_mov_b32 s12, s212340; GFX942-NEXT:    s_mov_b32 s13, s312341; GFX942-NEXT:    ;;#ASMSTART12342; GFX942-NEXT:    ; use s[8:13]12343; GFX942-NEXT:    ;;#ASMEND12344; GFX942-NEXT:    s_setpc_b64 s[30:31]12345  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12346  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12347  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>12348  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12349  ret void12350}12351 12352define void @s_shuffle_v3p0_v4p0__7_0_5() {12353; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_5:12354; GFX900:       ; %bb.0:12355; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12356; GFX900-NEXT:    ;;#ASMSTART12357; GFX900-NEXT:    ; def s[4:11]12358; GFX900-NEXT:    ;;#ASMEND12359; GFX900-NEXT:    ;;#ASMSTART12360; GFX900-NEXT:    ; def s[12:19]12361; GFX900-NEXT:    ;;#ASMEND12362; GFX900-NEXT:    s_mov_b32 s8, s1812363; GFX900-NEXT:    s_mov_b32 s9, s1912364; GFX900-NEXT:    s_mov_b32 s10, s412365; GFX900-NEXT:    s_mov_b32 s11, s512366; GFX900-NEXT:    s_mov_b32 s12, s1412367; GFX900-NEXT:    s_mov_b32 s13, s1512368; GFX900-NEXT:    ;;#ASMSTART12369; GFX900-NEXT:    ; use s[8:13]12370; GFX900-NEXT:    ;;#ASMEND12371; GFX900-NEXT:    s_setpc_b64 s[30:31]12372;12373; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_5:12374; GFX90A:       ; %bb.0:12375; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12376; GFX90A-NEXT:    ;;#ASMSTART12377; GFX90A-NEXT:    ; def s[4:11]12378; GFX90A-NEXT:    ;;#ASMEND12379; GFX90A-NEXT:    ;;#ASMSTART12380; GFX90A-NEXT:    ; def s[12:19]12381; GFX90A-NEXT:    ;;#ASMEND12382; GFX90A-NEXT:    s_mov_b32 s8, s1812383; GFX90A-NEXT:    s_mov_b32 s9, s1912384; GFX90A-NEXT:    s_mov_b32 s10, s412385; GFX90A-NEXT:    s_mov_b32 s11, s512386; GFX90A-NEXT:    s_mov_b32 s12, s1412387; GFX90A-NEXT:    s_mov_b32 s13, s1512388; GFX90A-NEXT:    ;;#ASMSTART12389; GFX90A-NEXT:    ; use s[8:13]12390; GFX90A-NEXT:    ;;#ASMEND12391; GFX90A-NEXT:    s_setpc_b64 s[30:31]12392;12393; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_5:12394; GFX942:       ; %bb.0:12395; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12396; GFX942-NEXT:    ;;#ASMSTART12397; GFX942-NEXT:    ; def s[0:7]12398; GFX942-NEXT:    ;;#ASMEND12399; GFX942-NEXT:    s_nop 012400; GFX942-NEXT:    ;;#ASMSTART12401; GFX942-NEXT:    ; def s[4:11]12402; GFX942-NEXT:    ;;#ASMEND12403; GFX942-NEXT:    s_mov_b32 s8, s1012404; GFX942-NEXT:    s_mov_b32 s9, s1112405; GFX942-NEXT:    s_mov_b32 s10, s012406; GFX942-NEXT:    s_mov_b32 s11, s112407; GFX942-NEXT:    s_mov_b32 s12, s612408; GFX942-NEXT:    s_mov_b32 s13, s712409; GFX942-NEXT:    ;;#ASMSTART12410; GFX942-NEXT:    ; use s[8:13]12411; GFX942-NEXT:    ;;#ASMEND12412; GFX942-NEXT:    s_setpc_b64 s[30:31]12413  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12414  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12415  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 5>12416  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12417  ret void12418}12419 12420define void @s_shuffle_v3p0_v4p0__7_1_5() {12421; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_5:12422; GFX900:       ; %bb.0:12423; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12424; GFX900-NEXT:    ;;#ASMSTART12425; GFX900-NEXT:    ; def s[8:15]12426; GFX900-NEXT:    ;;#ASMEND12427; GFX900-NEXT:    ;;#ASMSTART12428; GFX900-NEXT:    ; def s[12:19]12429; GFX900-NEXT:    ;;#ASMEND12430; GFX900-NEXT:    s_mov_b32 s8, s1812431; GFX900-NEXT:    s_mov_b32 s9, s1912432; GFX900-NEXT:    s_mov_b32 s12, s1412433; GFX900-NEXT:    s_mov_b32 s13, s1512434; GFX900-NEXT:    ;;#ASMSTART12435; GFX900-NEXT:    ; use s[8:13]12436; GFX900-NEXT:    ;;#ASMEND12437; GFX900-NEXT:    s_setpc_b64 s[30:31]12438;12439; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_5:12440; GFX90A:       ; %bb.0:12441; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12442; GFX90A-NEXT:    ;;#ASMSTART12443; GFX90A-NEXT:    ; def s[8:15]12444; GFX90A-NEXT:    ;;#ASMEND12445; GFX90A-NEXT:    ;;#ASMSTART12446; GFX90A-NEXT:    ; def s[12:19]12447; GFX90A-NEXT:    ;;#ASMEND12448; GFX90A-NEXT:    s_mov_b32 s8, s1812449; GFX90A-NEXT:    s_mov_b32 s9, s1912450; GFX90A-NEXT:    s_mov_b32 s12, s1412451; GFX90A-NEXT:    s_mov_b32 s13, s1512452; GFX90A-NEXT:    ;;#ASMSTART12453; GFX90A-NEXT:    ; use s[8:13]12454; GFX90A-NEXT:    ;;#ASMEND12455; GFX90A-NEXT:    s_setpc_b64 s[30:31]12456;12457; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_5:12458; GFX942:       ; %bb.0:12459; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12460; GFX942-NEXT:    ;;#ASMSTART12461; GFX942-NEXT:    ; def s[8:15]12462; GFX942-NEXT:    ;;#ASMEND12463; GFX942-NEXT:    ;;#ASMSTART12464; GFX942-NEXT:    ; def s[0:7]12465; GFX942-NEXT:    ;;#ASMEND12466; GFX942-NEXT:    s_mov_b32 s8, s612467; GFX942-NEXT:    s_mov_b32 s9, s712468; GFX942-NEXT:    s_mov_b32 s12, s212469; GFX942-NEXT:    s_mov_b32 s13, s312470; GFX942-NEXT:    ;;#ASMSTART12471; GFX942-NEXT:    ; use s[8:13]12472; GFX942-NEXT:    ;;#ASMEND12473; GFX942-NEXT:    s_setpc_b64 s[30:31]12474  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12475  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12476  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 5>12477  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12478  ret void12479}12480 12481define void @s_shuffle_v3p0_v4p0__7_2_5() {12482; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_5:12483; GFX900:       ; %bb.0:12484; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12485; GFX900-NEXT:    ;;#ASMSTART12486; GFX900-NEXT:    ; def s[8:15]12487; GFX900-NEXT:    ;;#ASMEND12488; GFX900-NEXT:    ;;#ASMSTART12489; GFX900-NEXT:    ; def s[4:11]12490; GFX900-NEXT:    ;;#ASMEND12491; GFX900-NEXT:    s_mov_b32 s8, s1012492; GFX900-NEXT:    s_mov_b32 s9, s1112493; GFX900-NEXT:    s_mov_b32 s10, s1212494; GFX900-NEXT:    s_mov_b32 s11, s1312495; GFX900-NEXT:    s_mov_b32 s12, s612496; GFX900-NEXT:    s_mov_b32 s13, s712497; GFX900-NEXT:    ;;#ASMSTART12498; GFX900-NEXT:    ; use s[8:13]12499; GFX900-NEXT:    ;;#ASMEND12500; GFX900-NEXT:    s_setpc_b64 s[30:31]12501;12502; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_5:12503; GFX90A:       ; %bb.0:12504; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12505; GFX90A-NEXT:    ;;#ASMSTART12506; GFX90A-NEXT:    ; def s[8:15]12507; GFX90A-NEXT:    ;;#ASMEND12508; GFX90A-NEXT:    ;;#ASMSTART12509; GFX90A-NEXT:    ; def s[4:11]12510; GFX90A-NEXT:    ;;#ASMEND12511; GFX90A-NEXT:    s_mov_b32 s8, s1012512; GFX90A-NEXT:    s_mov_b32 s9, s1112513; GFX90A-NEXT:    s_mov_b32 s10, s1212514; GFX90A-NEXT:    s_mov_b32 s11, s1312515; GFX90A-NEXT:    s_mov_b32 s12, s612516; GFX90A-NEXT:    s_mov_b32 s13, s712517; GFX90A-NEXT:    ;;#ASMSTART12518; GFX90A-NEXT:    ; use s[8:13]12519; GFX90A-NEXT:    ;;#ASMEND12520; GFX90A-NEXT:    s_setpc_b64 s[30:31]12521;12522; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_5:12523; GFX942:       ; %bb.0:12524; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12525; GFX942-NEXT:    ;;#ASMSTART12526; GFX942-NEXT:    ; def s[12:19]12527; GFX942-NEXT:    ;;#ASMEND12528; GFX942-NEXT:    ;;#ASMSTART12529; GFX942-NEXT:    ; def s[0:7]12530; GFX942-NEXT:    ;;#ASMEND12531; GFX942-NEXT:    s_mov_b32 s8, s1812532; GFX942-NEXT:    s_mov_b32 s9, s1912533; GFX942-NEXT:    s_mov_b32 s10, s412534; GFX942-NEXT:    s_mov_b32 s11, s512535; GFX942-NEXT:    s_mov_b32 s12, s1412536; GFX942-NEXT:    s_mov_b32 s13, s1512537; GFX942-NEXT:    ;;#ASMSTART12538; GFX942-NEXT:    ; use s[8:13]12539; GFX942-NEXT:    ;;#ASMEND12540; GFX942-NEXT:    s_setpc_b64 s[30:31]12541  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12542  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12543  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 5>12544  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12545  ret void12546}12547 12548define void @s_shuffle_v3p0_v4p0__7_3_5() {12549; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_5:12550; GFX900:       ; %bb.0:12551; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12552; GFX900-NEXT:    ;;#ASMSTART12553; GFX900-NEXT:    ; def s[4:11]12554; GFX900-NEXT:    ;;#ASMEND12555; GFX900-NEXT:    ;;#ASMSTART12556; GFX900-NEXT:    ; def s[12:19]12557; GFX900-NEXT:    ;;#ASMEND12558; GFX900-NEXT:    s_mov_b32 s8, s1812559; GFX900-NEXT:    s_mov_b32 s9, s1912560; GFX900-NEXT:    s_mov_b32 s12, s1412561; GFX900-NEXT:    s_mov_b32 s13, s1512562; GFX900-NEXT:    ;;#ASMSTART12563; GFX900-NEXT:    ; use s[8:13]12564; GFX900-NEXT:    ;;#ASMEND12565; GFX900-NEXT:    s_setpc_b64 s[30:31]12566;12567; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_5:12568; GFX90A:       ; %bb.0:12569; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12570; GFX90A-NEXT:    ;;#ASMSTART12571; GFX90A-NEXT:    ; def s[4:11]12572; GFX90A-NEXT:    ;;#ASMEND12573; GFX90A-NEXT:    ;;#ASMSTART12574; GFX90A-NEXT:    ; def s[12:19]12575; GFX90A-NEXT:    ;;#ASMEND12576; GFX90A-NEXT:    s_mov_b32 s8, s1812577; GFX90A-NEXT:    s_mov_b32 s9, s1912578; GFX90A-NEXT:    s_mov_b32 s12, s1412579; GFX90A-NEXT:    s_mov_b32 s13, s1512580; GFX90A-NEXT:    ;;#ASMSTART12581; GFX90A-NEXT:    ; use s[8:13]12582; GFX90A-NEXT:    ;;#ASMEND12583; GFX90A-NEXT:    s_setpc_b64 s[30:31]12584;12585; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_5:12586; GFX942:       ; %bb.0:12587; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12588; GFX942-NEXT:    ;;#ASMSTART12589; GFX942-NEXT:    ; def s[4:11]12590; GFX942-NEXT:    ;;#ASMEND12591; GFX942-NEXT:    s_nop 012592; GFX942-NEXT:    ;;#ASMSTART12593; GFX942-NEXT:    ; def s[0:7]12594; GFX942-NEXT:    ;;#ASMEND12595; GFX942-NEXT:    s_mov_b32 s8, s612596; GFX942-NEXT:    s_mov_b32 s9, s712597; GFX942-NEXT:    s_mov_b32 s12, s212598; GFX942-NEXT:    s_mov_b32 s13, s312599; GFX942-NEXT:    ;;#ASMSTART12600; GFX942-NEXT:    ; use s[8:13]12601; GFX942-NEXT:    ;;#ASMEND12602; GFX942-NEXT:    s_setpc_b64 s[30:31]12603  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12604  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12605  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 5>12606  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12607  ret void12608}12609 12610define void @s_shuffle_v3p0_v4p0__7_4_5() {12611; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_5:12612; GFX900:       ; %bb.0:12613; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12614; GFX900-NEXT:    ;;#ASMSTART12615; GFX900-NEXT:    ; def s[4:11]12616; GFX900-NEXT:    ;;#ASMEND12617; GFX900-NEXT:    s_mov_b32 s8, s1012618; GFX900-NEXT:    s_mov_b32 s9, s1112619; GFX900-NEXT:    s_mov_b32 s10, s412620; GFX900-NEXT:    s_mov_b32 s11, s512621; GFX900-NEXT:    s_mov_b32 s12, s612622; GFX900-NEXT:    s_mov_b32 s13, s712623; GFX900-NEXT:    ;;#ASMSTART12624; GFX900-NEXT:    ; use s[8:13]12625; GFX900-NEXT:    ;;#ASMEND12626; GFX900-NEXT:    s_setpc_b64 s[30:31]12627;12628; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_5:12629; GFX90A:       ; %bb.0:12630; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12631; GFX90A-NEXT:    ;;#ASMSTART12632; GFX90A-NEXT:    ; def s[4:11]12633; GFX90A-NEXT:    ;;#ASMEND12634; GFX90A-NEXT:    s_mov_b32 s8, s1012635; GFX90A-NEXT:    s_mov_b32 s9, s1112636; GFX90A-NEXT:    s_mov_b32 s10, s412637; GFX90A-NEXT:    s_mov_b32 s11, s512638; GFX90A-NEXT:    s_mov_b32 s12, s612639; GFX90A-NEXT:    s_mov_b32 s13, s712640; GFX90A-NEXT:    ;;#ASMSTART12641; GFX90A-NEXT:    ; use s[8:13]12642; GFX90A-NEXT:    ;;#ASMEND12643; GFX90A-NEXT:    s_setpc_b64 s[30:31]12644;12645; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_5:12646; GFX942:       ; %bb.0:12647; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12648; GFX942-NEXT:    ;;#ASMSTART12649; GFX942-NEXT:    ; def s[0:7]12650; GFX942-NEXT:    ;;#ASMEND12651; GFX942-NEXT:    s_mov_b32 s8, s612652; GFX942-NEXT:    s_mov_b32 s9, s712653; GFX942-NEXT:    s_mov_b32 s10, s012654; GFX942-NEXT:    s_mov_b32 s11, s112655; GFX942-NEXT:    s_mov_b32 s12, s212656; GFX942-NEXT:    s_mov_b32 s13, s312657; GFX942-NEXT:    ;;#ASMSTART12658; GFX942-NEXT:    ; use s[8:13]12659; GFX942-NEXT:    ;;#ASMEND12660; GFX942-NEXT:    s_setpc_b64 s[30:31]12661  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12662  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12663  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 5>12664  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12665  ret void12666}12667 12668define void @s_shuffle_v3p0_v4p0__7_6_5() {12669; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_5:12670; GFX900:       ; %bb.0:12671; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12672; GFX900-NEXT:    ;;#ASMSTART12673; GFX900-NEXT:    ; def s[12:19]12674; GFX900-NEXT:    ;;#ASMEND12675; GFX900-NEXT:    s_mov_b32 s8, s1812676; GFX900-NEXT:    s_mov_b32 s9, s1912677; GFX900-NEXT:    s_mov_b32 s10, s1612678; GFX900-NEXT:    s_mov_b32 s11, s1712679; GFX900-NEXT:    s_mov_b32 s12, s1412680; GFX900-NEXT:    s_mov_b32 s13, s1512681; GFX900-NEXT:    ;;#ASMSTART12682; GFX900-NEXT:    ; use s[8:13]12683; GFX900-NEXT:    ;;#ASMEND12684; GFX900-NEXT:    s_setpc_b64 s[30:31]12685;12686; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_5:12687; GFX90A:       ; %bb.0:12688; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12689; GFX90A-NEXT:    ;;#ASMSTART12690; GFX90A-NEXT:    ; def s[12:19]12691; GFX90A-NEXT:    ;;#ASMEND12692; GFX90A-NEXT:    s_mov_b32 s8, s1812693; GFX90A-NEXT:    s_mov_b32 s9, s1912694; GFX90A-NEXT:    s_mov_b32 s10, s1612695; GFX90A-NEXT:    s_mov_b32 s11, s1712696; GFX90A-NEXT:    s_mov_b32 s12, s1412697; GFX90A-NEXT:    s_mov_b32 s13, s1512698; GFX90A-NEXT:    ;;#ASMSTART12699; GFX90A-NEXT:    ; use s[8:13]12700; GFX90A-NEXT:    ;;#ASMEND12701; GFX90A-NEXT:    s_setpc_b64 s[30:31]12702;12703; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_5:12704; GFX942:       ; %bb.0:12705; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12706; GFX942-NEXT:    ;;#ASMSTART12707; GFX942-NEXT:    ; def s[0:7]12708; GFX942-NEXT:    ;;#ASMEND12709; GFX942-NEXT:    s_mov_b32 s8, s612710; GFX942-NEXT:    s_mov_b32 s9, s712711; GFX942-NEXT:    s_mov_b32 s10, s412712; GFX942-NEXT:    s_mov_b32 s11, s512713; GFX942-NEXT:    s_mov_b32 s12, s212714; GFX942-NEXT:    s_mov_b32 s13, s312715; GFX942-NEXT:    ;;#ASMSTART12716; GFX942-NEXT:    ; use s[8:13]12717; GFX942-NEXT:    ;;#ASMEND12718; GFX942-NEXT:    s_setpc_b64 s[30:31]12719  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12720  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12721  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 5>12722  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12723  ret void12724}12725 12726define void @s_shuffle_v3p0_v4p0__u_6_6() {12727; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_6_6:12728; GFX9:       ; %bb.0:12729; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12730; GFX9-NEXT:    ;;#ASMSTART12731; GFX9-NEXT:    ; def s[8:15]12732; GFX9-NEXT:    ;;#ASMEND12733; GFX9-NEXT:    s_mov_b32 s10, s1212734; GFX9-NEXT:    s_mov_b32 s11, s1312735; GFX9-NEXT:    ;;#ASMSTART12736; GFX9-NEXT:    ; use s[8:13]12737; GFX9-NEXT:    ;;#ASMEND12738; GFX9-NEXT:    s_setpc_b64 s[30:31]12739  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12740  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12741  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>12742  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12743  ret void12744}12745 12746define void @s_shuffle_v3p0_v4p0__0_6_6() {12747; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_6_6:12748; GFX900:       ; %bb.0:12749; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12750; GFX900-NEXT:    ;;#ASMSTART12751; GFX900-NEXT:    ; def s[8:15]12752; GFX900-NEXT:    ;;#ASMEND12753; GFX900-NEXT:    ;;#ASMSTART12754; GFX900-NEXT:    ; def s[12:19]12755; GFX900-NEXT:    ;;#ASMEND12756; GFX900-NEXT:    s_mov_b32 s10, s1612757; GFX900-NEXT:    s_mov_b32 s11, s1712758; GFX900-NEXT:    s_mov_b32 s12, s1612759; GFX900-NEXT:    s_mov_b32 s13, s1712760; GFX900-NEXT:    ;;#ASMSTART12761; GFX900-NEXT:    ; use s[8:13]12762; GFX900-NEXT:    ;;#ASMEND12763; GFX900-NEXT:    s_setpc_b64 s[30:31]12764;12765; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_6_6:12766; GFX90A:       ; %bb.0:12767; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12768; GFX90A-NEXT:    ;;#ASMSTART12769; GFX90A-NEXT:    ; def s[8:15]12770; GFX90A-NEXT:    ;;#ASMEND12771; GFX90A-NEXT:    ;;#ASMSTART12772; GFX90A-NEXT:    ; def s[12:19]12773; GFX90A-NEXT:    ;;#ASMEND12774; GFX90A-NEXT:    s_mov_b32 s10, s1612775; GFX90A-NEXT:    s_mov_b32 s11, s1712776; GFX90A-NEXT:    s_mov_b32 s12, s1612777; GFX90A-NEXT:    s_mov_b32 s13, s1712778; GFX90A-NEXT:    ;;#ASMSTART12779; GFX90A-NEXT:    ; use s[8:13]12780; GFX90A-NEXT:    ;;#ASMEND12781; GFX90A-NEXT:    s_setpc_b64 s[30:31]12782;12783; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_6_6:12784; GFX942:       ; %bb.0:12785; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12786; GFX942-NEXT:    ;;#ASMSTART12787; GFX942-NEXT:    ; def s[8:15]12788; GFX942-NEXT:    ;;#ASMEND12789; GFX942-NEXT:    ;;#ASMSTART12790; GFX942-NEXT:    ; def s[0:7]12791; GFX942-NEXT:    ;;#ASMEND12792; GFX942-NEXT:    s_mov_b32 s10, s412793; GFX942-NEXT:    s_mov_b32 s11, s512794; GFX942-NEXT:    s_mov_b32 s12, s412795; GFX942-NEXT:    s_mov_b32 s13, s512796; GFX942-NEXT:    ;;#ASMSTART12797; GFX942-NEXT:    ; use s[8:13]12798; GFX942-NEXT:    ;;#ASMEND12799; GFX942-NEXT:    s_setpc_b64 s[30:31]12800  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12801  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12802  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 6, i32 6>12803  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12804  ret void12805}12806 12807define void @s_shuffle_v3p0_v4p0__1_6_6() {12808; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_6_6:12809; GFX900:       ; %bb.0:12810; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12811; GFX900-NEXT:    ;;#ASMSTART12812; GFX900-NEXT:    ; def s[4:11]12813; GFX900-NEXT:    ;;#ASMEND12814; GFX900-NEXT:    ;;#ASMSTART12815; GFX900-NEXT:    ; def s[8:15]12816; GFX900-NEXT:    ;;#ASMEND12817; GFX900-NEXT:    s_mov_b32 s8, s612818; GFX900-NEXT:    s_mov_b32 s9, s712819; GFX900-NEXT:    s_mov_b32 s10, s1212820; GFX900-NEXT:    s_mov_b32 s11, s1312821; GFX900-NEXT:    ;;#ASMSTART12822; GFX900-NEXT:    ; use s[8:13]12823; GFX900-NEXT:    ;;#ASMEND12824; GFX900-NEXT:    s_setpc_b64 s[30:31]12825;12826; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_6_6:12827; GFX90A:       ; %bb.0:12828; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12829; GFX90A-NEXT:    ;;#ASMSTART12830; GFX90A-NEXT:    ; def s[4:11]12831; GFX90A-NEXT:    ;;#ASMEND12832; GFX90A-NEXT:    ;;#ASMSTART12833; GFX90A-NEXT:    ; def s[8:15]12834; GFX90A-NEXT:    ;;#ASMEND12835; GFX90A-NEXT:    s_mov_b32 s8, s612836; GFX90A-NEXT:    s_mov_b32 s9, s712837; GFX90A-NEXT:    s_mov_b32 s10, s1212838; GFX90A-NEXT:    s_mov_b32 s11, s1312839; GFX90A-NEXT:    ;;#ASMSTART12840; GFX90A-NEXT:    ; use s[8:13]12841; GFX90A-NEXT:    ;;#ASMEND12842; GFX90A-NEXT:    s_setpc_b64 s[30:31]12843;12844; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_6_6:12845; GFX942:       ; %bb.0:12846; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12847; GFX942-NEXT:    ;;#ASMSTART12848; GFX942-NEXT:    ; def s[8:15]12849; GFX942-NEXT:    ;;#ASMEND12850; GFX942-NEXT:    ;;#ASMSTART12851; GFX942-NEXT:    ; def s[0:7]12852; GFX942-NEXT:    ;;#ASMEND12853; GFX942-NEXT:    s_mov_b32 s8, s212854; GFX942-NEXT:    s_mov_b32 s9, s312855; GFX942-NEXT:    s_mov_b32 s10, s1212856; GFX942-NEXT:    s_mov_b32 s11, s1312857; GFX942-NEXT:    ;;#ASMSTART12858; GFX942-NEXT:    ; use s[8:13]12859; GFX942-NEXT:    ;;#ASMEND12860; GFX942-NEXT:    s_setpc_b64 s[30:31]12861  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12862  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12863  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 6, i32 6>12864  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12865  ret void12866}12867 12868define void @s_shuffle_v3p0_v4p0__2_6_6() {12869; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_6_6:12870; GFX900:       ; %bb.0:12871; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12872; GFX900-NEXT:    ;;#ASMSTART12873; GFX900-NEXT:    ; def s[4:11]12874; GFX900-NEXT:    ;;#ASMEND12875; GFX900-NEXT:    ;;#ASMSTART12876; GFX900-NEXT:    ; def s[12:19]12877; GFX900-NEXT:    ;;#ASMEND12878; GFX900-NEXT:    s_mov_b32 s10, s1612879; GFX900-NEXT:    s_mov_b32 s11, s1712880; GFX900-NEXT:    s_mov_b32 s12, s1612881; GFX900-NEXT:    s_mov_b32 s13, s1712882; GFX900-NEXT:    ;;#ASMSTART12883; GFX900-NEXT:    ; use s[8:13]12884; GFX900-NEXT:    ;;#ASMEND12885; GFX900-NEXT:    s_setpc_b64 s[30:31]12886;12887; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_6_6:12888; GFX90A:       ; %bb.0:12889; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12890; GFX90A-NEXT:    ;;#ASMSTART12891; GFX90A-NEXT:    ; def s[4:11]12892; GFX90A-NEXT:    ;;#ASMEND12893; GFX90A-NEXT:    ;;#ASMSTART12894; GFX90A-NEXT:    ; def s[12:19]12895; GFX90A-NEXT:    ;;#ASMEND12896; GFX90A-NEXT:    s_mov_b32 s10, s1612897; GFX90A-NEXT:    s_mov_b32 s11, s1712898; GFX90A-NEXT:    s_mov_b32 s12, s1612899; GFX90A-NEXT:    s_mov_b32 s13, s1712900; GFX90A-NEXT:    ;;#ASMSTART12901; GFX90A-NEXT:    ; use s[8:13]12902; GFX90A-NEXT:    ;;#ASMEND12903; GFX90A-NEXT:    s_setpc_b64 s[30:31]12904;12905; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_6_6:12906; GFX942:       ; %bb.0:12907; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12908; GFX942-NEXT:    ;;#ASMSTART12909; GFX942-NEXT:    ; def s[4:11]12910; GFX942-NEXT:    ;;#ASMEND12911; GFX942-NEXT:    s_nop 012912; GFX942-NEXT:    ;;#ASMSTART12913; GFX942-NEXT:    ; def s[0:7]12914; GFX942-NEXT:    ;;#ASMEND12915; GFX942-NEXT:    s_mov_b32 s10, s412916; GFX942-NEXT:    s_mov_b32 s11, s512917; GFX942-NEXT:    s_mov_b32 s12, s412918; GFX942-NEXT:    s_mov_b32 s13, s512919; GFX942-NEXT:    ;;#ASMSTART12920; GFX942-NEXT:    ; use s[8:13]12921; GFX942-NEXT:    ;;#ASMEND12922; GFX942-NEXT:    s_setpc_b64 s[30:31]12923  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12924  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12925  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 6, i32 6>12926  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12927  ret void12928}12929 12930define void @s_shuffle_v3p0_v4p0__3_6_6() {12931; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_6_6:12932; GFX900:       ; %bb.0:12933; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12934; GFX900-NEXT:    ;;#ASMSTART12935; GFX900-NEXT:    ; def s[12:19]12936; GFX900-NEXT:    ;;#ASMEND12937; GFX900-NEXT:    ;;#ASMSTART12938; GFX900-NEXT:    ; def s[8:15]12939; GFX900-NEXT:    ;;#ASMEND12940; GFX900-NEXT:    s_mov_b32 s8, s1812941; GFX900-NEXT:    s_mov_b32 s9, s1912942; GFX900-NEXT:    s_mov_b32 s10, s1212943; GFX900-NEXT:    s_mov_b32 s11, s1312944; GFX900-NEXT:    ;;#ASMSTART12945; GFX900-NEXT:    ; use s[8:13]12946; GFX900-NEXT:    ;;#ASMEND12947; GFX900-NEXT:    s_setpc_b64 s[30:31]12948;12949; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_6_6:12950; GFX90A:       ; %bb.0:12951; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12952; GFX90A-NEXT:    ;;#ASMSTART12953; GFX90A-NEXT:    ; def s[12:19]12954; GFX90A-NEXT:    ;;#ASMEND12955; GFX90A-NEXT:    ;;#ASMSTART12956; GFX90A-NEXT:    ; def s[8:15]12957; GFX90A-NEXT:    ;;#ASMEND12958; GFX90A-NEXT:    s_mov_b32 s8, s1812959; GFX90A-NEXT:    s_mov_b32 s9, s1912960; GFX90A-NEXT:    s_mov_b32 s10, s1212961; GFX90A-NEXT:    s_mov_b32 s11, s1312962; GFX90A-NEXT:    ;;#ASMSTART12963; GFX90A-NEXT:    ; use s[8:13]12964; GFX90A-NEXT:    ;;#ASMEND12965; GFX90A-NEXT:    s_setpc_b64 s[30:31]12966;12967; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_6_6:12968; GFX942:       ; %bb.0:12969; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12970; GFX942-NEXT:    ;;#ASMSTART12971; GFX942-NEXT:    ; def s[8:15]12972; GFX942-NEXT:    ;;#ASMEND12973; GFX942-NEXT:    ;;#ASMSTART12974; GFX942-NEXT:    ; def s[0:7]12975; GFX942-NEXT:    ;;#ASMEND12976; GFX942-NEXT:    s_mov_b32 s8, s612977; GFX942-NEXT:    s_mov_b32 s9, s712978; GFX942-NEXT:    s_mov_b32 s10, s1212979; GFX942-NEXT:    s_mov_b32 s11, s1312980; GFX942-NEXT:    ;;#ASMSTART12981; GFX942-NEXT:    ; use s[8:13]12982; GFX942-NEXT:    ;;#ASMEND12983; GFX942-NEXT:    s_setpc_b64 s[30:31]12984  %vec0 = call <4 x ptr> asm "; def $0", "=s"()12985  %vec1 = call <4 x ptr> asm "; def $0", "=s"()12986  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 6, i32 6>12987  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)12988  ret void12989}12990 12991define void @s_shuffle_v3p0_v4p0__4_6_6() {12992; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_6_6:12993; GFX9:       ; %bb.0:12994; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)12995; GFX9-NEXT:    ;;#ASMSTART12996; GFX9-NEXT:    ; def s[8:15]12997; GFX9-NEXT:    ;;#ASMEND12998; GFX9-NEXT:    s_mov_b32 s10, s1212999; GFX9-NEXT:    s_mov_b32 s11, s1313000; GFX9-NEXT:    ;;#ASMSTART13001; GFX9-NEXT:    ; use s[8:13]13002; GFX9-NEXT:    ;;#ASMEND13003; GFX9-NEXT:    s_setpc_b64 s[30:31]13004  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13005  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13006  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 6, i32 6>13007  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13008  ret void13009}13010 13011define void @s_shuffle_v3p0_v4p0__5_6_6() {13012; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_6_6:13013; GFX9:       ; %bb.0:13014; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13015; GFX9-NEXT:    ;;#ASMSTART13016; GFX9-NEXT:    ; def s[8:15]13017; GFX9-NEXT:    ;;#ASMEND13018; GFX9-NEXT:    s_mov_b32 s8, s1013019; GFX9-NEXT:    s_mov_b32 s9, s1113020; GFX9-NEXT:    s_mov_b32 s10, s1213021; GFX9-NEXT:    s_mov_b32 s11, s1313022; GFX9-NEXT:    ;;#ASMSTART13023; GFX9-NEXT:    ; use s[8:13]13024; GFX9-NEXT:    ;;#ASMEND13025; GFX9-NEXT:    s_setpc_b64 s[30:31]13026  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13027  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13028  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 6, i32 6>13029  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13030  ret void13031}13032 13033define void @s_shuffle_v3p0_v4p0__6_6_6() {13034; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_6_6:13035; GFX9:       ; %bb.0:13036; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13037; GFX9-NEXT:    ;;#ASMSTART13038; GFX9-NEXT:    ; def s[4:11]13039; GFX9-NEXT:    ;;#ASMEND13040; GFX9-NEXT:    s_mov_b32 s10, s813041; GFX9-NEXT:    s_mov_b32 s11, s913042; GFX9-NEXT:    s_mov_b32 s12, s813043; GFX9-NEXT:    s_mov_b32 s13, s913044; GFX9-NEXT:    ;;#ASMSTART13045; GFX9-NEXT:    ; use s[8:13]13046; GFX9-NEXT:    ;;#ASMEND13047; GFX9-NEXT:    s_setpc_b64 s[30:31]13048  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13049  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13050  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 6, i32 6>13051  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13052  ret void13053}13054 13055define void @s_shuffle_v3p0_v4p0__7_6_6() {13056; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_6_6:13057; GFX9:       ; %bb.0:13058; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13059; GFX9-NEXT:    ;;#ASMSTART13060; GFX9-NEXT:    ; def s[8:15]13061; GFX9-NEXT:    ;;#ASMEND13062; GFX9-NEXT:    s_mov_b32 s8, s1413063; GFX9-NEXT:    s_mov_b32 s9, s1513064; GFX9-NEXT:    s_mov_b32 s10, s1213065; GFX9-NEXT:    s_mov_b32 s11, s1313066; GFX9-NEXT:    ;;#ASMSTART13067; GFX9-NEXT:    ; use s[8:13]13068; GFX9-NEXT:    ;;#ASMEND13069; GFX9-NEXT:    s_setpc_b64 s[30:31]13070  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13071  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13072  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 6>13073  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13074  ret void13075}13076 13077define void @s_shuffle_v3p0_v4p0__7_u_6() {13078; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_u_6:13079; GFX9:       ; %bb.0:13080; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13081; GFX9-NEXT:    ;;#ASMSTART13082; GFX9-NEXT:    ; def s[8:15]13083; GFX9-NEXT:    ;;#ASMEND13084; GFX9-NEXT:    s_mov_b32 s8, s1413085; GFX9-NEXT:    s_mov_b32 s9, s1513086; GFX9-NEXT:    ;;#ASMSTART13087; GFX9-NEXT:    ; use s[8:13]13088; GFX9-NEXT:    ;;#ASMEND13089; GFX9-NEXT:    s_setpc_b64 s[30:31]13090  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13091  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13092  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>13093  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13094  ret void13095}13096 13097define void @s_shuffle_v3p0_v4p0__7_0_6() {13098; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_6:13099; GFX900:       ; %bb.0:13100; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13101; GFX900-NEXT:    ;;#ASMSTART13102; GFX900-NEXT:    ; def s[4:11]13103; GFX900-NEXT:    ;;#ASMEND13104; GFX900-NEXT:    ;;#ASMSTART13105; GFX900-NEXT:    ; def s[8:15]13106; GFX900-NEXT:    ;;#ASMEND13107; GFX900-NEXT:    s_mov_b32 s8, s1413108; GFX900-NEXT:    s_mov_b32 s9, s1513109; GFX900-NEXT:    s_mov_b32 s10, s413110; GFX900-NEXT:    s_mov_b32 s11, s513111; GFX900-NEXT:    ;;#ASMSTART13112; GFX900-NEXT:    ; use s[8:13]13113; GFX900-NEXT:    ;;#ASMEND13114; GFX900-NEXT:    s_setpc_b64 s[30:31]13115;13116; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_6:13117; GFX90A:       ; %bb.0:13118; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13119; GFX90A-NEXT:    ;;#ASMSTART13120; GFX90A-NEXT:    ; def s[4:11]13121; GFX90A-NEXT:    ;;#ASMEND13122; GFX90A-NEXT:    ;;#ASMSTART13123; GFX90A-NEXT:    ; def s[8:15]13124; GFX90A-NEXT:    ;;#ASMEND13125; GFX90A-NEXT:    s_mov_b32 s8, s1413126; GFX90A-NEXT:    s_mov_b32 s9, s1513127; GFX90A-NEXT:    s_mov_b32 s10, s413128; GFX90A-NEXT:    s_mov_b32 s11, s513129; GFX90A-NEXT:    ;;#ASMSTART13130; GFX90A-NEXT:    ; use s[8:13]13131; GFX90A-NEXT:    ;;#ASMEND13132; GFX90A-NEXT:    s_setpc_b64 s[30:31]13133;13134; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_6:13135; GFX942:       ; %bb.0:13136; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13137; GFX942-NEXT:    ;;#ASMSTART13138; GFX942-NEXT:    ; def s[8:15]13139; GFX942-NEXT:    ;;#ASMEND13140; GFX942-NEXT:    ;;#ASMSTART13141; GFX942-NEXT:    ; def s[0:7]13142; GFX942-NEXT:    ;;#ASMEND13143; GFX942-NEXT:    s_mov_b32 s8, s1413144; GFX942-NEXT:    s_mov_b32 s9, s1513145; GFX942-NEXT:    s_mov_b32 s10, s013146; GFX942-NEXT:    s_mov_b32 s11, s113147; GFX942-NEXT:    ;;#ASMSTART13148; GFX942-NEXT:    ; use s[8:13]13149; GFX942-NEXT:    ;;#ASMEND13150; GFX942-NEXT:    s_setpc_b64 s[30:31]13151  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13152  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13153  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 6>13154  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13155  ret void13156}13157 13158define void @s_shuffle_v3p0_v4p0__7_1_6() {13159; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_6:13160; GFX900:       ; %bb.0:13161; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13162; GFX900-NEXT:    ;;#ASMSTART13163; GFX900-NEXT:    ; def s[8:15]13164; GFX900-NEXT:    ;;#ASMEND13165; GFX900-NEXT:    ;;#ASMSTART13166; GFX900-NEXT:    ; def s[12:19]13167; GFX900-NEXT:    ;;#ASMEND13168; GFX900-NEXT:    s_mov_b32 s8, s1813169; GFX900-NEXT:    s_mov_b32 s9, s1913170; GFX900-NEXT:    s_mov_b32 s12, s1613171; GFX900-NEXT:    s_mov_b32 s13, s1713172; GFX900-NEXT:    ;;#ASMSTART13173; GFX900-NEXT:    ; use s[8:13]13174; GFX900-NEXT:    ;;#ASMEND13175; GFX900-NEXT:    s_setpc_b64 s[30:31]13176;13177; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_6:13178; GFX90A:       ; %bb.0:13179; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13180; GFX90A-NEXT:    ;;#ASMSTART13181; GFX90A-NEXT:    ; def s[8:15]13182; GFX90A-NEXT:    ;;#ASMEND13183; GFX90A-NEXT:    ;;#ASMSTART13184; GFX90A-NEXT:    ; def s[12:19]13185; GFX90A-NEXT:    ;;#ASMEND13186; GFX90A-NEXT:    s_mov_b32 s8, s1813187; GFX90A-NEXT:    s_mov_b32 s9, s1913188; GFX90A-NEXT:    s_mov_b32 s12, s1613189; GFX90A-NEXT:    s_mov_b32 s13, s1713190; GFX90A-NEXT:    ;;#ASMSTART13191; GFX90A-NEXT:    ; use s[8:13]13192; GFX90A-NEXT:    ;;#ASMEND13193; GFX90A-NEXT:    s_setpc_b64 s[30:31]13194;13195; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_6:13196; GFX942:       ; %bb.0:13197; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13198; GFX942-NEXT:    ;;#ASMSTART13199; GFX942-NEXT:    ; def s[8:15]13200; GFX942-NEXT:    ;;#ASMEND13201; GFX942-NEXT:    ;;#ASMSTART13202; GFX942-NEXT:    ; def s[0:7]13203; GFX942-NEXT:    ;;#ASMEND13204; GFX942-NEXT:    s_mov_b32 s8, s613205; GFX942-NEXT:    s_mov_b32 s9, s713206; GFX942-NEXT:    s_mov_b32 s12, s413207; GFX942-NEXT:    s_mov_b32 s13, s513208; GFX942-NEXT:    ;;#ASMSTART13209; GFX942-NEXT:    ; use s[8:13]13210; GFX942-NEXT:    ;;#ASMEND13211; GFX942-NEXT:    s_setpc_b64 s[30:31]13212  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13213  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13214  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 6>13215  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13216  ret void13217}13218 13219define void @s_shuffle_v3p0_v4p0__7_2_6() {13220; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_6:13221; GFX900:       ; %bb.0:13222; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13223; GFX900-NEXT:    ;;#ASMSTART13224; GFX900-NEXT:    ; def s[12:19]13225; GFX900-NEXT:    ;;#ASMEND13226; GFX900-NEXT:    ;;#ASMSTART13227; GFX900-NEXT:    ; def s[8:15]13228; GFX900-NEXT:    ;;#ASMEND13229; GFX900-NEXT:    s_mov_b32 s8, s1413230; GFX900-NEXT:    s_mov_b32 s9, s1513231; GFX900-NEXT:    s_mov_b32 s10, s1613232; GFX900-NEXT:    s_mov_b32 s11, s1713233; GFX900-NEXT:    ;;#ASMSTART13234; GFX900-NEXT:    ; use s[8:13]13235; GFX900-NEXT:    ;;#ASMEND13236; GFX900-NEXT:    s_setpc_b64 s[30:31]13237;13238; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_6:13239; GFX90A:       ; %bb.0:13240; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13241; GFX90A-NEXT:    ;;#ASMSTART13242; GFX90A-NEXT:    ; def s[12:19]13243; GFX90A-NEXT:    ;;#ASMEND13244; GFX90A-NEXT:    ;;#ASMSTART13245; GFX90A-NEXT:    ; def s[8:15]13246; GFX90A-NEXT:    ;;#ASMEND13247; GFX90A-NEXT:    s_mov_b32 s8, s1413248; GFX90A-NEXT:    s_mov_b32 s9, s1513249; GFX90A-NEXT:    s_mov_b32 s10, s1613250; GFX90A-NEXT:    s_mov_b32 s11, s1713251; GFX90A-NEXT:    ;;#ASMSTART13252; GFX90A-NEXT:    ; use s[8:13]13253; GFX90A-NEXT:    ;;#ASMEND13254; GFX90A-NEXT:    s_setpc_b64 s[30:31]13255;13256; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_6:13257; GFX942:       ; %bb.0:13258; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13259; GFX942-NEXT:    ;;#ASMSTART13260; GFX942-NEXT:    ; def s[8:15]13261; GFX942-NEXT:    ;;#ASMEND13262; GFX942-NEXT:    ;;#ASMSTART13263; GFX942-NEXT:    ; def s[0:7]13264; GFX942-NEXT:    ;;#ASMEND13265; GFX942-NEXT:    s_mov_b32 s8, s1413266; GFX942-NEXT:    s_mov_b32 s9, s1513267; GFX942-NEXT:    s_mov_b32 s10, s413268; GFX942-NEXT:    s_mov_b32 s11, s513269; GFX942-NEXT:    ;;#ASMSTART13270; GFX942-NEXT:    ; use s[8:13]13271; GFX942-NEXT:    ;;#ASMEND13272; GFX942-NEXT:    s_setpc_b64 s[30:31]13273  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13274  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13275  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 6>13276  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13277  ret void13278}13279 13280define void @s_shuffle_v3p0_v4p0__7_3_6() {13281; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_6:13282; GFX900:       ; %bb.0:13283; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13284; GFX900-NEXT:    ;;#ASMSTART13285; GFX900-NEXT:    ; def s[4:11]13286; GFX900-NEXT:    ;;#ASMEND13287; GFX900-NEXT:    ;;#ASMSTART13288; GFX900-NEXT:    ; def s[12:19]13289; GFX900-NEXT:    ;;#ASMEND13290; GFX900-NEXT:    s_mov_b32 s8, s1813291; GFX900-NEXT:    s_mov_b32 s9, s1913292; GFX900-NEXT:    s_mov_b32 s12, s1613293; GFX900-NEXT:    s_mov_b32 s13, s1713294; GFX900-NEXT:    ;;#ASMSTART13295; GFX900-NEXT:    ; use s[8:13]13296; GFX900-NEXT:    ;;#ASMEND13297; GFX900-NEXT:    s_setpc_b64 s[30:31]13298;13299; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_6:13300; GFX90A:       ; %bb.0:13301; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13302; GFX90A-NEXT:    ;;#ASMSTART13303; GFX90A-NEXT:    ; def s[4:11]13304; GFX90A-NEXT:    ;;#ASMEND13305; GFX90A-NEXT:    ;;#ASMSTART13306; GFX90A-NEXT:    ; def s[12:19]13307; GFX90A-NEXT:    ;;#ASMEND13308; GFX90A-NEXT:    s_mov_b32 s8, s1813309; GFX90A-NEXT:    s_mov_b32 s9, s1913310; GFX90A-NEXT:    s_mov_b32 s12, s1613311; GFX90A-NEXT:    s_mov_b32 s13, s1713312; GFX90A-NEXT:    ;;#ASMSTART13313; GFX90A-NEXT:    ; use s[8:13]13314; GFX90A-NEXT:    ;;#ASMEND13315; GFX90A-NEXT:    s_setpc_b64 s[30:31]13316;13317; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_6:13318; GFX942:       ; %bb.0:13319; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13320; GFX942-NEXT:    ;;#ASMSTART13321; GFX942-NEXT:    ; def s[4:11]13322; GFX942-NEXT:    ;;#ASMEND13323; GFX942-NEXT:    s_nop 013324; GFX942-NEXT:    ;;#ASMSTART13325; GFX942-NEXT:    ; def s[0:7]13326; GFX942-NEXT:    ;;#ASMEND13327; GFX942-NEXT:    s_mov_b32 s8, s613328; GFX942-NEXT:    s_mov_b32 s9, s713329; GFX942-NEXT:    s_mov_b32 s12, s413330; GFX942-NEXT:    s_mov_b32 s13, s513331; GFX942-NEXT:    ;;#ASMSTART13332; GFX942-NEXT:    ; use s[8:13]13333; GFX942-NEXT:    ;;#ASMEND13334; GFX942-NEXT:    s_setpc_b64 s[30:31]13335  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13336  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13337  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 6>13338  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13339  ret void13340}13341 13342define void @s_shuffle_v3p0_v4p0__7_4_6() {13343; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_6:13344; GFX900:       ; %bb.0:13345; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13346; GFX900-NEXT:    ;;#ASMSTART13347; GFX900-NEXT:    ; def s[12:19]13348; GFX900-NEXT:    ;;#ASMEND13349; GFX900-NEXT:    s_mov_b32 s8, s1813350; GFX900-NEXT:    s_mov_b32 s9, s1913351; GFX900-NEXT:    s_mov_b32 s10, s1213352; GFX900-NEXT:    s_mov_b32 s11, s1313353; GFX900-NEXT:    s_mov_b32 s12, s1613354; GFX900-NEXT:    s_mov_b32 s13, s1713355; GFX900-NEXT:    ;;#ASMSTART13356; GFX900-NEXT:    ; use s[8:13]13357; GFX900-NEXT:    ;;#ASMEND13358; GFX900-NEXT:    s_setpc_b64 s[30:31]13359;13360; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_6:13361; GFX90A:       ; %bb.0:13362; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13363; GFX90A-NEXT:    ;;#ASMSTART13364; GFX90A-NEXT:    ; def s[12:19]13365; GFX90A-NEXT:    ;;#ASMEND13366; GFX90A-NEXT:    s_mov_b32 s8, s1813367; GFX90A-NEXT:    s_mov_b32 s9, s1913368; GFX90A-NEXT:    s_mov_b32 s10, s1213369; GFX90A-NEXT:    s_mov_b32 s11, s1313370; GFX90A-NEXT:    s_mov_b32 s12, s1613371; GFX90A-NEXT:    s_mov_b32 s13, s1713372; GFX90A-NEXT:    ;;#ASMSTART13373; GFX90A-NEXT:    ; use s[8:13]13374; GFX90A-NEXT:    ;;#ASMEND13375; GFX90A-NEXT:    s_setpc_b64 s[30:31]13376;13377; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_6:13378; GFX942:       ; %bb.0:13379; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13380; GFX942-NEXT:    ;;#ASMSTART13381; GFX942-NEXT:    ; def s[0:7]13382; GFX942-NEXT:    ;;#ASMEND13383; GFX942-NEXT:    s_mov_b32 s8, s613384; GFX942-NEXT:    s_mov_b32 s9, s713385; GFX942-NEXT:    s_mov_b32 s10, s013386; GFX942-NEXT:    s_mov_b32 s11, s113387; GFX942-NEXT:    s_mov_b32 s12, s413388; GFX942-NEXT:    s_mov_b32 s13, s513389; GFX942-NEXT:    ;;#ASMSTART13390; GFX942-NEXT:    ; use s[8:13]13391; GFX942-NEXT:    ;;#ASMEND13392; GFX942-NEXT:    s_setpc_b64 s[30:31]13393  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13394  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13395  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 6>13396  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13397  ret void13398}13399 13400define void @s_shuffle_v3p0_v4p0__7_5_6() {13401; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_6:13402; GFX9:       ; %bb.0:13403; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13404; GFX9-NEXT:    ;;#ASMSTART13405; GFX9-NEXT:    ; def s[8:15]13406; GFX9-NEXT:    ;;#ASMEND13407; GFX9-NEXT:    s_mov_b32 s8, s1413408; GFX9-NEXT:    s_mov_b32 s9, s1513409; GFX9-NEXT:    ;;#ASMSTART13410; GFX9-NEXT:    ; use s[8:13]13411; GFX9-NEXT:    ;;#ASMEND13412; GFX9-NEXT:    s_setpc_b64 s[30:31]13413  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13414  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13415  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 6>13416  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13417  ret void13418}13419 13420define void @s_shuffle_v3p0_v4p0__u_7_7() {13421; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_7_7:13422; GFX9:       ; %bb.0:13423; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13424; GFX9-NEXT:    ;;#ASMSTART13425; GFX9-NEXT:    ; def s[4:11]13426; GFX9-NEXT:    ;;#ASMEND13427; GFX9-NEXT:    s_mov_b32 s12, s1013428; GFX9-NEXT:    s_mov_b32 s13, s1113429; GFX9-NEXT:    ;;#ASMSTART13430; GFX9-NEXT:    ; use s[8:13]13431; GFX9-NEXT:    ;;#ASMEND13432; GFX9-NEXT:    s_setpc_b64 s[30:31]13433  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13434  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13435  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>13436  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13437  ret void13438}13439 13440define void @s_shuffle_v3p0_v4p0__0_7_7() {13441; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_7_7:13442; GFX900:       ; %bb.0:13443; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13444; GFX900-NEXT:    ;;#ASMSTART13445; GFX900-NEXT:    ; def s[8:15]13446; GFX900-NEXT:    ;;#ASMEND13447; GFX900-NEXT:    ;;#ASMSTART13448; GFX900-NEXT:    ; def s[12:19]13449; GFX900-NEXT:    ;;#ASMEND13450; GFX900-NEXT:    s_mov_b32 s10, s1813451; GFX900-NEXT:    s_mov_b32 s11, s1913452; GFX900-NEXT:    s_mov_b32 s12, s1813453; GFX900-NEXT:    s_mov_b32 s13, s1913454; GFX900-NEXT:    ;;#ASMSTART13455; GFX900-NEXT:    ; use s[8:13]13456; GFX900-NEXT:    ;;#ASMEND13457; GFX900-NEXT:    s_setpc_b64 s[30:31]13458;13459; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_7_7:13460; GFX90A:       ; %bb.0:13461; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13462; GFX90A-NEXT:    ;;#ASMSTART13463; GFX90A-NEXT:    ; def s[8:15]13464; GFX90A-NEXT:    ;;#ASMEND13465; GFX90A-NEXT:    ;;#ASMSTART13466; GFX90A-NEXT:    ; def s[12:19]13467; GFX90A-NEXT:    ;;#ASMEND13468; GFX90A-NEXT:    s_mov_b32 s10, s1813469; GFX90A-NEXT:    s_mov_b32 s11, s1913470; GFX90A-NEXT:    s_mov_b32 s12, s1813471; GFX90A-NEXT:    s_mov_b32 s13, s1913472; GFX90A-NEXT:    ;;#ASMSTART13473; GFX90A-NEXT:    ; use s[8:13]13474; GFX90A-NEXT:    ;;#ASMEND13475; GFX90A-NEXT:    s_setpc_b64 s[30:31]13476;13477; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_7_7:13478; GFX942:       ; %bb.0:13479; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13480; GFX942-NEXT:    ;;#ASMSTART13481; GFX942-NEXT:    ; def s[8:15]13482; GFX942-NEXT:    ;;#ASMEND13483; GFX942-NEXT:    ;;#ASMSTART13484; GFX942-NEXT:    ; def s[0:7]13485; GFX942-NEXT:    ;;#ASMEND13486; GFX942-NEXT:    s_mov_b32 s10, s613487; GFX942-NEXT:    s_mov_b32 s11, s713488; GFX942-NEXT:    s_mov_b32 s12, s613489; GFX942-NEXT:    s_mov_b32 s13, s713490; GFX942-NEXT:    ;;#ASMSTART13491; GFX942-NEXT:    ; use s[8:13]13492; GFX942-NEXT:    ;;#ASMEND13493; GFX942-NEXT:    s_setpc_b64 s[30:31]13494  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13495  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13496  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 7, i32 7>13497  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13498  ret void13499}13500 13501define void @s_shuffle_v3p0_v4p0__1_7_7() {13502; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_7_7:13503; GFX900:       ; %bb.0:13504; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13505; GFX900-NEXT:    ;;#ASMSTART13506; GFX900-NEXT:    ; def s[12:19]13507; GFX900-NEXT:    ;;#ASMEND13508; GFX900-NEXT:    ;;#ASMSTART13509; GFX900-NEXT:    ; def s[4:11]13510; GFX900-NEXT:    ;;#ASMEND13511; GFX900-NEXT:    s_mov_b32 s8, s1413512; GFX900-NEXT:    s_mov_b32 s9, s1513513; GFX900-NEXT:    s_mov_b32 s12, s1013514; GFX900-NEXT:    s_mov_b32 s13, s1113515; GFX900-NEXT:    ;;#ASMSTART13516; GFX900-NEXT:    ; use s[8:13]13517; GFX900-NEXT:    ;;#ASMEND13518; GFX900-NEXT:    s_setpc_b64 s[30:31]13519;13520; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_7_7:13521; GFX90A:       ; %bb.0:13522; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13523; GFX90A-NEXT:    ;;#ASMSTART13524; GFX90A-NEXT:    ; def s[12:19]13525; GFX90A-NEXT:    ;;#ASMEND13526; GFX90A-NEXT:    ;;#ASMSTART13527; GFX90A-NEXT:    ; def s[4:11]13528; GFX90A-NEXT:    ;;#ASMEND13529; GFX90A-NEXT:    s_mov_b32 s8, s1413530; GFX90A-NEXT:    s_mov_b32 s9, s1513531; GFX90A-NEXT:    s_mov_b32 s12, s1013532; GFX90A-NEXT:    s_mov_b32 s13, s1113533; GFX90A-NEXT:    ;;#ASMSTART13534; GFX90A-NEXT:    ; use s[8:13]13535; GFX90A-NEXT:    ;;#ASMEND13536; GFX90A-NEXT:    s_setpc_b64 s[30:31]13537;13538; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_7_7:13539; GFX942:       ; %bb.0:13540; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13541; GFX942-NEXT:    ;;#ASMSTART13542; GFX942-NEXT:    ; def s[0:7]13543; GFX942-NEXT:    ;;#ASMEND13544; GFX942-NEXT:    s_nop 013545; GFX942-NEXT:    ;;#ASMSTART13546; GFX942-NEXT:    ; def s[4:11]13547; GFX942-NEXT:    ;;#ASMEND13548; GFX942-NEXT:    s_mov_b32 s8, s213549; GFX942-NEXT:    s_mov_b32 s9, s313550; GFX942-NEXT:    s_mov_b32 s12, s1013551; GFX942-NEXT:    s_mov_b32 s13, s1113552; GFX942-NEXT:    ;;#ASMSTART13553; GFX942-NEXT:    ; use s[8:13]13554; GFX942-NEXT:    ;;#ASMEND13555; GFX942-NEXT:    s_setpc_b64 s[30:31]13556  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13557  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13558  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 7, i32 7>13559  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13560  ret void13561}13562 13563define void @s_shuffle_v3p0_v4p0__2_7_7() {13564; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_7_7:13565; GFX900:       ; %bb.0:13566; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13567; GFX900-NEXT:    ;;#ASMSTART13568; GFX900-NEXT:    ; def s[4:11]13569; GFX900-NEXT:    ;;#ASMEND13570; GFX900-NEXT:    ;;#ASMSTART13571; GFX900-NEXT:    ; def s[12:19]13572; GFX900-NEXT:    ;;#ASMEND13573; GFX900-NEXT:    s_mov_b32 s10, s1813574; GFX900-NEXT:    s_mov_b32 s11, s1913575; GFX900-NEXT:    s_mov_b32 s12, s1813576; GFX900-NEXT:    s_mov_b32 s13, s1913577; GFX900-NEXT:    ;;#ASMSTART13578; GFX900-NEXT:    ; use s[8:13]13579; GFX900-NEXT:    ;;#ASMEND13580; GFX900-NEXT:    s_setpc_b64 s[30:31]13581;13582; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_7_7:13583; GFX90A:       ; %bb.0:13584; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13585; GFX90A-NEXT:    ;;#ASMSTART13586; GFX90A-NEXT:    ; def s[4:11]13587; GFX90A-NEXT:    ;;#ASMEND13588; GFX90A-NEXT:    ;;#ASMSTART13589; GFX90A-NEXT:    ; def s[12:19]13590; GFX90A-NEXT:    ;;#ASMEND13591; GFX90A-NEXT:    s_mov_b32 s10, s1813592; GFX90A-NEXT:    s_mov_b32 s11, s1913593; GFX90A-NEXT:    s_mov_b32 s12, s1813594; GFX90A-NEXT:    s_mov_b32 s13, s1913595; GFX90A-NEXT:    ;;#ASMSTART13596; GFX90A-NEXT:    ; use s[8:13]13597; GFX90A-NEXT:    ;;#ASMEND13598; GFX90A-NEXT:    s_setpc_b64 s[30:31]13599;13600; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_7_7:13601; GFX942:       ; %bb.0:13602; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13603; GFX942-NEXT:    ;;#ASMSTART13604; GFX942-NEXT:    ; def s[4:11]13605; GFX942-NEXT:    ;;#ASMEND13606; GFX942-NEXT:    s_nop 013607; GFX942-NEXT:    ;;#ASMSTART13608; GFX942-NEXT:    ; def s[0:7]13609; GFX942-NEXT:    ;;#ASMEND13610; GFX942-NEXT:    s_mov_b32 s10, s613611; GFX942-NEXT:    s_mov_b32 s11, s713612; GFX942-NEXT:    s_mov_b32 s12, s613613; GFX942-NEXT:    s_mov_b32 s13, s713614; GFX942-NEXT:    ;;#ASMSTART13615; GFX942-NEXT:    ; use s[8:13]13616; GFX942-NEXT:    ;;#ASMEND13617; GFX942-NEXT:    s_setpc_b64 s[30:31]13618  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13619  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13620  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 7, i32 7>13621  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13622  ret void13623}13624 13625define void @s_shuffle_v3p0_v4p0__3_7_7() {13626; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_7_7:13627; GFX900:       ; %bb.0:13628; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13629; GFX900-NEXT:    ;;#ASMSTART13630; GFX900-NEXT:    ; def s[8:15]13631; GFX900-NEXT:    ;;#ASMEND13632; GFX900-NEXT:    ;;#ASMSTART13633; GFX900-NEXT:    ; def s[4:11]13634; GFX900-NEXT:    ;;#ASMEND13635; GFX900-NEXT:    s_mov_b32 s8, s1413636; GFX900-NEXT:    s_mov_b32 s9, s1513637; GFX900-NEXT:    s_mov_b32 s12, s1013638; GFX900-NEXT:    s_mov_b32 s13, s1113639; GFX900-NEXT:    ;;#ASMSTART13640; GFX900-NEXT:    ; use s[8:13]13641; GFX900-NEXT:    ;;#ASMEND13642; GFX900-NEXT:    s_setpc_b64 s[30:31]13643;13644; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_7_7:13645; GFX90A:       ; %bb.0:13646; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13647; GFX90A-NEXT:    ;;#ASMSTART13648; GFX90A-NEXT:    ; def s[8:15]13649; GFX90A-NEXT:    ;;#ASMEND13650; GFX90A-NEXT:    ;;#ASMSTART13651; GFX90A-NEXT:    ; def s[4:11]13652; GFX90A-NEXT:    ;;#ASMEND13653; GFX90A-NEXT:    s_mov_b32 s8, s1413654; GFX90A-NEXT:    s_mov_b32 s9, s1513655; GFX90A-NEXT:    s_mov_b32 s12, s1013656; GFX90A-NEXT:    s_mov_b32 s13, s1113657; GFX90A-NEXT:    ;;#ASMSTART13658; GFX90A-NEXT:    ; use s[8:13]13659; GFX90A-NEXT:    ;;#ASMEND13660; GFX90A-NEXT:    s_setpc_b64 s[30:31]13661;13662; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_7_7:13663; GFX942:       ; %bb.0:13664; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13665; GFX942-NEXT:    ;;#ASMSTART13666; GFX942-NEXT:    ; def s[8:15]13667; GFX942-NEXT:    ;;#ASMEND13668; GFX942-NEXT:    s_nop 013669; GFX942-NEXT:    ;;#ASMSTART13670; GFX942-NEXT:    ; def s[4:11]13671; GFX942-NEXT:    ;;#ASMEND13672; GFX942-NEXT:    s_mov_b32 s8, s1413673; GFX942-NEXT:    s_mov_b32 s9, s1513674; GFX942-NEXT:    s_mov_b32 s12, s1013675; GFX942-NEXT:    s_mov_b32 s13, s1113676; GFX942-NEXT:    ;;#ASMSTART13677; GFX942-NEXT:    ; use s[8:13]13678; GFX942-NEXT:    ;;#ASMEND13679; GFX942-NEXT:    s_setpc_b64 s[30:31]13680  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13681  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13682  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 7, i32 7>13683  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13684  ret void13685}13686 13687define void @s_shuffle_v3p0_v4p0__4_7_7() {13688; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_7_7:13689; GFX9:       ; %bb.0:13690; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13691; GFX9-NEXT:    ;;#ASMSTART13692; GFX9-NEXT:    ; def s[8:15]13693; GFX9-NEXT:    ;;#ASMEND13694; GFX9-NEXT:    s_mov_b32 s10, s1413695; GFX9-NEXT:    s_mov_b32 s11, s1513696; GFX9-NEXT:    s_mov_b32 s12, s1413697; GFX9-NEXT:    s_mov_b32 s13, s1513698; GFX9-NEXT:    ;;#ASMSTART13699; GFX9-NEXT:    ; use s[8:13]13700; GFX9-NEXT:    ;;#ASMEND13701; GFX9-NEXT:    s_setpc_b64 s[30:31]13702  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13703  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13704  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 7, i32 7>13705  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13706  ret void13707}13708 13709define void @s_shuffle_v3p0_v4p0__5_7_7() {13710; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_7_7:13711; GFX9:       ; %bb.0:13712; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13713; GFX9-NEXT:    ;;#ASMSTART13714; GFX9-NEXT:    ; def s[4:11]13715; GFX9-NEXT:    ;;#ASMEND13716; GFX9-NEXT:    s_mov_b32 s8, s613717; GFX9-NEXT:    s_mov_b32 s9, s713718; GFX9-NEXT:    s_mov_b32 s12, s1013719; GFX9-NEXT:    s_mov_b32 s13, s1113720; GFX9-NEXT:    ;;#ASMSTART13721; GFX9-NEXT:    ; use s[8:13]13722; GFX9-NEXT:    ;;#ASMEND13723; GFX9-NEXT:    s_setpc_b64 s[30:31]13724  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13725  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13726  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 7, i32 7>13727  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13728  ret void13729}13730 13731define void @s_shuffle_v3p0_v4p0__6_7_7() {13732; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_7_7:13733; GFX9:       ; %bb.0:13734; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13735; GFX9-NEXT:    ;;#ASMSTART13736; GFX9-NEXT:    ; def s[4:11]13737; GFX9-NEXT:    ;;#ASMEND13738; GFX9-NEXT:    s_mov_b32 s12, s1013739; GFX9-NEXT:    s_mov_b32 s13, s1113740; GFX9-NEXT:    ;;#ASMSTART13741; GFX9-NEXT:    ; use s[8:13]13742; GFX9-NEXT:    ;;#ASMEND13743; GFX9-NEXT:    s_setpc_b64 s[30:31]13744  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13745  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13746  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 7, i32 7>13747  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13748  ret void13749}13750 13751define void @s_shuffle_v3p0_v4p0__7_u_7() {13752; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_7:13753; GFX900:       ; %bb.0:13754; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13755; GFX900-NEXT:    ;;#ASMSTART13756; GFX900-NEXT:    ; def s[4:11]13757; GFX900-NEXT:    ;;#ASMEND13758; GFX900-NEXT:    s_mov_b32 s8, s1013759; GFX900-NEXT:    s_mov_b32 s9, s1113760; GFX900-NEXT:    s_mov_b32 s12, s1013761; GFX900-NEXT:    s_mov_b32 s13, s1113762; GFX900-NEXT:    ;;#ASMSTART13763; GFX900-NEXT:    ; use s[8:13]13764; GFX900-NEXT:    ;;#ASMEND13765; GFX900-NEXT:    s_setpc_b64 s[30:31]13766;13767; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_7:13768; GFX90A:       ; %bb.0:13769; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13770; GFX90A-NEXT:    ;;#ASMSTART13771; GFX90A-NEXT:    ; def s[4:11]13772; GFX90A-NEXT:    ;;#ASMEND13773; GFX90A-NEXT:    s_mov_b32 s8, s1013774; GFX90A-NEXT:    s_mov_b32 s9, s1113775; GFX90A-NEXT:    s_mov_b32 s12, s1013776; GFX90A-NEXT:    s_mov_b32 s13, s1113777; GFX90A-NEXT:    ;;#ASMSTART13778; GFX90A-NEXT:    ; use s[8:13]13779; GFX90A-NEXT:    ;;#ASMEND13780; GFX90A-NEXT:    s_setpc_b64 s[30:31]13781;13782; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_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:7]13787; GFX942-NEXT:    ;;#ASMEND13788; GFX942-NEXT:    s_mov_b32 s8, s613789; GFX942-NEXT:    s_mov_b32 s9, s713790; GFX942-NEXT:    s_mov_b32 s12, s613791; GFX942-NEXT:    s_mov_b32 s13, s713792; GFX942-NEXT:    ;;#ASMSTART13793; GFX942-NEXT:    ; use s[8:13]13794; GFX942-NEXT:    ;;#ASMEND13795; GFX942-NEXT:    s_setpc_b64 s[30:31]13796  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13797  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13798  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>13799  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13800  ret void13801}13802 13803define void @s_shuffle_v3p0_v4p0__7_0_7() {13804; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_7:13805; GFX900:       ; %bb.0:13806; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13807; GFX900-NEXT:    ;;#ASMSTART13808; GFX900-NEXT:    ; def s[4:11]13809; GFX900-NEXT:    ;;#ASMEND13810; GFX900-NEXT:    ;;#ASMSTART13811; GFX900-NEXT:    ; def s[8:15]13812; GFX900-NEXT:    ;;#ASMEND13813; GFX900-NEXT:    s_mov_b32 s8, s1413814; GFX900-NEXT:    s_mov_b32 s9, s1513815; GFX900-NEXT:    s_mov_b32 s10, s413816; GFX900-NEXT:    s_mov_b32 s11, s513817; GFX900-NEXT:    s_mov_b32 s12, s1413818; GFX900-NEXT:    s_mov_b32 s13, s1513819; GFX900-NEXT:    ;;#ASMSTART13820; GFX900-NEXT:    ; use s[8:13]13821; GFX900-NEXT:    ;;#ASMEND13822; GFX900-NEXT:    s_setpc_b64 s[30:31]13823;13824; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_7:13825; GFX90A:       ; %bb.0:13826; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13827; GFX90A-NEXT:    ;;#ASMSTART13828; GFX90A-NEXT:    ; def s[4:11]13829; GFX90A-NEXT:    ;;#ASMEND13830; GFX90A-NEXT:    ;;#ASMSTART13831; GFX90A-NEXT:    ; def s[8:15]13832; GFX90A-NEXT:    ;;#ASMEND13833; GFX90A-NEXT:    s_mov_b32 s8, s1413834; GFX90A-NEXT:    s_mov_b32 s9, s1513835; GFX90A-NEXT:    s_mov_b32 s10, s413836; GFX90A-NEXT:    s_mov_b32 s11, s513837; GFX90A-NEXT:    s_mov_b32 s12, s1413838; GFX90A-NEXT:    s_mov_b32 s13, s1513839; GFX90A-NEXT:    ;;#ASMSTART13840; GFX90A-NEXT:    ; use s[8:13]13841; GFX90A-NEXT:    ;;#ASMEND13842; GFX90A-NEXT:    s_setpc_b64 s[30:31]13843;13844; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_7:13845; GFX942:       ; %bb.0:13846; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13847; GFX942-NEXT:    ;;#ASMSTART13848; GFX942-NEXT:    ; def s[8:15]13849; GFX942-NEXT:    ;;#ASMEND13850; GFX942-NEXT:    ;;#ASMSTART13851; GFX942-NEXT:    ; def s[0:7]13852; GFX942-NEXT:    ;;#ASMEND13853; GFX942-NEXT:    s_mov_b32 s8, s1413854; GFX942-NEXT:    s_mov_b32 s9, s1513855; GFX942-NEXT:    s_mov_b32 s10, s013856; GFX942-NEXT:    s_mov_b32 s11, s113857; GFX942-NEXT:    s_mov_b32 s12, s1413858; GFX942-NEXT:    s_mov_b32 s13, s1513859; GFX942-NEXT:    ;;#ASMSTART13860; GFX942-NEXT:    ; use s[8:13]13861; GFX942-NEXT:    ;;#ASMEND13862; GFX942-NEXT:    s_setpc_b64 s[30:31]13863  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13864  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13865  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 7>13866  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13867  ret void13868}13869 13870define void @s_shuffle_v3p0_v4p0__7_1_7() {13871; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_7:13872; GFX900:       ; %bb.0:13873; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13874; GFX900-NEXT:    ;;#ASMSTART13875; GFX900-NEXT:    ; def s[8:15]13876; GFX900-NEXT:    ;;#ASMEND13877; GFX900-NEXT:    ;;#ASMSTART13878; GFX900-NEXT:    ; def s[12:19]13879; GFX900-NEXT:    ;;#ASMEND13880; GFX900-NEXT:    s_mov_b32 s8, s1813881; GFX900-NEXT:    s_mov_b32 s9, s1913882; GFX900-NEXT:    s_mov_b32 s12, s1813883; GFX900-NEXT:    s_mov_b32 s13, s1913884; GFX900-NEXT:    ;;#ASMSTART13885; GFX900-NEXT:    ; use s[8:13]13886; GFX900-NEXT:    ;;#ASMEND13887; GFX900-NEXT:    s_setpc_b64 s[30:31]13888;13889; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_7:13890; GFX90A:       ; %bb.0:13891; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13892; GFX90A-NEXT:    ;;#ASMSTART13893; GFX90A-NEXT:    ; def s[8:15]13894; GFX90A-NEXT:    ;;#ASMEND13895; GFX90A-NEXT:    ;;#ASMSTART13896; GFX90A-NEXT:    ; def s[12:19]13897; GFX90A-NEXT:    ;;#ASMEND13898; GFX90A-NEXT:    s_mov_b32 s8, s1813899; GFX90A-NEXT:    s_mov_b32 s9, s1913900; GFX90A-NEXT:    s_mov_b32 s12, s1813901; GFX90A-NEXT:    s_mov_b32 s13, s1913902; GFX90A-NEXT:    ;;#ASMSTART13903; GFX90A-NEXT:    ; use s[8:13]13904; GFX90A-NEXT:    ;;#ASMEND13905; GFX90A-NEXT:    s_setpc_b64 s[30:31]13906;13907; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_7:13908; GFX942:       ; %bb.0:13909; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13910; GFX942-NEXT:    ;;#ASMSTART13911; GFX942-NEXT:    ; def s[8:15]13912; GFX942-NEXT:    ;;#ASMEND13913; GFX942-NEXT:    ;;#ASMSTART13914; GFX942-NEXT:    ; def s[0:7]13915; GFX942-NEXT:    ;;#ASMEND13916; GFX942-NEXT:    s_mov_b32 s8, s613917; GFX942-NEXT:    s_mov_b32 s9, s713918; GFX942-NEXT:    s_mov_b32 s12, s613919; GFX942-NEXT:    s_mov_b32 s13, s713920; GFX942-NEXT:    ;;#ASMSTART13921; GFX942-NEXT:    ; use s[8:13]13922; GFX942-NEXT:    ;;#ASMEND13923; GFX942-NEXT:    s_setpc_b64 s[30:31]13924  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13925  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13926  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 7>13927  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13928  ret void13929}13930 13931define void @s_shuffle_v3p0_v4p0__7_2_7() {13932; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_7:13933; GFX900:       ; %bb.0:13934; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13935; GFX900-NEXT:    ;;#ASMSTART13936; GFX900-NEXT:    ; def s[8:15]13937; GFX900-NEXT:    ;;#ASMEND13938; GFX900-NEXT:    ;;#ASMSTART13939; GFX900-NEXT:    ; def s[16:23]13940; GFX900-NEXT:    ;;#ASMEND13941; GFX900-NEXT:    s_mov_b32 s8, s2213942; GFX900-NEXT:    s_mov_b32 s9, s2313943; GFX900-NEXT:    s_mov_b32 s10, s1213944; GFX900-NEXT:    s_mov_b32 s11, s1313945; GFX900-NEXT:    s_mov_b32 s12, s2213946; GFX900-NEXT:    s_mov_b32 s13, s2313947; GFX900-NEXT:    ;;#ASMSTART13948; GFX900-NEXT:    ; use s[8:13]13949; GFX900-NEXT:    ;;#ASMEND13950; GFX900-NEXT:    s_setpc_b64 s[30:31]13951;13952; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_7:13953; GFX90A:       ; %bb.0:13954; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13955; GFX90A-NEXT:    ;;#ASMSTART13956; GFX90A-NEXT:    ; def s[8:15]13957; GFX90A-NEXT:    ;;#ASMEND13958; GFX90A-NEXT:    ;;#ASMSTART13959; GFX90A-NEXT:    ; def s[16:23]13960; GFX90A-NEXT:    ;;#ASMEND13961; GFX90A-NEXT:    s_mov_b32 s8, s2213962; GFX90A-NEXT:    s_mov_b32 s9, s2313963; GFX90A-NEXT:    s_mov_b32 s10, s1213964; GFX90A-NEXT:    s_mov_b32 s11, s1313965; GFX90A-NEXT:    s_mov_b32 s12, s2213966; GFX90A-NEXT:    s_mov_b32 s13, s2313967; GFX90A-NEXT:    ;;#ASMSTART13968; GFX90A-NEXT:    ; use s[8:13]13969; GFX90A-NEXT:    ;;#ASMEND13970; GFX90A-NEXT:    s_setpc_b64 s[30:31]13971;13972; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_7:13973; GFX942:       ; %bb.0:13974; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)13975; GFX942-NEXT:    ;;#ASMSTART13976; GFX942-NEXT:    ; def s[8:15]13977; GFX942-NEXT:    ;;#ASMEND13978; GFX942-NEXT:    ;;#ASMSTART13979; GFX942-NEXT:    ; def s[0:7]13980; GFX942-NEXT:    ;;#ASMEND13981; GFX942-NEXT:    s_mov_b32 s8, s1413982; GFX942-NEXT:    s_mov_b32 s9, s1513983; GFX942-NEXT:    s_mov_b32 s10, s413984; GFX942-NEXT:    s_mov_b32 s11, s513985; GFX942-NEXT:    s_mov_b32 s12, s1413986; GFX942-NEXT:    s_mov_b32 s13, s1513987; GFX942-NEXT:    ;;#ASMSTART13988; GFX942-NEXT:    ; use s[8:13]13989; GFX942-NEXT:    ;;#ASMEND13990; GFX942-NEXT:    s_setpc_b64 s[30:31]13991  %vec0 = call <4 x ptr> asm "; def $0", "=s"()13992  %vec1 = call <4 x ptr> asm "; def $0", "=s"()13993  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 7>13994  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)13995  ret void13996}13997 13998define void @s_shuffle_v3p0_v4p0__7_3_7() {13999; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_7:14000; GFX900:       ; %bb.0:14001; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14002; GFX900-NEXT:    ;;#ASMSTART14003; GFX900-NEXT:    ; def s[4:11]14004; GFX900-NEXT:    ;;#ASMEND14005; GFX900-NEXT:    ;;#ASMSTART14006; GFX900-NEXT:    ; def s[12:19]14007; GFX900-NEXT:    ;;#ASMEND14008; GFX900-NEXT:    s_mov_b32 s8, s1814009; GFX900-NEXT:    s_mov_b32 s9, s1914010; GFX900-NEXT:    s_mov_b32 s12, s1814011; GFX900-NEXT:    s_mov_b32 s13, s1914012; GFX900-NEXT:    ;;#ASMSTART14013; GFX900-NEXT:    ; use s[8:13]14014; GFX900-NEXT:    ;;#ASMEND14015; GFX900-NEXT:    s_setpc_b64 s[30:31]14016;14017; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_7:14018; GFX90A:       ; %bb.0:14019; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14020; GFX90A-NEXT:    ;;#ASMSTART14021; GFX90A-NEXT:    ; def s[4:11]14022; GFX90A-NEXT:    ;;#ASMEND14023; GFX90A-NEXT:    ;;#ASMSTART14024; GFX90A-NEXT:    ; def s[12:19]14025; GFX90A-NEXT:    ;;#ASMEND14026; GFX90A-NEXT:    s_mov_b32 s8, s1814027; GFX90A-NEXT:    s_mov_b32 s9, s1914028; GFX90A-NEXT:    s_mov_b32 s12, s1814029; GFX90A-NEXT:    s_mov_b32 s13, s1914030; GFX90A-NEXT:    ;;#ASMSTART14031; GFX90A-NEXT:    ; use s[8:13]14032; GFX90A-NEXT:    ;;#ASMEND14033; GFX90A-NEXT:    s_setpc_b64 s[30:31]14034;14035; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_7:14036; GFX942:       ; %bb.0:14037; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14038; GFX942-NEXT:    ;;#ASMSTART14039; GFX942-NEXT:    ; def s[4:11]14040; GFX942-NEXT:    ;;#ASMEND14041; GFX942-NEXT:    s_nop 014042; GFX942-NEXT:    ;;#ASMSTART14043; GFX942-NEXT:    ; def s[0:7]14044; GFX942-NEXT:    ;;#ASMEND14045; GFX942-NEXT:    s_mov_b32 s8, s614046; GFX942-NEXT:    s_mov_b32 s9, s714047; GFX942-NEXT:    s_mov_b32 s12, s614048; GFX942-NEXT:    s_mov_b32 s13, s714049; GFX942-NEXT:    ;;#ASMSTART14050; GFX942-NEXT:    ; use s[8:13]14051; GFX942-NEXT:    ;;#ASMEND14052; GFX942-NEXT:    s_setpc_b64 s[30:31]14053  %vec0 = call <4 x ptr> asm "; def $0", "=s"()14054  %vec1 = call <4 x ptr> asm "; def $0", "=s"()14055  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 7>14056  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)14057  ret void14058}14059 14060define void @s_shuffle_v3p0_v4p0__7_4_7() {14061; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_7:14062; GFX900:       ; %bb.0:14063; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14064; GFX900-NEXT:    ;;#ASMSTART14065; GFX900-NEXT:    ; def s[12:19]14066; GFX900-NEXT:    ;;#ASMEND14067; GFX900-NEXT:    s_mov_b32 s8, s1814068; GFX900-NEXT:    s_mov_b32 s9, s1914069; GFX900-NEXT:    s_mov_b32 s10, s1214070; GFX900-NEXT:    s_mov_b32 s11, s1314071; GFX900-NEXT:    s_mov_b32 s12, s1814072; GFX900-NEXT:    s_mov_b32 s13, s1914073; GFX900-NEXT:    ;;#ASMSTART14074; GFX900-NEXT:    ; use s[8:13]14075; GFX900-NEXT:    ;;#ASMEND14076; GFX900-NEXT:    s_setpc_b64 s[30:31]14077;14078; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_7:14079; GFX90A:       ; %bb.0:14080; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14081; GFX90A-NEXT:    ;;#ASMSTART14082; GFX90A-NEXT:    ; def s[12:19]14083; GFX90A-NEXT:    ;;#ASMEND14084; GFX90A-NEXT:    s_mov_b32 s8, s1814085; GFX90A-NEXT:    s_mov_b32 s9, s1914086; GFX90A-NEXT:    s_mov_b32 s10, s1214087; GFX90A-NEXT:    s_mov_b32 s11, s1314088; GFX90A-NEXT:    s_mov_b32 s12, s1814089; GFX90A-NEXT:    s_mov_b32 s13, s1914090; GFX90A-NEXT:    ;;#ASMSTART14091; GFX90A-NEXT:    ; use s[8:13]14092; GFX90A-NEXT:    ;;#ASMEND14093; GFX90A-NEXT:    s_setpc_b64 s[30:31]14094;14095; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_7:14096; GFX942:       ; %bb.0:14097; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14098; GFX942-NEXT:    ;;#ASMSTART14099; GFX942-NEXT:    ; def s[0:7]14100; GFX942-NEXT:    ;;#ASMEND14101; GFX942-NEXT:    s_mov_b32 s8, s614102; GFX942-NEXT:    s_mov_b32 s9, s714103; GFX942-NEXT:    s_mov_b32 s10, s014104; GFX942-NEXT:    s_mov_b32 s11, s114105; GFX942-NEXT:    s_mov_b32 s12, s614106; GFX942-NEXT:    s_mov_b32 s13, s714107; GFX942-NEXT:    ;;#ASMSTART14108; GFX942-NEXT:    ; use s[8:13]14109; GFX942-NEXT:    ;;#ASMEND14110; GFX942-NEXT:    s_setpc_b64 s[30:31]14111  %vec0 = call <4 x ptr> asm "; def $0", "=s"()14112  %vec1 = call <4 x ptr> asm "; def $0", "=s"()14113  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 7>14114  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)14115  ret void14116}14117 14118define void @s_shuffle_v3p0_v4p0__7_5_7() {14119; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_7:14120; GFX9:       ; %bb.0:14121; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)14122; GFX9-NEXT:    ;;#ASMSTART14123; GFX9-NEXT:    ; def s[8:15]14124; GFX9-NEXT:    ;;#ASMEND14125; GFX9-NEXT:    s_mov_b32 s8, s1414126; GFX9-NEXT:    s_mov_b32 s9, s1514127; GFX9-NEXT:    s_mov_b32 s12, s1414128; GFX9-NEXT:    s_mov_b32 s13, s1514129; GFX9-NEXT:    ;;#ASMSTART14130; GFX9-NEXT:    ; use s[8:13]14131; GFX9-NEXT:    ;;#ASMEND14132; GFX9-NEXT:    s_setpc_b64 s[30:31]14133  %vec0 = call <4 x ptr> asm "; def $0", "=s"()14134  %vec1 = call <4 x ptr> asm "; def $0", "=s"()14135  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 7>14136  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)14137  ret void14138}14139 14140define void @s_shuffle_v3p0_v4p0__7_6_7() {14141; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_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:15]14146; GFX900-NEXT:    ;;#ASMEND14147; GFX900-NEXT:    s_mov_b32 s8, s1414148; GFX900-NEXT:    s_mov_b32 s9, s1514149; GFX900-NEXT:    s_mov_b32 s10, s1214150; GFX900-NEXT:    s_mov_b32 s11, s1314151; GFX900-NEXT:    s_mov_b32 s12, s1414152; GFX900-NEXT:    s_mov_b32 s13, s1514153; GFX900-NEXT:    ;;#ASMSTART14154; GFX900-NEXT:    ; use s[8:13]14155; GFX900-NEXT:    ;;#ASMEND14156; GFX900-NEXT:    s_setpc_b64 s[30:31]14157;14158; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_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:15]14163; GFX90A-NEXT:    ;;#ASMEND14164; GFX90A-NEXT:    s_mov_b32 s8, s1414165; GFX90A-NEXT:    s_mov_b32 s9, s1514166; GFX90A-NEXT:    s_mov_b32 s10, s1214167; GFX90A-NEXT:    s_mov_b32 s11, s1314168; GFX90A-NEXT:    s_mov_b32 s12, s1414169; GFX90A-NEXT:    s_mov_b32 s13, s1514170; GFX90A-NEXT:    ;;#ASMSTART14171; GFX90A-NEXT:    ; use s[8:13]14172; GFX90A-NEXT:    ;;#ASMEND14173; GFX90A-NEXT:    s_setpc_b64 s[30:31]14174;14175; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_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:7]14180; GFX942-NEXT:    ;;#ASMEND14181; GFX942-NEXT:    s_mov_b32 s8, s614182; GFX942-NEXT:    s_mov_b32 s9, s714183; GFX942-NEXT:    s_mov_b32 s10, s414184; GFX942-NEXT:    s_mov_b32 s11, s514185; GFX942-NEXT:    s_mov_b32 s12, s614186; GFX942-NEXT:    s_mov_b32 s13, s714187; GFX942-NEXT:    ;;#ASMSTART14188; GFX942-NEXT:    ; use s[8:13]14189; GFX942-NEXT:    ;;#ASMEND14190; GFX942-NEXT:    s_setpc_b64 s[30:31]14191  %vec0 = call <4 x ptr> asm "; def $0", "=s"()14192  %vec1 = call <4 x ptr> asm "; def $0", "=s"()14193  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 7>14194  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)14195  ret void14196}14197;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:14198; GFX90APLUS: {{.*}}14199