@@ -1815,24 +1815,24 @@ def : Pat<(v4f32 (uint_to_fp v4i64:$vj)),
18151815// XVFTINTRZ_{W_S/L_D}
18161816def : Pat<(v8i32 (fp_to_sint v8f32:$vj)), (XVFTINTRZ_W_S v8f32:$vj)>;
18171817def : Pat<(v4i64 (fp_to_sint v4f64:$vj)), (XVFTINTRZ_L_D v4f64:$vj)>;
1818- def : Pat<(v4i64 (fp_to_sint v4f32:$vj)),
1819- (VEXT2XV_D_W (SUBREG_TO_REG (i64 0), (VFTINTRZ_W_S v4f32:$vj),
1820- sub_128))>;
1821- def : Pat<(v4i32 (fp_to_sint ( v4f64 LASX256 :$vj) )),
1822- (EXTRACT_SUBREG (XVFTINTRZ_W_S (XVFCVT_S_D ( XVPERMI_D v4f64:$vj, 238),
1823- v4f64:$vj)),
1824- sub_128)>;
1818+ def : Pat<(v4i64(fp_to_sint v4f32:$vj)), (VEXT2XV_D_W(SUBREG_TO_REG(i64 0 ),
1819+ (VFTINTRZ_W_S v4f32:$vj),
1820+ sub_128))>;
1821+ def : Pat<(v4i32(fp_to_sint v4f64:$vj)),
1822+ (EXTRACT_SUBREG(XVPICKEV_W( XVPERMI_D(XVFTINTRZ_L_D v4f64:$vj) , 238),
1823+ (XVFTINTRZ_L_D v4f64:$vj)),
1824+ sub_128)>;
18251825
18261826// XVFTINTRZ_{W_SU/L_DU}
18271827def : Pat<(v8i32 (fp_to_uint v8f32:$vj)), (XVFTINTRZ_WU_S v8f32:$vj)>;
18281828def : Pat<(v4i64 (fp_to_uint v4f64:$vj)), (XVFTINTRZ_LU_D v4f64:$vj)>;
1829- def : Pat<(v4i64 (fp_to_uint v4f32:$vj)),
1830- (VEXT2XV_DU_WU (SUBREG_TO_REG (i64 0), (VFTINTRZ_WU_S v4f32:$vj),
1831- sub_128))>;
1832- def : Pat<(v4i32 (fp_to_uint ( v4f64 LASX256 :$vj) )),
1833- (EXTRACT_SUBREG (XVFTINTRZ_W_S (XVFCVT_S_D ( XVPERMI_D v4f64:$vj, 238),
1834- v4f64:$vj)),
1835- sub_128)>;
1829+ def : Pat<(v4i64(fp_to_uint v4f32:$vj)), (VEXT2XV_DU_WU(SUBREG_TO_REG(i64 0 ),
1830+ (VFTINTRZ_WU_S v4f32:$vj),
1831+ sub_128))>;
1832+ def : Pat<(v4i32(fp_to_uint v4f64:$vj)),
1833+ (EXTRACT_SUBREG(XVPICKEV_W( XVPERMI_D(XVFTINTRZ_LU_D v4f64:$vj) , 238),
1834+ (XVFTINTRZ_LU_D v4f64:$vj)),
1835+ sub_128)>;
18361836
18371837// XVPERMI_Q
18381838foreach vt = [v32i8, v16i16, v8i32, v4i64, v8f32, v4f64] in
0 commit comments