1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00

When upgrading cast to bool to a setne, generate icmp ne instead.

llvm-svn: 32399
This commit is contained in:
Reid Spencer 2006-12-09 16:56:55 +00:00
parent 54036d73ce
commit cc5dff3e5d

View File

@ -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);