diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-07-18 06:14:54 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-07-18 06:14:54 +0000 |
commit | 1af6cc00dce49921720eef2e93d64b7d069c4351 (patch) | |
tree | bf756acccb38eccf90c1a6ee1912699fd22b9a30 /llvm/lib/Target | |
parent | ba9b93d7f2badb8b7686f8bf3ca9aa983b016eaf (diff) | |
download | bcm5719-llvm-1af6cc00dce49921720eef2e93d64b7d069c4351.tar.gz bcm5719-llvm-1af6cc00dce49921720eef2e93d64b7d069c4351.zip |
[X86] Add VPADD instructions to X86InstrInfo::isAssociativeAndCommutative.
llvm-svn: 275769
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index 520981892bf..31b11f4a276 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -7649,6 +7649,10 @@ bool X86InstrInfo::isAssociativeAndCommutative(const MachineInstr &Inst) const { case X86::ORPSrr: case X86::XORPDrr: case X86::XORPSrr: + case X86::PADDBrr: + case X86::PADDWrr: + case X86::PADDDrr: + case X86::PADDQrr: case X86::VPANDrr: case X86::VPANDYrr: case X86::VPANDDZ128rr: @@ -7703,6 +7707,26 @@ bool X86InstrInfo::isAssociativeAndCommutative(const MachineInstr &Inst) const { case X86::VXORPSZ256rr: case X86::VXORPDZrr: case X86::VXORPSZrr: + case X86::VPADDBrr: + case X86::VPADDWrr: + case X86::VPADDDrr: + case X86::VPADDQrr: + case X86::VPADDBYrr: + case X86::VPADDWYrr: + case X86::VPADDDYrr: + case X86::VPADDQYrr: + case X86::VPADDBZ128rr: + case X86::VPADDWZ128rr: + case X86::VPADDDZ128rr: + case X86::VPADDQZ128rr: + case X86::VPADDBZ256rr: + case X86::VPADDWZ256rr: + case X86::VPADDDZ256rr: + case X86::VPADDQZ256rr: + case X86::VPADDBZrr: + case X86::VPADDWZrr: + case X86::VPADDDZrr: + case X86::VPADDQZrr: // Normal min/max instructions are not commutative because of NaN and signed // zero semantics, but these are. Thus, there's no need to check for global // relaxed math; the instructions themselves have the properties we need. |