Allow non-AVX form of pmovmskb to take a GR64 operand.
[oota-llvm.git] / lib / Analysis / TargetTransformInfo.cpp
index b587ff27ea673dcdb354ef31abed1ce7fe7a3050..0353295345ced0cd0c4d1582cb1c67da940a370e 100644 (file)
@@ -96,9 +96,9 @@ bool TargetTransformInfo::isLoweredToCall(const Function *F) const {
   return PrevTTI->isLoweredToCall(F);
 }
 
-bool TargetTransformInfo::getUnrollingPreferences(
+void TargetTransformInfo::getUnrollingPreferences(Loop *L,
                             UnrollingPreferences &UP) const {
-  return PrevTTI->getUnrollingPreferences(UP);
+  PrevTTI->getUnrollingPreferences(L, UP);
 }
 
 bool TargetTransformInfo::isLegalAddImmediate(int64_t Imm) const {
@@ -224,6 +224,11 @@ unsigned TargetTransformInfo::getAddressComputationCost(Type *Tp,
   return PrevTTI->getAddressComputationCost(Tp, IsComplex);
 }
 
+unsigned TargetTransformInfo::getReductionCost(unsigned Opcode, Type *Ty,
+                                               bool IsPairwise) const {
+  return PrevTTI->getReductionCost(Opcode, Ty, IsPairwise);
+}
+
 namespace {
 
 struct NoTTI : ImmutablePass, TargetTransformInfo {
@@ -474,9 +479,7 @@ struct NoTTI : ImmutablePass, TargetTransformInfo {
     return true;
   }
 
-  virtual bool getUnrollingPreferences(UnrollingPreferences &) const {
-    return false;
-  }
+  void getUnrollingPreferences(Loop *, UnrollingPreferences &) const { }
 
   bool isLegalAddImmediate(int64_t Imm) const {
     return false;
@@ -594,6 +597,10 @@ struct NoTTI : ImmutablePass, TargetTransformInfo {
   unsigned getAddressComputationCost(Type *Tp, bool) const {
     return 0;
   }
+
+  unsigned getReductionCost(unsigned, Type *, bool) const {
+    return 1;
+  }
 };
 
 } // end anonymous namespace