annotate gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 // { dg-options "-msve-vector-bits=256 -std=gnu++2a -flax-vector-conversions" }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 #include <arm_sve.h>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 typedef uint8_t gnu_uint8_t __attribute__ ((vector_size (32)));
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 typedef int8_t gnu_int8_t __attribute__ ((vector_size (32)));
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 void
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 f (svuint8_t sve_u1, svint8_t sve_s1,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 gnu_uint8_t gnu_u1, gnu_int8_t gnu_s1, int n, unsigned char uc)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 // Initialization
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 svuint8_t init_sve_u1 = 0; // { dg-error {cannot convert 'int' to 'svuint8_t' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 svuint8_t init_sve_u2 = {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 svuint8_t init_sve_u3 = { sve_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 svuint8_t init_sve_u4 = { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 svuint8_t init_sve_u5 = { sve_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 svuint8_t init_sve_u6 = { gnu_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 svuint8_t init_sve_u7 = { 0 }; // { dg-error {cannot convert 'int' to 'svuint8_t' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 svuint8_t init_sve_u8 = { sve_u1, sve_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 svuint8_t init_sve_u9 = { gnu_u1, gnu_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 svuint8_t init_sve_u10 {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 svuint8_t init_sve_u11 { sve_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 svuint8_t init_sve_u12 { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 svuint8_t init_sve_u13 { sve_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 svuint8_t init_sve_u14 { gnu_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 svuint8_t init_sve_u15 { 0 }; // { dg-error {cannot convert 'int' to 'svuint8_t' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 svuint8_t init_sve_u16 { sve_u1, sve_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 svuint8_t init_sve_u17 { gnu_u1, gnu_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 svuint8_t init_sve_u18 (0); // { dg-error {cannot convert 'int' to 'svuint8_t' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 svuint8_t init_sve_u19 (sve_u1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 svuint8_t init_sve_u20 (gnu_u1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 svuint8_t init_sve_u21 (sve_s1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 svuint8_t init_sve_u22 (gnu_s1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 gnu_uint8_t init_gnu_u1 = 0; // { dg-error {cannot convert 'int' to 'gnu_uint8_t'[^\n]* in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 gnu_uint8_t init_gnu_u2 = {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 gnu_uint8_t init_gnu_u3 = { sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 gnu_uint8_t init_gnu_u4 = { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 gnu_uint8_t init_gnu_u5 = { sve_s1 }; // { dg-error {cannot convert 'svint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 gnu_uint8_t init_gnu_u6 = { gnu_s1 }; // { dg-error {cannot convert 'gnu_int8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 gnu_uint8_t init_gnu_u7 = { 0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 gnu_uint8_t init_gnu_u8 = { sve_u1, sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 gnu_uint8_t init_gnu_u9 = { gnu_u1, gnu_u1 }; // { dg-error {cannot convert 'gnu_uint8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 gnu_uint8_t init_gnu_u10 { sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 gnu_uint8_t init_gnu_u11 { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 gnu_uint8_t init_gnu_u12 { sve_s1 }; // { dg-error {cannot convert 'svint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 gnu_uint8_t init_gnu_u13 { gnu_s1 }; // { dg-error {cannot convert 'gnu_int8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 gnu_uint8_t init_gnu_u14 { 0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 gnu_uint8_t init_gnu_u15 { sve_u1, sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 gnu_uint8_t init_gnu_u16 { gnu_u1, gnu_u1 }; // { dg-error {cannot convert 'gnu_uint8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 gnu_uint8_t init_gnu_u17 (0); // { dg-error {cannot convert 'int' to 'gnu_uint8_t'[^\n]* in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 gnu_uint8_t init_gnu_u18 (sve_u1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 gnu_uint8_t init_gnu_u19 (gnu_u1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 gnu_uint8_t init_gnu_u20 (sve_s1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 gnu_uint8_t init_gnu_u21 (gnu_s1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 // Compound literals
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 (svuint8_t) {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 (svuint8_t) { 0 }; // { dg-error {cannot convert 'int' to 'svuint8_t' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 (svuint8_t) { sve_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 (svuint8_t) { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 (svuint8_t) { sve_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 (svuint8_t) { gnu_s1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 (svuint8_t) { sve_u1, sve_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 (svuint8_t) { gnu_u1, gnu_u1 }; // { dg-error {too many initializers for 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 (gnu_uint8_t) {};
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 (gnu_uint8_t) { 0 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 (gnu_uint8_t) { sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 (gnu_uint8_t) { gnu_u1 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74 (gnu_uint8_t) { sve_s1 }; // { dg-error {cannot convert 'svint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 (gnu_uint8_t) { gnu_s1 }; // { dg-error {cannot convert 'gnu_int8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 (gnu_uint8_t) { sve_u1, sve_u1 }; // { dg-error {cannot convert 'svuint8_t' to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77 (gnu_uint8_t) { gnu_u1, gnu_u1 }; // { dg-error {cannot convert 'gnu_uint8_t'[^\n]* to 'unsigned char' in initialization} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79 // Assignment
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81 sve_u1 = 0; // { dg-error {cannot convert 'int' to 'svuint8_t' in assignment} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82 sve_u1 = sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 sve_u1 = gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 sve_u1 = sve_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 sve_u1 = gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 gnu_u1 = 0; // { dg-error {cannot convert 'int' to 'gnu_uint8_t'[^\n]* in assignment} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 gnu_u1 = sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 gnu_u1 = gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 gnu_u1 = sve_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 gnu_u1 = gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93 // Casts
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 (void) sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 (int) sve_u1; // { dg-error {invalid cast from type 'svuint8_t' to type 'int'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
97 (bool) sve_u1; // { dg-error {invalid cast from type 'svuint8_t' to type 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
98 (svuint8_t) 0; // { dg-error {invalid cast from type 'int' to type 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
99 (svuint8_t) n; // { dg-error {invalid cast from type 'int' to type 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
100 (svuint8_t) sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
101 (svuint8_t) gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
102 (svuint8_t) sve_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
103 (svuint8_t) gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
104
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
105 (void) gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
106 (int) gnu_u1; // { dg-error {cannot convert a vector of type 'gnu_uint8_t'[^\n]* to type 'int'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
107 (bool) gnu_u1; // { dg-error {cannot convert a vector of type 'gnu_uint8_t'[^\n]* to type 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
108 (gnu_uint8_t) 0; // { dg-error {cannot convert a value of type 'int' to vector type 'gnu_uint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
109 (gnu_uint8_t) n; // { dg-error {cannot convert a value of type 'int' to vector type 'gnu_uint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
110 (gnu_uint8_t) sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
111 (gnu_uint8_t) gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
112 (gnu_uint8_t) sve_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
113 (gnu_uint8_t) gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
114
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
115 // Vector indexing.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
116
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
117 sve_u1[0]; // { dg-error {subscripted value is neither array nor pointer} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
118 &sve_u1[0]; // { dg-error {subscripted value is neither array nor pointer} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
119
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
120 gnu_u1[0];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
121 &gnu_u1[0];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
122
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
123 // Unary vector arithmetic.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
124
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
125 +sve_u1; // { dg-error {wrong type argument to unary plus} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
126 -sve_u1; // { dg-error {wrong type argument to unary minus} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
127 ~sve_u1; // { dg-error {wrong type argument to bit-complement} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
128 !sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
129 // { dg-error {in argument to unary !} "" { target *-*-* } .-1 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
130 *sve_u1; // { dg-error {invalid type argument of unary '\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
131 __real sve_u1; // { dg-error {wrong type argument to __real} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
132 __imag sve_u1; // { dg-error {wrong type argument to __imag} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
133 ++sve_u1; // { dg-error {no pre-increment operator for type} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
134 --sve_u1; // { dg-error {no pre-decrement operator for type} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
135 sve_u1++; // { dg-error {no post-increment operator for type} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
136 sve_u1--; // { dg-error {no post-decrement operator for type} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
137
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
138 +gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
139 -gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
140 ~gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
141 !gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
142 *gnu_u1; // { dg-error {invalid type argument of unary '\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
143 __real gnu_u1; // { dg-error {wrong type argument to __real} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
144 __imag gnu_u1; // { dg-error {wrong type argument to __imag} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
145 ++gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
146 --gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
147 gnu_u1++;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
148 gnu_u1--;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
149
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
150 // Vector-vector binary arithmetic.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
151
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
152 sve_u1 + sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
153 sve_u1 - sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
154 sve_u1 * sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
155 sve_u1 / sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
156 sve_u1 % sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
157 sve_u1 & sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
158 sve_u1 | sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
159 sve_u1 ^ sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
160 sve_u1 == sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
161 sve_u1 != sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
162 sve_u1 <= sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
163 sve_u1 < sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
164 sve_u1 > sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
165 sve_u1 >= sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
166 sve_u1 <=> sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
167 sve_u1 << sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
168 sve_u1 >> sve_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'svuint8_t' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
169 sve_u1 && sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
170 sve_u1 || sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
171
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
172 sve_u1 + gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
173 sve_u1 - gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
174 sve_u1 * gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
175 sve_u1 / gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
176 sve_u1 % gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
177 sve_u1 & gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
178 sve_u1 | gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
179 sve_u1 ^ gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
180 sve_u1 == gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
181 sve_u1 != gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
182 sve_u1 <= gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
183 sve_u1 < gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
184 sve_u1 > gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
185 sve_u1 >= gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
186 sve_u1 <=> gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
187 sve_u1 << gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
188 sve_u1 >> gnu_u1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_uint8_t'[^\n]* to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
189 sve_u1 && gnu_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
190 sve_u1 || gnu_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
191
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
192 gnu_u1 + sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
193 gnu_u1 - sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
194 gnu_u1 * sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
195 gnu_u1 / sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
196 gnu_u1 % sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
197 gnu_u1 & sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
198 gnu_u1 | sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
199 gnu_u1 ^ sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
200 gnu_u1 == sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
201 gnu_u1 != sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
202 gnu_u1 <= sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
203 gnu_u1 < sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
204 gnu_u1 > sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
205 gnu_u1 >= sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
206 gnu_u1 <=> sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
207 gnu_u1 << sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
208 gnu_u1 >> sve_u1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svuint8_t' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
209 gnu_u1 && sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
210 gnu_u1 || sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
211
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
212 gnu_u1 + gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
213 gnu_u1 - gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
214 gnu_u1 * gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
215 gnu_u1 / gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
216 gnu_u1 % gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
217 gnu_u1 & gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
218 gnu_u1 | gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
219 gnu_u1 ^ gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
220 gnu_u1 == gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
221 gnu_u1 != gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
222 gnu_u1 <= gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
223 gnu_u1 < gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
224 gnu_u1 > gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
225 gnu_u1 >= gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
226 // This is a target-independent sorry. There's no ACLE reason why it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
227 // needs to be kept.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
228 gnu_u1 <=> gnu_u1; // { dg-message {three-way comparison of vectors} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
229 gnu_u1 << gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
230 gnu_u1 >> gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
231 gnu_u1 && gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
232 gnu_u1 || gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
233
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
234 // Vector-scalar binary arithmetic.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
235
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
236 sve_u1 + 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
237 sve_u1 - 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
238 sve_u1 * 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
239 sve_u1 / 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
240 sve_u1 % 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
241 sve_u1 & 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
242 sve_u1 | 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
243 sve_u1 ^ 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
244 sve_u1 == 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
245 sve_u1 != 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
246 sve_u1 <= 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
247 sve_u1 < 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
248 sve_u1 > 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
249 sve_u1 >= 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
250 sve_u1 <=> 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
251 sve_u1 << 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
252 sve_u1 >> 2; // { dg-error {invalid operands of types 'svuint8_t' and 'int' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
253 sve_u1 && 2; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
254 sve_u1 || 2; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
255
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
256 sve_u1 + uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
257 sve_u1 - uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
258 sve_u1 * uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
259 sve_u1 / uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
260 sve_u1 % uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
261 sve_u1 & uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
262 sve_u1 | uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
263 sve_u1 ^ uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
264 sve_u1 == uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
265 sve_u1 != uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
266 sve_u1 <= uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
267 sve_u1 < uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
268 sve_u1 > uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
269 sve_u1 >= uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
270 sve_u1 <=> uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
271 sve_u1 << uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
272 sve_u1 >> uc; // { dg-error {invalid operands of types 'svuint8_t' and 'unsigned char' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
273 sve_u1 && uc; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
274 sve_u1 || uc; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
275
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
276 gnu_u1 + 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
277 gnu_u1 - 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
278 gnu_u1 * 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
279 gnu_u1 / 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
280 gnu_u1 % 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
281 gnu_u1 & 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
282 gnu_u1 | 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
283 gnu_u1 ^ 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
284 gnu_u1 == 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
285 gnu_u1 != 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
286 gnu_u1 <= 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
287 gnu_u1 < 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
288 gnu_u1 > 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
289 gnu_u1 >= 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
290 gnu_u1 <=> 2; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'int' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
291 gnu_u1 << 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
292 gnu_u1 >> 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
293 gnu_u1 && 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
294 gnu_u1 || 2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
295
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
296 gnu_u1 + uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
297 gnu_u1 - uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
298 gnu_u1 * uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
299 gnu_u1 / uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
300 gnu_u1 % uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
301 gnu_u1 & uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
302 gnu_u1 | uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
303 gnu_u1 ^ uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
304 gnu_u1 == uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
305 gnu_u1 != uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
306 gnu_u1 <= uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
307 gnu_u1 < uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
308 gnu_u1 > uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
309 gnu_u1 >= uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
310 gnu_u1 <=> uc; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'unsigned char' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
311 gnu_u1 << uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
312 gnu_u1 >> uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
313 gnu_u1 && uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
314 gnu_u1 || uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
315
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
316 // Scalar-vector binary 'operatorarithmetic.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
317
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
318 3 + sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
319 3 - sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
320 3 * sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
321 3 / sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
322 3 % sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
323 3 & sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
324 3 | sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
325 3 ^ sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
326 3 == sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
327 3 != sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
328 3 <= sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
329 3 <=> sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
330 3 < sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
331 3 > sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
332 3 >= sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
333 3 << sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
334 3 >> sve_u1; // { dg-error {invalid operands of types 'int' and 'svuint8_t' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
335 3 && sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
336 3 || sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
337
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
338 3 + gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
339 3 - gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
340 3 * gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
341 3 / gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
342 3 % gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
343 3 & gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
344 3 | gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
345 3 ^ gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
346 3 == gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
347 3 != gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
348 3 <= gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
349 3 <=> gnu_u1; // { dg-error {invalid operands of types 'int' and 'gnu_uint8_t'[^\n]* to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
350 3 < gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
351 3 > gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
352 3 >= gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
353 3 << gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
354 3 >> gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
355 3 && gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
356 3 || gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
357
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
358 // Mismatched types.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
359
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
360 sve_u1 + sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
361 sve_u1 - sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
362 sve_u1 * sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
363 sve_u1 / sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
364 sve_u1 % sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
365 sve_u1 & sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
366 sve_u1 | sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
367 sve_u1 ^ sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
368 sve_u1 == sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
369 sve_u1 != sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
370 sve_u1 <= sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
371 sve_u1 < sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
372 sve_u1 > sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
373 sve_u1 >= sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
374 sve_u1 <=> sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
375 sve_u1 << sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
376 sve_u1 >> sve_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'svint8_t' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
377
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
378 sve_u1 + gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
379 sve_u1 - gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
380 sve_u1 * gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
381 sve_u1 / gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
382 sve_u1 % gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
383 sve_u1 & gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
384 sve_u1 | gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
385 sve_u1 ^ gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
386 sve_u1 == gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
387 sve_u1 != gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
388 sve_u1 <= gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
389 sve_u1 < gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
390 sve_u1 > gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
391 sve_u1 >= gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
392 sve_u1 <=> gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
393 sve_u1 << gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
394 sve_u1 >> gnu_s1; // { dg-error {invalid operands of types 'svuint8_t' and 'gnu_int8_t'[^\n]* to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
395
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
396 gnu_u1 + sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator\+'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
397 gnu_u1 - sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator-'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
398 gnu_u1 * sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
399 gnu_u1 / sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator/'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
400 gnu_u1 % sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator%'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
401 gnu_u1 & sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator\&'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
402 gnu_u1 | sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator\|'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
403 gnu_u1 ^ sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator\^'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
404 gnu_u1 == sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator=='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
405 gnu_u1 != sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator!='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
406 gnu_u1 <= sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator<='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
407 gnu_u1 < sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
408 gnu_u1 > sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
409 gnu_u1 >= sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator>='} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
410 gnu_u1 <=> sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator<=>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
411 gnu_u1 << sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator<<'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
412 gnu_u1 >> sve_s1; // { dg-error {invalid operands of types 'gnu_uint8_t'[^\n]* and 'svint8_t' to binary 'operator>>'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
413
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
414 gnu_u1 + gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
415 gnu_u1 - gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
416 gnu_u1 * gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
417 gnu_u1 / gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
418 gnu_u1 % gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
419 gnu_u1 & gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
420 gnu_u1 | gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
421 gnu_u1 ^ gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
422 gnu_u1 == gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
423 gnu_u1 != gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
424 gnu_u1 <= gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
425 gnu_u1 < gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
426 gnu_u1 > gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
427 gnu_u1 >= gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
428 // This is a target-independent sorry. There's no ACLE reason why it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
429 // needs to be kept.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
430 gnu_u1 <=> gnu_s1; // { dg-message {three-way comparison of vectors} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
431 gnu_u1 << gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
432 gnu_u1 >> gnu_s1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
433
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
434 // Conditional expressions.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
435
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
436 uc ? sve_u1 : sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
437 uc ? gnu_u1 : sve_u1; // { dg-error {operands to '\?:' have different types 'gnu_uint8_t'[^\n]* and 'svuint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
438 uc ? sve_u1 : gnu_u1; // { dg-error {operands to '\?:' have different types 'svuint8_t' and 'gnu_uint8_t'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
439 uc ? gnu_u1 : gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
440
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
441 sve_u1 ? sve_u1 : sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
442 sve_u1 ? gnu_u1 : sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
443 sve_u1 ? sve_u1 : gnu_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
444 sve_u1 ? gnu_u1 : gnu_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
445 sve_u1 ? sve_u1 : uc; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
446 sve_u1 ? uc : sve_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
447 sve_u1 ? gnu_u1 : uc; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
448 sve_u1 ? uc : gnu_u1; // { dg-error {could not convert 'sve_u1' from 'svuint8_t' to 'bool'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
449
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
450 gnu_u1 ? sve_u1 : sve_u1; // { dg-error {incompatible vector types in conditional expression} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
451 gnu_u1 ? gnu_u1 : sve_u1; // { dg-error {incompatible vector types in conditional expression} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
452 gnu_u1 ? sve_u1 : gnu_u1; // { dg-error {incompatible vector types in conditional expression} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
453 gnu_u1 ? gnu_u1 : gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
454 gnu_u1 ? sve_u1 : uc; // { dg-error {incompatible vector types in conditional expression} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
455 gnu_u1 ? uc : sve_u1; // { dg-error {incompatible vector types in conditional expression} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
456 gnu_u1 ? gnu_u1 : uc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
457 gnu_u1 ? uc : gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
458
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
459 // Vector built-ins.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
460
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
461 __builtin_shuffle (sve_u1, sve_u1, sve_u1); // { dg-error {'__builtin_shuffle' last argument must be an integer vector} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
462 __builtin_shuffle (sve_u1, gnu_u1, gnu_u1); // { dg-error {'__builtin_shuffle' arguments must be vectors} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
463 __builtin_shuffle (gnu_u1, sve_u1, gnu_u1); // { dg-error {'__builtin_shuffle' arguments must be vectors} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
464 __builtin_shuffle (gnu_u1, gnu_u1, sve_u1); // { dg-error {'__builtin_shuffle' last argument must be an integer vector} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
465 __builtin_shuffle (gnu_u1, gnu_u1, gnu_u1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
466
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
467 __builtin_convertvector (sve_u1, svuint8_t); // { dg-error {'__builtin_convertvector' first argument must be an integer or floating vector} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
468 __builtin_convertvector (gnu_u1, svuint8_t); // { dg-error {'__builtin_convertvector' second argument must be an integer or floating vector type} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
469 __builtin_convertvector (sve_u1, gnu_uint8_t); // { dg-error {'__builtin_convertvector' first argument must be an integer or floating vector} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
470 __builtin_convertvector (gnu_u1, gnu_uint8_t);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
471
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
472 // Type queries.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
473
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
474 static_assert(__is_literal_type(svuint8_t));
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
475 static_assert(__is_literal_type(gnu_uint8_t));
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
476
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
477 // Pointers.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
478
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
479 svuint8_t *sve_ptr1 = &sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
480 svuint8_t *sve_ptr2 = &gnu_u1; // { dg-error {invalid conversion} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
481 svuint8_t *sve_ptr3 = &sve_s1; // { dg-error {invalid conversion from 'svint8_t\*' to 'svuint8_t\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
482 svuint8_t *sve_ptr4 = &gnu_s1; // { dg-error {invalid conversion from 'gnu_int8_t\*'[^\n]* to 'svuint8_t\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
483
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
484 gnu_uint8_t *gnu_ptr1 = &sve_u1; // { dg-error {invalid conversion} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
485 gnu_uint8_t *gnu_ptr2 = &gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
486 gnu_uint8_t *gnu_ptr3 = &sve_s1; // { dg-error {invalid conversion from 'svint8_t\*' to 'gnu_uint8_t\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
487 gnu_uint8_t *gnu_ptr4 = &gnu_s1; // { dg-error {invalid conversion from 'gnu_int8_t\*'[^\n]* to 'gnu_uint8_t\*'} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
488
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
489 // References.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
490
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
491 svuint8_t &sve_ref1 = sve_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
492 svuint8_t &sve_ref2 = gnu_u1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
493 svuint8_t &sve_ref3 = sve_s1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
494 svuint8_t &sve_ref4 = gnu_s1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
495
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
496 gnu_uint8_t &gnu_ref1 = sve_u1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
497 gnu_uint8_t &gnu_ref2 = gnu_u1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
498 gnu_uint8_t &gnu_ref3 = sve_s1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
499 gnu_uint8_t &gnu_ref4 = gnu_s1; // { dg-error {cannot bind non-const lvalue reference} }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
500 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
501
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
502 constexpr svuint8_t const1 (svuint8_t x) { return x; }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
503 constexpr gnu_uint8_t const2 (gnu_uint8_t x) { return x; }