summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrInfo.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2015-08-21 18:06:49 +0000
committerSanjay Patel <spatel@rotateright.com>2015-08-21 18:06:49 +0000
commitcf942fa905d5ba47e90b91c248aacd9def24feb7 (patch)
treeb8465a00f1072b6be1235fc9ccec0dc7fc15ebcd /llvm/lib/Target/X86/X86InstrInfo.cpp
parent2ac796d6ccaf2428a1a2f8a6b98a33e6635980d8 (diff)
downloadbcm5719-llvm-cf942fa905d5ba47e90b91c248aacd9def24feb7.tar.gz
bcm5719-llvm-cf942fa905d5ba47e90b91c248aacd9def24feb7.zip
[x86] enable machine combiner reassociations for 128-bit vector min/max
llvm-svn: 245715
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 3732823f167..d964bf17a0f 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -6394,12 +6394,20 @@ static bool isAssociativeAndCommutative(const MachineInstr &Inst) {
// 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.
+ case X86::MAXCPDrr:
+ case X86::MAXCPSrr:
case X86::MAXCSDrr:
case X86::MAXCSSrr:
+ case X86::MINCPDrr:
+ case X86::MINCPSrr:
case X86::MINCSDrr:
case X86::MINCSSrr:
+ case X86::VMAXCPDrr:
+ case X86::VMAXCPSrr:
case X86::VMAXCSDrr:
case X86::VMAXCSSrr:
+ case X86::VMINCPDrr:
+ case X86::VMINCPSrr:
case X86::VMINCSDrr:
case X86::VMINCSSrr:
return true;
OpenPOWER on IntegriCloud