1*207e5cccSFangrui Song // REQUIRES: aarch64-registered-target 2*207e5cccSFangrui Song // RUN: not %clang_cc1 -triple aarch64-linux-gnu -target-feature +sve -emit-llvm -o - %s 2>&1 | FileCheck %s 3*207e5cccSFangrui Song // RUN: not %clang_cc1 -triple arm64-apple-ios7 -target-abi darwinpcs -target-feature +sve -emit-llvm -o - %s 2>&1 | FileCheck %s 4*207e5cccSFangrui Song 5*207e5cccSFangrui Song // CHECK: Passing SVE types to variadic functions is currently not supported 6*207e5cccSFangrui Song 7*207e5cccSFangrui Song #include <arm_sve.h> 8*207e5cccSFangrui Song #include <stdarg.h> 9*207e5cccSFangrui Song 10*207e5cccSFangrui Song double foo(char *str, ...) { 11*207e5cccSFangrui Song va_list ap; 12*207e5cccSFangrui Song svfloat64_t v; 13*207e5cccSFangrui Song double x; 14*207e5cccSFangrui Song 15*207e5cccSFangrui Song va_start(ap, str); 16*207e5cccSFangrui Song v = va_arg(ap, svfloat64_t); 17*207e5cccSFangrui Song x = va_arg(ap, double); 18*207e5cccSFangrui Song va_end(ap); 19*207e5cccSFangrui Song 20*207e5cccSFangrui Song return x + svaddv(svptrue_b8(), v); 21*207e5cccSFangrui Song } 22