mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 21:00:29 +00:00
More SPU v2f32 stuff added: insertelement and shuffle.
llvm-svn: 110038
This commit is contained in:
parent
766fd434df
commit
014c93befb
@ -1624,6 +1624,7 @@ LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue T = DAG.getConstant(unsigned(SplatBits), VT.getVectorElementType());
|
||||
return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, T, T, T, T);
|
||||
}
|
||||
case MVT::v2f32:
|
||||
case MVT::v2i32: {
|
||||
return SDValue();
|
||||
}
|
||||
|
@ -1584,6 +1584,9 @@ def : Pat<(v2i64 (SPUprefslot2vec R64C:$rA)),
|
||||
def : Pat<(v4f32 (SPUprefslot2vec R32FP:$rA)),
|
||||
(ORv4f32_f32 R32FP:$rA)>;
|
||||
|
||||
def : Pat<(v2f32 (SPUprefslot2vec R32FP:$rA)),
|
||||
(ORv4f32_f32 R32FP:$rA)>;
|
||||
|
||||
def : Pat<(v2f64 (SPUprefslot2vec R64FP:$rA)),
|
||||
(ORv2f64_f64 R64FP:$rA)>;
|
||||
|
||||
@ -1608,6 +1611,9 @@ def : Pat<(SPUvec2prefslot (v2i64 VECREG:$rA)),
|
||||
def : Pat<(SPUvec2prefslot (v4f32 VECREG:$rA)),
|
||||
(ORf32_v4f32 VECREG:$rA)>;
|
||||
|
||||
def : Pat<(SPUvec2prefslot (v2f32 VECREG:$rA)),
|
||||
(ORf32_v4f32 VECREG:$rA)>;
|
||||
|
||||
def : Pat<(SPUvec2prefslot (v2f64 VECREG:$rA)),
|
||||
(ORf64_v2f64 VECREG:$rA)>;
|
||||
|
||||
@ -2150,6 +2156,8 @@ multiclass ShuffleBytes
|
||||
|
||||
def v4f32 : SHUFBVecInst<v4f32, v16i8>;
|
||||
def v4f32_m32 : SHUFBVecInst<v4f32, v4i32>;
|
||||
def v2f32 : SHUFBVecInst<v2f32, v16i8>;
|
||||
def v2f32_m32 : SHUFBVecInst<v2f32, v4i32>;
|
||||
|
||||
def v2f64 : SHUFBVecInst<v2f64, v16i8>;
|
||||
def v2f64_m32 : SHUFBVecInst<v2f64, v4i32>;
|
||||
|
@ -33,3 +33,13 @@ define %vec @test_mul(%vec %param)
|
||||
ret %vec %1
|
||||
}
|
||||
|
||||
define %vec @test_splat(float %param ) {
|
||||
;CHECK: lqa
|
||||
;CHECK: shufb
|
||||
%sv = insertelement <1 x float> undef, float %param, i32 0
|
||||
%rv = shufflevector <1 x float> %sv, <1 x float> undef, <2 x i32> zeroinitializer
|
||||
;CHECK: bi $lr
|
||||
ret %vec %rv
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user