; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: opt -mtriple=powerpc-unknown-linux-gnu < %s -passes=instcombine | \
; RUN:   llc -mtriple=ppc32-- -mcpu=g5 | not grep vperm
; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- -mcpu=g5 | FileCheck %s

define void @VSLDOI_xy(ptr %A, ptr %B) {
; CHECK-LABEL: VSLDOI_xy:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vsldoi 2, 2, 3, 5
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=1]
	%tmp2 = load <8 x i16>, ptr %B		; <<8 x i16>> [#uses=1]
	%tmp.upgrd.1 = bitcast <8 x i16> %tmp to <16 x i8>		; <<16 x i8>> [#uses=11]
	%tmp2.upgrd.2 = bitcast <8 x i16> %tmp2 to <16 x i8>		; <<16 x i8>> [#uses=5]
	%tmp.upgrd.3 = extractelement <16 x i8> %tmp.upgrd.1, i32 5		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp.upgrd.1, i32 6		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp.upgrd.1, i32 7		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp.upgrd.1, i32 8		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp.upgrd.1, i32 9		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp.upgrd.1, i32 10		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp.upgrd.1, i32 11		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp.upgrd.1, i32 12		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp.upgrd.1, i32 13		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp.upgrd.1, i32 14		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp.upgrd.1, i32 15		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp2.upgrd.2, i32 0		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp2.upgrd.2, i32 1		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp2.upgrd.2, i32 2		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp2.upgrd.2, i32 3		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp2.upgrd.2, i32 4		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.3, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	%tmp33.upgrd.4 = bitcast <16 x i8> %tmp33 to <8 x i16>		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp33.upgrd.4, ptr %A
	ret void
}

define void @VSLDOI_xx(ptr %A, ptr %B) {
; CHECK-LABEL: VSLDOI_xx:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vsldoi 2, 2, 2, 5
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=1]
	%tmp2 = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=1]
	%tmp.upgrd.5 = bitcast <8 x i16> %tmp to <16 x i8>		; <<16 x i8>> [#uses=11]
	%tmp2.upgrd.6 = bitcast <8 x i16> %tmp2 to <16 x i8>		; <<16 x i8>> [#uses=5]
	%tmp.upgrd.7 = extractelement <16 x i8> %tmp.upgrd.5, i32 5		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp.upgrd.5, i32 6		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp.upgrd.5, i32 7		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp.upgrd.5, i32 8		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp.upgrd.5, i32 9		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp.upgrd.5, i32 10		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp.upgrd.5, i32 11		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp.upgrd.5, i32 12		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp.upgrd.5, i32 13		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp.upgrd.5, i32 14		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp.upgrd.5, i32 15		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp2.upgrd.6, i32 0		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp2.upgrd.6, i32 1		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp2.upgrd.6, i32 2		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp2.upgrd.6, i32 3		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp2.upgrd.6, i32 4		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.7, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	%tmp33.upgrd.8 = bitcast <16 x i8> %tmp33 to <8 x i16>		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp33.upgrd.8, ptr %A
	ret void
}

define void @VPERM_promote(ptr %A, ptr %B) {
; CHECK-LABEL: VPERM_promote:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vspltisb 4, 14
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vperm 2, 2, 3, 4
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=1]
	%tmp.upgrd.9 = bitcast <8 x i16> %tmp to <4 x i32>		; <<4 x i32>> [#uses=1]
	%tmp2 = load <8 x i16>, ptr %B		; <<8 x i16>> [#uses=1]
	%tmp2.upgrd.10 = bitcast <8 x i16> %tmp2 to <4 x i32>		; <<4 x i32>> [#uses=1]
	%tmp3 = call <4 x i32> @llvm.ppc.altivec.vperm( <4 x i32> %tmp.upgrd.9, <4 x i32> %tmp2.upgrd.10, <16 x i8> < i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14, i8 14 > )		; <<4 x i32>> [#uses=1]
	%tmp3.upgrd.11 = bitcast <4 x i32> %tmp3 to <8 x i16>		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp3.upgrd.11, ptr %A
	ret void
}

declare <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32>, <4 x i32>, <16 x i8>)

define void @tb_l(ptr %A, ptr %B) {
; CHECK-LABEL: tb_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrglb 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <16 x i8>, ptr %A		; <<16 x i8>> [#uses=8]
	%tmp2 = load <16 x i8>, ptr %B		; <<16 x i8>> [#uses=8]
	%tmp.upgrd.12 = extractelement <16 x i8> %tmp, i32 8		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp2, i32 8		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp, i32 9		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp2, i32 9		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp, i32 10		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp2, i32 10		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp, i32 11		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp2, i32 11		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp, i32 12		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp2, i32 12		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp, i32 13		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp2, i32 13		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp, i32 14		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp2, i32 14		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp, i32 15		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp2, i32 15		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.12, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	store <16 x i8> %tmp33, ptr %A
	ret void
}

define void @th_l(ptr %A, ptr %B) {
; CHECK-LABEL: th_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrglh 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=4]
	%tmp2 = load <8 x i16>, ptr %B		; <<8 x i16>> [#uses=4]
	%tmp.upgrd.13 = extractelement <8 x i16> %tmp, i32 4		; <i16> [#uses=1]
	%tmp3 = extractelement <8 x i16> %tmp2, i32 4		; <i16> [#uses=1]
	%tmp4 = extractelement <8 x i16> %tmp, i32 5		; <i16> [#uses=1]
	%tmp5 = extractelement <8 x i16> %tmp2, i32 5		; <i16> [#uses=1]
	%tmp6 = extractelement <8 x i16> %tmp, i32 6		; <i16> [#uses=1]
	%tmp7 = extractelement <8 x i16> %tmp2, i32 6		; <i16> [#uses=1]
	%tmp8 = extractelement <8 x i16> %tmp, i32 7		; <i16> [#uses=1]
	%tmp9 = extractelement <8 x i16> %tmp2, i32 7		; <i16> [#uses=1]
	%tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.13, i32 0		; <<8 x i16>> [#uses=1]
	%tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1		; <<8 x i16>> [#uses=1]
	%tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2		; <<8 x i16>> [#uses=1]
	%tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3		; <<8 x i16>> [#uses=1]
	%tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4		; <<8 x i16>> [#uses=1]
	%tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5		; <<8 x i16>> [#uses=1]
	%tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6		; <<8 x i16>> [#uses=1]
	%tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp17, ptr %A
	ret void
}

define void @tw_l(ptr %A, ptr %B) {
; CHECK-LABEL: tw_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrglw 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=2]
	%tmp2 = load <4 x i32>, ptr %B		; <<4 x i32>> [#uses=2]
	%tmp.upgrd.14 = extractelement <4 x i32> %tmp, i32 2		; <i32> [#uses=1]
	%tmp3 = extractelement <4 x i32> %tmp2, i32 2		; <i32> [#uses=1]
	%tmp4 = extractelement <4 x i32> %tmp, i32 3		; <i32> [#uses=1]
	%tmp5 = extractelement <4 x i32> %tmp2, i32 3		; <i32> [#uses=1]
	%tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.14, i32 0		; <<4 x i32>> [#uses=1]
	%tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1		; <<4 x i32>> [#uses=1]
	%tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2		; <<4 x i32>> [#uses=1]
	%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp9, ptr %A
	ret void
}

define void @tb_h(ptr %A, ptr %B) {
; CHECK-LABEL: tb_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrghb 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <16 x i8>, ptr %A		; <<16 x i8>> [#uses=8]
	%tmp2 = load <16 x i8>, ptr %B		; <<16 x i8>> [#uses=8]
	%tmp.upgrd.15 = extractelement <16 x i8> %tmp, i32 0		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp2, i32 0		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp, i32 1		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp2, i32 1		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp, i32 2		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp2, i32 2		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp, i32 3		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp2, i32 3		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp, i32 4		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp2, i32 4		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp, i32 5		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp2, i32 5		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp, i32 6		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp2, i32 6		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp, i32 7		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp2, i32 7		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.15, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	store <16 x i8> %tmp33, ptr %A
	ret void
}

define void @th_h(ptr %A, ptr %B) {
; CHECK-LABEL: th_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrghh 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=4]
	%tmp2 = load <8 x i16>, ptr %B		; <<8 x i16>> [#uses=4]
	%tmp.upgrd.16 = extractelement <8 x i16> %tmp, i32 0		; <i16> [#uses=1]
	%tmp3 = extractelement <8 x i16> %tmp2, i32 0		; <i16> [#uses=1]
	%tmp4 = extractelement <8 x i16> %tmp, i32 1		; <i16> [#uses=1]
	%tmp5 = extractelement <8 x i16> %tmp2, i32 1		; <i16> [#uses=1]
	%tmp6 = extractelement <8 x i16> %tmp, i32 2		; <i16> [#uses=1]
	%tmp7 = extractelement <8 x i16> %tmp2, i32 2		; <i16> [#uses=1]
	%tmp8 = extractelement <8 x i16> %tmp, i32 3		; <i16> [#uses=1]
	%tmp9 = extractelement <8 x i16> %tmp2, i32 3		; <i16> [#uses=1]
	%tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.16, i32 0		; <<8 x i16>> [#uses=1]
	%tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1		; <<8 x i16>> [#uses=1]
	%tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2		; <<8 x i16>> [#uses=1]
	%tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3		; <<8 x i16>> [#uses=1]
	%tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4		; <<8 x i16>> [#uses=1]
	%tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5		; <<8 x i16>> [#uses=1]
	%tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6		; <<8 x i16>> [#uses=1]
	%tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp17, ptr %A
	ret void
}

define void @tw_h(ptr %A, ptr %B) {
; CHECK-LABEL: tw_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrghw 2, 3, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=2]
	%tmp2 = load <4 x i32>, ptr %B		; <<4 x i32>> [#uses=2]
	%tmp.upgrd.17 = extractelement <4 x i32> %tmp2, i32 0		; <i32> [#uses=1]
	%tmp3 = extractelement <4 x i32> %tmp, i32 0		; <i32> [#uses=1]
	%tmp4 = extractelement <4 x i32> %tmp2, i32 1		; <i32> [#uses=1]
	%tmp5 = extractelement <4 x i32> %tmp, i32 1		; <i32> [#uses=1]
	%tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.17, i32 0		; <<4 x i32>> [#uses=1]
	%tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1		; <<4 x i32>> [#uses=1]
	%tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2		; <<4 x i32>> [#uses=1]
	%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp9, ptr %A
	ret void
}

define void @tw_h_flop(ptr %A, ptr %B) {
; CHECK-LABEL: tw_h_flop:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    lvx 3, 0, 4
; CHECK-NEXT:    vmrghw 2, 2, 3
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=2]
	%tmp2 = load <4 x i32>, ptr %B		; <<4 x i32>> [#uses=2]
	%tmp.upgrd.18 = extractelement <4 x i32> %tmp, i32 0		; <i32> [#uses=1]
	%tmp3 = extractelement <4 x i32> %tmp2, i32 0		; <i32> [#uses=1]
	%tmp4 = extractelement <4 x i32> %tmp, i32 1		; <i32> [#uses=1]
	%tmp5 = extractelement <4 x i32> %tmp2, i32 1		; <i32> [#uses=1]
	%tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.18, i32 0		; <<4 x i32>> [#uses=1]
	%tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1		; <<4 x i32>> [#uses=1]
	%tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2		; <<4 x i32>> [#uses=1]
	%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp9, ptr %A
	ret void
}

define void @VMRG_UNARY_tb_l(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_tb_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrglb 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <16 x i8>, ptr %A		; <<16 x i8>> [#uses=16]
	%tmp.upgrd.19 = extractelement <16 x i8> %tmp, i32 8		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp, i32 8		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp, i32 9		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp, i32 9		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp, i32 10		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp, i32 10		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp, i32 11		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp, i32 11		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp, i32 12		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp, i32 12		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp, i32 13		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp, i32 13		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp, i32 14		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp, i32 14		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp, i32 15		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp, i32 15		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.19, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	store <16 x i8> %tmp33, ptr %A
	ret void
}

define void @VMRG_UNARY_th_l(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_th_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrglh 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=8]
	%tmp.upgrd.20 = extractelement <8 x i16> %tmp, i32 4		; <i16> [#uses=1]
	%tmp3 = extractelement <8 x i16> %tmp, i32 4		; <i16> [#uses=1]
	%tmp4 = extractelement <8 x i16> %tmp, i32 5		; <i16> [#uses=1]
	%tmp5 = extractelement <8 x i16> %tmp, i32 5		; <i16> [#uses=1]
	%tmp6 = extractelement <8 x i16> %tmp, i32 6		; <i16> [#uses=1]
	%tmp7 = extractelement <8 x i16> %tmp, i32 6		; <i16> [#uses=1]
	%tmp8 = extractelement <8 x i16> %tmp, i32 7		; <i16> [#uses=1]
	%tmp9 = extractelement <8 x i16> %tmp, i32 7		; <i16> [#uses=1]
	%tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.20, i32 0		; <<8 x i16>> [#uses=1]
	%tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1		; <<8 x i16>> [#uses=1]
	%tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2		; <<8 x i16>> [#uses=1]
	%tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3		; <<8 x i16>> [#uses=1]
	%tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4		; <<8 x i16>> [#uses=1]
	%tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5		; <<8 x i16>> [#uses=1]
	%tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6		; <<8 x i16>> [#uses=1]
	%tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp17, ptr %A
	ret void
}

define void @VMRG_UNARY_tw_l(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_tw_l:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrglw 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=4]
	%tmp.upgrd.21 = extractelement <4 x i32> %tmp, i32 2		; <i32> [#uses=1]
	%tmp3 = extractelement <4 x i32> %tmp, i32 2		; <i32> [#uses=1]
	%tmp4 = extractelement <4 x i32> %tmp, i32 3		; <i32> [#uses=1]
	%tmp5 = extractelement <4 x i32> %tmp, i32 3		; <i32> [#uses=1]
	%tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.21, i32 0		; <<4 x i32>> [#uses=1]
	%tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1		; <<4 x i32>> [#uses=1]
	%tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2		; <<4 x i32>> [#uses=1]
	%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp9, ptr %A
	ret void
}

define void @VMRG_UNARY_tb_h(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_tb_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrghb 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <16 x i8>, ptr %A		; <<16 x i8>> [#uses=16]
	%tmp.upgrd.22 = extractelement <16 x i8> %tmp, i32 0		; <i8> [#uses=1]
	%tmp3 = extractelement <16 x i8> %tmp, i32 0		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp, i32 1		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp, i32 1		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp, i32 2		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp, i32 2		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp, i32 3		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp, i32 3		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp, i32 4		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp, i32 4		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp, i32 5		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp, i32 5		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp, i32 6		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp, i32 6		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp, i32 7		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp, i32 7		; <i8> [#uses=1]
	%tmp18 = insertelement <16 x i8> undef, i8 %tmp.upgrd.22, i32 0		; <<16 x i8>> [#uses=1]
	%tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp3, i32 1		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 2		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 3		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 4		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 5		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 6		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 7		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 8		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 9		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 10		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 11		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 12		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 13		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 14		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 15		; <<16 x i8>> [#uses=1]
	store <16 x i8> %tmp33, ptr %A
	ret void
}

define void @VMRG_UNARY_th_h(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_th_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrghh 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=8]
	%tmp.upgrd.23 = extractelement <8 x i16> %tmp, i32 0		; <i16> [#uses=1]
	%tmp3 = extractelement <8 x i16> %tmp, i32 0		; <i16> [#uses=1]
	%tmp4 = extractelement <8 x i16> %tmp, i32 1		; <i16> [#uses=1]
	%tmp5 = extractelement <8 x i16> %tmp, i32 1		; <i16> [#uses=1]
	%tmp6 = extractelement <8 x i16> %tmp, i32 2		; <i16> [#uses=1]
	%tmp7 = extractelement <8 x i16> %tmp, i32 2		; <i16> [#uses=1]
	%tmp8 = extractelement <8 x i16> %tmp, i32 3		; <i16> [#uses=1]
	%tmp9 = extractelement <8 x i16> %tmp, i32 3		; <i16> [#uses=1]
	%tmp10 = insertelement <8 x i16> undef, i16 %tmp.upgrd.23, i32 0		; <<8 x i16>> [#uses=1]
	%tmp11 = insertelement <8 x i16> %tmp10, i16 %tmp3, i32 1		; <<8 x i16>> [#uses=1]
	%tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 2		; <<8 x i16>> [#uses=1]
	%tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 3		; <<8 x i16>> [#uses=1]
	%tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 4		; <<8 x i16>> [#uses=1]
	%tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 5		; <<8 x i16>> [#uses=1]
	%tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 6		; <<8 x i16>> [#uses=1]
	%tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 7		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp17, ptr %A
	ret void
}

define void @VMRG_UNARY_tw_h(ptr %A, ptr %B) {
; CHECK-LABEL: VMRG_UNARY_tw_h:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vmrghw 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=4]
	%tmp.upgrd.24 = extractelement <4 x i32> %tmp, i32 0		; <i32> [#uses=1]
	%tmp3 = extractelement <4 x i32> %tmp, i32 0		; <i32> [#uses=1]
	%tmp4 = extractelement <4 x i32> %tmp, i32 1		; <i32> [#uses=1]
	%tmp5 = extractelement <4 x i32> %tmp, i32 1		; <i32> [#uses=1]
	%tmp6 = insertelement <4 x i32> undef, i32 %tmp.upgrd.24, i32 0		; <<4 x i32>> [#uses=1]
	%tmp7 = insertelement <4 x i32> %tmp6, i32 %tmp3, i32 1		; <<4 x i32>> [#uses=1]
	%tmp8 = insertelement <4 x i32> %tmp7, i32 %tmp4, i32 2		; <<4 x i32>> [#uses=1]
	%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp5, i32 3		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp9, ptr %A
	ret void
}

define void @VPCKUHUM_unary(ptr %A, ptr %B) {
; CHECK-LABEL: VPCKUHUM_unary:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vpkuhum 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <8 x i16>, ptr %A		; <<8 x i16>> [#uses=2]
	%tmp.upgrd.25 = bitcast <8 x i16> %tmp to <16 x i8>		; <<16 x i8>> [#uses=8]
	%tmp3 = bitcast <8 x i16> %tmp to <16 x i8>		; <<16 x i8>> [#uses=8]
	%tmp.upgrd.26 = extractelement <16 x i8> %tmp.upgrd.25, i32 1		; <i8> [#uses=1]
	%tmp4 = extractelement <16 x i8> %tmp.upgrd.25, i32 3		; <i8> [#uses=1]
	%tmp5 = extractelement <16 x i8> %tmp.upgrd.25, i32 5		; <i8> [#uses=1]
	%tmp6 = extractelement <16 x i8> %tmp.upgrd.25, i32 7		; <i8> [#uses=1]
	%tmp7 = extractelement <16 x i8> %tmp.upgrd.25, i32 9		; <i8> [#uses=1]
	%tmp8 = extractelement <16 x i8> %tmp.upgrd.25, i32 11		; <i8> [#uses=1]
	%tmp9 = extractelement <16 x i8> %tmp.upgrd.25, i32 13		; <i8> [#uses=1]
	%tmp10 = extractelement <16 x i8> %tmp.upgrd.25, i32 15		; <i8> [#uses=1]
	%tmp11 = extractelement <16 x i8> %tmp3, i32 1		; <i8> [#uses=1]
	%tmp12 = extractelement <16 x i8> %tmp3, i32 3		; <i8> [#uses=1]
	%tmp13 = extractelement <16 x i8> %tmp3, i32 5		; <i8> [#uses=1]
	%tmp14 = extractelement <16 x i8> %tmp3, i32 7		; <i8> [#uses=1]
	%tmp15 = extractelement <16 x i8> %tmp3, i32 9		; <i8> [#uses=1]
	%tmp16 = extractelement <16 x i8> %tmp3, i32 11		; <i8> [#uses=1]
	%tmp17 = extractelement <16 x i8> %tmp3, i32 13		; <i8> [#uses=1]
	%tmp18 = extractelement <16 x i8> %tmp3, i32 15		; <i8> [#uses=1]
	%tmp19 = insertelement <16 x i8> undef, i8 %tmp.upgrd.26, i32 0		; <<16 x i8>> [#uses=1]
	%tmp20 = insertelement <16 x i8> %tmp19, i8 %tmp4, i32 1		; <<16 x i8>> [#uses=1]
	%tmp21 = insertelement <16 x i8> %tmp20, i8 %tmp5, i32 2		; <<16 x i8>> [#uses=1]
	%tmp22 = insertelement <16 x i8> %tmp21, i8 %tmp6, i32 3		; <<16 x i8>> [#uses=1]
	%tmp23 = insertelement <16 x i8> %tmp22, i8 %tmp7, i32 4		; <<16 x i8>> [#uses=1]
	%tmp24 = insertelement <16 x i8> %tmp23, i8 %tmp8, i32 5		; <<16 x i8>> [#uses=1]
	%tmp25 = insertelement <16 x i8> %tmp24, i8 %tmp9, i32 6		; <<16 x i8>> [#uses=1]
	%tmp26 = insertelement <16 x i8> %tmp25, i8 %tmp10, i32 7		; <<16 x i8>> [#uses=1]
	%tmp27 = insertelement <16 x i8> %tmp26, i8 %tmp11, i32 8		; <<16 x i8>> [#uses=1]
	%tmp28 = insertelement <16 x i8> %tmp27, i8 %tmp12, i32 9		; <<16 x i8>> [#uses=1]
	%tmp29 = insertelement <16 x i8> %tmp28, i8 %tmp13, i32 10		; <<16 x i8>> [#uses=1]
	%tmp30 = insertelement <16 x i8> %tmp29, i8 %tmp14, i32 11		; <<16 x i8>> [#uses=1]
	%tmp31 = insertelement <16 x i8> %tmp30, i8 %tmp15, i32 12		; <<16 x i8>> [#uses=1]
	%tmp32 = insertelement <16 x i8> %tmp31, i8 %tmp16, i32 13		; <<16 x i8>> [#uses=1]
	%tmp33 = insertelement <16 x i8> %tmp32, i8 %tmp17, i32 14		; <<16 x i8>> [#uses=1]
	%tmp34 = insertelement <16 x i8> %tmp33, i8 %tmp18, i32 15		; <<16 x i8>> [#uses=1]
	%tmp34.upgrd.27 = bitcast <16 x i8> %tmp34 to <8 x i16>		; <<8 x i16>> [#uses=1]
	store <8 x i16> %tmp34.upgrd.27, ptr %A
	ret void
}

define void @VPCKUWUM_unary(ptr %A, ptr %B) {
; CHECK-LABEL: VPCKUWUM_unary:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lvx 2, 0, 3
; CHECK-NEXT:    vpkuwum 2, 2, 2
; CHECK-NEXT:    stvx 2, 0, 3
; CHECK-NEXT:    blr
entry:
	%tmp = load <4 x i32>, ptr %A		; <<4 x i32>> [#uses=2]
	%tmp.upgrd.28 = bitcast <4 x i32> %tmp to <8 x i16>		; <<8 x i16>> [#uses=4]
	%tmp3 = bitcast <4 x i32> %tmp to <8 x i16>		; <<8 x i16>> [#uses=4]
	%tmp.upgrd.29 = extractelement <8 x i16> %tmp.upgrd.28, i32 1		; <i16> [#uses=1]
	%tmp4 = extractelement <8 x i16> %tmp.upgrd.28, i32 3		; <i16> [#uses=1]
	%tmp5 = extractelement <8 x i16> %tmp.upgrd.28, i32 5		; <i16> [#uses=1]
	%tmp6 = extractelement <8 x i16> %tmp.upgrd.28, i32 7		; <i16> [#uses=1]
	%tmp7 = extractelement <8 x i16> %tmp3, i32 1		; <i16> [#uses=1]
	%tmp8 = extractelement <8 x i16> %tmp3, i32 3		; <i16> [#uses=1]
	%tmp9 = extractelement <8 x i16> %tmp3, i32 5		; <i16> [#uses=1]
	%tmp10 = extractelement <8 x i16> %tmp3, i32 7		; <i16> [#uses=1]
	%tmp11 = insertelement <8 x i16> undef, i16 %tmp.upgrd.29, i32 0		; <<8 x i16>> [#uses=1]
	%tmp12 = insertelement <8 x i16> %tmp11, i16 %tmp4, i32 1		; <<8 x i16>> [#uses=1]
	%tmp13 = insertelement <8 x i16> %tmp12, i16 %tmp5, i32 2		; <<8 x i16>> [#uses=1]
	%tmp14 = insertelement <8 x i16> %tmp13, i16 %tmp6, i32 3		; <<8 x i16>> [#uses=1]
	%tmp15 = insertelement <8 x i16> %tmp14, i16 %tmp7, i32 4		; <<8 x i16>> [#uses=1]
	%tmp16 = insertelement <8 x i16> %tmp15, i16 %tmp8, i32 5		; <<8 x i16>> [#uses=1]
	%tmp17 = insertelement <8 x i16> %tmp16, i16 %tmp9, i32 6		; <<8 x i16>> [#uses=1]
	%tmp18 = insertelement <8 x i16> %tmp17, i16 %tmp10, i32 7		; <<8 x i16>> [#uses=1]
	%tmp18.upgrd.30 = bitcast <8 x i16> %tmp18 to <4 x i32>		; <<4 x i32>> [#uses=1]
	store <4 x i32> %tmp18.upgrd.30, ptr %A
	ret void
}
