xref: /llvm-project/clang/test/CodeGen/SystemZ/builtins-systemz-zvector5-error.c (revision 8424bf207efd89eacf2fe893b67be98d535e1db6)
1 // REQUIRES: systemz-registered-target
2 // RUN: %clang_cc1 -target-cpu arch15 -triple s390x-linux-gnu \
3 // RUN: -fzvector -flax-vector-conversions=none \
4 // RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s
5 
6 #include <vecintrin.h>
7 
8 volatile vector signed char vsc;
9 volatile vector signed short vss;
10 volatile vector signed int vsi;
11 volatile vector signed long long vsl;
12 volatile vector signed __int128 vslll;
13 volatile vector unsigned char vuc;
14 volatile vector unsigned short vus;
15 volatile vector unsigned int vui;
16 volatile vector unsigned long long vul;
17 volatile vector unsigned __int128 vulll;
18 volatile vector bool char vbc;
19 volatile vector bool short vbs;
20 volatile vector bool int vbi;
21 volatile vector bool long long vbl;
22 volatile vector bool __int128 vblll;
23 volatile vector double vd;
24 
25 volatile signed char sc;
26 volatile signed short ss;
27 volatile signed int si;
28 volatile signed long long sl;
29 volatile unsigned char uc;
30 volatile unsigned short us;
31 volatile unsigned int ui;
32 volatile unsigned long long ul;
33 volatile double d;
34 
35 const void * volatile cptr;
36 const signed char * volatile cptrsc;
37 const signed short * volatile cptrss;
38 const signed int * volatile cptrsi;
39 const signed long long * volatile cptrsl;
40 const unsigned char * volatile cptruc;
41 const unsigned short * volatile cptrus;
42 const unsigned int * volatile cptrui;
43 const unsigned long long * volatile cptrul;
44 const float * volatile cptrf;
45 const double * volatile cptrd;
46 
47 void * volatile ptr;
48 signed char * volatile ptrsc;
49 signed short * volatile ptrss;
50 signed int * volatile ptrsi;
51 signed long long * volatile ptrsl;
52 unsigned char * volatile ptruc;
53 unsigned short * volatile ptrus;
54 unsigned int * volatile ptrui;
55 unsigned long long * volatile ptrul;
56 float * volatile ptrf;
57 double * volatile ptrd;
58 
59 volatile unsigned int len;
60 volatile int idx;
61 int cc;
62 
63 void test_integer(void) {
64   vsc = vec_evaluate(vsc, vsc, vsc, idx); // expected-error {{no matching function}} \
65                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
66                                           // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
67                                           // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
68   vuc = vec_evaluate(vuc, vuc, vuc, idx); // expected-error {{no matching function}} \
69                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
70                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
71                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
72   vbc = vec_evaluate(vbc, vbc, vbc, idx); // expected-error {{no matching function}} \
73                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
74                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
75                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
76   vss = vec_evaluate(vss, vss, vss, idx); // expected-error {{no matching function}} \
77                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
78                                           // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
79                                           // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
80   vus = vec_evaluate(vus, vus, vus, idx); // expected-error {{no matching function}} \
81                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
82                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
83                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
84   vbs = vec_evaluate(vbs, vbs, vbs, idx); // expected-error {{no matching function}} \
85                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
86                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
87                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
88   vsi = vec_evaluate(vsi, vsi, vsi, idx); // expected-error {{no matching function}} \
89                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
90                                           // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
91                                           // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
92   vui = vec_evaluate(vui, vui, vui, idx); // expected-error {{no matching function}} \
93                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
94                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
95                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
96   vbi = vec_evaluate(vbi, vbi, vbi, idx); // expected-error {{no matching function}} \
97                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
98                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
99                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
100   vsl = vec_evaluate(vsl, vsl, vsl, idx); // expected-error {{no matching function}} \
101                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
102                                           // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
103                                           // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
104   vul = vec_evaluate(vul, vul, vul, idx); // expected-error {{no matching function}} \
105                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
106                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
107                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
108   vbl = vec_evaluate(vbl, vbl, vbl, idx); // expected-error {{no matching function}} \
109                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
110                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
111                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
112   vslll = vec_evaluate(vslll, vslll, vslll, idx); // expected-error {{no matching function}} \
113                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
114                                           // expected-note@vecintrin.h:* 14 {{candidate function not viable}}
115                                           // expected-note@vecintrin.h:* 1 {{must be a constant integer}}
116   vulll = vec_evaluate(vulll, vulll, vulll, idx); // expected-error {{no matching function}} \
117                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
118                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
119                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
120   vblll = vec_evaluate(vblll, vblll, vblll, idx); // expected-error {{no matching function}} \
121                                           // expected-error {{argument to '__builtin_s390_veval' must be a constant integer}} \
122                                           // expected-note@vecintrin.h:* 13 {{candidate function not viable}}
123                                           // expected-note@vecintrin.h:* 2 {{must be a constant integer}}
124 }
125