search for: newload

Displaying 11 results from an estimated 11 matches for "newload".

2015 Apr 15
1
[LLVMdev] How to do bitcast for double to <2 x double>
...t; 2 x double>* %1, align 16, where <2 x double> should be two > double identical double values that is same as the one in the previous > instruction > > Instruction* ScalarToVectorLoad(Instruction* pInst) { > Value *loadValue = pInst->getOperand(0); > Instruction *newLoad; //this one should be 2% = load < 2 x double>* %1 > > BitCastInst *scalarToVector = new BitCastInst(loadValue, > VectorType::get(Type::getDoubleTy(currF->getContext()), 2), > "vectorizedLoad", pInst); > newLoad = new LoadInst(); //to be implemented... >...
2015 Feb 13
2
[LLVMdev] DAGCombiner::MergeConsecutiveStores
...two 16bit stores have been combined to one 32bit store. And then the code goes like this: // Replace one of the loads with the new load. LoadSDNode *Ld = cast<LoadSDNode>(LoadNodes[0].MemNode); DAG.ReplaceAllUsesOfValueWith(SDValue(Ld, 1), SDValue(NewLoad.getNode(), 1)); // Remove the rest of the load chains. for (unsigned i = 1; i < NumElem ; ++i) { // Replace all chain users of the old load nodes with the chain of the new // load node. LoadSDNode *Ld = cast<LoadSDNode>(LoadNodes[i].MemNode); DAG.ReplaceAllUsesO...
2015 Apr 15
2
[LLVMdev] How to do bitcast for double to <2 x double>
How can I write code to generate IR for: %2 = bitcast double* %1 to <2 x double>*. %3 = load <2 x double>* %2, align 16 Basically, it is similar to x86 _mm_load_pd1 intrinsics. Thanks, Zhi -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150415/66489860/attachment.html>
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...ge some other parameters and check what it turns out. Regards. 2012/12/2 Joseph Pusdesris <joe at pusdesris.com> > > So I think I have made some progress. > SDValue dupVal = consumer->getOperand(OpNo); > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), dupVal.getDebugLoc(), > dupVal.getOperand(0), dupVal.getOperand(1), > dupNode->getPointerInfo(), > dupNode->isVolatile(), dupNode->isNonTemporal...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
So I think I have made some progress. SDValue dupVal = consumer->getOperand(OpNo); LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), dupVal.getDebugLoc(), dupVal.getOperand(0), dupVal.getOperand(1), dupNode->getPointerInfo(), dupNode->isVolatile(), dupNode->isNonTemporal(),...
2012 Dec 01
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
Hi, I am writing an llvm target and I need both loads for isel reasons, but I am struggling to find the right way. I have been trying to use DAG.getLoad() to make a copy, then just change the operand in the consumers, but I cannot seem to get all of the arguments needed for that function in order to make the copy. Any help would be great, thanks! -Joe -------------- next part -------------- An
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...out. > > Regards. > > 2012/12/2 Joseph Pusdesris <joe at pusdesris.com> > > > > So I think I have made some progress. > > SDValue dupVal = consumer->getOperand(OpNo); > > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > > > > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), > dupVal.getDebugLoc(), > > dupVal.getOperand(0), > dupVal.getOperand(1), > > dupNode->getPointerInfo(), > > dupNode->isVolatile(),...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...; >> 2012/12/2 Joseph Pusdesris <joe at pusdesris.com> >> > >> > So I think I have made some progress. >> > SDValue dupVal = consumer->getOperand(OpNo); >> > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); >> > >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), >> > dupVal.getDebugLoc(), >> > dupVal.getOperand(0), >> > dupVal.getOperand(1), >> > dupNode->getPointerInfo(), >> >...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...sris.com> >> >> > >> >> > So I think I have made some progress. >> >> > SDValue dupVal = consumer->getOperand(OpNo); >> >> > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); >> >> > >> >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), >> >> > dupVal.getDebugLoc(), >> >> > dupVal.getOperand(0), >> >> > dupVal.getOperand(1), >> >> > dupNode->getPointerInfo(), >&...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...sdesris <joe at pusdesris.com> > >> > > >> > So I think I have made some progress. > >> > SDValue dupVal = consumer->getOperand(OpNo); > >> > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > >> > > >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), > >> > dupVal.getDebugLoc(), > >> > dupVal.getOperand(0), > >> > dupVal.getOperand(1), > >> > dupNode->getPointerInfo(), > >> >...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...;> > > >> >> > So I think I have made some progress. > >> >> > SDValue dupVal = consumer->getOperand(OpNo); > >> >> > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > >> >> > > >> >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), > >> >> > dupVal.getDebugLoc(), > >> >> > dupVal.getOperand(0), > >> >> > dupVal.getOperand(1), > >> >> > dupNode->get...