xref: /llvm-project/clang/test/Sema/convertvector.c (revision 2903df02fb3c057849aaa796a91289b01950a5f0)
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 
3 typedef double vector4double __attribute__((__vector_size__(32)));
4 typedef float  vector8float  __attribute__((__vector_size__(32)));
5 
foo1(vector4double x)6 vector8float foo1(vector4double x) {
7   return __builtin_convertvector(x, vector8float);  // expected-error {{same number of elements}}
8 }
9 
foo2(vector4double x)10 float foo2(vector4double x) {
11   return __builtin_convertvector(x, float);  // expected-error {{second argument to __builtin_convertvector must be of vector type}}
12 }
13 
foo3(double x)14 vector8float foo3(double x) {
15   return __builtin_convertvector(x, vector8float);  // expected-error {{must be a vector}}
16 }
17 
foo4(float x)18 float foo4(float x) {
19   return __builtin_convertvector(x, float); // expected-error {{first argument to __builtin_convertvector must be a vector}}
20 }
21