@@ -2135,12 +2135,12 @@ let Predicates = [HasSVE_or_SME] in {
2135
2135
2136
2136
defm WHILELT_PWW : sve_int_while4_rr<0b010, "whilelt", int_aarch64_sve_whilelt, int_aarch64_sve_whilegt>;
2137
2137
defm WHILELE_PWW : sve_int_while4_rr<0b011, "whilele", int_aarch64_sve_whilele, null_frag>;
2138
- defm WHILELO_PWW : sve_int_while4_rr<0b110, "whilelo", int_aarch64_sve_whilelo , int_aarch64_sve_whilehi>;
2138
+ defm WHILELO_PWW : sve_int_while4_rr<0b110, "whilelo", get_active_lane_mask , int_aarch64_sve_whilehi>;
2139
2139
defm WHILELS_PWW : sve_int_while4_rr<0b111, "whilels", int_aarch64_sve_whilels, null_frag>;
2140
2140
2141
2141
defm WHILELT_PXX : sve_int_while8_rr<0b010, "whilelt", int_aarch64_sve_whilelt, int_aarch64_sve_whilegt>;
2142
2142
defm WHILELE_PXX : sve_int_while8_rr<0b011, "whilele", int_aarch64_sve_whilele, null_frag>;
2143
- defm WHILELO_PXX : sve_int_while8_rr<0b110, "whilelo", int_aarch64_sve_whilelo , int_aarch64_sve_whilehi>;
2143
+ defm WHILELO_PXX : sve_int_while8_rr<0b110, "whilelo", get_active_lane_mask , int_aarch64_sve_whilehi>;
2144
2144
defm WHILELS_PXX : sve_int_while8_rr<0b111, "whilels", int_aarch64_sve_whilels, null_frag>;
2145
2145
2146
2146
def CTERMEQ_WW : sve_int_cterm<0b0, 0b0, "ctermeq", GPR32>;
@@ -3449,24 +3449,6 @@ let Predicates = [HasSVE_or_SME] in {
3449
3449
def : Pat<(i64(find_last_active nxv2i1:$P1)), (LASTB_RPZ_D $P1, (INDEX_II_D 0,
3450
3450
1))>;
3451
3451
3452
- def : Pat<(nxv16i1(get_active_lane_mask i32:$index, i32:$tc)),
3453
- (WHILELO_PWW_B $index, $tc)>;
3454
- def : Pat<(nxv8i1(get_active_lane_mask i32:$index, i32:$tc)),
3455
- (WHILELO_PWW_H $index, $tc)>;
3456
- def : Pat<(nxv4i1(get_active_lane_mask i32:$index, i32:$tc)),
3457
- (WHILELO_PWW_S $index, $tc)>;
3458
- def : Pat<(nxv2i1(get_active_lane_mask i32:$index, i32:$tc)),
3459
- (WHILELO_PWW_D $index, $tc)>;
3460
-
3461
- def : Pat<(nxv16i1(get_active_lane_mask i64:$index, i64:$tc)),
3462
- (WHILELO_PXX_B $index, $tc)>;
3463
- def : Pat<(nxv8i1(get_active_lane_mask i64:$index, i64:$tc)),
3464
- (WHILELO_PXX_H $index, $tc)>;
3465
- def : Pat<(nxv4i1(get_active_lane_mask i64:$index, i64:$tc)),
3466
- (WHILELO_PXX_S $index, $tc)>;
3467
- def : Pat<(nxv2i1(get_active_lane_mask i64:$index, i64:$tc)),
3468
- (WHILELO_PXX_D $index, $tc)>;
3469
-
3470
3452
// Move element from the bottom 128-bits of a scalable vector to a single-element vector.
3471
3453
// Alternative case where insertelement is just scalar_to_vector rather than vector_insert.
3472
3454
def : Pat<(v1f64 (scalar_to_vector
@@ -4010,12 +3992,12 @@ let Predicates = [HasSVE2_or_SME] in {
4010
3992
defm WHILEGE_PWW : sve_int_while4_rr<0b000, "whilege", int_aarch64_sve_whilege, null_frag>;
4011
3993
defm WHILEGT_PWW : sve_int_while4_rr<0b001, "whilegt", int_aarch64_sve_whilegt, int_aarch64_sve_whilelt>;
4012
3994
defm WHILEHS_PWW : sve_int_while4_rr<0b100, "whilehs", int_aarch64_sve_whilehs, null_frag>;
4013
- defm WHILEHI_PWW : sve_int_while4_rr<0b101, "whilehi", int_aarch64_sve_whilehi, int_aarch64_sve_whilelo >;
3995
+ defm WHILEHI_PWW : sve_int_while4_rr<0b101, "whilehi", int_aarch64_sve_whilehi, get_active_lane_mask >;
4014
3996
4015
3997
defm WHILEGE_PXX : sve_int_while8_rr<0b000, "whilege", int_aarch64_sve_whilege, null_frag>;
4016
3998
defm WHILEGT_PXX : sve_int_while8_rr<0b001, "whilegt", int_aarch64_sve_whilegt, int_aarch64_sve_whilelt>;
4017
3999
defm WHILEHS_PXX : sve_int_while8_rr<0b100, "whilehs", int_aarch64_sve_whilehs, null_frag>;
4018
- defm WHILEHI_PXX : sve_int_while8_rr<0b101, "whilehi", int_aarch64_sve_whilehi, int_aarch64_sve_whilelo >;
4000
+ defm WHILEHI_PXX : sve_int_while8_rr<0b101, "whilehi", int_aarch64_sve_whilehi, get_active_lane_mask >;
4019
4001
4020
4002
// SVE2 pointer conflict compare
4021
4003
defm WHILEWR_PXX : sve2_int_while_rr<0b0, "whilewr", "int_aarch64_sve_whilewr">;
0 commit comments