Displaying 10 results from an estimated 10 matches for "visitsign_extend".
2013 Mar 08
2
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
visitSIGN_EXTEND() in DAGCombiner.cpp generates an ISD::SELECT even if VT is a vector, which causes ExpandSELECT() to assert during legalization.
I think what's required is to have visitSIGN_EXTEND generate a VSELECT if VT is a vector…
I've tried a local change that cures this particular assert, but uncove...
2013 Mar 08
0
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
Hi Richard,
> visitSIGN_EXTEND() in DAGCombiner.cpp generates an ISD::SELECT even if VT is a vector, which causes ExpandSELECT() to assert during legalization.
> I think what's required is to have visitSIGN_EXTEND generate a VSELECT if VT is a vector…
ISD::SELECT should be used for cases where the selector is a scalar, e...
2013 Mar 11
0
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
>
> Line 4501 in trunk DAGCombiner.cpp… I changed the ISD::SELECT to the VT.isVector() ? ISD::VSELECT : ISD::SELECT...
>
Thanks. From the commit message I think that we should only run this optimization on scalars.
>> Can you write down the input SDNode ? What types are inputs ?
>
> 0x107046d10: v2i8 = vselect 0x107046c10, 0x107046b10, 0x107045e10 [ID=-3]
2013 Mar 11
2
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
On Mar 8, 2013, at 2:29 PM, Nadav Rotem <nrotem at apple.com<mailto:nrotem at apple.com>>
wrote:
Hi Richard,
visitSIGN_EXTEND() in DAGCombiner.cpp generates an ISD::SELECT even if VT is a vector, which causes ExpandSELECT() to assert during legalization.
I think what's required is to have visitSIGN_EXTEND generate a VSELECT if VT is a vector…
ISD::SELECT should be used for cases where the selector is a scalar, even i...
2013 Mar 11
0
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
Hi Richard,
>
> I did… It originates from an icmp ne <2x i8>, zero initializer followed by a sext of the result 2x i1 to 2x i8. When we visit the SIGN_EXTEND, we generate the ISD::SELECT even though the selector and both operands are vectors.
>
It sounds like a bug in the dag combine optimization. If you send me the line number I will take a look.
>> We should probably
2013 Mar 11
3
[LLVMdev] Bug in visitSIGN_EXTEND in DAGCombiner.cpp?
On Mar 11, 2013, at 9:41 AM, Nadav Rotem <nrotem at apple.com<mailto:nrotem at apple.com>>
wrote:
Hi Richard,
I did… It originates from an icmp ne <2x i8>, zero initializer followed by a sext of the result 2x i1 to 2x i8. When we visit the SIGN_EXTEND, we generate the ISD::SELECT even though the selector and both operands are vectors.
It sounds like a bug in the dag combine
2012 Jul 27
2
[LLVMdev] TLI.getSetCCResultType() and/or MVT broken by design?
...ype attached to it. An example is <3 x float>. getSetCCResultType can return any type, and in the AMDIL backends case, for a <3 x float>, returns the corresponding integer version of the vector. The problem comes in code like the following(comments removed):
This is from DAGCombiner.cpp:visitSIGN_EXTEND.
EVT N0VT = N0.getOperand(0).getValueType();
...
EVT SVT = TLI.getSetCCResultType(N0VT);
...
if (VT.getSizeInBits() == SVT.getSizeInBits())
return DAG.getSetCC(N->getDebugLoc(), VT, N0.getOperand(0),
N0.getOperand(1),...
2012 Jul 27
0
[LLVMdev] TLI.getSetCCResultType() and/or MVT broken by design?
...ype attached to it. An example is <3 x float>. getSetCCResultType can return any type, and in the AMDIL backends case, for a <3 x float>, returns the corresponding integer version of the vector. The problem comes in code like the following(comments removed):
This is from DAGCombiner.cpp:visitSIGN_EXTEND.
EVT N0VT = N0.getOperand(0).getValueType();
...
EVT SVT = TLI.getSetCCResultType(N0VT);
...
if (VT.getSizeInBits() == SVT.getSizeInBits())
return DAG.getSetCC(N->getDebugLoc(), VT, N0.getOperand(0),
N0.getOperand(1),...
2012 Jul 27
2
[LLVMdev] TLI.getSetCCResultType() and/or MVT broken by design?
...ype attached to it. An example is <3 x float>. getSetCCResultType can return any type, and in the AMDIL backends case, for a <3 x float>, returns the corresponding integer version of the vector. The problem comes in code like the following(comments removed):
This is from DAGCombiner.cpp:visitSIGN_EXTEND.
EVT N0VT = N0.getOperand(0).getValueType();
...
EVT SVT = TLI.getSetCCResultType(N0VT);
...
if (VT.getSizeInBits() == SVT.getSizeInBits())
return DAG.getSetCC(N->getDebugLoc(), VT, N0.getOperand(0),
N0.getOperand(1),...
2012 Jul 27
0
[LLVMdev] TLI.getSetCCResultType() and/or MVT broken by design?
...ype attached to it. An example is <3 x float>. getSetCCResultType can return any type, and in the AMDIL backends case, for a <3 x float>, returns the corresponding integer version of the vector. The problem comes in code like the following(comments removed):
This is from DAGCombiner.cpp:visitSIGN_EXTEND.
EVT N0VT = N0.getOperand(0).getValueType();
...
EVT SVT = TLI.getSetCCResultType(N0VT);
...
if (VT.getSizeInBits() == SVT.getSizeInBits())
return DAG.getSetCC(N->getDebugLoc(), VT, N0.getOperand(0),
N0.getOperand(1),...