mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[X86] Mark some of the X86 SDNodes as commutative.
llvm-svn: 278653
This commit is contained in:
parent
3cde28eada
commit
96f75b2219
@ -5691,9 +5691,9 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_x86_avx512_psad_bw_512 : GCCBuiltin<"__builtin_ia32_psadbw512">,
|
||||
def int_x86_avx512_psad_bw_512 : GCCBuiltin<"__builtin_ia32_psadbw512">,
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty],
|
||||
[IntrNoMem]>;
|
||||
[IntrNoMem, Commutative]>;
|
||||
}
|
||||
// FP logical ops
|
||||
let TargetPrefix = "x86" in {
|
||||
|
@ -83,7 +83,7 @@ def X86psadbw : SDNode<"X86ISD::PSADBW",
|
||||
SDTypeProfile<1, 2, [SDTCVecEltisVT<0, i64>,
|
||||
SDTCVecEltisVT<1, i8>,
|
||||
SDTCisSameSizeAs<0,1>,
|
||||
SDTCisSameAs<1,2>]>>;
|
||||
SDTCisSameAs<1,2>]>, [SDNPCommutative]>;
|
||||
def X86dbpsadbw : SDNode<"X86ISD::DBPSADBW",
|
||||
SDTypeProfile<1, 3, [SDTCVecEltisVT<0, i16>,
|
||||
SDTCVecEltisVT<1, i8>,
|
||||
@ -262,12 +262,12 @@ def SDTX86Testm : SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisVec<1>,
|
||||
SDTCisSameAs<2, 1>, SDTCVecEltisVT<0, i1>,
|
||||
SDTCisSameNumEltsAs<0, 1>]>;
|
||||
|
||||
def X86addus : SDNode<"X86ISD::ADDUS", SDTIntBinOp>;
|
||||
def X86addus : SDNode<"X86ISD::ADDUS", SDTIntBinOp, [SDNPCommutative]>;
|
||||
def X86subus : SDNode<"X86ISD::SUBUS", SDTIntBinOp>;
|
||||
def X86adds : SDNode<"X86ISD::ADDS", SDTIntBinOp>;
|
||||
def X86adds : SDNode<"X86ISD::ADDS", SDTIntBinOp, [SDNPCommutative]>;
|
||||
def X86subs : SDNode<"X86ISD::SUBS", SDTIntBinOp>;
|
||||
def X86mulhrs : SDNode<"X86ISD::MULHRS" , SDTIntBinOp>;
|
||||
def X86avg : SDNode<"X86ISD::AVG" , SDTIntBinOp>;
|
||||
def X86mulhrs : SDNode<"X86ISD::MULHRS", SDTIntBinOp, [SDNPCommutative]>;
|
||||
def X86avg : SDNode<"X86ISD::AVG" , SDTIntBinOp, [SDNPCommutative]>;
|
||||
def X86ptest : SDNode<"X86ISD::PTEST", SDTX86CmpPTest>;
|
||||
def X86testp : SDNode<"X86ISD::TESTP", SDTX86CmpPTest>;
|
||||
def X86kortest : SDNode<"X86ISD::KORTEST", SDTX86CmpPTest>;
|
||||
@ -293,12 +293,14 @@ def X86pmuludq : SDNode<"X86ISD::PMULUDQ",
|
||||
SDTypeProfile<1, 2, [SDTCVecEltisVT<0, i64>,
|
||||
SDTCVecEltisVT<1, i32>,
|
||||
SDTCisSameSizeAs<0,1>,
|
||||
SDTCisSameAs<1,2>]>>;
|
||||
SDTCisSameAs<1,2>]>,
|
||||
[SDNPCommutative]>;
|
||||
def X86pmuldq : SDNode<"X86ISD::PMULDQ",
|
||||
SDTypeProfile<1, 2, [SDTCVecEltisVT<0, i64>,
|
||||
SDTCVecEltisVT<1, i32>,
|
||||
SDTCisSameSizeAs<0,1>,
|
||||
SDTCisSameAs<1,2>]>>;
|
||||
SDTCisSameAs<1,2>]>,
|
||||
[SDNPCommutative]>;
|
||||
|
||||
def X86extrqi : SDNode<"X86ISD::EXTRQI",
|
||||
SDTypeProfile<1, 3, [SDTCisVT<0, v2i64>, SDTCisSameAs<0,1>,
|
||||
@ -394,7 +396,7 @@ def X86Unpckl : SDNode<"X86ISD::UNPCKL", SDTShuff2Op>;
|
||||
def X86Unpckh : SDNode<"X86ISD::UNPCKH", SDTShuff2Op>;
|
||||
|
||||
def X86vpmaddubsw : SDNode<"X86ISD::VPMADDUBSW" , SDTPack>;
|
||||
def X86vpmaddwd : SDNode<"X86ISD::VPMADDWD" , SDTPack>;
|
||||
def X86vpmaddwd : SDNode<"X86ISD::VPMADDWD" , SDTPack, [SDNPCommutative]>;
|
||||
|
||||
def X86VPermilpv : SDNode<"X86ISD::VPERMILPV", SDTShuff2OpM>;
|
||||
def X86VPermilpi : SDNode<"X86ISD::VPERMILPI", SDTShuff2OpI>;
|
||||
|
Loading…
Reference in New Issue
Block a user