forked from OSchip/llvm-project
Compile:
%tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. llvm-svn: 28244
This commit is contained in:
parent
a296339c87
commit
8c02c3f41a
|
@ -217,7 +217,12 @@ ISD::CondCode ISD::getSetCCOrOperation(ISD::CondCode Op1, ISD::CondCode Op2,
|
|||
// If the N and U bits get set then the resultant comparison DOES suddenly
|
||||
// care about orderedness, and is true when ordered.
|
||||
if (Op > ISD::SETTRUE2)
|
||||
Op &= ~16; // Clear the N bit.
|
||||
Op &= ~16; // Clear the U bit if the N bit is set.
|
||||
|
||||
// Canonicalize illegal integer setcc's.
|
||||
if (isInteger && Op == ISD::SETUNE) // e.g. SETUGT | SETULT
|
||||
Op = ISD::SETNE;
|
||||
|
||||
return ISD::CondCode(Op);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue