mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 06:36:06 +00:00

This commit improves the diagnostics for vector (elementwise) builtins in a couple of ways. It primarily provides more precise type-checking diagnostics for builtins with specific type requirements. Previously many builtins were receiving a catch-all diagnostic suggesting types which aren't valid. It also makes consistent the type-checking behaviour between various binary and ternary builtins. The binary builtins would check for mismatched argument types before specific type requirements, whereas ternary builtins would perform the checks in the reverse order. The binary builtins now behave as the ternary ones do.
12 lines
363 B
C
12 lines
363 B
C
// RUN: %clang_cc1 -triple aarch64 -target-feature +sve \
|
|
// RUN: -disable-O0-optnone -o - -fsyntax-only %s -verify
|
|
// REQUIRES: aarch64-registered-target
|
|
|
|
#include <arm_sve.h>
|
|
|
|
svfloat32_t test_pow_vv_i8mf8(svfloat32_t v) {
|
|
|
|
return __builtin_elementwise_pow(v, v);
|
|
// expected-error@-1 {{1st argument must be a scalar or vector of floating-point types}}
|
|
}
|