@@ -757,23 +757,18 @@ defm block_or : block_op<or>;
757757defm block_xor : block_op<xor>;
758758
759759// Insertions.
760- def inserti8 : PatFrag<(ops node:$src1, node:$src2),
761- (or (and node:$src1, -256), node:$src2)>;
762-
763- class inserti16<int mask> : PatFrag<(ops node:$src1, node:$src2),
764- (or (and node:$src1, mask), node:$src2)>;
765-
766- def insertll : inserti16<0xffff0000>;
767- def insertlh : inserti16<0x0000ffff>;
768- def insertll64 : inserti16<0xffffffffffff0000>;
769- def insertlh64 : inserti16<0xffffffff0000ffff>;
770- def inserthl64 : inserti16<0xffff0000ffffffff>;
771- def inserthh64 : inserti16<0x0000ffffffffffff>;
772-
773- def insertlf : PatFrag<(ops node:$src1, node:$src2),
774- (or (and node:$src1, 0xffffffff00000000), node:$src2)>;
775- def inserthf : PatFrag<(ops node:$src1, node:$src2),
776- (or (and node:$src1, 0x00000000ffffffff), node:$src2)>;
760+ class insert_imm<int mask> : PatFrag<(ops node:$src1, node:$src2),
761+ (or (and node:$src1, mask), node:$src2)>;
762+
763+ def inserti8 : insert_imm<-256>;
764+ def insertll : insert_imm<0xffff0000>;
765+ def insertlh : insert_imm<0x0000ffff>;
766+ def insertll64 : insert_imm<0xffffffffffff0000>;
767+ def insertlh64 : insert_imm<0xffffffff0000ffff>;
768+ def inserthl64 : insert_imm<0xffff0000ffffffff>;
769+ def inserthh64 : insert_imm<0x0000ffffffffffff>;
770+ def insertlf : insert_imm<0xffffffff00000000>;
771+ def inserthf : insert_imm<0x00000000ffffffff>;
777772
778773// ORs that can be treated as insertions.
779774def or_as_inserti8 : PatFrag<(ops node:$src1, node:$src2),
0 commit comments