Home | History | Annotate | Download | only in AMDGPU

Lines Matching refs:Value

84       for (Value::use_iterator U = GV->use_begin(),
109 static Value *
110 calculateVectorIndex(Value *Ptr,
111 const std::map<GetElementPtrInst *, Value *> &GEPIdx) {
121 static Value* GEPToVectorIndex(GetElementPtrInst *GEP) {
144 // Must be the stored pointer operand, not a stored value.
168 std::map<GetElementPtrInst*, Value*> GEPVectorIdx;
169 std::vector<Value*> WorkList;
180 Value *Index = GEPToVectorIndex(GEP);
203 for (std::vector<Value*>::iterator I = WorkList.begin(),
209 Value *Ptr = Inst->getOperand(0);
210 Value *Index = calculateVectorIndex(Ptr, GEPVectorIdx);
211 Value *BitCast = Builder.CreateBitCast(Alloca, VectorTy->getPointerTo(0));
212 Value *VecValue = Builder.CreateLoad(BitCast);
213 Value *ExtractElement = Builder.CreateExtractElement(VecValue, Index);
219 Value *Ptr = Inst->getOperand(1);
220 Value *Index = calculateVectorIndex(Ptr, GEPVectorIdx);
221 Value *BitCast = Builder.CreateBitCast(Alloca, VectorTy->getPointerTo(0));
222 Value *VecValue = Builder.CreateLoad(BitCast);
223 Value *NewVecValue = Builder.CreateInsertElement(VecValue,
242 static bool collectUsesWithPtrTypes(Value *Val, std::vector<Value*> &WorkList) {
263 // Reject if the stored value is not the pointer operand.
295 // value from the reqd_work_group_size function attribute if it is
306 std::vector<Value*> WorkList;
326 Value *ReadLocalSizeY = Mod->getOrInsertFunction(
328 Value *ReadLocalSizeZ = Mod->getOrInsertFunction(
330 Value *ReadTIDIGX = Mod->getOrInsertFunction(
332 Value *ReadTIDIGY = Mod->getOrInsertFunction(
334 Value *ReadTIDIGZ = Mod->getOrInsertFunction(
337 Value *TCntY = Builder.CreateCall(ReadLocalSizeY, {});
338 Value *TCntZ = Builder.CreateCall(ReadLocalSizeZ, {});
339 Value *TIdX = Builder.CreateCall(ReadTIDIGX, {});
340 Value *TIdY = Builder.CreateCall(ReadTIDIGY, {});
341 Value *TIdZ = Builder.CreateCall(ReadTIDIGZ, {});
343 Value *Tmp0 = Builder.CreateMul(TCntY, TCntZ);
345 Value *Tmp1 = Builder.CreateMul(TIdY, TCntZ);
346 Value *TID = Builder.CreateAdd(Tmp0, Tmp1);
349 std::vector<Value*> Indices;
353 Value *Offset = Builder.CreateGEP(GVTy, GV, Indices);
358 for (std::vector<Value*>::iterator i = WorkList.begin(),
360 Value *V = *i;
366 // The operand's value should be corrected on its own.