aboutsummaryrefslogtreecommitdiff
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGen/aarch64-neon-intrinsics.c97
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
+}