diff options
| author | Chad Rosier <mcrosier@codeaurora.org> | 2013-12-09 22:47:55 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@codeaurora.org> | 2013-12-09 22:47:55 +0000 |
| commit | ad3683c3cb36a69163c55bb653a2839f13bcbfed (patch) | |
| tree | 9c7c7fd9787148fa9a3b3b4f9e45f08e5d51ba2b /clang/lib/CodeGen/CGBuiltin.cpp | |
| parent | 5c8bf9c3dbf0205dadeafd9d7850f31be1be7270 (diff) | |
| download | bcm5719-llvm-ad3683c3cb36a69163c55bb653a2839f13bcbfed.tar.gz bcm5719-llvm-ad3683c3cb36a69163c55bb653a2839f13bcbfed.zip | |
[AArch64] Remove q and non-q intrinsic definitions from the NEON scalar reduce
pairwise implementation, using an overloaded definition instead.
llvm-svn: 196834
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 0a83d99330d..4a7e490fcea 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -1990,39 +1990,29 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, Int = Intrinsic::aarch64_neon_vpadd; s = "vpadd"; break; case AArch64::BI__builtin_neon_vpadds_f32: - Int = Intrinsic::aarch64_neon_vpfadd; s = "vpfadd"; - break; case AArch64::BI__builtin_neon_vpaddd_f64: - Int = Intrinsic::aarch64_neon_vpfaddq; s = "vpfaddq"; - break; + Int = Intrinsic::aarch64_neon_vpfadd; + s = "vpfadd"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Max case AArch64::BI__builtin_neon_vpmaxs_f32: - Int = Intrinsic::aarch64_neon_vpmax; s = "vpmax"; - break; case AArch64::BI__builtin_neon_vpmaxqd_f64: - Int = Intrinsic::aarch64_neon_vpmaxq; s = "vpmaxq"; - break; + Int = Intrinsic::aarch64_neon_vpmax; + s = "vpmax"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Min case AArch64::BI__builtin_neon_vpmins_f32: - Int = Intrinsic::aarch64_neon_vpmin; s = "vpmin"; - break; case AArch64::BI__builtin_neon_vpminqd_f64: - Int = Intrinsic::aarch64_neon_vpminq; s = "vpminq"; - break; + Int = Intrinsic::aarch64_neon_vpmin; + s = "vpmin"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Maxnm case AArch64::BI__builtin_neon_vpmaxnms_f32: - Int = Intrinsic::aarch64_neon_vpfmaxnm; s = "vpfmaxnm"; - break; case AArch64::BI__builtin_neon_vpmaxnmqd_f64: - Int = Intrinsic::aarch64_neon_vpfmaxnmq; s = "vpfmaxnmq"; - break; + Int = Intrinsic::aarch64_neon_vpfmaxnm; + s = "vpfmaxnm"; AcrossVec = true; break; // Scalar Reduce Pairwise Floating Point Minnm case AArch64::BI__builtin_neon_vpminnms_f32: - Int = Intrinsic::aarch64_neon_vpfminnm; s = "vpfminnm"; - break; case AArch64::BI__builtin_neon_vpminnmqd_f64: - Int = Intrinsic::aarch64_neon_vpfminnmq; s = "vpfminnmq"; - break; + Int = Intrinsic::aarch64_neon_vpfminnm; + s = "vpfminnm"; AcrossVec = true; break; // The followings are intrinsics with scalar results generated AcrossVec vectors case AArch64::BI__builtin_neon_vaddlv_s8: case AArch64::BI__builtin_neon_vaddlv_s16: |

