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...