mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 23:18:51 +00:00
908504347b
Update these tests to not use the same name even though the type of the value differs. After PR411 hits, type planes will be gone and it will be illegal for a name to be used twice, regardless of type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33660 91177308-0d34-0410-b5e6-96231b3b80d8
49 lines
1.7 KiB
LLVM
49 lines
1.7 KiB
LLVM
; RUN: llvm-as < %s | opt -instcombine -disable-output &&
|
|
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep vector_shuffle
|
|
|
|
%T = type <4 x float>
|
|
|
|
implementation
|
|
|
|
define %T @test1(%T %v1) {
|
|
%v2 = shufflevector %T %v1, %T undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
|
|
ret %T %v2
|
|
}
|
|
|
|
define %T @test2(%T %v1) {
|
|
%v2 = shufflevector %T %v1, %T %v1, <4 x i32> <i32 0, i32 5, i32 2, i32 7>
|
|
ret %T %v2
|
|
}
|
|
|
|
define float @test3(%T %A, %T %B, float %f) {
|
|
%C = insertelement %T %A, float %f, i32 0
|
|
%D = shufflevector %T %C, %T %B, <4 x i32> <i32 5, i32 0, i32 2, i32 7>
|
|
%E = extractelement %T %D, i32 1
|
|
ret float %E
|
|
}
|
|
|
|
define i32 @test4(<4 x i32> %X) {
|
|
%tmp152.i53899.i = shufflevector <4 x i32> %X, <4 x i32> undef, <4 x i32> zeroinitializer
|
|
%tmp34 = extractelement <4 x i32> %tmp152.i53899.i, i32 0
|
|
ret i32 %tmp34
|
|
}
|
|
|
|
define i32 @test5(<4 x i32> %X) {
|
|
%tmp152.i53899.i = shufflevector <4 x i32> %X, <4 x i32> undef, <4 x i32> <i32 3, i32 2, i32 undef, i32 undef>
|
|
%tmp34 = extractelement <4 x i32> %tmp152.i53899.i, i32 0
|
|
ret i32 %tmp34
|
|
}
|
|
|
|
define float @test6(<4 x float> %X) {
|
|
%X1 = bitcast <4 x float> %X to <4 x i32>
|
|
%tmp152.i53899.i = shufflevector <4 x i32> %X1, <4 x i32> undef, <4 x i32> zeroinitializer
|
|
%tmp152.i53900.i = bitcast <4 x i32> %tmp152.i53899.i to <4 x float>
|
|
%tmp34 = extractelement <4 x float> %tmp152.i53900.i, i32 0
|
|
ret float %tmp34
|
|
}
|
|
|
|
define <4 x float> @test7(<4 x float> %tmp45.i) {
|
|
%tmp1642.i = shufflevector <4 x float> %tmp45.i, <4 x float> undef, <4 x i32> < i32 0, i32 1, i32 6, i32 7 >
|
|
ret <4 x float> %tmp1642.i
|
|
}
|