aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineInstr.cpp
diff options
context:
space:
mode:
authorThorsten Schütt <schuett@gmail.com>2024-03-29 13:38:08 +0100
committerGitHub <noreply@github.com>2024-03-29 13:38:08 +0100
commit84299df301dc07ea83fa8378051103195c3a7c65 (patch)
tree8b5960a86b1085df4d4bb219b00b6bdd1abad068 /llvm/lib/CodeGen/MachineInstr.cpp
parentea707baca2f73d503849d2b7429c7507314bff6b (diff)
downloadllvm-84299df301dc07ea83fa8378051103195c3a7c65.zip
llvm-84299df301dc07ea83fa8378051103195c3a7c65.tar.gz
llvm-84299df301dc07ea83fa8378051103195c3a7c65.tar.bz2
[GlobalIsel] add trunc flags (#87045)
https://github.com/llvm/llvm-project/pull/85592
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineInstr.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp
index 717c81f..8360400 100644
--- a/llvm/lib/CodeGen/MachineInstr.cpp
+++ b/llvm/lib/CodeGen/MachineInstr.cpp
@@ -39,6 +39,7 @@
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InlineAsm.h"
+#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
@@ -553,6 +554,11 @@ uint32_t MachineInstr::copyFlagsFromInstruction(const Instruction &I) {
MIFlags |= MachineInstr::MIFlag::NoSWrap;
if (OB->hasNoUnsignedWrap())
MIFlags |= MachineInstr::MIFlag::NoUWrap;
+ } else if (const TruncInst *TI = dyn_cast<TruncInst>(&I)) {
+ if (TI->hasNoSignedWrap())
+ MIFlags |= MachineInstr::MIFlag::NoSWrap;
+ if (TI->hasNoUnsignedWrap())
+ MIFlags |= MachineInstr::MIFlag::NoUWrap;
}
// Copy the nonneg flag.