summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/vec_insert_to_shuffle.ll
blob: 0611305beeab0b6546fc95d43e5b2986400bf369 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep shufflevec | wc -l | grep 1 &&
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep insertelement &&
; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep extractelement

<4 x float> %test(<4 x float> %tmp, <4 x float> %tmp1) {
	%tmp4 = extractelement <4 x float> %tmp, uint 1		; <float> [#uses=1]
	%tmp2 = extractelement <4 x float> %tmp, uint 3		; <float> [#uses=1]
	%tmp1 = extractelement <4 x float> %tmp1, uint 0		; <float> [#uses=1]
	%tmp128 = insertelement <4 x float> undef, float %tmp4, uint 0		; <<4 x float>> [#uses=1]
	%tmp130 = insertelement <4 x float> %tmp128, float undef, uint 1		; <<4 x float>> [#uses=1]
	%tmp132 = insertelement <4 x float> %tmp130, float %tmp2, uint 2		; <<4 x float>> [#uses=1]
	%tmp134 = insertelement <4 x float> %tmp132, float %tmp1, uint 3		; <<4 x float>> [#uses=1]
	ret <4 x float> %tmp134
}