diff options
| -rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 4a7e490fcea..ea6176dd9fa 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -1989,27 +1989,38 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, case AArch64::BI__builtin_neon_vpaddd_u64: Int = Intrinsic::aarch64_neon_vpadd; s = "vpadd"; break; + case AArch64::BI__builtin_neon_vaddv_f32: + case AArch64::BI__builtin_neon_vaddvq_f32: + case AArch64::BI__builtin_neon_vaddvq_f64: case AArch64::BI__builtin_neon_vpadds_f32: case AArch64::BI__builtin_neon_vpaddd_f64: Int = Intrinsic::aarch64_neon_vpfadd; s = "vpfadd"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Max + case AArch64::BI__builtin_neon_vmaxv_f32: case AArch64::BI__builtin_neon_vpmaxs_f32: + case AArch64::BI__builtin_neon_vmaxvq_f64: case AArch64::BI__builtin_neon_vpmaxqd_f64: Int = Intrinsic::aarch64_neon_vpmax; s = "vpmax"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Min + case AArch64::BI__builtin_neon_vminv_f32: case AArch64::BI__builtin_neon_vpmins_f32: + case AArch64::BI__builtin_neon_vminvq_f64: case AArch64::BI__builtin_neon_vpminqd_f64: Int = Intrinsic::aarch64_neon_vpmin; s = "vpmin"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Maxnm + case AArch64::BI__builtin_neon_vmaxnmv_f32: case AArch64::BI__builtin_neon_vpmaxnms_f32: + case AArch64::BI__builtin_neon_vmaxnmvq_f64: case AArch64::BI__builtin_neon_vpmaxnmqd_f64: Int = Intrinsic::aarch64_neon_vpfmaxnm; s = "vpfmaxnm"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Minnm + case AArch64::BI__builtin_neon_vminnmv_f32: case AArch64::BI__builtin_neon_vpminnms_f32: + case AArch64::BI__builtin_neon_vminnmvq_f64: case AArch64::BI__builtin_neon_vpminnmqd_f64: Int = Intrinsic::aarch64_neon_vpfminnm; s = "vpfminnm"; AcrossVec = true; break; @@ -2076,29 +2087,18 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, case AArch64::BI__builtin_neon_vaddvq_u16: case AArch64::BI__builtin_neon_vaddvq_u32: case AArch64::BI__builtin_neon_vaddvq_u64: - case AArch64::BI__builtin_neon_vaddv_f32: - case AArch64::BI__builtin_neon_vaddvq_f32: - case AArch64::BI__builtin_neon_vaddvq_f64: Int = Intrinsic::aarch64_neon_vaddv; AcrossVec = true; ExtendEle = false; s = "vaddv"; break; - case AArch64::BI__builtin_neon_vmaxv_f32: case AArch64::BI__builtin_neon_vmaxvq_f32: - case AArch64::BI__builtin_neon_vmaxvq_f64: Int = Intrinsic::aarch64_neon_vmaxv; AcrossVec = true; ExtendEle = false; s = "vmaxv"; break; - case AArch64::BI__builtin_neon_vminv_f32: case AArch64::BI__builtin_neon_vminvq_f32: - case AArch64::BI__builtin_neon_vminvq_f64: Int = Intrinsic::aarch64_neon_vminv; AcrossVec = true; ExtendEle = false; s = "vminv"; break; - case AArch64::BI__builtin_neon_vmaxnmv_f32: case AArch64::BI__builtin_neon_vmaxnmvq_f32: - case AArch64::BI__builtin_neon_vmaxnmvq_f64: Int = Intrinsic::aarch64_neon_vmaxnmv; AcrossVec = true; ExtendEle = false; s = "vmaxnmv"; break; - case AArch64::BI__builtin_neon_vminnmv_f32: case AArch64::BI__builtin_neon_vminnmvq_f32: - case AArch64::BI__builtin_neon_vminnmvq_f64: Int = Intrinsic::aarch64_neon_vminnmv; AcrossVec = true; ExtendEle = false; s = "vminnmv"; break; // Scalar Integer Saturating Doubling Multiply Half High |

