diff options
| author | Noah Goldstein <goldstein.w.n@gmail.com> | 2024-03-20 16:46:24 -0500 |
|---|---|---|
| committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2024-04-09 18:12:33 -0500 |
| commit | 9170e3857521324c096240bf38877e0ffe1a402e (patch) | |
| tree | 1b79ab3b1f7ba0dc15312ef111fff6601f0b928f /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 788be0d9fc6aeca548c90bac5ebe6990dd3c66ec (diff) | |
| download | llvm-9170e3857521324c096240bf38877e0ffe1a402e.zip llvm-9170e3857521324c096240bf38877e0ffe1a402e.tar.gz llvm-9170e3857521324c096240bf38877e0ffe1a402e.tar.bz2 | |
Add support for `nneg` flag with `uitofp`
As noted when #82404 was pushed (canonicalizing `sitofp` -> `uitofp`),
different signedness on fp casts can have dramatic performance
implications on different backends.
So, it makes to create a reliable means for the backend to pick its
cast signedness if either are correct.
Further, this allows us to start canonicalizing `sitofp`- > `uitofp`
which may easy middle end analysis.
Closes #86141
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
| -rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 5ea6cc2..92c3495 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -5039,7 +5039,7 @@ Error BitcodeReader::parseFunctionBody(Function *F) { } if (OpNum < Record.size()) { - if (Opc == Instruction::ZExt) { + if (Opc == Instruction::ZExt || Opc == Instruction::UIToFP) { if (Record[OpNum] & (1 << bitc::PNNI_NON_NEG)) cast<PossiblyNonNegInst>(I)->setNonNeg(true); } else if (Opc == Instruction::Trunc) { |
