This patch adds support for some operations that were missing from
128-bit integer types (add/sub/mul/sdiv/udiv... etc.). With these
changes we can support the int128_t and uint128_t data types
from C/C++.
Depends on D7125
Paths
| Differential D7143
[mips] Enable arithmetic and binary operations for the i128 data type. ClosedPublic Authored by vkalintiris on Jan 23 2015, 5:53 AM.
Details
Summary This patch adds support for some operations that were missing from Depends on D7125
Diff Detail Event Timelinevkalintiris retitled this revision from to [mips] Enable arithmetic and binary operations for the i128 data type.. vkalintiris updated this object. vkalintiris added a parent revision: D7125: [mips] Add tests for bitwise binary and integer arithmetic operators.. dsanders edited edge metadata. Comment ActionsLGTM with the comment. As with the other patch, please try to annotate the redundant instructions with FIXME's but there's quite a few so I'm not going to require that. I was reminded last night that I hadn't committed the add/sub portion I did a few weeks back. I committed it today as r227003. Feel free to revert it if the conflict is awkward since your patch makes the same change and fixes all the other operations too.
This revision is now accepted and ready to land.Jan 24 2015, 5:49 AM Closed by commit rL227089: [mips] Enable arithmetic and binary operations for the i128 data type. (authored by vkalintiris). · Explain WhyJan 26 2015, 4:34 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 18671 lib/Target/Mips/Mips64InstrInfo.td
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsSEISelDAGToDAG.cpp
lib/Target/Mips/MipsSEISelLowering.cpp
test/CodeGen/Mips/llvm-ir/add.ll
test/CodeGen/Mips/llvm-ir/and.ll
test/CodeGen/Mips/llvm-ir/ashr.ll
test/CodeGen/Mips/llvm-ir/lshr.ll
test/CodeGen/Mips/llvm-ir/mul.ll
test/CodeGen/Mips/llvm-ir/or.ll
test/CodeGen/Mips/llvm-ir/sdiv.ll
test/CodeGen/Mips/llvm-ir/shl.ll
test/CodeGen/Mips/llvm-ir/srem.ll
test/CodeGen/Mips/llvm-ir/sub.ll
test/CodeGen/Mips/llvm-ir/udiv.ll
test/CodeGen/Mips/llvm-ir/urem.ll
test/CodeGen/Mips/llvm-ir/xor.ll
|
Please add a comment about this. I believe you are working around the fact that we currently use i32 for conditions on MIPS64 but we should probably be using i64.