Viewing file: gnu_vectors_2.c (19.84 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-options "-msve-vector-bits=256 -flax-vector-conversions" } */
#include <arm_sve.h>
typedef uint8_t gnu_uint8_t __attribute__ ((vector_size (32))); typedef int8_t gnu_int8_t __attribute__ ((vector_size (32)));
void f (svuint8_t sve_u1, svint8_t sve_s1, gnu_uint8_t gnu_u1, gnu_int8_t gnu_s1, int n, unsigned char uc) { /* Initialization. */
svuint8_t init_sve_u1 = 0; /* { dg-error {incompatible types when initializing type 'svuint8_t' using type 'int'} } */ svuint8_t init_sve_u2 = {}; /* { dg-error {empty scalar initializer} } */ svuint8_t init_sve_u3 = { sve_u1 }; svuint8_t init_sve_u4 = { gnu_u1 }; svuint8_t init_sve_u5 = { sve_s1 }; svuint8_t init_sve_u6 = { gnu_s1 }; svuint8_t init_sve_u7 = { 0 }; /* { dg-error {incompatible types when initializing type 'svuint8_t' using type 'int'} } */ svuint8_t init_sve_u8 = { sve_u1, sve_u1 }; /* { dg-warning {excess elements in scalar initializer} } */ svuint8_t init_sve_u9 = { gnu_u1, gnu_u1 }; /* { dg-warning {excess elements in scalar initializer} } */
gnu_uint8_t init_gnu_u1 = 0; /* { dg-error {incompatible types when initializing type 'gnu_uint8_t'[^\n]* using type 'int'} } */ gnu_uint8_t init_gnu_u2 = {}; gnu_uint8_t init_gnu_u3 = { sve_u1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */ gnu_uint8_t init_gnu_u4 = { gnu_u1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */ gnu_uint8_t init_gnu_u5 = { sve_s1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */ gnu_uint8_t init_gnu_u6 = { gnu_s1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */ gnu_uint8_t init_gnu_u7 = { 0 };
/* Compound literals. */
(svuint8_t) {}; /* { dg-error {empty scalar initializer} } */ (svuint8_t) { 0 }; /* { dg-error {incompatible types when initializing type 'svuint8_t' using type 'int'} } */ (svuint8_t) { sve_u1 }; (svuint8_t) { gnu_u1 }; (svuint8_t) { sve_s1 }; (svuint8_t) { gnu_s1 };
(gnu_uint8_t) {}; (gnu_uint8_t) { 0 }; (gnu_uint8_t) { sve_u1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */ (gnu_uint8_t) { gnu_u1 }; /* { dg-error {incompatible types when initializing type 'unsigned char'} } */
/* Assignment. */
sve_u1 = 0; /* { dg-error {incompatible types when assigning to type 'svuint8_t' from type 'int'} } */ sve_u1 = sve_u1; sve_u1 = gnu_u1; sve_u1 = sve_s1; sve_u1 = gnu_s1;
gnu_u1 = 0; /* { dg-error {incompatible types when assigning to type 'gnu_uint8_t'[^\n]* from type 'int'} } */ gnu_u1 = sve_u1; gnu_u1 = gnu_u1; gnu_u1 = sve_s1; gnu_u1 = gnu_s1;
/* Casts. */
(void) sve_u1; (svuint8_t) sve_u1; (svuint8_t) gnu_u1; (svuint8_t) 0; /* { dg-error {conversion to non-scalar type requested} } */ (svuint8_t) n; /* { dg-error {conversion to non-scalar type requested} } */ (svint8_t) sve_u1; (svint8_t) gnu_u1;
(void) gnu_u1; (gnu_uint8_t) sve_u1; (gnu_uint8_t) gnu_u1; (gnu_uint8_t) 0; /* { dg-error {cannot convert a value of type 'int' to vector type '[^']*' which has different size} } */ (gnu_uint8_t) n; /* { dg-error {cannot convert a value of type 'int' to vector type '[^']*' which has different size} } */ (gnu_int8_t) sve_u1; (gnu_int8_t) gnu_u1;
/* Vector indexing. */
sve_u1[0]; /* { dg-error {subscripted value is neither array nor pointer} } */ &sve_u1[0]; /* { dg-error {subscripted value is neither array nor pointer} } */
gnu_u1[0]; &gnu_u1[0];
/* Unary operators. */
+sve_u1; /* { dg-error {wrong type argument to unary plus} } */ -sve_u1; /* { dg-error {wrong type argument to unary minus} } */ ~sve_u1; /* { dg-error {wrong type argument to bit-complement} } */ !sve_u1; /* { dg-error {wrong type argument to unary exclamation mark} } */ *sve_u1; /* { dg-error {invalid type argument of unary '\*'} } */ __real sve_u1; /* { dg-error {wrong type argument to __real} } */ __imag sve_u1; /* { dg-error {wrong type argument to __imag} } */ ++sve_u1; /* { dg-error {wrong type argument to increment} } */ --sve_u1; /* { dg-error {wrong type argument to decrement} } */ sve_u1++; /* { dg-error {wrong type argument to increment} } */ sve_u1--; /* { dg-error {wrong type argument to decrement} } */
+gnu_u1; -gnu_u1; ~gnu_u1; !gnu_u1; /* { dg-error {wrong type argument to unary exclamation mark} } */ *gnu_u1; /* { dg-error {invalid type argument of unary '\*'} } */ __real gnu_u1; /* { dg-error {wrong type argument to __real} } */ __imag gnu_u1; /* { dg-error {wrong type argument to __imag} } */ ++gnu_u1; --gnu_u1; gnu_u1++; gnu_u1--;
/* Vector-vector binary arithmetic. */
sve_u1 + sve_u1; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - sve_u1; /* { dg-error {invalid operands to binary -} } */ sve_u1 * sve_u1; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / sve_u1; /* { dg-error {invalid operands to binary /} } */ sve_u1 % sve_u1; /* { dg-error {invalid operands to binary %} } */ sve_u1 & sve_u1; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | sve_u1; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ sve_u1; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == sve_u1; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != sve_u1; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= sve_u1; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < sve_u1; /* { dg-error {invalid operands to binary <} } */ sve_u1 > sve_u1; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= sve_u1; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << sve_u1; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> sve_u1; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && sve_u1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || sve_u1; /* { dg-error {used vector type where scalar is required} } */
sve_u1 + gnu_u1; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - gnu_u1; /* { dg-error {invalid operands to binary -} } */ sve_u1 * gnu_u1; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / gnu_u1; /* { dg-error {invalid operands to binary /} } */ sve_u1 % gnu_u1; /* { dg-error {invalid operands to binary %} } */ sve_u1 & gnu_u1; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | gnu_u1; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ gnu_u1; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == gnu_u1; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != gnu_u1; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= gnu_u1; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < gnu_u1; /* { dg-error {invalid operands to binary <} } */ sve_u1 > gnu_u1; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= gnu_u1; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << gnu_u1; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> gnu_u1; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && gnu_u1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || gnu_u1; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + sve_u1; /* { dg-error {invalid operands to binary \+} } */ gnu_u1 - sve_u1; /* { dg-error {invalid operands to binary -} } */ gnu_u1 * sve_u1; /* { dg-error {invalid operands to binary \*} } */ gnu_u1 / sve_u1; /* { dg-error {invalid operands to binary /} } */ gnu_u1 % sve_u1; /* { dg-error {invalid operands to binary %} } */ gnu_u1 & sve_u1; /* { dg-error {invalid operands to binary \&} } */ gnu_u1 | sve_u1; /* { dg-error {invalid operands to binary \|} } */ gnu_u1 ^ sve_u1; /* { dg-error {invalid operands to binary \^} } */ gnu_u1 == sve_u1; /* { dg-error {invalid operands to binary ==} } */ gnu_u1 != sve_u1; /* { dg-error {invalid operands to binary !=} } */ gnu_u1 <= sve_u1; /* { dg-error {invalid operands to binary <=} } */ gnu_u1 < sve_u1; /* { dg-error {invalid operands to binary <} } */ gnu_u1 > sve_u1; /* { dg-error {invalid operands to binary >} } */ gnu_u1 >= sve_u1; /* { dg-error {invalid operands to binary >=} } */ gnu_u1 << sve_u1; /* { dg-error {invalid operands to binary <<} } */ gnu_u1 >> sve_u1; /* { dg-error {invalid operands to binary >>} } */ gnu_u1 && sve_u1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || sve_u1; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + gnu_u1; gnu_u1 - gnu_u1; gnu_u1 * gnu_u1; gnu_u1 / gnu_u1; gnu_u1 % gnu_u1; gnu_u1 & gnu_u1; gnu_u1 | gnu_u1; gnu_u1 ^ gnu_u1; gnu_u1 == gnu_u1; gnu_u1 != gnu_u1; gnu_u1 <= gnu_u1; gnu_u1 < gnu_u1; gnu_u1 > gnu_u1; gnu_u1 >= gnu_u1; gnu_u1 << gnu_u1; gnu_u1 >> gnu_u1; gnu_u1 && gnu_u1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || gnu_u1; /* { dg-error {used vector type where scalar is required} } */
/* Vector-scalar binary arithmetic. */
sve_u1 + 2; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - 2; /* { dg-error {invalid operands to binary -} } */ sve_u1 * 2; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / 2; /* { dg-error {invalid operands to binary /} } */ sve_u1 % 2; /* { dg-error {invalid operands to binary %} } */ sve_u1 & 2; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | 2; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ 2; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == 2; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != 2; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= 2; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < 2; /* { dg-error {invalid operands to binary <} } */ sve_u1 > 2; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= 2; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << 2; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> 2; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && 2; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || 2; /* { dg-error {used vector type where scalar is required} } */
sve_u1 + uc; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - uc; /* { dg-error {invalid operands to binary -} } */ sve_u1 * uc; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / uc; /* { dg-error {invalid operands to binary /} } */ sve_u1 % uc; /* { dg-error {invalid operands to binary %} } */ sve_u1 & uc; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | uc; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ uc; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == uc; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != uc; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= uc; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < uc; /* { dg-error {invalid operands to binary <} } */ sve_u1 > uc; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= uc; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << uc; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> uc; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && uc; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || uc; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + 2; gnu_u1 - 2; gnu_u1 * 2; gnu_u1 / 2; gnu_u1 % 2; gnu_u1 & 2; gnu_u1 | 2; gnu_u1 ^ 2; gnu_u1 == 2; gnu_u1 != 2; gnu_u1 <= 2; gnu_u1 < 2; gnu_u1 > 2; gnu_u1 >= 2; gnu_u1 << 2; gnu_u1 >> 2; gnu_u1 && 2; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || 2; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + uc; gnu_u1 - uc; gnu_u1 * uc; gnu_u1 / uc; gnu_u1 % uc; gnu_u1 & uc; gnu_u1 | uc; gnu_u1 ^ uc; gnu_u1 == uc; gnu_u1 != uc; gnu_u1 <= uc; gnu_u1 < uc; gnu_u1 > uc; gnu_u1 >= uc; gnu_u1 << uc; gnu_u1 >> uc; gnu_u1 && uc; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || uc; /* { dg-error {used vector type where scalar is required} } */
/* Scalar-vector binary arithmetic. */
3 + sve_u1; /* { dg-error {invalid operands to binary \+} } */ 3 - sve_u1; /* { dg-error {invalid operands to binary -} } */ 3 * sve_u1; /* { dg-error {invalid operands to binary \*} } */ 3 / sve_u1; /* { dg-error {invalid operands to binary /} } */ 3 % sve_u1; /* { dg-error {invalid operands to binary %} } */ 3 & sve_u1; /* { dg-error {invalid operands to binary \&} } */ 3 | sve_u1; /* { dg-error {invalid operands to binary \|} } */ 3 ^ sve_u1; /* { dg-error {invalid operands to binary \^} } */ 3 == sve_u1; /* { dg-error {invalid operands to binary ==} } */ 3 != sve_u1; /* { dg-error {invalid operands to binary !=} } */ 3 <= sve_u1; /* { dg-error {invalid operands to binary <=} } */ 3 < sve_u1; /* { dg-error {invalid operands to binary <} } */ 3 > sve_u1; /* { dg-error {invalid operands to binary >} } */ 3 >= sve_u1; /* { dg-error {invalid operands to binary >=} } */ 3 << sve_u1; /* { dg-error {invalid operands to binary <<} } */ 3 >> sve_u1; /* { dg-error {invalid operands to binary >>} } */ 3 && sve_u1; /* { dg-error {invalid operands to binary \&\&} } */ 3 || sve_u1; /* { dg-error {invalid operands to binary \|\|} } */
3 + gnu_u1; 3 - gnu_u1; 3 * gnu_u1; 3 / gnu_u1; 3 % gnu_u1; 3 & gnu_u1; 3 | gnu_u1; 3 ^ gnu_u1; 3 == gnu_u1; 3 != gnu_u1; 3 <= gnu_u1; 3 < gnu_u1; 3 > gnu_u1; 3 >= gnu_u1; 3 << gnu_u1; 3 >> gnu_u1; 3 && gnu_u1; /* { dg-error {invalid operands to binary \&\&} } */ 3 || gnu_u1; /* { dg-error {invalid operands to binary \|\|} } */
/* Mismatched types. */
sve_u1 + sve_s1; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - sve_s1; /* { dg-error {invalid operands to binary -} } */ sve_u1 * sve_s1; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / sve_s1; /* { dg-error {invalid operands to binary /} } */ sve_u1 % sve_s1; /* { dg-error {invalid operands to binary %} } */ sve_u1 & sve_s1; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | sve_s1; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ sve_s1; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == sve_s1; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != sve_s1; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= sve_s1; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < sve_s1; /* { dg-error {invalid operands to binary <} } */ sve_u1 > sve_s1; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= sve_s1; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << sve_s1; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> sve_s1; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && sve_s1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || sve_s1; /* { dg-error {used vector type where scalar is required} } */
sve_u1 + gnu_s1; /* { dg-error {invalid operands to binary \+} } */ sve_u1 - gnu_s1; /* { dg-error {invalid operands to binary -} } */ sve_u1 * gnu_s1; /* { dg-error {invalid operands to binary \*} } */ sve_u1 / gnu_s1; /* { dg-error {invalid operands to binary /} } */ sve_u1 % gnu_s1; /* { dg-error {invalid operands to binary %} } */ sve_u1 & gnu_s1; /* { dg-error {invalid operands to binary \&} } */ sve_u1 | gnu_s1; /* { dg-error {invalid operands to binary \|} } */ sve_u1 ^ gnu_s1; /* { dg-error {invalid operands to binary \^} } */ sve_u1 == gnu_s1; /* { dg-error {invalid operands to binary ==} } */ sve_u1 != gnu_s1; /* { dg-error {invalid operands to binary !=} } */ sve_u1 <= gnu_s1; /* { dg-error {invalid operands to binary <=} } */ sve_u1 < gnu_s1; /* { dg-error {invalid operands to binary <} } */ sve_u1 > gnu_s1; /* { dg-error {invalid operands to binary >} } */ sve_u1 >= gnu_s1; /* { dg-error {invalid operands to binary >=} } */ sve_u1 << gnu_s1; /* { dg-error {invalid operands to binary <<} } */ sve_u1 >> gnu_s1; /* { dg-error {invalid operands to binary >>} } */ sve_u1 && gnu_s1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 || gnu_s1; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + sve_s1; /* { dg-error {invalid operands to binary \+} } */ gnu_u1 - sve_s1; /* { dg-error {invalid operands to binary -} } */ gnu_u1 * sve_s1; /* { dg-error {invalid operands to binary \*} } */ gnu_u1 / sve_s1; /* { dg-error {invalid operands to binary /} } */ gnu_u1 % sve_s1; /* { dg-error {invalid operands to binary %} } */ gnu_u1 & sve_s1; /* { dg-error {invalid operands to binary \&} } */ gnu_u1 | sve_s1; /* { dg-error {invalid operands to binary \|} } */ gnu_u1 ^ sve_s1; /* { dg-error {invalid operands to binary \^} } */ gnu_u1 == sve_s1; /* { dg-error {invalid operands to binary ==} } */ gnu_u1 != sve_s1; /* { dg-error {invalid operands to binary !=} } */ gnu_u1 <= sve_s1; /* { dg-error {invalid operands to binary <=} } */ gnu_u1 < sve_s1; /* { dg-error {invalid operands to binary <} } */ gnu_u1 > sve_s1; /* { dg-error {invalid operands to binary >} } */ gnu_u1 >= sve_s1; /* { dg-error {invalid operands to binary >=} } */ gnu_u1 << sve_s1; /* { dg-error {invalid operands to binary <<} } */ gnu_u1 >> sve_s1; /* { dg-error {invalid operands to binary >>} } */ gnu_u1 && sve_s1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || sve_s1; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 + gnu_s1; gnu_u1 - gnu_s1; gnu_u1 * gnu_s1; gnu_u1 / gnu_s1; gnu_u1 % gnu_s1; gnu_u1 & gnu_s1; gnu_u1 | gnu_s1; gnu_u1 ^ gnu_s1; gnu_u1 == gnu_s1; gnu_u1 != gnu_s1; gnu_u1 <= gnu_s1; gnu_u1 < gnu_s1; gnu_u1 > gnu_s1; gnu_u1 >= gnu_s1; gnu_u1 << gnu_s1; gnu_u1 >> gnu_s1; gnu_u1 && gnu_s1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 || gnu_s1; /* { dg-error {used vector type where scalar is required} } */
/* Conditional expressions. */
uc ? sve_u1 : sve_u1; uc ? gnu_u1 : sve_u1; /* { dg-error {type mismatch in conditional expression} } */ uc ? sve_u1 : gnu_u1; /* { dg-error {type mismatch in conditional expression} } */ uc ? gnu_u1 : gnu_u1;
sve_u1 ? sve_u1 : sve_u1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 ? gnu_u1 : sve_u1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 ? sve_u1 : gnu_u1; /* { dg-error {used vector type where scalar is required} } */ sve_u1 ? gnu_u1 : gnu_u1; /* { dg-error {used vector type where scalar is required} } */
gnu_u1 ? sve_u1 : sve_u1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 ? gnu_u1 : sve_u1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 ? sve_u1 : gnu_u1; /* { dg-error {used vector type where scalar is required} } */ gnu_u1 ? gnu_u1 : gnu_u1; /* { dg-error {used vector type where scalar is required} } */
/* Vector built-ins. */
__builtin_shuffle (sve_u1, sve_u1, sve_u1); /* { dg-error {'__builtin_shuffle' last argument must be an integer vector} } */ __builtin_shuffle (sve_u1, gnu_u1, gnu_u1); /* { dg-error {'__builtin_shuffle' arguments must be vectors} } */ __builtin_shuffle (gnu_u1, sve_u1, gnu_u1); /* { dg-error {'__builtin_shuffle' arguments must be vectors} } */ __builtin_shuffle (gnu_u1, gnu_u1, sve_u1); /* { dg-error {'__builtin_shuffle' last argument must be an integer vector} } */ __builtin_shuffle (gnu_u1, gnu_u1, gnu_u1);
__builtin_convertvector (sve_u1, svuint8_t); /* { dg-error {'__builtin_convertvector' first argument must be an integer or floating vector} } */ __builtin_convertvector (gnu_u1, svuint8_t); /* { dg-error {'__builtin_convertvector' second argument must be an integer or floating vector type} } */ __builtin_convertvector (sve_u1, gnu_uint8_t); /* { dg-error {'__builtin_convertvector' first argument must be an integer or floating vector} } */ __builtin_convertvector (gnu_u1, gnu_uint8_t); }
|