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
|
// the original intent by replace the cast with a setne
|
||||||
const char* comparator = SrcTy.isPointer() ? ", null" :
|
const char* comparator = SrcTy.isPointer() ? ", null" :
|
||||||
(SrcTy.isFloatingPoint() ? ", 0.0" : ", 0");
|
(SrcTy.isFloatingPoint() ? ", 0.0" : ", 0");
|
||||||
if (isConst)
|
#if UPGRADE_SETCOND_OPS
|
||||||
Result = "setne (" + Source + comparator + ")";
|
const char* compareOp = SrcTy.isFloatingPoint() ? "setne " : "icmp ne ";
|
||||||
else
|
#else
|
||||||
Result = "setne " + Source + comparator;
|
const char* compareOp = "setne";
|
||||||
|
#endif
|
||||||
|
if (isConst) {
|
||||||
|
Result = "(" + Source + comparator + ")";
|
||||||
|
Result = compareOp + Result;
|
||||||
|
} else
|
||||||
|
Result = compareOp + Source + comparator;
|
||||||
return Result; // skip cast processing below
|
return Result; // skip cast processing below
|
||||||
}
|
}
|
||||||
ResolveType(SrcTy);
|
ResolveType(SrcTy);
|
||||||
|
|
Loading…
Reference in New Issue