forked from OSchip/llvm-project
When upgrading cast to bool to a setne, generate icmp ne instead.
llvm-svn: 32399
This commit is contained in:
parent
b558b57e75
commit
87644df5bc
|
@ -194,10 +194,16 @@ static std::string getCastUpgrade(
|
|||
// the original intent by replace the cast with a setne
|
||||
const char* comparator = SrcTy.isPointer() ? ", null" :
|
||||
(SrcTy.isFloatingPoint() ? ", 0.0" : ", 0");
|
||||
if (isConst)
|
||||
Result = "setne (" + Source + comparator + ")";
|
||||
else
|
||||
Result = "setne " + Source + comparator;
|
||||
#if UPGRADE_SETCOND_OPS
|
||||
const char* compareOp = SrcTy.isFloatingPoint() ? "setne " : "icmp ne ";
|
||||
#else
|
||||
const char* compareOp = "setne";
|
||||
#endif
|
||||
if (isConst) {
|
||||
Result = "(" + Source + comparator + ")";
|
||||
Result = compareOp + Result;
|
||||
} else
|
||||
Result = compareOp + Source + comparator;
|
||||
return Result; // skip cast processing below
|
||||
}
|
||||
ResolveType(SrcTy);
|
||||
|
|
Loading…
Reference in New Issue