[llvm] [TableGen][SelectionDAG] Correctly check the range of a leaf immediate (PR #119931)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 13 14:42:14 PST 2024
================
@@ -759,14 +759,17 @@ defm block_xor : block_op<xor>;
// Insertions.
def inserti8 : PatFrag<(ops node:$src1, node:$src2),
(or (and node:$src1, -256), node:$src2)>;
-def insertll : PatFrag<(ops node:$src1, node:$src2),
- (or (and node:$src1, 0xffffffffffff0000), node:$src2)>;
-def insertlh : PatFrag<(ops node:$src1, node:$src2),
- (or (and node:$src1, 0xffffffff0000ffff), node:$src2)>;
-def inserthl : PatFrag<(ops node:$src1, node:$src2),
- (or (and node:$src1, 0xffff0000ffffffff), node:$src2)>;
-def inserthh : PatFrag<(ops node:$src1, node:$src2),
- (or (and node:$src1, 0x0000ffffffffffff), node:$src2)>;
+
+class inserti16<int mask> : PatFrag<(ops node:$src1, node:$src2),
+ (or (and node:$src1, mask), node:$src2)>;
+
+def insertll : inserti16<0xffff0000>;
+def insertlh : inserti16<0x0000ffff>;
+def insertll64 : inserti16<0xffffffffffff0000>;
+def insertlh64 : inserti16<0xffffffff0000ffff>;
----------------
s-barannikov wrote:
This one doesn't fit in i32 and triggered the error. Other changes are for consistency.
https://github.com/llvm/llvm-project/pull/119931
More information about the llvm-commits
mailing list