; 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_v3i16_v2i16__u_u_u(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3i16_v2i16__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 <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> poison
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

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

define void @v_shuffle_v3i16_v2i16__2_u_u(ptr addrspace(1) inreg %ptr) {
; GFX9-LABEL: v_shuffle_v3i16_v2i16__2_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 <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 2, i32 poison, i32 poison>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_u_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_alignbit_b32 v1, s4, v1, 16
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_alignbit_b32 v1, s4, v1, 16
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_alignbit_b32 v1, s0, v1, 16
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 poison>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_0_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_0_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_0_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_0_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 poison>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_1_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_1_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_1_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_1_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_perm_b32 v1, v1, v2, s2
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 poison>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__3_3_u(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_3_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_perm_b32 v1, v1, v1, s4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_3_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_perm_b32 v1, v1, v1, s4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_3_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_perm_b32 v1, v1, v1, s2
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 poison>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_3_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_3_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_perm_b32 v2, v2, v2, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_3_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_perm_b32 v2, v2, v2, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_3_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_perm_b32 v2, v2, v2, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 0>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_3_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_3_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_perm_b32 v2, v2, v2, s4
; GFX900-NEXT:    global_store_short_d16_hi v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_3_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_perm_b32 v2, v2, v2, s4
; GFX90A-NEXT:    global_store_short_d16_hi v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_3_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_perm_b32 v2, v2, v2, s2
; GFX942-NEXT:    global_store_short_d16_hi v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 1>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_3_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_3_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_3_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_3_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 2>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__u_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__u_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x5040100
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__u_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x5040100
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__u_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x5040100
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 poison, i32 0, i32 0>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__0_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__0_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x5040100
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__0_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x5040100
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__0_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x5040100
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> zeroinitializer
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__2_0_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__2_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x5040100
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__2_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x5040100
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__2_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x5040100
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 2, i32 0, i32 0>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__3_u_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_u_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_alignbit_b32 v2, s4, v2, 16
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_u_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_alignbit_b32 v2, s4, v2, 16
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_u_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_alignbit_b32 v2, s0, v2, 16
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 0>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_1_0(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_1_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_perm_b32 v2, v1, v2, s4
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_1_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_perm_b32 v2, v1, v2, s4
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_1_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_perm_b32 v2, v1, v2, s2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 0>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

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

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

define void @v_shuffle_v3i16_v2i16__1_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__1_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__1_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_perm_b32 v2, v1, v1, s4
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__1_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_perm_b32 v2, v1, v1, s2
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 1, i32 1, i32 1>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__3_1_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_perm_b32 v2, v1, v2, s4
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_perm_b32 v2, v1, v2, s4
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_perm_b32 v2, v1, v2, s2
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 1>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_u_1(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_u_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_alignbit_b32 v2, s4, v2, 16
; GFX900-NEXT:    global_store_short_d16_hi v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_u_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_alignbit_b32 v2, s4, v2, 16
; GFX90A-NEXT:    global_store_short_d16_hi v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_u_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_alignbit_b32 v2, s0, v2, 16
; GFX942-NEXT:    global_store_short_d16_hi v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 1>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

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

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

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

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

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

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

define void @v_shuffle_v3i16_v2i16__3_u_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_u_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_alignbit_b32 v2, s4, v1, 16
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_u_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_alignbit_b32 v2, s4, v1, 16
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_u_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_alignbit_b32 v2, s0, v1, 16
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 2>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__3_1_2(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_1_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX900-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_1_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX90A-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_1_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_perm_b32 v1, v1, v2, s2
; GFX942-NEXT:    global_store_short v0, v2, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 2>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__0_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__0_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0xffff
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_bfi_b32 v1, s4, v1, v2
; GFX900-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX900-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__0_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0xffff
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_bfi_b32 v1, s4, v1, v2
; GFX90A-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX90A-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__0_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0xffff
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_bfi_b32 v1, s2, v1, v2
; GFX942-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX942-NEXT:    global_store_short v0, v2, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 0, i32 3, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__1_3_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__1_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_perm_b32 v1, v2, v1, s4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__1_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_perm_b32 v1, v2, v1, s4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__1_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_perm_b32 v1, v2, v1, s2
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 1, i32 3, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

define void @v_shuffle_v3i16_v2i16__3_u_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_u_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_alignbit_b32 v2, s4, v1, 16
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_u_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_alignbit_b32 v2, s4, v1, 16
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_u_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_alignbit_b32 v2, s0, v1, 16
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_0_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_0_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX900-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX900-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_0_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX90A-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX90A-NEXT:    global_store_short v0, v2, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_0_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_alignbit_b32 v1, v1, v2, 16
; GFX942-NEXT:    v_lshrrev_b32_e32 v2, 16, v2
; GFX942-NEXT:    global_store_short v0, v2, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_1_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_1_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_mov_b32 s4, 0x7060302
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v2
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX900-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_1_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_mov_b32 s4, 0x7060302
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v2
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_perm_b32 v1, v1, v2, s4
; GFX90A-NEXT:    global_store_dword v0, v1, s[16:17]
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_1_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_mov_b32 s2, 0x7060302
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v2
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_nop 0
; GFX942-NEXT:    v_perm_b32 v1, v1, v2, s2
; GFX942-NEXT:    global_store_dword v0, v1, s[0:1]
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v2
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

define void @v_shuffle_v3i16_v2i16__3_2_3(ptr addrspace(1) inreg %ptr) {
; GFX900-LABEL: v_shuffle_v3i16_v2i16__3_2_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def v1
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    v_mov_b32_e32 v0, 0
; GFX900-NEXT:    v_alignbit_b32 v2, v1, v1, 16
; GFX900-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX900-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX900-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX900-NEXT:    s_waitcnt vmcnt(0)
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: v_shuffle_v3i16_v2i16__3_2_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def v1
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    v_mov_b32_e32 v0, 0
; GFX90A-NEXT:    v_alignbit_b32 v2, v1, v1, 16
; GFX90A-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX90A-NEXT:    global_store_short v0, v1, s[16:17] offset:4
; GFX90A-NEXT:    global_store_dword v0, v2, s[16:17]
; GFX90A-NEXT:    s_waitcnt vmcnt(0)
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: v_shuffle_v3i16_v2i16__3_2_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def v1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    v_mov_b32_e32 v0, 0
; GFX942-NEXT:    v_alignbit_b32 v2, v1, v1, 16
; GFX942-NEXT:    v_lshrrev_b32_e32 v1, 16, v1
; GFX942-NEXT:    global_store_short v0, v1, s[0:1] offset:4
; GFX942-NEXT:    global_store_dword v0, v2, s[0:1]
; GFX942-NEXT:    s_waitcnt vmcnt(0)
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=v"()
  %vec1 = call <2 x i16> asm "; def $0", "=v"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 3>
  store <3 x i16> %shuf, ptr addrspace(1) %ptr, align 8
  ret void
}

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

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

define void @s_shuffle_v3i16_v2i16__1_u_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__1_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s8, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__1_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s8, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__1_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s8, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 1, i32 poison, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

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

define void @s_shuffle_v3i16_v2i16__3_u_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_u_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s8, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_u_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s8, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_u_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s8, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_0_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_0_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s5, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_0_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s5, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_0_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s1, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s1, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_1_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_1_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_1_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_1_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s1, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_2_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_2_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s5, s4, 16
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_2_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s5, s4, 16
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_2_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s1, s0, 16
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s1, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_3_u() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_3_u:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_3_u:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_3_u:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 poison>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_3_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_3_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_3_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_3_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_3_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_3_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s5, s5
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_3_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s5, s5
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_3_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s1, s1
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_3_2() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__3_3_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s9
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_pack_hh_b32_b16 s8, s9, s9
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_3_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 3, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

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

define void @s_shuffle_v3i16_v2i16__0_0_0() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__0_0_0:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s9
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_pack_ll_b32_b16 s8, s9, s9
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> zeroinitializer
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__1_0_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__1_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s4, s9, 16
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__1_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s4, s9, 16
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__1_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s0, s9, 16
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s0, s9
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 1, i32 0, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

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

define void @s_shuffle_v3i16_v2i16__3_0_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_0_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s4, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_0_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s4, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_0_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s0, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s0, s9
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_u_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_u_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s8, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_u_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s8, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_u_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s8, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_1_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_1_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s9
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_1_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s9
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_1_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s9
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_2_0() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_2_0:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s5, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_2_0:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s5, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_2_0:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s1, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s1, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 0>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__u_1_1() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__u_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s8
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s9, s8, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 poison, i32 1, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__0_1_1() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__0_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s8
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s9, s8, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__1_1_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__1_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__1_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__1_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 1, i32 1, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__2_1_1() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__2_1_1:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s8
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s9, s8, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 2, i32 1, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_1_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_1_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_1_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_1_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s1, s0
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_u_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_u_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    s_lshr_b32 s8, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_u_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    s_lshr_b32 s8, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_u_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    s_lshr_b32 s8, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_0_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_0_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s5, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_0_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s5, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_0_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s1, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s1, s0
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_2_1() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_2_1:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s6, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s6, s5
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_2_1:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s6, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s6, s5
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_2_1:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s2, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s2, s1
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 1>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

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

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

define void @s_shuffle_v3i16_v2i16__1_2_2() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__1_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s8, s4, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__1_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s8, s4, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__1_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s8, s0, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> poison, <3 x i32> <i32 1, i32 2, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

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

define void @s_shuffle_v3i16_v2i16__3_2_2() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_2_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s4, s9, 16
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_2_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s4, s9, 16
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s4, s9
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_2_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s0, s9, 16
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s0, s9
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_u_2() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__3_u_2:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s9
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s8, s9, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_0_2() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_0_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s5, s9, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_0_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s5, s9, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s5, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_0_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s1, s9, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s1, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_1_2() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_1_2:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s9
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s9, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_1_2:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s9
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s9, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_1_2:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s9
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s9, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 2>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__u_3_3() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__u_3_3:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s8
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s9, s8, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 poison, i32 3, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__0_3_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__0_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_lh_b32_b16 s8, s4, s5
; GFX900-NEXT:    s_lshr_b32 s9, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__0_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_lh_b32_b16 s8, s4, s5
; GFX90A-NEXT:    s_lshr_b32 s9, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__0_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_lh_b32_b16 s8, s0, s1
; GFX942-NEXT:    s_lshr_b32 s9, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 0, i32 3, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__1_3_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__1_3_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s4, s5
; GFX900-NEXT:    s_lshr_b32 s9, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__1_3_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s4, s5
; GFX90A-NEXT:    s_lshr_b32 s9, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__1_3_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s0, s1
; GFX942-NEXT:    s_lshr_b32 s9, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 1, i32 3, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__2_3_3() {
; GFX9-LABEL: s_shuffle_v3i16_v2i16__2_3_3:
; GFX9:       ; %bb.0:
; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; def s8
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_lshr_b32 s9, s8, 16
; GFX9-NEXT:    ;;#ASMSTART
; GFX9-NEXT:    ; use s[8:9]
; GFX9-NEXT:    ;;#ASMEND
; GFX9-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 2, i32 3, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_u_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_u_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s8, s4, 16
; GFX900-NEXT:    s_mov_b32 s9, s8
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_u_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s8, s4, 16
; GFX90A-NEXT:    s_mov_b32 s9, s8
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_u_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s8, s0, 16
; GFX942-NEXT:    s_mov_b32 s9, s8
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 poison, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_0_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_0_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s9, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_0_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s9, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_0_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s9, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 0, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_1_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_1_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s5
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX900-NEXT:    s_lshr_b32 s9, s5, 16
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_1_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s5
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_pack_hh_b32_b16 s8, s5, s4
; GFX90A-NEXT:    s_lshr_b32 s9, s5, 16
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_1_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s1
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_pack_hh_b32_b16 s8, s1, s0
; GFX942-NEXT:    s_lshr_b32 s9, s1, 16
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 1, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}

define void @s_shuffle_v3i16_v2i16__3_2_3() {
; GFX900-LABEL: s_shuffle_v3i16_v2i16__3_2_3:
; GFX900:       ; %bb.0:
; GFX900-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; def s4
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_lshr_b32 s9, s4, 16
; GFX900-NEXT:    s_pack_ll_b32_b16 s8, s9, s4
; GFX900-NEXT:    ;;#ASMSTART
; GFX900-NEXT:    ; use s[8:9]
; GFX900-NEXT:    ;;#ASMEND
; GFX900-NEXT:    s_setpc_b64 s[30:31]
;
; GFX90A-LABEL: s_shuffle_v3i16_v2i16__3_2_3:
; GFX90A:       ; %bb.0:
; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; def s4
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_lshr_b32 s9, s4, 16
; GFX90A-NEXT:    s_pack_ll_b32_b16 s8, s9, s4
; GFX90A-NEXT:    ;;#ASMSTART
; GFX90A-NEXT:    ; use s[8:9]
; GFX90A-NEXT:    ;;#ASMEND
; GFX90A-NEXT:    s_setpc_b64 s[30:31]
;
; GFX942-LABEL: s_shuffle_v3i16_v2i16__3_2_3:
; GFX942:       ; %bb.0:
; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; def s0
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_lshr_b32 s9, s0, 16
; GFX942-NEXT:    s_pack_ll_b32_b16 s8, s9, s0
; GFX942-NEXT:    ;;#ASMSTART
; GFX942-NEXT:    ; use s[8:9]
; GFX942-NEXT:    ;;#ASMEND
; GFX942-NEXT:    s_setpc_b64 s[30:31]
  %vec0 = call <2 x i16> asm "; def $0", "=s"()
  %vec1 = call <2 x i16> asm "; def $0", "=s"()
  %shuf = shufflevector <2 x i16> %vec0, <2 x i16> %vec1, <3 x i32> <i32 3, i32 2, i32 3>
  %extend3 = shufflevector <3 x i16> %shuf, <3 x i16> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 poison>
  call void asm sideeffect "; use $0", "{s[8:9]}"(<4 x i16> %extend3)
  ret void
}
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; GFX90APLUS: {{.*}}
