@@ -5160,9 +5160,9 @@ multiclass SVE_SETCC_Pat<CondCode cc, CondCode invcc, ValueType predvt,
5160
5160
(cmp $Op1, $Op2, $Op3)>;
5161
5161
def : Pat<(predvt (AArch64setcc_z predvt:$Op1, intvt:$Op2, intvt:$Op3, invcc)),
5162
5162
(cmp $Op1, $Op3, $Op2)>;
5163
- def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )), intvt:$Op2, intvt:$Op3, cc))),
5163
+ def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (SVEAllActive )), intvt:$Op2, intvt:$Op3, cc))),
5164
5164
(cmp $Pg, $Op2, $Op3)>;
5165
- def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )), intvt:$Op2, intvt:$Op3, invcc))),
5165
+ def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (SVEAllActive )), intvt:$Op2, intvt:$Op3, invcc))),
5166
5166
(cmp $Pg, $Op3, $Op2)>;
5167
5167
}
5168
5168
@@ -5172,9 +5172,9 @@ multiclass SVE_SETCC_Pat_With_Zero<CondCode cc, CondCode invcc, ValueType predvt
5172
5172
(cmp $Op1, $Op2)>;
5173
5173
def : Pat<(predvt (AArch64setcc_z predvt:$Op1, (SVEDup0), intvt:$Op2, invcc)),
5174
5174
(cmp $Op1, $Op2)>;
5175
- def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )), intvt:$Op1, (SVEDup0), cc))),
5175
+ def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (SVEAllActive )), intvt:$Op1, (SVEDup0), cc))),
5176
5176
(cmp $Pg, $Op1)>;
5177
- def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )), (SVEDup0), intvt:$Op1, invcc))),
5177
+ def : Pat<(predvt (and predvt:$Pg, (AArch64setcc_z_oneuse (predvt (SVEAllActive )), (SVEDup0), intvt:$Op1, invcc))),
5178
5178
(cmp $Pg, $Op1)>;
5179
5179
}
5180
5180
@@ -5258,13 +5258,13 @@ multiclass SVE_SETCC_Imm_Pat<CondCode cc, CondCode commuted_cc,
5258
5258
commuted_cc)),
5259
5259
(cmp $Pg, $Zs1, immtype:$imm)>;
5260
5260
def : Pat<(predvt (and predvt:$Pg,
5261
- (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )),
5261
+ (AArch64setcc_z_oneuse (predvt (SVEAllActive )),
5262
5262
(intvt ZPR:$Zs1),
5263
5263
(intvt (splat_vector (immtype:$imm))),
5264
5264
cc))),
5265
5265
(cmp $Pg, $Zs1, immtype:$imm)>;
5266
5266
def : Pat<(predvt (and predvt:$Pg,
5267
- (AArch64setcc_z_oneuse (predvt (AArch64ptrue 31 )),
5267
+ (AArch64setcc_z_oneuse (predvt (SVEAllActive )),
5268
5268
(intvt (splat_vector (immtype:$imm))),
5269
5269
(intvt ZPR:$Zs1),
5270
5270
commuted_cc))),
@@ -5743,23 +5743,23 @@ multiclass sve_int_index_ir<string asm, SDPatternOperator mulop, SDPatternOperat
5743
5743
(!cast<Instruction>(NAME # "_D") simm5_64b:$imm5, (SUBREG_TO_REG (i64 0), (!cast<Instruction>("MOVi32imm") (!cast<SDNodeXForm>("trunc_imm") $imm)), sub_32))>;
5744
5744
5745
5745
// mul(step_vector(1), dup(Y)) -> index(0, Y).
5746
- def : Pat<(mulop (nxv16i1 (AArch64ptrue 31 )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))),
5746
+ def : Pat<(mulop (nxv16i1 (SVEAllActive )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))),
5747
5747
(!cast<Instruction>(NAME # "_B") (i32 0), GPR32:$Rm)>;
5748
- def : Pat<(mulop (nxv8i1 (AArch64ptrue 31 )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))),
5748
+ def : Pat<(mulop (nxv8i1 (SVEAllActive )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))),
5749
5749
(!cast<Instruction>(NAME # "_H") (i32 0), GPR32:$Rm)>;
5750
- def : Pat<(mulop (nxv4i1 (AArch64ptrue 31 )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))),
5750
+ def : Pat<(mulop (nxv4i1 (SVEAllActive )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))),
5751
5751
(!cast<Instruction>(NAME # "_S") (i32 0), GPR32:$Rm)>;
5752
- def : Pat<(mulop (nxv2i1 (AArch64ptrue 31 )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))),
5752
+ def : Pat<(mulop (nxv2i1 (SVEAllActive )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))),
5753
5753
(!cast<Instruction>(NAME # "_D") (i64 0), GPR64:$Rm)>;
5754
5754
5755
5755
// add(mul(step_vector(1), dup(Y)), dup(X)) -> index(X, Y).
5756
- def : Pat<(add (muloneuseop (nxv16i1 (AArch64ptrue 31 )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))), (nxv16i8 (splat_vector(simm5_8b:$imm5)))),
5756
+ def : Pat<(add (muloneuseop (nxv16i1 (SVEAllActive )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))), (nxv16i8 (splat_vector(simm5_8b:$imm5)))),
5757
5757
(!cast<Instruction>(NAME # "_B") simm5_8b:$imm5, GPR32:$Rm)>;
5758
- def : Pat<(add (muloneuseop (nxv8i1 (AArch64ptrue 31 )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))), (nxv8i16 (splat_vector(simm5_16b:$imm5)))),
5758
+ def : Pat<(add (muloneuseop (nxv8i1 (SVEAllActive )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))), (nxv8i16 (splat_vector(simm5_16b:$imm5)))),
5759
5759
(!cast<Instruction>(NAME # "_H") simm5_16b:$imm5, GPR32:$Rm)>;
5760
- def : Pat<(add (muloneuseop (nxv4i1 (AArch64ptrue 31 )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))), (nxv4i32 (splat_vector(simm5_32b:$imm5)))),
5760
+ def : Pat<(add (muloneuseop (nxv4i1 (SVEAllActive )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))), (nxv4i32 (splat_vector(simm5_32b:$imm5)))),
5761
5761
(!cast<Instruction>(NAME # "_S") simm5_32b:$imm5, GPR32:$Rm)>;
5762
- def : Pat<(add (muloneuseop (nxv2i1 (AArch64ptrue 31 )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))), (nxv2i64 (splat_vector(simm5_64b:$imm5)))),
5762
+ def : Pat<(add (muloneuseop (nxv2i1 (SVEAllActive )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))), (nxv2i64 (splat_vector(simm5_64b:$imm5)))),
5763
5763
(!cast<Instruction>(NAME # "_D") simm5_64b:$imm5, GPR64:$Rm)>;
5764
5764
}
5765
5765
@@ -5837,13 +5837,13 @@ multiclass sve_int_index_rr<string asm, SDPatternOperator mulop> {
5837
5837
(!cast<Instruction>(NAME # "_D") GPR64:$Rn, (SUBREG_TO_REG (i64 0), (!cast<Instruction>("MOVi32imm") (!cast<SDNodeXForm>("trunc_imm") $imm)), sub_32))>;
5838
5838
5839
5839
// add(mul(step_vector(1), dup(Y)), dup(X)) -> index(X, Y).
5840
- def : Pat<(add (mulop (nxv16i1 (AArch64ptrue 31 )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))), (nxv16i8 (splat_vector(i32 GPR32:$Rn)))),
5840
+ def : Pat<(add (mulop (nxv16i1 (SVEAllActive )), (nxv16i8 (step_vector_oneuse (i8 1))), (nxv16i8 (splat_vector(i32 GPR32:$Rm)))), (nxv16i8 (splat_vector(i32 GPR32:$Rn)))),
5841
5841
(!cast<Instruction>(NAME # "_B") GPR32:$Rn, GPR32:$Rm)>;
5842
- def : Pat<(add (mulop (nxv8i1 (AArch64ptrue 31 )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))),(nxv8i16 (splat_vector(i32 GPR32:$Rn)))),
5842
+ def : Pat<(add (mulop (nxv8i1 (SVEAllActive )), (nxv8i16 (step_vector_oneuse (i16 1))), (nxv8i16 (splat_vector(i32 GPR32:$Rm)))),(nxv8i16 (splat_vector(i32 GPR32:$Rn)))),
5843
5843
(!cast<Instruction>(NAME # "_H") GPR32:$Rn, GPR32:$Rm)>;
5844
- def : Pat<(add (mulop (nxv4i1 (AArch64ptrue 31 )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))),(nxv4i32 (splat_vector(i32 GPR32:$Rn)))),
5844
+ def : Pat<(add (mulop (nxv4i1 (SVEAllActive )), (nxv4i32 (step_vector_oneuse (i32 1))), (nxv4i32 (splat_vector(i32 GPR32:$Rm)))),(nxv4i32 (splat_vector(i32 GPR32:$Rn)))),
5845
5845
(!cast<Instruction>(NAME # "_S") GPR32:$Rn, GPR32:$Rm)>;
5846
- def : Pat<(add (mulop (nxv2i1 (AArch64ptrue 31 )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))),(nxv2i64 (splat_vector(i64 GPR64:$Rn)))),
5846
+ def : Pat<(add (mulop (nxv2i1 (SVEAllActive )), (nxv2i64 (step_vector_oneuse (i64 1))), (nxv2i64 (splat_vector(i64 GPR64:$Rm)))),(nxv2i64 (splat_vector(i64 GPR64:$Rn)))),
5847
5847
(!cast<Instruction>(NAME # "_D") GPR64:$Rn, GPR64:$Rm)>;
5848
5848
}
5849
5849
0 commit comments