diff options
author | Thorsten Schütt <schuett@gmail.com> | 2024-03-29 13:38:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-29 13:38:08 +0100 |
commit | 84299df301dc07ea83fa8378051103195c3a7c65 (patch) | |
tree | 8b5960a86b1085df4d4bb219b00b6bdd1abad068 /llvm/lib/CodeGen/MachineInstr.cpp | |
parent | ea707baca2f73d503849d2b7429c7507314bff6b (diff) | |
download | llvm-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.cpp | 6 |
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. |