diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-12-08 00:01:42 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-12-08 00:01:42 +0000 |
commit | fddc9d1f53ff16622740a2826ab419948786cc8d (patch) | |
tree | 902ba0ed8ffc6226e3e682a566852d7f7307da39 /clang/test | |
parent | 8a5ca09d7326adc111c10a97297946d77cb6b2c5 (diff) | |
download | llvm-fddc9d1f53ff16622740a2826ab419948786cc8d.zip llvm-fddc9d1f53ff16622740a2826ab419948786cc8d.tar.gz llvm-fddc9d1f53ff16622740a2826ab419948786cc8d.tar.bz2 |
Merging r196199:
------------------------------------------------------------------------
r196199 | haoliu | 2013-12-02 19:40:08 -0800 (Mon, 02 Dec 2013) | 3 lines
AArch64: Add missing scalar pair intrinsics.
E.g. "float32_t vaddv_f32(float32x2_t a)" to be matched into "faddp s0, v1.2s".
------------------------------------------------------------------------
llvm-svn: 196676
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/aarch64-neon-intrinsics.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/clang/test/CodeGen/aarch64-neon-intrinsics.c b/clang/test/CodeGen/aarch64-neon-intrinsics.c index d9c1b8f..f0733c9 100644 --- a/clang/test/CodeGen/aarch64-neon-intrinsics.c +++ b/clang/test/CodeGen/aarch64-neon-intrinsics.c @@ -11272,3 +11272,100 @@ int64x1_t test_vneg_s64(int64x1_t a) { return vneg_s64(a); // CHECK: neg d{{[0-9]+}}, d{{[0-9]+}} } + +float32_t test_vaddv_f32(float32x2_t a) { + // CHECK-LABEL: test_vaddv_f32 + return vaddv_f32(a); + // CHECK: faddp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +float32_t test_vaddvq_f32(float32x4_t a) { + // CHECK-LABEL: test_vaddvq_f32 + return vaddvq_f32(a); + // CHECK: faddp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s + // CHECK: faddp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +float64_t test_vaddvq_f64(float64x2_t a) { + // CHECK-LABEL: test_vaddvq_f64 + return vaddvq_f64(a); + // CHECK: faddp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +float32_t test_vmaxv_f32(float32x2_t a) { + // CHECK-LABEL: test_vmaxv_f32 + return vmaxv_f32(a); + // CHECK: fmaxp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +float64_t test_vmaxvq_f64(float64x2_t a) { + // CHECK-LABEL: test_vmaxvq_f64 + return vmaxvq_f64(a); + // CHECK: fmaxp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +float32_t test_vminv_f32(float32x2_t a) { + // CHECK-LABEL: test_vminv_f32 + return vminv_f32(a); + // CHECK: fminp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +float64_t test_vminvq_f64(float64x2_t a) { + // CHECK-LABEL: test_vminvq_f64 + return vminvq_f64(a); + // CHECK: fminp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +float64_t test_vmaxnmvq_f64(float64x2_t a) { + // CHECK-LABEL: test_vmaxnmvq_f64 + return vmaxnmvq_f64(a); + // CHECK: fmaxnmp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +float32_t test_vmaxnmv_f32(float32x2_t a) { + // CHECK-LABEL: test_vmaxnmv_f32 + return vmaxnmv_f32(a); + // CHECK: fmaxnmp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +float64_t test_vminnmvq_f64(float64x2_t a) { + // CHECK-LABEL: test_vminnmvq_f64 + return vminnmvq_f64(a); + // CHECK: fminnmp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +float32_t test_vminnmv_f32(float32x2_t a) { + // CHECK-LABEL: test_vminnmv_f32 + return vminnmv_f32(a); + // CHECK: fminnmp {{s[0-9]+}}, {{v[0-9]+}}.2s +} + +int64x2_t test_vpaddq_s64(int64x2_t a, int64x2_t b) { + // CHECK-LABEL: test_vpaddq_s64 + return vpaddq_s64(a, b); + // CHECK: addp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d +} + +uint64x2_t test_vpaddq_u64(uint64x2_t a, uint64x2_t b) { + // CHECK-LABEL: test_vpaddq_u64 + return vpaddq_u64(a, b); + // CHECK: addp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d +} + +uint64_t test_vpaddd_u64(uint64x2_t a) { + // CHECK-LABEL: test_vpaddd_u64 + return vpaddd_u64(a); + // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +int64_t test_vaddvq_s64(int64x2_t a) { + // CHECK-LABEL: test_vaddvq_s64 + return vaddvq_s64(a); + // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d +} + +uint64_t test_vaddvq_u64(uint64x2_t a) { + // CHECK-LABEL: test_vaddvq_u64 + return vaddvq_u64(a); + // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d +} |