@@ -1640,21 +1640,15 @@ defm : PairInsertExtractPatV8<v8f32, f32>;
16401640defm : PairInsertExtractPatV4<v4i64, GRLenVT>;
16411641defm : PairInsertExtractPatV4<v4f64, f64>;
16421642
1643- foreach imm1 = 0...7 in {
1644- foreach imm2 = 0...7 in {
1645- def : Pat<(vector_insert v8i32:$xd,
1646- (GRLenVT(vector_extract v8i32:$xj, imm1)), imm2),
1647- (XVINSVE0_W v8i32:$xd, (XVPICKVE_W v8i32:$xj, imm1), imm2)>;
1648- }
1649- }
1650-
1651- foreach imm1 = 0...3 in {
1652- foreach imm2 = 0...3 in {
1653- def : Pat<(vector_insert v4i64:$xd,
1654- (GRLenVT(vector_extract v4i64:$xj, imm1)), imm2),
1655- (XVINSVE0_D v4i64:$xd, (XVPICKVE_D v4i64:$xj, imm1), imm2)>;
1656- }
1657- }
1643+ def : Pat<(vector_insert v8i32:$xd,
1644+ (GRLenVT(vector_extract v8i32:$xj, uimm3:$imm1)), uimm3:$imm2),
1645+ (XVINSVE0_W v8i32:$xd, (XVPICKVE_W v8i32:$xj, uimm3:$imm1),
1646+ uimm3:$imm2)>;
1647+
1648+ def : Pat<(vector_insert v4i64:$xd,
1649+ (GRLenVT(vector_extract v4i64:$xj, uimm2:$imm1)), uimm2:$imm2),
1650+ (XVINSVE0_D v4i64:$xd, (XVPICKVE_D v4i64:$xj, uimm2:$imm1),
1651+ uimm2:$imm2)>;
16581652
16591653// PseudoXVINSGR2VR_{B/H}
16601654def : Pat<(vector_insert v32i8:$xd, GRLenVT:$rj, uimm5:$imm),
0 commit comments