Changeset View
Changeset View
Standalone View
Standalone View
clang/include/clang/Basic/arm_neon.td
Show First 20 Lines • Show All 1,645 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
let ArchGuard = "defined(__ARM_FEATURE_DOTPROD) && defined(__aarch64__)" in { | let ArchGuard = "defined(__ARM_FEATURE_DOTPROD) && defined(__aarch64__)" in { | ||||
// Variants indexing into a 128-bit vector are A64 only. | // Variants indexing into a 128-bit vector are A64 only. | ||||
def UDOT_LANEQ : SOpInst<"vdot_laneq", "dd89i", "iUiQiQUi", OP_DOT_LNQ>; | def UDOT_LANEQ : SOpInst<"vdot_laneq", "dd89i", "iUiQiQUi", OP_DOT_LNQ>; | ||||
} | } | ||||
// v8.2-A FP16 fused multiply-add long instructions. | // v8.2-A FP16 fused multiply-add long instructions. | ||||
let ArchGuard = "defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__)" in { | let ArchGuard = "defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__)" in { | ||||
def VFMLAL_LOW : SInst<"vfmlal_low", "ffHH", "hQh">; | def VFMLAL_LOW : SInst<"vfmlal_low", "nndd", "hQh">; | ||||
def VFMLSL_LOW : SInst<"vfmlsl_low", "ffHH", "hQh">; | def VFMLSL_LOW : SInst<"vfmlsl_low", "nndd", "hQh">; | ||||
def VFMLAL_HIGH : SInst<"vfmlal_high", "ffHH", "hQh">; | def VFMLAL_HIGH : SInst<"vfmlal_high", "nndd", "hQh">; | ||||
def VFMLSL_HIGH : SInst<"vfmlsl_high", "ffHH", "hQh">; | def VFMLSL_HIGH : SInst<"vfmlsl_high", "nndd", "hQh">; | ||||
def VFMLAL_LANE_LOW : SOpInst<"vfmlal_lane_low", "ffH0i", "hQh", OP_FMLAL_LN>; | def VFMLAL_LANE_LOW : SOpInst<"vfmlal_lane_low", "ffH0i", "hQh", OP_FMLAL_LN>; | ||||
def VFMLSL_LANE_LOW : SOpInst<"vfmlsl_lane_low", "ffH0i", "hQh", OP_FMLSL_LN>; | def VFMLSL_LANE_LOW : SOpInst<"vfmlsl_lane_low", "ffH0i", "hQh", OP_FMLSL_LN>; | ||||
def VFMLAL_LANE_HIGH : SOpInst<"vfmlal_lane_high", "ffH0i", "hQh", OP_FMLAL_LN_Hi>; | def VFMLAL_LANE_HIGH : SOpInst<"vfmlal_lane_high", "ffH0i", "hQh", OP_FMLAL_LN_Hi>; | ||||
def VFMLSL_LANE_HIGH : SOpInst<"vfmlsl_lane_high", "ffH0i", "hQh", OP_FMLSL_LN_Hi>; | def VFMLSL_LANE_HIGH : SOpInst<"vfmlsl_lane_high", "ffH0i", "hQh", OP_FMLSL_LN_Hi>; | ||||
def VFMLAL_LANEQ_LOW : SOpInst<"vfmlal_laneq_low", "ffH1i", "hQh", OP_FMLAL_LN>; | def VFMLAL_LANEQ_LOW : SOpInst<"vfmlal_laneq_low", "ffH1i", "hQh", OP_FMLAL_LN>; | ||||
def VFMLSL_LANEQ_LOW : SOpInst<"vfmlsl_laneq_low", "ffH1i", "hQh", OP_FMLSL_LN>; | def VFMLSL_LANEQ_LOW : SOpInst<"vfmlsl_laneq_low", "ffH1i", "hQh", OP_FMLSL_LN>; | ||||
def VFMLAL_LANEQ_HIGH : SOpInst<"vfmlal_laneq_high", "ffH1i", "hQh", OP_FMLAL_LN_Hi>; | def VFMLAL_LANEQ_HIGH : SOpInst<"vfmlal_laneq_high", "ffH1i", "hQh", OP_FMLAL_LN_Hi>; | ||||
def VFMLSL_LANEQ_HIGH : SOpInst<"vfmlsl_laneq_high", "ffH1i", "hQh", OP_FMLSL_LN_Hi>; | def VFMLSL_LANEQ_HIGH : SOpInst<"vfmlsl_laneq_high", "ffH1i", "hQh", OP_FMLSL_LN_Hi>; | ||||
} | } |