2020-11-09 22:50:15 +01:00
|
|
|
// Pattern Matchings for VEL Intrinsics
|
|
|
|
|
|
|
|
// Define intrinsics written by hand
|
|
|
|
|
2020-11-14 13:16:33 +01:00
|
|
|
// The lsv and lvs patterns
|
|
|
|
def : Pat<(int_ve_vl_lsv_vvss v256f64:$pt, i32:$sy, i64:$sz),
|
|
|
|
(LSVrr_v (INSERT_SUBREG (i64 (IMPLICIT_DEF)), i32:$sy, sub_i32),
|
|
|
|
i64:$sz, v256f64:$pt)>;
|
|
|
|
def : Pat<(int_ve_vl_lvsl_svs v256f64:$vx, i32:$sy),
|
|
|
|
(LVSvr v256f64:$vx,
|
|
|
|
(INSERT_SUBREG (i64 (IMPLICIT_DEF)), i32:$sy, sub_i32))>;
|
|
|
|
def : Pat<(int_ve_vl_lvsd_svs v256f64:$vx, i32:$sy),
|
|
|
|
(LVSvr v256f64:$vx,
|
|
|
|
(INSERT_SUBREG (i64 (IMPLICIT_DEF)), i32:$sy, sub_i32))>;
|
|
|
|
def : Pat<(int_ve_vl_lvss_svs v256f64:$vx, i32:$sy),
|
|
|
|
(EXTRACT_SUBREG (LVSvr v256f64:$vx,
|
|
|
|
(INSERT_SUBREG (i64 (IMPLICIT_DEF)), i32:$sy,
|
|
|
|
sub_i32)),
|
|
|
|
sub_f32)>;
|
|
|
|
|
2020-11-09 22:50:15 +01:00
|
|
|
// Define intrinsics automatically generated
|
|
|
|
include "VEInstrIntrinsicVL.gen.td"
|