1// REQUIRES: systemz-registered-target 2// RUN: %clang_cc1 -target-cpu z13 -triple s390x-unknown-unknown \ 3// RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s 4 5typedef __attribute__((vector_size(16))) signed char vec_schar; 6typedef __attribute__((vector_size(16))) signed short vec_sshort; 7typedef __attribute__((vector_size(16))) signed int vec_sint; 8typedef __attribute__((vector_size(16))) signed long long vec_slong; 9typedef __attribute__((vector_size(16))) unsigned char vec_uchar; 10typedef __attribute__((vector_size(16))) unsigned short vec_ushort; 11typedef __attribute__((vector_size(16))) unsigned int vec_uint; 12typedef __attribute__((vector_size(16))) unsigned long long vec_ulong; 13typedef __attribute__((vector_size(16))) double vec_double; 14 15volatile vec_schar vsc; 16volatile vec_sshort vss; 17volatile vec_sint vsi; 18volatile vec_slong vsl; 19volatile vec_uchar vuc; 20volatile vec_ushort vus; 21volatile vec_uint vui; 22volatile vec_ulong vul; 23volatile vec_double vd; 24 25volatile unsigned int len; 26const void * volatile cptr; 27int cc; 28 29void test_core(void) { 30 __builtin_s390_lcbb(cptr, -1); // expected-error {{argument should be a value from 0 to 15}} 31 __builtin_s390_lcbb(cptr, 16); // expected-error {{argument should be a value from 0 to 15}} 32 __builtin_s390_lcbb(cptr, len); // expected-error {{must be a constant integer}} 33 34 __builtin_s390_vlbb(cptr, -1); // expected-error {{argument should be a value from 0 to 15}} 35 __builtin_s390_vlbb(cptr, 16); // expected-error {{argument should be a value from 0 to 15}} 36 __builtin_s390_vlbb(cptr, len); // expected-error {{must be a constant integer}} 37 38 __builtin_s390_vpdi(vul, vul, -1); // expected-error {{argument should be a value from 0 to 15}} 39 __builtin_s390_vpdi(vul, vul, 16); // expected-error {{argument should be a value from 0 to 15}} 40 __builtin_s390_vpdi(vul, vul, len); // expected-error {{must be a constant integer}} 41} 42 43void test_integer(void) { 44 __builtin_s390_verimb(vuc, vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 255}} 45 __builtin_s390_verimb(vuc, vuc, vuc, 256); // expected-error {{argument should be a value from 0 to 255}} 46 __builtin_s390_verimb(vuc, vuc, vuc, len); // expected-error {{must be a constant integer}} 47 48 __builtin_s390_verimh(vus, vus, vus, -1); // expected-error {{argument should be a value from 0 to 255}} 49 __builtin_s390_verimh(vus, vus, vus, 256); // expected-error {{argument should be a value from 0 to 255}} 50 __builtin_s390_verimh(vus, vus, vus, len); // expected-error {{must be a constant integer}} 51 52 __builtin_s390_verimf(vui, vui, vui, -1); // expected-error {{argument should be a value from 0 to 255}} 53 __builtin_s390_verimf(vui, vui, vui, 256); // expected-error {{argument should be a value from 0 to 255}} 54 __builtin_s390_verimf(vui, vui, vui, len); // expected-error {{must be a constant integer}} 55 56 __builtin_s390_verimg(vul, vul, vul, -1); // expected-error {{argument should be a value from 0 to 255}} 57 __builtin_s390_verimg(vul, vul, vul, 256); // expected-error {{argument should be a value from 0 to 255}} 58 __builtin_s390_verimg(vul, vul, vul, len); // expected-error {{must be a constant integer}} 59 60 __builtin_s390_vsldb(vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 15}} 61 __builtin_s390_vsldb(vuc, vuc, 16); // expected-error {{argument should be a value from 0 to 15}} 62 __builtin_s390_vsldb(vuc, vuc, len); // expected-error {{must be a constant integer}} 63} 64 65void test_string(void) { 66 __builtin_s390_vfaeb(vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 15}} 67 __builtin_s390_vfaeb(vuc, vuc, 16); // expected-error {{argument should be a value from 0 to 15}} 68 __builtin_s390_vfaeb(vuc, vuc, len); // expected-error {{must be a constant integer}} 69 70 __builtin_s390_vfaeh(vus, vus, -1); // expected-error {{argument should be a value from 0 to 15}} 71 __builtin_s390_vfaeh(vus, vus, 16); // expected-error {{argument should be a value from 0 to 15}} 72 __builtin_s390_vfaeh(vus, vus, len); // expected-error {{must be a constant integer}} 73 74 __builtin_s390_vfaef(vui, vui, -1); // expected-error {{argument should be a value from 0 to 15}} 75 __builtin_s390_vfaef(vui, vui, 16); // expected-error {{argument should be a value from 0 to 15}} 76 __builtin_s390_vfaef(vui, vui, len); // expected-error {{must be a constant integer}} 77 78 __builtin_s390_vfaezb(vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 15}} 79 __builtin_s390_vfaezb(vuc, vuc, 16); // expected-error {{argument should be a value from 0 to 15}} 80 __builtin_s390_vfaezb(vuc, vuc, len); // expected-error {{must be a constant integer}} 81 82 __builtin_s390_vfaezh(vus, vus, -1); // expected-error {{argument should be a value from 0 to 15}} 83 __builtin_s390_vfaezh(vus, vus, 16); // expected-error {{argument should be a value from 0 to 15}} 84 __builtin_s390_vfaezh(vus, vus, len); // expected-error {{must be a constant integer}} 85 86 __builtin_s390_vfaezf(vui, vui, -1); // expected-error {{argument should be a value from 0 to 15}} 87 __builtin_s390_vfaezf(vui, vui, 16); // expected-error {{argument should be a value from 0 to 15}} 88 __builtin_s390_vfaezf(vui, vui, len); // expected-error {{must be a constant integer}} 89 90 __builtin_s390_vstrcb(vuc, vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 15}} 91 __builtin_s390_vstrcb(vuc, vuc, vuc, 16); // expected-error {{argument should be a value from 0 to 15}} 92 __builtin_s390_vstrcb(vuc, vuc, vuc, len); // expected-error {{must be a constant integer}} 93 94 __builtin_s390_vstrch(vus, vus, vus, -1); // expected-error {{argument should be a value from 0 to 15}} 95 __builtin_s390_vstrch(vus, vus, vus, 16); // expected-error {{argument should be a value from 0 to 15}} 96 __builtin_s390_vstrch(vus, vus, vus, len); // expected-error {{must be a constant integer}} 97 98 __builtin_s390_vstrcf(vui, vui, vui, -1); // expected-error {{argument should be a value from 0 to 15}} 99 __builtin_s390_vstrcf(vui, vui, vui, 16); // expected-error {{argument should be a value from 0 to 15}} 100 __builtin_s390_vstrcf(vui, vui, vui, len); // expected-error {{must be a constant integer}} 101 102 __builtin_s390_vstrczb(vuc, vuc, vuc, -1); // expected-error {{argument should be a value from 0 to 15}} 103 __builtin_s390_vstrczb(vuc, vuc, vuc, 16); // expected-error {{argument should be a value from 0 to 15}} 104 __builtin_s390_vstrczb(vuc, vuc, vuc, len); // expected-error {{must be a constant integer}} 105 106 __builtin_s390_vstrczh(vus, vus, vus, -1); // expected-error {{argument should be a value from 0 to 15}} 107 __builtin_s390_vstrczh(vus, vus, vus, 16); // expected-error {{argument should be a value from 0 to 15}} 108 __builtin_s390_vstrczh(vus, vus, vus, len); // expected-error {{must be a constant integer}} 109 110 __builtin_s390_vstrczf(vui, vui, vui, -1); // expected-error {{argument should be a value from 0 to 15}} 111 __builtin_s390_vstrczf(vui, vui, vui, 16); // expected-error {{argument should be a value from 0 to 15}} 112 __builtin_s390_vstrczf(vui, vui, vui, len); // expected-error {{must be a constant integer}} 113 114 __builtin_s390_vfaebs(vuc, vuc, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 115 __builtin_s390_vfaebs(vuc, vuc, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 116 __builtin_s390_vfaebs(vuc, vuc, len, &cc); // expected-error {{must be a constant integer}} 117 118 __builtin_s390_vfaehs(vus, vus, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 119 __builtin_s390_vfaehs(vus, vus, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 120 __builtin_s390_vfaehs(vus, vus, len, &cc); // expected-error {{must be a constant integer}} 121 122 __builtin_s390_vfaefs(vui, vui, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 123 __builtin_s390_vfaefs(vui, vui, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 124 __builtin_s390_vfaefs(vui, vui, len, &cc); // expected-error {{must be a constant integer}} 125 126 __builtin_s390_vfaezbs(vuc, vuc, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 127 __builtin_s390_vfaezbs(vuc, vuc, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 128 __builtin_s390_vfaezbs(vuc, vuc, len, &cc); // expected-error {{must be a constant integer}} 129 130 __builtin_s390_vfaezhs(vus, vus, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 131 __builtin_s390_vfaezhs(vus, vus, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 132 __builtin_s390_vfaezhs(vus, vus, len, &cc); // expected-error {{must be a constant integer}} 133 134 __builtin_s390_vfaezfs(vui, vui, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 135 __builtin_s390_vfaezfs(vui, vui, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 136 __builtin_s390_vfaezfs(vui, vui, len, &cc); // expected-error {{must be a constant integer}} 137 138 __builtin_s390_vstrcbs(vuc, vuc, vuc, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 139 __builtin_s390_vstrcbs(vuc, vuc, vuc, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 140 __builtin_s390_vstrcbs(vuc, vuc, vuc, len, &cc); // expected-error {{must be a constant integer}} 141 142 __builtin_s390_vstrchs(vus, vus, vus, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 143 __builtin_s390_vstrchs(vus, vus, vus, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 144 __builtin_s390_vstrchs(vus, vus, vus, len, &cc); // expected-error {{must be a constant integer}} 145 146 __builtin_s390_vstrcfs(vui, vui, vui, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 147 __builtin_s390_vstrcfs(vui, vui, vui, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 148 __builtin_s390_vstrcfs(vui, vui, vui, len, &cc); // expected-error {{must be a constant integer}} 149 150 __builtin_s390_vstrczbs(vuc, vuc, vuc, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 151 __builtin_s390_vstrczbs(vuc, vuc, vuc, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 152 __builtin_s390_vstrczbs(vuc, vuc, vuc, len, &cc); // expected-error {{must be a constant integer}} 153 154 __builtin_s390_vstrczhs(vus, vus, vus, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 155 __builtin_s390_vstrczhs(vus, vus, vus, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 156 __builtin_s390_vstrczhs(vus, vus, vus, len, &cc); // expected-error {{must be a constant integer}} 157 158 __builtin_s390_vstrczfs(vui, vui, vui, -1, &cc); // expected-error {{argument should be a value from 0 to 15}} 159 __builtin_s390_vstrczfs(vui, vui, vui, 16, &cc); // expected-error {{argument should be a value from 0 to 15}} 160 __builtin_s390_vstrczfs(vui, vui, vui, len, &cc); // expected-error {{must be a constant integer}} 161} 162 163void test_float(void) { 164 __builtin_s390_vftcidb(vd, -1, &cc); // expected-error {{argument should be a value from 0 to 4095}} 165 __builtin_s390_vftcidb(vd, 4096, &cc); // expected-error {{argument should be a value from 0 to 4095}} 166 __builtin_s390_vftcidb(vd, len, &cc); // expected-error {{must be a constant integer}} 167 168 __builtin_s390_vfidb(vd, -1, 0); // expected-error {{argument should be a value from 0 to 15}} 169 __builtin_s390_vfidb(vd, 16, 0); // expected-error {{argument should be a value from 0 to 15}} 170 __builtin_s390_vfidb(vd, len, 0); // expected-error {{must be a constant integer}} 171 __builtin_s390_vfidb(vd, 0, -1); // expected-error {{argument should be a value from 0 to 15}} 172 __builtin_s390_vfidb(vd, 0, 16); // expected-error {{argument should be a value from 0 to 15}} 173 __builtin_s390_vfidb(vd, 0, len); // expected-error {{must be a constant integer}} 174} 175