Home | History | Annotate | Download | only in cpu

Lines Matching refs:Value

22 #include "llvm/IR/Value.h"
50 llvm::Value* Mul(llvm::Value* lhs, llvm::Value* rhs);
51 llvm::Value* Mul(int64 lhs, llvm::Value* rhs) {
54 llvm::Value* Mul(const llvm::APFloat& lhs, llvm::Value* rhs) {
60 llvm::Value* Mul(double lhs, llvm::Value* rhs) = delete;
61 llvm::Value* Mul(float lhs, llvm::Value* rhs) = delete;
63 llvm::Value* Add(llvm::Value* lhs, llvm::Value* rhs);
64 llvm::Value* Add(int64 lhs, llvm::Value* rhs) {
67 llvm::Value* Add(const llvm::APFloat& lhs, llvm::Value* rhs) {
73 llvm::Value* Add(double lhs, llvm::Value* rhs) = delete;
74 llvm::Value* Add(float lhs, llvm::Value* rhs) = delete;
76 llvm::Value* Sub(llvm::Value* lhs, llvm::Value* rhs);
77 llvm::Value* Sub(llvm::Value* lhs, const llvm::APFloat& rhs) {
80 llvm::Value* Max(llvm::Value* lhs, llvm::Value* rhs);
81 llvm::Value* Max(const llvm::APFloat& lhs, llvm::Value* rhs) {
84 llvm::Value* Div(llvm::Value* lhs, llvm::Value* rhs);
86 llvm::Value* MulAdd(llvm::Value* a, llvm::Value* b, llvm::Value* c) {
90 llvm::Value* MulAdd(llvm::Value* a, llvm::Value* b, const llvm::APFloat& c) {
94 llvm::Value* MulAdd(llvm::Value* a, const llvm::APFloat& b,
100 llvm::Value* Floor(llvm::Value* a);
102 llvm::Value* Clamp(llvm::Value* a, const llvm::APFloat& low,
104 llvm::Value* SplatFloat(const llvm::APFloat& d) {
115 llvm::Value* FCmpEQMask(llvm::Value* lhs, llvm::Value* rhs);
116 llvm::Value* FCmpULEMask(llvm::Value* lhs, llvm::Value* rhs);
117 llvm::Value* FCmpOLTMask(llvm::Value* lhs, llvm::Value* rhs);
118 llvm::Value* FCmpOLTMask(llvm::Value* lhs, const llvm::APFloat& rhs) {
126 llvm::Value* FloatAnd(llvm::Value* lhs, llvm::Value* rhs);
127 llvm::Value* FloatAnd(llvm::Value* lhs, const llvm::APFloat& rhs) {
130 llvm::Value* FloatOr(llvm::Value* lhs, llvm::Value* rhs);
131 llvm::Value* FloatOr(llvm::Value* lhs, const llvm::APFloat& rhs) {
134 llvm::Value* FloatNot(llvm::Value* lhs);
135 llvm::Value* FloatAndNot(llvm::Value* lhs, llvm::Value* rhs) {
139 llvm::Value* BroadcastScalar(llvm::Value* x);
140 llvm::Value* BroadcastScalar(const llvm::APFloat& d) {
144 llvm::Value* ComputeOffsetPointer(llvm::Value* base_pointer,
145 llvm::Value* offset_elements);
146 llvm::Value* ComputeOffsetPointer(llvm::Value* base_pointer,
152 llvm::Value* LoadVector(llvm::Value* pointer);
154 llvm::Value* LoadVector(llvm::Value* base_pointer,
155 llvm::Value* offset_elements) {
159 llvm::Value* LoadVector(llvm::Value* base_pointer, int64 offset_elements) {
163 llvm::Value* LoadScalar(llvm::Value* pointer);
165 llvm::Value* LoadScalar(llvm::Value* base_pointer,
166 llvm::Value* offset_elements) {
170 llvm::Value* LoadScalar(llvm::Value* base_pointer, int64 offset_elements) {
174 void StoreVector(llvm::Value* value, llvm::Value* pointer);
176 void StoreVector(llvm::Value* value, llvm::Value* base_pointer,
177 llvm::Value* offset_elements) {
178 StoreVector(value, ComputeOffsetPointer(base_pointer, offset_elements));
181 void StoreVector(llvm::Value* value, llvm::Value* base_pointer,
183 StoreVector(value, base_pointer, ir_builder()->getInt64(offset_elements));
186 void StoreScalar(llvm::Value* value, llvm::Value* pointer);
187 void StoreScalar(llvm::Value* value, llvm::Value* base_pointer,
188 llvm::Value* offset_elements) {
189 StoreScalar(value, ComputeOffsetPointer(base_pointer, offset_elements));
192 void StoreScalar(llvm::Value* value, llvm::Value* base_pointer,
197 llvm::Value* LoadBroadcast(llvm::Value* pointer);
198 llvm::Value* LoadBroadcast(llvm::Value* base_pointer,
199 llvm::Value* offset_elements) {
202 llvm::Value* LoadBroadcast(llvm::Value* base_pointer, int64 offset_elements) {
208 // `vectors`. If `init_values` is not nullptr then the value in the i'th lane
210 std::vector<llvm::Value*> ComputeHorizontalSums(
211 std::vector<llvm::Value*> vectors, llvm::Value* init_values = nullptr);
213 llvm::Value* GetZeroVector();
214 llvm::Value* GetZeroScalar();
229 llvm::Value* ExtractLowHalf(llvm::Value*);
230 llvm::Value* ExtractHighHalf(llvm::Value*);
232 llvm::Value* MulInternal(llvm::Value* lhs, llvm::Value* rhs);
233 llvm::Value* AddInternal(llvm::Value* lhs, llvm::Value* rhs);
235 llvm::Value* AddReduce(llvm::Value* vector);
237 // Checks that each value in `values` is either of type scalar_type() or
240 void AssertCorrectTypes(std::initializer_list<llvm::Value*> values);
256 llvm::Value* AvxStyleHorizontalAdd(llvm::Value* lhs, llvm::Value* rhs);
258 std::vector<llvm::Value*> ComputeAvxOptimizedHorizontalSums(
259 std::vector<llvm::Value*> vectors, llvm::Value* init_values);
262 llvm::Value* I1ToFloat(llvm::Value* i1);
263 llvm::Value* GetConstantFloat(llvm::Type* type, const llvm::APFloat& f) {
282 // can later convert to a SSA value.
287 llvm::Value* Get() const;
288 void Set(llvm::Value* new_value);
298 llvm::Value* initial_value)
308 llvm::Value* initial_value)