Change the interface to the predicate that determines if vsplti* can be used.

No functionality changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27536 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2006-04-08 06:46:53 +00:00
parent b84a6c8371
commit 140a58f9df
3 changed files with 28 additions and 32 deletions

View File

@@ -111,32 +111,26 @@ def VSPLTW_shuffle_mask : PatLeaf<(build_vector), [{
// VSPLTISB_get_imm xform function: convert build_vector to VSPLTISB imm.
def VSPLTISB_get_imm : SDNodeXForm<build_vector, [{
char Val;
PPC::isVecSplatImm(N, 1, &Val);
return getI32Imm(Val);
return PPC::get_VSPLI_elt(N, 1, *CurDAG);
}]>;
def vecspltisb : PatLeaf<(build_vector), [{
return PPC::isVecSplatImm(N, 1);
return PPC::get_VSPLI_elt(N, 1, *CurDAG).Val != 0;
}], VSPLTISB_get_imm>;
// VSPLTISH_get_imm xform function: convert build_vector to VSPLTISH imm.
def VSPLTISH_get_imm : SDNodeXForm<build_vector, [{
char Val;
PPC::isVecSplatImm(N, 2, &Val);
return getI32Imm(Val);
return PPC::get_VSPLI_elt(N, 2, *CurDAG);
}]>;
def vecspltish : PatLeaf<(build_vector), [{
return PPC::isVecSplatImm(N, 2);
return PPC::get_VSPLI_elt(N, 2, *CurDAG).Val != 0;
}], VSPLTISH_get_imm>;
// VSPLTISW_get_imm xform function: convert build_vector to VSPLTISW imm.
def VSPLTISW_get_imm : SDNodeXForm<build_vector, [{
char Val;
PPC::isVecSplatImm(N, 4, &Val);
return getI32Imm(Val);
return PPC::get_VSPLI_elt(N, 4, *CurDAG);
}]>;
def vecspltisw : PatLeaf<(build_vector), [{
return PPC::isVecSplatImm(N, 4);
return PPC::get_VSPLI_elt(N, 4, *CurDAG).Val != 0;
}], VSPLTISW_get_imm>;
//===----------------------------------------------------------------------===//