; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX900 %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX90A %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX942 %s


define void @v_shuffle_v3p0_v4p0__u_u_u(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3p0_v4p0__u_u_u:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> poison
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_u_u(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3p0_v4p0__4_u_u:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v8
; GFX900-NEXT:    v_mov_b32_e32 v7, v9
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v8
; GFX90A-NEXT:    v_mov_b32_e32 v7, v9
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v8
; GFX942-NEXT:    v_mov_b32_e32 v7, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v10
; GFX900-NEXT:    v_mov_b32_e32 v9, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v8, v10
; GFX90A-NEXT:    v_mov_b32_e32 v9, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v8, v10
; GFX942-NEXT:    v_mov_b32_e32 v9, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v10, v12
; GFX900-NEXT:    v_mov_b32_e32 v11, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v10, v12
; GFX90A-NEXT:    v_mov_b32_e32 v11, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v10, v12
; GFX942-NEXT:    v_mov_b32_e32 v11, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[10:13], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    v_mov_b32_e32 v12, v14
; GFX900-NEXT:    v_mov_b32_e32 v13, v15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    v_mov_b32_e32 v12, v14
; GFX90A-NEXT:    v_mov_b32_e32 v13, v15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    v_mov_b32_e32 v12, v14
; GFX942-NEXT:    v_mov_b32_e32 v13, v15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v0
; GFX900-NEXT:    v_mov_b32_e32 v3, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v0
; GFX90A-NEXT:    v_mov_b32_e32 v3, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v0
; GFX942-NEXT:    v_mov_b32_e32 v3, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v0
; GFX900-NEXT:    v_mov_b32_e32 v3, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v0
; GFX90A-NEXT:    v_mov_b32_e32 v3, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v0
; GFX942-NEXT:    v_mov_b32_e32 v3, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> zeroinitializer
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v0
; GFX900-NEXT:    v_mov_b32_e32 v7, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v0
; GFX90A-NEXT:    v_mov_b32_e32 v7, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v0
; GFX942-NEXT:    v_mov_b32_e32 v7, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v0
; GFX900-NEXT:    v_mov_b32_e32 v3, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v0
; GFX90A-NEXT:    v_mov_b32_e32 v3, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v0
; GFX942-NEXT:    v_mov_b32_e32 v3, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v0
; GFX900-NEXT:    v_mov_b32_e32 v7, v1
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v0
; GFX90A-NEXT:    v_mov_b32_e32 v7, v1
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v0
; GFX942-NEXT:    v_mov_b32_e32 v7, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v0
; GFX900-NEXT:    v_mov_b32_e32 v9, v1
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v8, v0
; GFX90A-NEXT:    v_mov_b32_e32 v9, v1
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[6:9], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v8, v0
; GFX942-NEXT:    v_mov_b32_e32 v9, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[6:9], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v8
; GFX900-NEXT:    v_mov_b32_e32 v1, v9
; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v8
; GFX90A-NEXT:    v_mov_b32_e32 v1, v9
; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v8
; GFX942-NEXT:    v_mov_b32_e32 v1, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v8
; GFX900-NEXT:    v_mov_b32_e32 v1, v9
; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v8
; GFX90A-NEXT:    v_mov_b32_e32 v1, v9
; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v8
; GFX942-NEXT:    v_mov_b32_e32 v1, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v8
; GFX900-NEXT:    v_mov_b32_e32 v3, v9
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v8
; GFX900-NEXT:    v_mov_b32_e32 v5, v9
; GFX900-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v8
; GFX90A-NEXT:    v_mov_b32_e32 v5, v9
; GFX90A-NEXT:    global_store_dwordx2 v10, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v8
; GFX942-NEXT:    v_mov_b32_e32 v5, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 0>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v2
; GFX900-NEXT:    v_mov_b32_e32 v5, v3
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v2
; GFX90A-NEXT:    v_mov_b32_e32 v5, v3
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v2
; GFX942-NEXT:    v_mov_b32_e32 v5, v3
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v2
; GFX900-NEXT:    v_mov_b32_e32 v7, v3
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v2
; GFX90A-NEXT:    v_mov_b32_e32 v7, v3
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v2
; GFX942-NEXT:    v_mov_b32_e32 v7, v3
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v2
; GFX900-NEXT:    v_mov_b32_e32 v9, v3
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v8, v2
; GFX90A-NEXT:    v_mov_b32_e32 v9, v3
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v8, v2
; GFX942-NEXT:    v_mov_b32_e32 v9, v3
; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v10, v2
; GFX900-NEXT:    v_mov_b32_e32 v11, v3
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v10, v2
; GFX90A-NEXT:    v_mov_b32_e32 v11, v3
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v10, v2
; GFX942-NEXT:    v_mov_b32_e32 v11, v3
; GFX942-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v10
; GFX90A-NEXT:    v_mov_b32_e32 v3, v11
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v10
; GFX942-NEXT:    v_mov_b32_e32 v3, v11
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v14, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v14, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    v_mov_b32_e32 v2, v4
; GFX900-NEXT:    v_mov_b32_e32 v3, v5
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    v_mov_b32_e32 v2, v4
; GFX90A-NEXT:    v_mov_b32_e32 v3, v5
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    v_mov_b32_e32 v2, v4
; GFX942-NEXT:    v_mov_b32_e32 v3, v5
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v10
; GFX900-NEXT:    v_mov_b32_e32 v5, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v10
; GFX90A-NEXT:    v_mov_b32_e32 v5, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v10
; GFX942-NEXT:    v_mov_b32_e32 v5, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v10
; GFX900-NEXT:    v_mov_b32_e32 v7, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v10
; GFX90A-NEXT:    v_mov_b32_e32 v7, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[6:9], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v10
; GFX942-NEXT:    v_mov_b32_e32 v7, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[6:9], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 1>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v4
; GFX900-NEXT:    v_mov_b32_e32 v3, v5
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v4
; GFX90A-NEXT:    v_mov_b32_e32 v3, v5
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v4
; GFX942-NEXT:    v_mov_b32_e32 v3, v5
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v4
; GFX900-NEXT:    v_mov_b32_e32 v7, v5
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v4
; GFX90A-NEXT:    v_mov_b32_e32 v7, v5
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v4
; GFX942-NEXT:    v_mov_b32_e32 v7, v5
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v10, v4
; GFX900-NEXT:    v_mov_b32_e32 v11, v5
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v10, v4
; GFX90A-NEXT:    v_mov_b32_e32 v11, v5
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v10, v4
; GFX942-NEXT:    v_mov_b32_e32 v11, v5
; GFX942-NEXT:    global_store_dwordx4 v14, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v12, v4
; GFX900-NEXT:    v_mov_b32_e32 v13, v5
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v12, v4
; GFX90A-NEXT:    v_mov_b32_e32 v13, v5
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[10:13], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v12, v4
; GFX942-NEXT:    v_mov_b32_e32 v13, v5
; GFX942-NEXT:    global_store_dwordx4 v14, v[10:13], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v12
; GFX900-NEXT:    v_mov_b32_e32 v1, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v12
; GFX90A-NEXT:    v_mov_b32_e32 v1, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v12
; GFX942-NEXT:    v_mov_b32_e32 v1, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v12
; GFX900-NEXT:    v_mov_b32_e32 v1, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v12
; GFX90A-NEXT:    v_mov_b32_e32 v1, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v12
; GFX942-NEXT:    v_mov_b32_e32 v1, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v16, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v16, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v12
; GFX900-NEXT:    v_mov_b32_e32 v1, v13
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v12
; GFX90A-NEXT:    v_mov_b32_e32 v1, v13
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v12
; GFX942-NEXT:    v_mov_b32_e32 v1, v13
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx4 v14, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v12
; GFX900-NEXT:    v_mov_b32_e32 v7, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v12
; GFX90A-NEXT:    v_mov_b32_e32 v7, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[6:9], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v12
; GFX942-NEXT:    v_mov_b32_e32 v7, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[6:9], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v12
; GFX900-NEXT:    v_mov_b32_e32 v9, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v8, v12
; GFX90A-NEXT:    v_mov_b32_e32 v9, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v8, v12
; GFX942-NEXT:    v_mov_b32_e32 v9, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 2>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, v6
; GFX900-NEXT:    v_mov_b32_e32 v13, v7
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, v6
; GFX90A-NEXT:    v_mov_b32_e32 v13, v7
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v12, v6
; GFX942-NEXT:    v_mov_b32_e32 v13, v7
; GFX942-NEXT:    global_store_dwordx4 v16, v[10:13], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, v6
; GFX900-NEXT:    v_mov_b32_e32 v15, v7
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, v6
; GFX90A-NEXT:    v_mov_b32_e32 v15, v7
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v14, v6
; GFX942-NEXT:    v_mov_b32_e32 v15, v7
; GFX942-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v14
; GFX900-NEXT:    v_mov_b32_e32 v1, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v14
; GFX90A-NEXT:    v_mov_b32_e32 v1, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v14
; GFX942-NEXT:    v_mov_b32_e32 v1, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v14
; GFX90A-NEXT:    v_mov_b32_e32 v3, v15
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v2, v14
; GFX942-NEXT:    v_mov_b32_e32 v3, v15
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v16, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v14
; GFX900-NEXT:    v_mov_b32_e32 v1, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v14
; GFX90A-NEXT:    v_mov_b32_e32 v1, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v14
; GFX942-NEXT:    v_mov_b32_e32 v1, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v14
; GFX900-NEXT:    v_mov_b32_e32 v3, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v14
; GFX90A-NEXT:    v_mov_b32_e32 v3, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v14
; GFX942-NEXT:    v_mov_b32_e32 v3, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v14
; GFX900-NEXT:    v_mov_b32_e32 v1, v15
; GFX900-NEXT:    v_mov_b32_e32 v2, v8
; GFX900-NEXT:    v_mov_b32_e32 v3, v9
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v14
; GFX90A-NEXT:    v_mov_b32_e32 v1, v15
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v14
; GFX942-NEXT:    v_mov_b32_e32 v1, v15
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    v_mov_b32_e32 v8, v14
; GFX900-NEXT:    v_mov_b32_e32 v9, v15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    v_mov_b32_e32 v8, v14
; GFX90A-NEXT:    v_mov_b32_e32 v9, v15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    v_mov_b32_e32 v8, v14
; GFX942-NEXT:    v_mov_b32_e32 v9, v15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    v_mov_b32_e32 v10, v14
; GFX900-NEXT:    v_mov_b32_e32 v11, v15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    v_mov_b32_e32 v10, v14
; GFX90A-NEXT:    v_mov_b32_e32 v11, v15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v16, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    v_mov_b32_e32 v10, v14
; GFX942-NEXT:    v_mov_b32_e32 v11, v15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v16, v[10:13], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 3>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_4_4(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3p0_v4p0__u_4_4:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_4_4(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3p0_v4p0__4_4_4:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v0
; GFX900-NEXT:    v_mov_b32_e32 v7, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v0
; GFX90A-NEXT:    v_mov_b32_e32 v7, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v0
; GFX942-NEXT:    v_mov_b32_e32 v7, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v10, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_4(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[0:1], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[0:1], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 4>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v4
; GFX900-NEXT:    v_mov_b32_e32 v3, v5
; GFX900-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v4
; GFX90A-NEXT:    v_mov_b32_e32 v3, v5
; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v4
; GFX942-NEXT:    v_mov_b32_e32 v3, v5
; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v8
; GFX900-NEXT:    v_mov_b32_e32 v7, v9
; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v8
; GFX90A-NEXT:    v_mov_b32_e32 v7, v9
; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v8
; GFX942-NEXT:    v_mov_b32_e32 v7, v9
; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, v6
; GFX90A-NEXT:    v_mov_b32_e32 v9, v7
; GFX90A-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[8:11], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v8, v6
; GFX942-NEXT:    v_mov_b32_e32 v9, v7
; GFX942-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v2
; GFX900-NEXT:    v_mov_b32_e32 v5, v3
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v2
; GFX90A-NEXT:    v_mov_b32_e32 v5, v3
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v2
; GFX942-NEXT:    v_mov_b32_e32 v5, v3
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v2
; GFX900-NEXT:    v_mov_b32_e32 v7, v3
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v2
; GFX90A-NEXT:    v_mov_b32_e32 v7, v3
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v2
; GFX942-NEXT:    v_mov_b32_e32 v7, v3
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v10, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_5(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[2:3], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[2:3], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 5>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v8
; GFX900-NEXT:    v_mov_b32_e32 v5, v9
; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v8
; GFX90A-NEXT:    v_mov_b32_e32 v5, v9
; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v8
; GFX942-NEXT:    v_mov_b32_e32 v5, v9
; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v10
; GFX900-NEXT:    v_mov_b32_e32 v7, v11
; GFX900-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v10
; GFX90A-NEXT:    v_mov_b32_e32 v7, v11
; GFX90A-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v10
; GFX942-NEXT:    v_mov_b32_e32 v7, v11
; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v6
; GFX900-NEXT:    v_mov_b32_e32 v11, v7
; GFX900-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, v6
; GFX90A-NEXT:    v_mov_b32_e32 v11, v7
; GFX90A-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[10:13], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[12:13], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v10, v6
; GFX942-NEXT:    v_mov_b32_e32 v11, v7
; GFX942-NEXT:    global_store_dwordx4 v16, v[10:13], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v4
; GFX900-NEXT:    v_mov_b32_e32 v3, v5
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v4
; GFX90A-NEXT:    v_mov_b32_e32 v3, v5
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v4
; GFX942-NEXT:    v_mov_b32_e32 v3, v5
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v4
; GFX900-NEXT:    v_mov_b32_e32 v7, v5
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v4
; GFX90A-NEXT:    v_mov_b32_e32 v7, v5
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v6, v4
; GFX942-NEXT:    v_mov_b32_e32 v7, v5
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v10, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[12:13], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[12:13], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_6(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[4:5], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[4:5], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 6>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__u_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__u_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__u_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__u_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__0_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__0_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[2:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v8
; GFX900-NEXT:    v_mov_b32_e32 v3, v9
; GFX900-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__0_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__0_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__1_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__1_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v10
; GFX900-NEXT:    v_mov_b32_e32 v5, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__1_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v10
; GFX90A-NEXT:    v_mov_b32_e32 v5, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__1_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v10
; GFX942-NEXT:    v_mov_b32_e32 v5, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__2_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__2_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    v_mov_b32_e32 v6, v12
; GFX900-NEXT:    v_mov_b32_e32 v7, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__2_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    v_mov_b32_e32 v6, v12
; GFX90A-NEXT:    v_mov_b32_e32 v7, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__2_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[12:13], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v6, v12
; GFX942-NEXT:    v_mov_b32_e32 v7, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__3_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__3_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, v6
; GFX900-NEXT:    v_mov_b32_e32 v13, v7
; GFX900-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__3_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, v6
; GFX90A-NEXT:    v_mov_b32_e32 v13, v7
; GFX90A-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[12:15], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__3_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[14:15], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v12, v6
; GFX942-NEXT:    v_mov_b32_e32 v13, v7
; GFX942-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__4_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__4_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__4_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__4_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__5_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__5_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v4, v6
; GFX900-NEXT:    v_mov_b32_e32 v5, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__5_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v4, v6
; GFX90A-NEXT:    v_mov_b32_e32 v5, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__5_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v4, v6
; GFX942-NEXT:    v_mov_b32_e32 v5, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__6_7_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__6_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__6_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__6_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 7, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_u_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_u_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_u_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_u_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_0_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_0_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    global_store_dwordx2 v12, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    v_mov_b32_e32 v8, v6
; GFX900-NEXT:    v_mov_b32_e32 v9, v7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v10, v0
; GFX900-NEXT:    v_mov_b32_e32 v11, v1
; GFX900-NEXT:    global_store_dwordx4 v12, v[8:11], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_0_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[2:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v10, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v8
; GFX90A-NEXT:    v_mov_b32_e32 v3, v9
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v10, v[8:9], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v10, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_0_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v10, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[2:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v8
; GFX942-NEXT:    v_mov_b32_e32 v3, v9
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx4 v10, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_1_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_1_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v12, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, v10
; GFX900-NEXT:    v_mov_b32_e32 v1, v11
; GFX900-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_1_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v12, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, v10
; GFX90A-NEXT:    v_mov_b32_e32 v1, v11
; GFX90A-NEXT:    global_store_dwordx2 v12, v[10:11], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v12, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_1_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v12, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v12, v[10:11], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v0, v10
; GFX942-NEXT:    v_mov_b32_e32 v1, v11
; GFX942-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_2_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_2_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v14, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[6:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v2, v12
; GFX900-NEXT:    v_mov_b32_e32 v3, v13
; GFX900-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_2_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v14, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[6:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v2, v12
; GFX90A-NEXT:    v_mov_b32_e32 v3, v13
; GFX90A-NEXT:    global_store_dwordx2 v14, v[12:13], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v14, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_2_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v14, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[6:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v14, v[12:13], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v2, v12
; GFX942-NEXT:    v_mov_b32_e32 v3, v13
; GFX942-NEXT:    global_store_dwordx4 v14, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_3_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_3_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v16, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v4, v14
; GFX900-NEXT:    v_mov_b32_e32 v5, v15
; GFX900-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_3_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v16, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v4, v14
; GFX90A-NEXT:    v_mov_b32_e32 v5, v15
; GFX90A-NEXT:    global_store_dwordx2 v16, v[14:15], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v16, v[4:7], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_3_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v16, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    global_store_dwordx2 v16, v[14:15], s[0:1] offset:16
; GFX942-NEXT:    v_mov_b32_e32 v4, v14
; GFX942-NEXT:    v_mov_b32_e32 v5, v15
; GFX942-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_4_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_4_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    v_mov_b32_e32 v4, v0
; GFX900-NEXT:    v_mov_b32_e32 v5, v1
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_4_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    v_mov_b32_e32 v4, v0
; GFX90A-NEXT:    v_mov_b32_e32 v5, v1
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_4_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    v_mov_b32_e32 v4, v0
; GFX942-NEXT:    v_mov_b32_e32 v5, v1
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_5_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_5_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v0, v6
; GFX900-NEXT:    v_mov_b32_e32 v1, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_5_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v0, v6
; GFX90A-NEXT:    v_mov_b32_e32 v1, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[0:3], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_5_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v0, v6
; GFX942-NEXT:    v_mov_b32_e32 v1, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @v_shuffle_v3p0_v4p0__7_6_7(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3p0_v4p0__7_6_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v[0:7]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v8, 0
; GFX900-NEXT:    v_mov_b32_e32 v2, v6
; GFX900-NEXT:    v_mov_b32_e32 v3, v7
; GFX900-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX900-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3p0_v4p0__7_6_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v[0:7]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v8, 0
; GFX90A-NEXT:    v_mov_b32_e32 v2, v6
; GFX90A-NEXT:    v_mov_b32_e32 v3, v7
; GFX90A-NEXT:    global_store_dwordx2 v8, v[6:7], s[16:17] offset:16
; GFX90A-NEXT:    global_store_dwordx4 v8, v[2:5], s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3p0_v4p0__7_6_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v8, 0
; GFX942-NEXT:    v_mov_b32_e32 v2, v6
; GFX942-NEXT:    v_mov_b32_e32 v3, v7
; GFX942-NEXT:    global_store_dwordx2 v8, v[6:7], s[0:1] offset:16
; GFX942-NEXT:    global_store_dwordx4 v8, v[2:5], s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=v"()
  %vec1 = call <4 x ptr> asm "; def $0", "=v"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 7>
  store <3 x ptr> %shuf, ptr addrspace(1) %ptr, align 32
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_u_u() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_u_u:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> poison
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_u_u() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_u_u:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_u() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_u:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_u() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s14
; GFX942-NEXT:    s_mov_b32 s11, s15
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_7_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s10, s14
; GFX9-NEXT:    s_mov_b32 s11, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__u_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__u_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__u_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_0_0() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_0_0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s8
; GFX9-NEXT:    s_mov_b32 s11, s9
; GFX9-NEXT:    s_mov_b32 s12, s8
; GFX9-NEXT:    s_mov_b32 s13, s9
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> zeroinitializer
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__4_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__4_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__4_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s12
; GFX900-NEXT:    s_mov_b32 s9, s13
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s12
; GFX90A-NEXT:    s_mov_b32 s9, s13
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s6
; GFX900-NEXT:    s_mov_b32 s11, s7
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s6
; GFX90A-NEXT:    s_mov_b32 s11, s7
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s2
; GFX942-NEXT:    s_mov_b32 s11, s3
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_0() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 0>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s10
; GFX9-NEXT:    s_mov_b32 s9, s11
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s12
; GFX9-NEXT:    s_mov_b32 s9, s13
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_1_1() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_1_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_1_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s16
; GFX900-NEXT:    s_mov_b32 s9, s17
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s16
; GFX90A-NEXT:    s_mov_b32 s9, s17
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_1() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 1>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__1_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s10
; GFX9-NEXT:    s_mov_b32 s9, s11
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__2_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s12
; GFX9-NEXT:    s_mov_b32 s9, s13
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__3_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_2_2() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_2_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_2_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_2_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s16
; GFX900-NEXT:    s_mov_b32 s13, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s16
; GFX90A-NEXT:    s_mov_b32 s13, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[16:23]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s22
; GFX900-NEXT:    s_mov_b32 s9, s23
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[16:23]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s22
; GFX90A-NEXT:    s_mov_b32 s9, s23
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s14
; GFX942-NEXT:    s_mov_b32 s11, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s16
; GFX900-NEXT:    s_mov_b32 s13, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s16
; GFX90A-NEXT:    s_mov_b32 s13, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_2() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[16:23]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s22
; GFX900-NEXT:    s_mov_b32 s9, s23
; GFX900-NEXT:    s_mov_b32 s10, s20
; GFX900-NEXT:    s_mov_b32 s11, s21
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[16:23]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s22
; GFX90A-NEXT:    s_mov_b32 s9, s23
; GFX90A-NEXT:    s_mov_b32 s10, s20
; GFX90A-NEXT:    s_mov_b32 s11, s21
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 2>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__u_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__u_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__u_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_3_3() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__0_3_3:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s14
; GFX9-NEXT:    s_mov_b32 s11, s15
; GFX9-NEXT:    s_mov_b32 s12, s14
; GFX9-NEXT:    s_mov_b32 s13, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s12
; GFX900-NEXT:    s_mov_b32 s9, s13
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s12
; GFX90A-NEXT:    s_mov_b32 s9, s13
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__4_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__4_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__4_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s12
; GFX942-NEXT:    s_mov_b32 s9, s13
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[16:23]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s22
; GFX900-NEXT:    s_mov_b32 s9, s23
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[16:23]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s22
; GFX90A-NEXT:    s_mov_b32 s9, s23
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[12:19]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s18
; GFX942-NEXT:    s_mov_b32 s9, s19
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_3() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[16:23]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s22
; GFX900-NEXT:    s_mov_b32 s9, s23
; GFX900-NEXT:    s_mov_b32 s10, s20
; GFX900-NEXT:    s_mov_b32 s11, s21
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[16:23]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s22
; GFX90A-NEXT:    s_mov_b32 s9, s23
; GFX90A-NEXT:    s_mov_b32 s10, s20
; GFX90A-NEXT:    s_mov_b32 s11, s21
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 3>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_4_4() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_4_4:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 poison, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 0, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 1, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 2, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 3, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_4_4() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_4_4:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> poison, <3 x i32> <i32 4, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[12:19]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s18
; GFX942-NEXT:    s_mov_b32 s9, s19
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[12:19]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s18
; GFX942-NEXT:    s_mov_b32 s9, s19
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_5_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s6
; GFX900-NEXT:    s_mov_b32 s11, s7
; GFX900-NEXT:    s_mov_b32 s12, s4
; GFX900-NEXT:    s_mov_b32 s13, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_5_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s6
; GFX90A-NEXT:    s_mov_b32 s11, s7
; GFX90A-NEXT:    s_mov_b32 s12, s4
; GFX90A-NEXT:    s_mov_b32 s13, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_5_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s2
; GFX942-NEXT:    s_mov_b32 s11, s3
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_4() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_4:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_4:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_4:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s0
; GFX942-NEXT:    s_mov_b32 s13, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 4>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_5_5() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_5_5:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_5_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s2
; GFX942-NEXT:    s_mov_b32 s11, s3
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_5_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_5_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s16
; GFX900-NEXT:    s_mov_b32 s9, s17
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s16
; GFX90A-NEXT:    s_mov_b32 s9, s17
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_5_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_5_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_5_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_5_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s10
; GFX942-NEXT:    s_mov_b32 s13, s11
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_5_5() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_5_5:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_5_5() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_5_5:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s10
; GFX9-NEXT:    s_mov_b32 s9, s11
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_5_5() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_5_5:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s12
; GFX9-NEXT:    s_mov_b32 s9, s13
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_5() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_5:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s12, s10
; GFX9-NEXT:    s_mov_b32 s13, s11
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[4:11]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s10
; GFX942-NEXT:    s_mov_b32 s9, s11
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[12:19]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s18
; GFX942-NEXT:    s_mov_b32 s9, s19
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[12:19]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s18
; GFX942-NEXT:    s_mov_b32 s9, s19
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s6
; GFX900-NEXT:    s_mov_b32 s13, s7
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s6
; GFX90A-NEXT:    s_mov_b32 s13, s7
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_5() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_5:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_5:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_5:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s2
; GFX942-NEXT:    s_mov_b32 s13, s3
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 5>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_6_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__u_6_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_6_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    s_mov_b32 s12, s16
; GFX900-NEXT:    s_mov_b32 s13, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    s_mov_b32 s12, s16
; GFX90A-NEXT:    s_mov_b32 s13, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_6_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_6_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s16
; GFX900-NEXT:    s_mov_b32 s9, s17
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s16
; GFX90A-NEXT:    s_mov_b32 s9, s17
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_6_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_6_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_6_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_6_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s12
; GFX942-NEXT:    s_mov_b32 s11, s13
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_6_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_6_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_6_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__5_6_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s10
; GFX9-NEXT:    s_mov_b32 s9, s11
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_6_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__6_6_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s12
; GFX9-NEXT:    s_mov_b32 s9, s13
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_6_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s10, s12
; GFX9-NEXT:    s_mov_b32 s11, s13
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_u_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s16
; GFX900-NEXT:    s_mov_b32 s13, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s16
; GFX90A-NEXT:    s_mov_b32 s13, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s16
; GFX900-NEXT:    s_mov_b32 s11, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s16
; GFX90A-NEXT:    s_mov_b32 s11, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s18
; GFX900-NEXT:    s_mov_b32 s11, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s18
; GFX90A-NEXT:    s_mov_b32 s11, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_6() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_6:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s16
; GFX900-NEXT:    s_mov_b32 s13, s17
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_6:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s16
; GFX90A-NEXT:    s_mov_b32 s13, s17
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_6:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s4
; GFX942-NEXT:    s_mov_b32 s13, s5
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_6() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_6:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 6>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__u_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__u_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__u_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__u_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 poison, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__0_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__0_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s18
; GFX900-NEXT:    s_mov_b32 s11, s19
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__0_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s18
; GFX90A-NEXT:    s_mov_b32 s11, s19
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__0_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 0, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__1_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__1_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s6
; GFX900-NEXT:    s_mov_b32 s9, s7
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__1_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s6
; GFX90A-NEXT:    s_mov_b32 s9, s7
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__1_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s14
; GFX942-NEXT:    s_mov_b32 s11, s15
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 1, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__2_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__2_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s10, s18
; GFX900-NEXT:    s_mov_b32 s11, s19
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__2_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s10, s18
; GFX90A-NEXT:    s_mov_b32 s11, s19
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__2_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s14
; GFX942-NEXT:    s_mov_b32 s11, s15
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 2, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__3_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__3_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s18
; GFX900-NEXT:    s_mov_b32 s11, s19
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__3_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s18
; GFX90A-NEXT:    s_mov_b32 s11, s19
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__3_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s14
; GFX942-NEXT:    s_mov_b32 s11, s15
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 3, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__4_7_7() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__4_7_7:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s10, s14
; GFX9-NEXT:    s_mov_b32 s11, s15
; GFX9-NEXT:    s_mov_b32 s12, s14
; GFX9-NEXT:    s_mov_b32 s13, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 4, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__5_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__5_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__5_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__5_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s2
; GFX942-NEXT:    s_mov_b32 s9, s3
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 5, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__6_7_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__6_7_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s12
; GFX900-NEXT:    s_mov_b32 s9, s13
; GFX900-NEXT:    s_mov_b32 s10, s14
; GFX900-NEXT:    s_mov_b32 s11, s15
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__6_7_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s12
; GFX90A-NEXT:    s_mov_b32 s9, s13
; GFX90A-NEXT:    s_mov_b32 s10, s14
; GFX90A-NEXT:    s_mov_b32 s11, s15
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__6_7_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s4
; GFX942-NEXT:    s_mov_b32 s9, s5
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 6, i32 7, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_u_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_u_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s10
; GFX900-NEXT:    s_mov_b32 s9, s11
; GFX900-NEXT:    s_mov_b32 s12, s10
; GFX900-NEXT:    s_mov_b32 s13, s11
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_u_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s10
; GFX90A-NEXT:    s_mov_b32 s9, s11
; GFX90A-NEXT:    s_mov_b32 s12, s10
; GFX90A-NEXT:    s_mov_b32 s13, s11
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_u_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 poison, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_0_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_0_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s4
; GFX900-NEXT:    s_mov_b32 s11, s5
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_0_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s4
; GFX90A-NEXT:    s_mov_b32 s11, s5
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_0_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 0, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_1_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_1_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_1_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_1_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 1, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_2_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_2_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[16:23]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s22
; GFX900-NEXT:    s_mov_b32 s9, s23
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s22
; GFX900-NEXT:    s_mov_b32 s13, s23
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_2_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[16:23]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s22
; GFX90A-NEXT:    s_mov_b32 s9, s23
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s22
; GFX90A-NEXT:    s_mov_b32 s13, s23
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_2_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 2, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_3_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_3_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[4:11]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_3_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[4:11]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_3_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[8:15]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s14
; GFX942-NEXT:    s_mov_b32 s9, s15
; GFX942-NEXT:    s_mov_b32 s10, s6
; GFX942-NEXT:    s_mov_b32 s11, s7
; GFX942-NEXT:    s_mov_b32 s12, s14
; GFX942-NEXT:    s_mov_b32 s13, s15
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 3, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_4_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_4_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[12:19]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s18
; GFX900-NEXT:    s_mov_b32 s9, s19
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s18
; GFX900-NEXT:    s_mov_b32 s13, s19
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_4_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[12:19]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s18
; GFX90A-NEXT:    s_mov_b32 s9, s19
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s18
; GFX90A-NEXT:    s_mov_b32 s13, s19
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_4_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s0
; GFX942-NEXT:    s_mov_b32 s11, s1
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 4, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_5_7() {
; GFX9-LABEL: s_shuffle_v3p0_v4p0__7_5_7:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s[8:15]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_mov_b32 s8, s14
; GFX9-NEXT:    s_mov_b32 s9, s15
; GFX9-NEXT:    s_mov_b32 s12, s14
; GFX9-NEXT:    s_mov_b32 s13, s15
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:13]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 5, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}

define void @s_shuffle_v3p0_v4p0__7_6_7() {
; GFX900-LABEL: s_shuffle_v3p0_v4p0__7_6_7:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s[8:15]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s8, s14
; GFX900-NEXT:    s_mov_b32 s9, s15
; GFX900-NEXT:    s_mov_b32 s10, s12
; GFX900-NEXT:    s_mov_b32 s11, s13
; GFX900-NEXT:    s_mov_b32 s12, s14
; GFX900-NEXT:    s_mov_b32 s13, s15
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:13]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3p0_v4p0__7_6_7:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s[8:15]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s8, s14
; GFX90A-NEXT:    s_mov_b32 s9, s15
; GFX90A-NEXT:    s_mov_b32 s10, s12
; GFX90A-NEXT:    s_mov_b32 s11, s13
; GFX90A-NEXT:    s_mov_b32 s12, s14
; GFX90A-NEXT:    s_mov_b32 s13, s15
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:13]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3p0_v4p0__7_6_7:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s[0:7]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s8, s6
; GFX942-NEXT:    s_mov_b32 s9, s7
; GFX942-NEXT:    s_mov_b32 s10, s4
; GFX942-NEXT:    s_mov_b32 s11, s5
; GFX942-NEXT:    s_mov_b32 s12, s6
; GFX942-NEXT:    s_mov_b32 s13, s7
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:13]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <4 x ptr> asm "; def $0", "=s"()
  %vec1 = call <4 x ptr> asm "; def $0", "=s"()
  %shuf = shufflevector <4 x ptr> %vec0, <4 x ptr> %vec1, <3 x i32> <i32 7, i32 6, i32 7>
  call void asm sideeffect "; use $0", "{s[8:13]}"(<3 x ptr> %shuf)
  ret void
}
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; GFX90APLUS: {{.*}}
