@@ -2141,12 +2141,12 @@ let Predicates = [HasSVE_or_SME] in {
2141
2141
2142
2142
defm WHILELT_PWW : sve_int_while4_rr<0b010, "whilelt", int_aarch64_sve_whilelt, int_aarch64_sve_whilegt>;
2143
2143
defm WHILELE_PWW : sve_int_while4_rr<0b011, "whilele", int_aarch64_sve_whilele, null_frag>;
2144
- defm WHILELO_PWW : sve_int_while4_rr<0b110, "whilelo", int_aarch64_sve_whilelo , int_aarch64_sve_whilehi>;
2144
+ defm WHILELO_PWW : sve_int_while4_rr<0b110, "whilelo", get_active_lane_mask , int_aarch64_sve_whilehi>;
2145
2145
defm WHILELS_PWW : sve_int_while4_rr<0b111, "whilels", int_aarch64_sve_whilels, null_frag>;
2146
2146
2147
2147
defm WHILELT_PXX : sve_int_while8_rr<0b010, "whilelt", int_aarch64_sve_whilelt, int_aarch64_sve_whilegt>;
2148
2148
defm WHILELE_PXX : sve_int_while8_rr<0b011, "whilele", int_aarch64_sve_whilele, null_frag>;
2149
- defm WHILELO_PXX : sve_int_while8_rr<0b110, "whilelo", int_aarch64_sve_whilelo , int_aarch64_sve_whilehi>;
2149
+ defm WHILELO_PXX : sve_int_while8_rr<0b110, "whilelo", get_active_lane_mask , int_aarch64_sve_whilehi>;
2150
2150
defm WHILELS_PXX : sve_int_while8_rr<0b111, "whilels", int_aarch64_sve_whilels, null_frag>;
2151
2151
2152
2152
def CTERMEQ_WW : sve_int_cterm<0b0, 0b0, "ctermeq", GPR32>;
@@ -3455,24 +3455,6 @@ let Predicates = [HasSVE_or_SME] in {
3455
3455
def : Pat<(i64(find_last_active nxv2i1:$P1)), (LASTB_RPZ_D $P1, (INDEX_II_D 0,
3456
3456
1))>;
3457
3457
3458
- def : Pat<(nxv16i1(get_active_lane_mask i32:$index, i32:$tc)),
3459
- (WHILELO_PWW_B $index, $tc)>;
3460
- def : Pat<(nxv8i1(get_active_lane_mask i32:$index, i32:$tc)),
3461
- (WHILELO_PWW_H $index, $tc)>;
3462
- def : Pat<(nxv4i1(get_active_lane_mask i32:$index, i32:$tc)),
3463
- (WHILELO_PWW_S $index, $tc)>;
3464
- def : Pat<(nxv2i1(get_active_lane_mask i32:$index, i32:$tc)),
3465
- (WHILELO_PWW_D $index, $tc)>;
3466
-
3467
- def : Pat<(nxv16i1(get_active_lane_mask i64:$index, i64:$tc)),
3468
- (WHILELO_PXX_B $index, $tc)>;
3469
- def : Pat<(nxv8i1(get_active_lane_mask i64:$index, i64:$tc)),
3470
- (WHILELO_PXX_H $index, $tc)>;
3471
- def : Pat<(nxv4i1(get_active_lane_mask i64:$index, i64:$tc)),
3472
- (WHILELO_PXX_S $index, $tc)>;
3473
- def : Pat<(nxv2i1(get_active_lane_mask i64:$index, i64:$tc)),
3474
- (WHILELO_PXX_D $index, $tc)>;
3475
-
3476
3458
// Move element from the bottom 128-bits of a scalable vector to a single-element vector.
3477
3459
// Alternative case where insertelement is just scalar_to_vector rather than vector_insert.
3478
3460
def : Pat<(v1f64 (scalar_to_vector
@@ -4016,12 +3998,12 @@ let Predicates = [HasSVE2_or_SME] in {
4016
3998
defm WHILEGE_PWW : sve_int_while4_rr<0b000, "whilege", int_aarch64_sve_whilege, null_frag>;
4017
3999
defm WHILEGT_PWW : sve_int_while4_rr<0b001, "whilegt", int_aarch64_sve_whilegt, int_aarch64_sve_whilelt>;
4018
4000
defm WHILEHS_PWW : sve_int_while4_rr<0b100, "whilehs", int_aarch64_sve_whilehs, null_frag>;
4019
- defm WHILEHI_PWW : sve_int_while4_rr<0b101, "whilehi", int_aarch64_sve_whilehi, int_aarch64_sve_whilelo >;
4001
+ defm WHILEHI_PWW : sve_int_while4_rr<0b101, "whilehi", int_aarch64_sve_whilehi, get_active_lane_mask >;
4020
4002
4021
4003
defm WHILEGE_PXX : sve_int_while8_rr<0b000, "whilege", int_aarch64_sve_whilege, null_frag>;
4022
4004
defm WHILEGT_PXX : sve_int_while8_rr<0b001, "whilegt", int_aarch64_sve_whilegt, int_aarch64_sve_whilelt>;
4023
4005
defm WHILEHS_PXX : sve_int_while8_rr<0b100, "whilehs", int_aarch64_sve_whilehs, null_frag>;
4024
- defm WHILEHI_PXX : sve_int_while8_rr<0b101, "whilehi", int_aarch64_sve_whilehi, int_aarch64_sve_whilelo >;
4006
+ defm WHILEHI_PXX : sve_int_while8_rr<0b101, "whilehi", int_aarch64_sve_whilehi, get_active_lane_mask >;
4025
4007
4026
4008
// SVE2 pointer conflict compare
4027
4009
defm WHILEWR_PXX : sve2_int_while_rr<0b0, "whilewr", "int_aarch64_sve_whilewr">;
0 commit comments