@@ -757,23 +757,18 @@ defm block_or : block_op<or>;
757
757
defm block_xor : block_op<xor>;
758
758
759
759
// 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>;
777
772
778
773
// ORs that can be treated as insertions.
779
774
def or_as_inserti8 : PatFrag<(ops node:$src1, node:$src2),
0 commit comments