Add back r201608, r201622, r201624 and r201625
[oota-llvm.git] / include / llvm / Target / TargetLowering.h
index 155bb0a7a58cd28b1a1ed8f8f92582e7c19f1a74..0b3428ed7a6a791f0a83a43e39cfb3fe4df2ded5 100644 (file)
@@ -1185,6 +1185,14 @@ public:
     return true;
   }
 
+  /// Return true if it's significantly cheaper to shift a vector by a uniform
+  /// scalar than by an amount which will vary across each lane. On x86, for
+  /// example, there is a "psllw" instruction for the former case, but no simple
+  /// instruction for a general "a << b" operation on vectors.
+  virtual bool isVectorShiftByScalarCheap(Type *Ty) const {
+    return false;
+  }
+
   /// Return true if it's free to truncate a value of type Ty1 to type
   /// Ty2. e.g. On x86 it's free to truncate a i32 value in register EAX to i16
   /// by referencing its sub-register AX.