@@ -590,6 +590,7 @@ struct ARMVectorIntrinsicInfo {
590590 Intrinsic::LLVMIntrinsic, Intrinsic::AltLLVMIntrinsic, \
591591 TypeModifier }
592592
593+ // clang-format off
593594static const ARMVectorIntrinsicInfo ARMSIMDIntrinsicMap [] = {
594595 NEONMAP1 (__a32_vcvt_bf16_f32, arm_neon_vcvtfp2bf, 0 ),
595596 NEONMAP0 (splat_lane_v),
@@ -1217,35 +1218,55 @@ static const ARMVectorIntrinsicInfo AArch64SISDIntrinsicMap[] = {
12171218 NEONMAP1 (vcales_f32, aarch64_neon_facge, AddRetType | Add1ArgType),
12181219 NEONMAP1 (vcaltd_f64, aarch64_neon_facgt, AddRetType | Add1ArgType),
12191220 NEONMAP1 (vcalts_f32, aarch64_neon_facgt, AddRetType | Add1ArgType),
1221+ NEONMAP1 (vcvtad_s32_f64, aarch64_neon_fcvtas, AddRetType | Add1ArgType),
12201222 NEONMAP1 (vcvtad_s64_f64, aarch64_neon_fcvtas, AddRetType | Add1ArgType),
1223+ NEONMAP1 (vcvtad_u32_f64, aarch64_neon_fcvtau, AddRetType | Add1ArgType),
12211224 NEONMAP1 (vcvtad_u64_f64, aarch64_neon_fcvtau, AddRetType | Add1ArgType),
12221225 NEONMAP1 (vcvtas_s32_f32, aarch64_neon_fcvtas, AddRetType | Add1ArgType),
1226+ NEONMAP1 (vcvtas_s64_f32, aarch64_neon_fcvtas, AddRetType | Add1ArgType),
12231227 NEONMAP1 (vcvtas_u32_f32, aarch64_neon_fcvtau, AddRetType | Add1ArgType),
1228+ NEONMAP1 (vcvtas_u64_f32, aarch64_neon_fcvtau, AddRetType | Add1ArgType),
12241229 NEONMAP1 (vcvtd_n_f64_s64, aarch64_neon_vcvtfxs2fp, AddRetType | Add1ArgType),
12251230 NEONMAP1 (vcvtd_n_f64_u64, aarch64_neon_vcvtfxu2fp, AddRetType | Add1ArgType),
12261231 NEONMAP1 (vcvtd_n_s64_f64, aarch64_neon_vcvtfp2fxs, AddRetType | Add1ArgType),
12271232 NEONMAP1 (vcvtd_n_u64_f64, aarch64_neon_vcvtfp2fxu, AddRetType | Add1ArgType),
1233+ NEONMAP1 (vcvtd_s32_f64, aarch64_neon_fcvtzs, AddRetType | Add1ArgType),
12281234 NEONMAP1 (vcvtd_s64_f64, aarch64_neon_fcvtzs, AddRetType | Add1ArgType),
1235+ NEONMAP1 (vcvtd_u32_f64, aarch64_neon_fcvtzu, AddRetType | Add1ArgType),
12291236 NEONMAP1 (vcvtd_u64_f64, aarch64_neon_fcvtzu, AddRetType | Add1ArgType),
12301237 NEONMAP0 (vcvth_bf16_f32),
1238+ NEONMAP1 (vcvtmd_s32_f64, aarch64_neon_fcvtms, AddRetType | Add1ArgType),
12311239 NEONMAP1 (vcvtmd_s64_f64, aarch64_neon_fcvtms, AddRetType | Add1ArgType),
1240+ NEONMAP1 (vcvtmd_u32_f64, aarch64_neon_fcvtmu, AddRetType | Add1ArgType),
12321241 NEONMAP1 (vcvtmd_u64_f64, aarch64_neon_fcvtmu, AddRetType | Add1ArgType),
12331242 NEONMAP1 (vcvtms_s32_f32, aarch64_neon_fcvtms, AddRetType | Add1ArgType),
1243+ NEONMAP1 (vcvtms_s64_f32, aarch64_neon_fcvtms, AddRetType | Add1ArgType),
12341244 NEONMAP1 (vcvtms_u32_f32, aarch64_neon_fcvtmu, AddRetType | Add1ArgType),
1245+ NEONMAP1 (vcvtms_u64_f32, aarch64_neon_fcvtmu, AddRetType | Add1ArgType),
1246+ NEONMAP1 (vcvtnd_s32_f64, aarch64_neon_fcvtns, AddRetType | Add1ArgType),
12351247 NEONMAP1 (vcvtnd_s64_f64, aarch64_neon_fcvtns, AddRetType | Add1ArgType),
1248+ NEONMAP1 (vcvtnd_u32_f64, aarch64_neon_fcvtnu, AddRetType | Add1ArgType),
12361249 NEONMAP1 (vcvtnd_u64_f64, aarch64_neon_fcvtnu, AddRetType | Add1ArgType),
12371250 NEONMAP1 (vcvtns_s32_f32, aarch64_neon_fcvtns, AddRetType | Add1ArgType),
1251+ NEONMAP1 (vcvtns_s64_f32, aarch64_neon_fcvtns, AddRetType | Add1ArgType),
12381252 NEONMAP1 (vcvtns_u32_f32, aarch64_neon_fcvtnu, AddRetType | Add1ArgType),
1253+ NEONMAP1 (vcvtns_u64_f32, aarch64_neon_fcvtnu, AddRetType | Add1ArgType),
1254+ NEONMAP1 (vcvtpd_s32_f64, aarch64_neon_fcvtps, AddRetType | Add1ArgType),
12391255 NEONMAP1 (vcvtpd_s64_f64, aarch64_neon_fcvtps, AddRetType | Add1ArgType),
1256+ NEONMAP1 (vcvtpd_u32_f64, aarch64_neon_fcvtpu, AddRetType | Add1ArgType),
12401257 NEONMAP1 (vcvtpd_u64_f64, aarch64_neon_fcvtpu, AddRetType | Add1ArgType),
12411258 NEONMAP1 (vcvtps_s32_f32, aarch64_neon_fcvtps, AddRetType | Add1ArgType),
1259+ NEONMAP1 (vcvtps_s64_f32, aarch64_neon_fcvtps, AddRetType | Add1ArgType),
12421260 NEONMAP1 (vcvtps_u32_f32, aarch64_neon_fcvtpu, AddRetType | Add1ArgType),
1261+ NEONMAP1 (vcvtps_u64_f32, aarch64_neon_fcvtpu, AddRetType | Add1ArgType),
12431262 NEONMAP1 (vcvts_n_f32_s32, aarch64_neon_vcvtfxs2fp, AddRetType | Add1ArgType),
12441263 NEONMAP1 (vcvts_n_f32_u32, aarch64_neon_vcvtfxu2fp, AddRetType | Add1ArgType),
12451264 NEONMAP1 (vcvts_n_s32_f32, aarch64_neon_vcvtfp2fxs, AddRetType | Add1ArgType),
12461265 NEONMAP1 (vcvts_n_u32_f32, aarch64_neon_vcvtfp2fxu, AddRetType | Add1ArgType),
12471266 NEONMAP1 (vcvts_s32_f32, aarch64_neon_fcvtzs, AddRetType | Add1ArgType),
1267+ NEONMAP1 (vcvts_s64_f32, aarch64_neon_fcvtzs, AddRetType | Add1ArgType),
12481268 NEONMAP1 (vcvts_u32_f32, aarch64_neon_fcvtzu, AddRetType | Add1ArgType),
1269+ NEONMAP1 (vcvts_u64_f32, aarch64_neon_fcvtzu, AddRetType | Add1ArgType),
12491270 NEONMAP1 (vcvtxd_f32_f64, aarch64_sisd_fcvtxn, 0 ),
12501271 NEONMAP1 (vmaxnmv_f32, aarch64_neon_fmaxnmv, AddRetType | Add1ArgType),
12511272 NEONMAP1 (vmaxnmvq_f32, aarch64_neon_fmaxnmv, AddRetType | Add1ArgType),
@@ -1446,6 +1467,7 @@ static const ARMVectorIntrinsicInfo AArch64SISDIntrinsicMap[] = {
14461467 NEONMAP1 (vrsqrteh_f16, aarch64_neon_frsqrte, Add1ArgType),
14471468 NEONMAP1 (vrsqrtsh_f16, aarch64_neon_frsqrts, Add1ArgType),
14481469};
1470+ // clang-format on
14491471
14501472// Some intrinsics are equivalent for codegen.
14511473static const std::pair<unsigned , unsigned > NEONEquivalentIntrinsicMap[] = {
0 commit comments