diff options
| author | Hao Liu <Hao.Liu@arm.com> | 2013-12-09 03:52:22 +0000 |
|---|---|---|
| committer | Hao Liu <Hao.Liu@arm.com> | 2013-12-09 03:52:22 +0000 |
| commit | 844a7da2431fb4d2d5e8b2485c6fe05c7190600a (patch) | |
| tree | b2cfd76a47fd61ab6da3d00ae51e5f74e90b6b1a /clang/test | |
| parent | 96a587a9f784cbf5147a1426cf234c4943911bb7 (diff) | |
| download | bcm5719-llvm-844a7da2431fb4d2d5e8b2485c6fe05c7190600a.tar.gz bcm5719-llvm-844a7da2431fb4d2d5e8b2485c6fe05c7190600a.zip | |
[AArch64]Add missing pair intrinsics such as:
int32_t vminv_s32(int32x2_t a)
which should be compiled into SMINP Vd.2S,Vn.2S,Vm.2S
llvm-svn: 196750
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/aarch64-neon-intrinsics.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/CodeGen/aarch64-neon-intrinsics.c b/clang/test/CodeGen/aarch64-neon-intrinsics.c index 6e9b7f10b36..48bb008ff20 100644 --- a/clang/test/CodeGen/aarch64-neon-intrinsics.c +++ b/clang/test/CodeGen/aarch64-neon-intrinsics.c @@ -11723,3 +11723,51 @@ float64x1_t test_vrsqrts_f64(float64x1_t a, float64x1_t b) { return vrsqrts_f64(a, b); // CHECK: frsqrts d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} } + +int32_t test_vminv_s32(int32x2_t a) { + // CHECK-LABEL: test_vminv_s32 + return vminv_s32(a); + // CHECK: sminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +uint32_t test_vminv_u32(uint32x2_t a) { + // CHECK-LABEL: test_vminv_u32 + return vminv_u32(a); + // CHECK: uminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +int32_t test_vmaxv_s32(int32x2_t a) { + // CHECK-LABEL: test_vmaxv_s32 + return vmaxv_s32(a); + // CHECK: smaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +uint32_t test_vmaxv_u32(uint32x2_t a) { + // CHECK-LABEL: test_vmaxv_u32 + return vmaxv_u32(a); + // CHECK: umaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +int32_t test_vaddv_s32(int32x2_t a) { + // CHECK-LABEL: test_vaddv_s32 + return vaddv_s32(a); + // CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +uint32_t test_vaddv_u32(uint32x2_t a) { + // CHECK-LABEL: test_vaddv_u32 + return vaddv_u32(a); + // CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s +} + +int64_t test_vaddlv_s32(int32x2_t a) { + // CHECK-LABEL: test_vaddlv_s32 + return vaddlv_s32(a); + // CHECK: saddlp {{v[0-9]+}}.1d, {{v[0-9]+}}.2s +} + +uint64_t test_vaddlv_u32(uint32x2_t a) { + // CHECK-LABEL: test_vaddlv_u32 + return vaddlv_u32(a); + // CHECK: uaddlp {{v[0-9]+}}.1d, {{v[0-9]+}}.2s +} |

