mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-17 08:57:34 +00:00
When upgrading cast to bool to a setne, generate icmp ne instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ee2c7b08c5
commit
a00c5a6d87
@ -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
Block a user