Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Show First 20 Lines • Show All 1,763 Lines • ▼ Show 20 Lines | multiclass sve_prefetch<SDPatternOperator prefetch, ValueType PredTy, Instruction RegImmInst, Instruction RegRegInst, int scale, ComplexPattern AddrCP> { | ||||
def : Pat<(nxv8i1 (reinterpret_cast (nxv2i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv8i1 (reinterpret_cast (nxv2i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv4i1 (reinterpret_cast (nxv16i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv4i1 (reinterpret_cast (nxv16i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv4i1 (reinterpret_cast (nxv8i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv4i1 (reinterpret_cast (nxv8i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv4i1 (reinterpret_cast (nxv2i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv4i1 (reinterpret_cast (nxv2i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv2i1 (reinterpret_cast (nxv16i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv2i1 (reinterpret_cast (nxv16i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv2i1 (reinterpret_cast (nxv8i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv2i1 (reinterpret_cast (nxv8i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv2i1 (reinterpret_cast (nxv4i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | def : Pat<(nxv2i1 (reinterpret_cast (nxv4i1 PPR:$src))), (COPY_TO_REGCLASS PPR:$src, PPR)>; | ||||
def : Pat<(nxv2i64 (reinterpret_cast (nxv2f64 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
def : Pat<(nxv2i64 (reinterpret_cast (nxv2f32 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
def : Pat<(nxv2i64 (reinterpret_cast (nxv2f16 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
def : Pat<(nxv4i32 (reinterpret_cast (nxv4f32 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
def : Pat<(nxv4i32 (reinterpret_cast (nxv4f16 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
let Predicates = [HasSVE, HasBF16] in { | |||||
def : Pat<(nxv2i64 (reinterpret_cast (nxv2bf16 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
def : Pat<(nxv4i32 (reinterpret_cast (nxv4bf16 ZPR:$src))), (COPY_TO_REGCLASS ZPR:$src, ZPR)>; | |||||
} | |||||
def : Pat<(nxv16i1 (and PPR:$Ps1, PPR:$Ps2)), | def : Pat<(nxv16i1 (and PPR:$Ps1, PPR:$Ps2)), | ||||
(AND_PPzPP (PTRUE_B 31), PPR:$Ps1, PPR:$Ps2)>; | (AND_PPzPP (PTRUE_B 31), PPR:$Ps1, PPR:$Ps2)>; | ||||
def : Pat<(nxv8i1 (and PPR:$Ps1, PPR:$Ps2)), | def : Pat<(nxv8i1 (and PPR:$Ps1, PPR:$Ps2)), | ||||
(AND_PPzPP (PTRUE_H 31), PPR:$Ps1, PPR:$Ps2)>; | (AND_PPzPP (PTRUE_H 31), PPR:$Ps1, PPR:$Ps2)>; | ||||
def : Pat<(nxv4i1 (and PPR:$Ps1, PPR:$Ps2)), | def : Pat<(nxv4i1 (and PPR:$Ps1, PPR:$Ps2)), | ||||
(AND_PPzPP (PTRUE_S 31), PPR:$Ps1, PPR:$Ps2)>; | (AND_PPzPP (PTRUE_S 31), PPR:$Ps1, PPR:$Ps2)>; | ||||
def : Pat<(nxv2i1 (and PPR:$Ps1, PPR:$Ps2)), | def : Pat<(nxv2i1 (and PPR:$Ps1, PPR:$Ps2)), | ||||
(AND_PPzPP (PTRUE_D 31), PPR:$Ps1, PPR:$Ps2)>; | (AND_PPzPP (PTRUE_D 31), PPR:$Ps1, PPR:$Ps2)>; | ||||
▲ Show 20 Lines • Show All 1,029 Lines • Show Last 20 Lines |