442 lines · cpp
1// REQUIRES: aarch64-registered-target2 3// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only -verify -verify-ignore-unexpected=error %s4// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only -verify -verify-ignore-unexpected=error %s5 6#ifdef SVE_OVERLOADED_FORMS7// A simple used,unused... macro, long enough to represent any SVE builtin.8#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A39#else10#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A411#endif12 13#include <arm_sve.h>14 15void test_range_0_255()16{17 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 255]}}18 SVE_ACLE_FUNC(svext,_s8,,)(svundef_s8(), svundef_s8(), -1);19 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 255]}}20 SVE_ACLE_FUNC(svext,_u8,,)(svundef_u8(), svundef_u8(), -1);21}22 23void test_range_0_127()24{25 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}26 SVE_ACLE_FUNC(svext,_s16,,)(svundef_s16(), svundef_s16(), -1);27 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}28 SVE_ACLE_FUNC(svext,_u16,,)(svundef_u16(), svundef_u16(), 128);29 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 127]}}30 SVE_ACLE_FUNC(svext,_f16,,)(svundef_f16(), svundef_f16(), -1);31}32 33void test_range_0_63()34{35 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}36 SVE_ACLE_FUNC(svext,_s32,,)(svundef_s32(), svundef_s32(), -1);37 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}38 SVE_ACLE_FUNC(svext,_u32,,)(svundef_u32(), svundef_u32(), -1);39 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}40 SVE_ACLE_FUNC(svext,_f32,,)(svundef_f32(), svundef_f32(), 64);41}42 43void test_range_0_31()44{45 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}46 SVE_ACLE_FUNC(svext,_s64,,)(svundef_s64(), svundef_s64(), -1);47 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}48 SVE_ACLE_FUNC(svext,_u64,,)(svundef_u64(), svundef_u64(), 32);49 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}50 SVE_ACLE_FUNC(svext,_f64,,)(svundef_f64(), svundef_f64(), -1);51}52 53void test_range_0_1()54{55 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}56 SVE_ACLE_FUNC(svget2,_s8,,)(svundef2_s8(), -1);57 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}58 SVE_ACLE_FUNC(svget2,_s16,,)(svundef2_s16(), 2);59 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}60 SVE_ACLE_FUNC(svget2,_s32,,)(svundef2_s32(), -1);61 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}62 SVE_ACLE_FUNC(svget2,_s64,,)(svundef2_s64(), 2);63 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}64 SVE_ACLE_FUNC(svget2,_u8,,)(svundef2_u8(), -1);65 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}66 SVE_ACLE_FUNC(svget2,_u16,,)(svundef2_u16(), 2);67 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}68 SVE_ACLE_FUNC(svget2,_u32,,)(svundef2_u32(), -1);69 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}70 SVE_ACLE_FUNC(svget2,_u64,,)(svundef2_u64(), 2);71 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}72 SVE_ACLE_FUNC(svget2,_f16,,)(svundef2_f16(), -1);73 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}74 SVE_ACLE_FUNC(svget2,_f32,,)(svundef2_f32(), 2);75 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}76 SVE_ACLE_FUNC(svget2,_f64,,)(svundef2_f64(), -1);77 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}78 SVE_ACLE_FUNC(svset2,_s8,,)(svundef2_s8(), 2, svundef_s8());79 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}80 SVE_ACLE_FUNC(svset2,_s16,,)(svundef2_s16(), -1, svundef_s16());81 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}82 SVE_ACLE_FUNC(svset2,_s32,,)(svundef2_s32(), 2, svundef_s32());83 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}84 SVE_ACLE_FUNC(svset2,_s64,,)(svundef2_s64(), -1, svundef_s64());85 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}86 SVE_ACLE_FUNC(svset2,_u8,,)(svundef2_u8(), 2, svundef_u8());87 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}88 SVE_ACLE_FUNC(svset2,_u16,,)(svundef2_u16(), -1, svundef_u16());89 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}90 SVE_ACLE_FUNC(svset2,_u32,,)(svundef2_u32(), 2, svundef_u32());91 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}92 SVE_ACLE_FUNC(svset2,_u64,,)(svundef2_u64(), -1, svundef_u64());93 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}94 SVE_ACLE_FUNC(svset2,_f16,,)(svundef2_f16(), 2, svundef_f16());95 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}96 SVE_ACLE_FUNC(svset2,_f32,,)(svundef2_f32(), -1, svundef_f32());97 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}98 SVE_ACLE_FUNC(svset2,_f64,,)(svundef2_f64(), 2, svundef_f64());99}100 101void test_range_0_2()102{103 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}104 SVE_ACLE_FUNC(svget3,_s8,,)(svundef3_s8(), 3);105 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}106 SVE_ACLE_FUNC(svget3,_s16,,)(svundef3_s16(), -1);107 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}108 SVE_ACLE_FUNC(svget3,_s32,,)(svundef3_s32(), 3);109 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}110 SVE_ACLE_FUNC(svget3,_s64,,)(svundef3_s64(), -1);111 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}112 SVE_ACLE_FUNC(svget3,_u8,,)(svundef3_u8(), 3);113 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}114 SVE_ACLE_FUNC(svget3,_u16,,)(svundef3_u16(), -1);115 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}116 SVE_ACLE_FUNC(svget3,_u32,,)(svundef3_u32(), 3);117 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}118 SVE_ACLE_FUNC(svget3,_u64,,)(svundef3_u64(), -1);119 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}120 SVE_ACLE_FUNC(svget3,_f16,,)(svundef3_f16(), 3);121 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}122 SVE_ACLE_FUNC(svget3,_f32,,)(svundef3_f32(), -1);123 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}124 SVE_ACLE_FUNC(svget3,_f64,,)(svundef3_f64(), 3);125 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}126 SVE_ACLE_FUNC(svset3,_s8,,)(svundef3_s8(), -1, svundef_s8());127 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}128 SVE_ACLE_FUNC(svset3,_s16,,)(svundef3_s16(), -1, svundef_s16());129 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}130 SVE_ACLE_FUNC(svset3,_s32,,)(svundef3_s32(), 3, svundef_s32());131 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}132 SVE_ACLE_FUNC(svset3,_s64,,)(svundef3_s64(), -1, svundef_s64());133 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}134 SVE_ACLE_FUNC(svset3,_u8,,)(svundef3_u8(), 3, svundef_u8());135 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}136 SVE_ACLE_FUNC(svset3,_u16,,)(svundef3_u16(), -1, svundef_u16());137 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}138 SVE_ACLE_FUNC(svset3,_u32,,)(svundef3_u32(), 3, svundef_u32());139 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}140 SVE_ACLE_FUNC(svset3,_u64,,)(svundef3_u64(), -1, svundef_u64());141 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}142 SVE_ACLE_FUNC(svset3,_f16,,)(svundef3_f16(), 3, svundef_f16());143 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}144 SVE_ACLE_FUNC(svset3,_f32,,)(svundef3_f32(), -1, svundef_f32());145 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 2]}}146 SVE_ACLE_FUNC(svset3,_f64,,)(svundef3_f64(), 3, svundef_f64());147}148 149void test_range_0_3()150{151 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}152 SVE_ACLE_FUNC(svget4,_s8,,)(svundef4_s8(), -1);153 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}154 SVE_ACLE_FUNC(svget4,_s16,,)(svundef4_s16(), 4);155 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}156 SVE_ACLE_FUNC(svget4,_s32,,)(svundef4_s32(), -1);157 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}158 SVE_ACLE_FUNC(svget4,_s64,,)(svundef4_s64(), 4);159 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}160 SVE_ACLE_FUNC(svget4,_u8,,)(svundef4_u8(), -1);161 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}162 SVE_ACLE_FUNC(svget4,_u16,,)(svundef4_u16(), 4);163 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}164 SVE_ACLE_FUNC(svget4,_u32,,)(svundef4_u32(), -1);165 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}166 SVE_ACLE_FUNC(svget4,_u64,,)(svundef4_u64(), 4);167 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}168 SVE_ACLE_FUNC(svget4,_f16,,)(svundef4_f16(), -1);169 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}170 SVE_ACLE_FUNC(svget4,_f32,,)(svundef4_f32(), 4);171 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}172 SVE_ACLE_FUNC(svget4,_f64,,)(svundef4_f64(), -1);173 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}174 SVE_ACLE_FUNC(svset4,_s8,,)(svundef4_s8(), -1, svundef_s8());175 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}176 SVE_ACLE_FUNC(svset4,_s32,,)(svundef4_s32(), 4, svundef_s32());177 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}178 SVE_ACLE_FUNC(svset4,_s64,,)(svundef4_s64(), -1, svundef_s64());179 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}180 SVE_ACLE_FUNC(svset4,_u8,,)(svundef4_u8(), 4, svundef_u8());181 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}182 SVE_ACLE_FUNC(svset4,_u16,,)(svundef4_u16(), -1, svundef_u16());183 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}184 SVE_ACLE_FUNC(svset4,_u32,,)(svundef4_u32(), 4, svundef_u32());185 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}186 SVE_ACLE_FUNC(svset4,_u64,,)(svundef4_u64(), -1, svundef_u64());187 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}188 SVE_ACLE_FUNC(svset4,_f16,,)(svundef4_f16(), 4, svundef_f16());189 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}190 SVE_ACLE_FUNC(svset4,_f32,,)(svundef4_f32(), -1, svundef_f32());191 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}192 SVE_ACLE_FUNC(svset4,_f64,,)(svundef4_f64(), 4, svundef_f64());193}194 195void test_range_0_7()196{197 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}198 SVE_ACLE_FUNC(svtmad,_f16,,)(svundef_f16(), svundef_f16(), -1);199 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}200 SVE_ACLE_FUNC(svtmad,_f32,,)(svundef_f32(), svundef_f32(), 8);201 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}202 SVE_ACLE_FUNC(svtmad,_f64,,)(svundef_f64(), svundef_f64(), -1);203}204 205void test_range_0_13(svbool_t pg, const void *const_void_ptr)206{207 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}208 svprfb(pg, const_void_ptr, svprfop(14));209 // expected-error-re@+1 {{must be a constant integer}}210 svprfb_vnum(pg, const_void_ptr, 0, svprfop(-1));211 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}212 svprfd(pg, const_void_ptr, svprfop(14));213 // expected-error-re@+1 {{must be a constant integer}}214 svprfd_vnum(pg, const_void_ptr, 0, svprfop(-1));215 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}216 svprfh(pg, const_void_ptr, svprfop(14));217 // expected-error-re@+1 {{must be a constant integer}}218 svprfh_vnum(pg, const_void_ptr, 0, svprfop(-1));219 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 13]}}220 svprfw(pg, const_void_ptr, svprfop(14));221 // expected-error-re@+1 {{must be a constant integer}}222 svprfw_vnum(pg, const_void_ptr, 0, svprfop(-1));223}224 225void test_range_1_16()226{227 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}228 SVE_ACLE_FUNC(svqdecd,_s64,,)(svundef_s64(), 0);229 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}230 SVE_ACLE_FUNC(svqdecd_pat,_s64,,)(svundef_s64(), SV_VL8, 17);231 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}232 SVE_ACLE_FUNC(svqdecd,_u64,,)(svundef_u64(), 0);233 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}234 SVE_ACLE_FUNC(svqdecd_pat,_u64,,)(svundef_u64(), SV_VL64, 17);235 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}236 SVE_ACLE_FUNC(svqdech,_s16,,)(svundef_s16(), 0);237 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}238 SVE_ACLE_FUNC(svqdech,_u16,,)(svundef_u16(), 17);239 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}240 SVE_ACLE_FUNC(svqdech_pat,_s16,,)(svundef_s16(), SV_VL8, 0);241 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}242 SVE_ACLE_FUNC(svqdech_pat,_u16,,)(svundef_u16(), SV_VL64, 17);243 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}244 SVE_ACLE_FUNC(svqdecw,_s32,,)(svundef_s32(), 0);245 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}246 SVE_ACLE_FUNC(svqdecw,_u32,,)(svundef_u32(), 17);247 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}248 SVE_ACLE_FUNC(svqdecw_pat,_s32,,)(svundef_s32(), SV_VL8, 0);249 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}250 SVE_ACLE_FUNC(svqdecw_pat,_u32,,)(svundef_u32(), SV_VL64, 17);251 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}252 SVE_ACLE_FUNC(svqincd,_s64,,)(svundef_s64(), 0);253 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}254 SVE_ACLE_FUNC(svqincd,_u64,,)(svundef_u64(), 17);255 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}256 SVE_ACLE_FUNC(svqincd_pat,_s64,,)(svundef_s64(), SV_VL8, 0);257 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}258 SVE_ACLE_FUNC(svqincd_pat,_u64,,)(svundef_u64(), SV_VL64, 17);259 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}260 SVE_ACLE_FUNC(svqinch,_s16,,)(svundef_s16(), 0);261 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}262 SVE_ACLE_FUNC(svqinch,_u16,,)(svundef_u16(), 17);263 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}264 SVE_ACLE_FUNC(svqinch_pat,_s16,,)(svundef_s16(), SV_VL8, 0);265 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}266 SVE_ACLE_FUNC(svqinch_pat,_u16,,)(svundef_u16(), SV_VL64, 17);267 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}268 SVE_ACLE_FUNC(svqincw,_s32,,)(svundef_s32(), 0);269 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}270 SVE_ACLE_FUNC(svqincw,_u32,,)(svundef_u32(), 17);271 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}272 SVE_ACLE_FUNC(svqincw_pat,_s32,,)(svundef_s32(), SV_VL8, 0);273 // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}274 SVE_ACLE_FUNC(svqincw_pat,_u32,,)(svundef_u32(), SV_VL64, 17);275}276 277void test_constant(uint64_t u64)278{279 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}280 SVE_ACLE_FUNC(svget2,_s8,,)(svundef2_s8(), u64);281 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}282 SVE_ACLE_FUNC(svget2,_s16,,)(svundef2_s16(), u64);283 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}284 SVE_ACLE_FUNC(svget2,_s32,,)(svundef2_s32(), u64);285 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}286 SVE_ACLE_FUNC(svget2,_s64,,)(svundef2_s64(), u64);287 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}288 SVE_ACLE_FUNC(svget2,_u8,,)(svundef2_u8(), u64);289 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}290 SVE_ACLE_FUNC(svget2,_u16,,)(svundef2_u16(), u64);291 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}292 SVE_ACLE_FUNC(svget2,_u32,,)(svundef2_u32(), u64);293 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}294 SVE_ACLE_FUNC(svget2,_u64,,)(svundef2_u64(), u64);295 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}296 SVE_ACLE_FUNC(svget2,_f16,,)(svundef2_f16(), u64);297 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}298 SVE_ACLE_FUNC(svget2,_f32,,)(svundef2_f32(), u64);299 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}300 SVE_ACLE_FUNC(svget2,_f64,,)(svundef2_f64(), u64);301 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}302 SVE_ACLE_FUNC(svget3,_s8,,)(svundef3_s8(), u64);303 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}304 SVE_ACLE_FUNC(svget3,_s16,,)(svundef3_s16(), u64);305 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}306 SVE_ACLE_FUNC(svget3,_s32,,)(svundef3_s32(), u64);307 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}308 SVE_ACLE_FUNC(svget3,_s64,,)(svundef3_s64(), u64);309 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}310 SVE_ACLE_FUNC(svget3,_u8,,)(svundef3_u8(), u64);311 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}312 SVE_ACLE_FUNC(svget3,_u16,,)(svundef3_u16(), u64);313 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}314 SVE_ACLE_FUNC(svget3,_u32,,)(svundef3_u32(), u64);315 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}316 SVE_ACLE_FUNC(svget3,_u64,,)(svundef3_u64(), u64);317 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}318 SVE_ACLE_FUNC(svget3,_f16,,)(svundef3_f16(), u64);319 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}320 SVE_ACLE_FUNC(svget3,_f32,,)(svundef3_f32(), u64);321 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}322 SVE_ACLE_FUNC(svget3,_f64,,)(svundef3_f64(), u64);323 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}324 SVE_ACLE_FUNC(svget4,_s8,,)(svundef4_s8(), u64);325 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}326 SVE_ACLE_FUNC(svget4,_s16,,)(svundef4_s16(), u64);327 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}328 SVE_ACLE_FUNC(svget4,_s32,,)(svundef4_s32(), u64);329 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}330 SVE_ACLE_FUNC(svget4,_s64,,)(svundef4_s64(), u64);331 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}332 SVE_ACLE_FUNC(svget4,_u8,,)(svundef4_u8(), u64);333 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}334 SVE_ACLE_FUNC(svget4,_u16,,)(svundef4_u16(), u64);335 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}336 SVE_ACLE_FUNC(svget4,_u32,,)(svundef4_u32(), u64);337 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}338 SVE_ACLE_FUNC(svget4,_u64,,)(svundef4_u64(), u64);339 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}340 SVE_ACLE_FUNC(svget4,_f16,,)(svundef4_f16(), u64);341 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}342 SVE_ACLE_FUNC(svget4,_f32,,)(svundef4_f32(), u64);343 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}344 SVE_ACLE_FUNC(svget4,_f64,,)(svundef4_f64(), u64);345 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}346 SVE_ACLE_FUNC(svset2,_s8,,)(svundef2_s8(), u64, svundef_s8());347 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}348 SVE_ACLE_FUNC(svset2,_s16,,)(svundef2_s16(), u64, svundef_s16());349 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}350 SVE_ACLE_FUNC(svset2,_s32,,)(svundef2_s32(), u64, svundef_s32());351 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}352 SVE_ACLE_FUNC(svset2,_s64,,)(svundef2_s64(), u64, svundef_s64());353 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}354 SVE_ACLE_FUNC(svset2,_u8,,)(svundef2_u8(), u64, svundef_u8());355 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}356 SVE_ACLE_FUNC(svset2,_u16,,)(svundef2_u16(), u64, svundef_u16());357 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}358 SVE_ACLE_FUNC(svset2,_u32,,)(svundef2_u32(), u64, svundef_u32());359 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}360 SVE_ACLE_FUNC(svset2,_u64,,)(svundef2_u64(), u64, svundef_u64());361 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}362 SVE_ACLE_FUNC(svset2,_f16,,)(svundef2_f16(), u64, svundef_f16());363 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}364 SVE_ACLE_FUNC(svset2,_f32,,)(svundef2_f32(), u64, svundef_f32());365 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}366 SVE_ACLE_FUNC(svset2,_f64,,)(svundef2_f64(), u64, svundef_f64());367 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}368 SVE_ACLE_FUNC(svset3,_s8,,)(svundef3_s8(), u64, svundef_s8());369 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}370 SVE_ACLE_FUNC(svset3,_s16,,)(svundef3_s16(), u64, svundef_s16());371 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}372 SVE_ACLE_FUNC(svset3,_s32,,)(svundef3_s32(), u64, svundef_s32());373 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}374 SVE_ACLE_FUNC(svset3,_s64,,)(svundef3_s64(), u64, svundef_s64());375 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}376 SVE_ACLE_FUNC(svset3,_u8,,)(svundef3_u8(), u64, svundef_u8());377 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}378 SVE_ACLE_FUNC(svset3,_u16,,)(svundef3_u16(), u64, svundef_u16());379 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}380 SVE_ACLE_FUNC(svset3,_u32,,)(svundef3_u32(), u64, svundef_u32());381 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}382 SVE_ACLE_FUNC(svset3,_u64,,)(svundef3_u64(), u64, svundef_u64());383 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}384 SVE_ACLE_FUNC(svset3,_f16,,)(svundef3_f16(), u64, svundef_f16());385 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}386 SVE_ACLE_FUNC(svset3,_f32,,)(svundef3_f32(), u64, svundef_f32());387 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}388 SVE_ACLE_FUNC(svset3,_f64,,)(svundef3_f64(), u64, svundef_f64());389 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}390 SVE_ACLE_FUNC(svset4,_s8,,)(svundef4_s8(), u64, svundef_s8());391 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}392 SVE_ACLE_FUNC(svset4,_s16,,)(svundef4_s16(), u64, svundef_s16());393 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}394 SVE_ACLE_FUNC(svset4,_s32,,)(svundef4_s32(), u64, svundef_s32());395 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}396 SVE_ACLE_FUNC(svset4,_s64,,)(svundef4_s64(), u64, svundef_s64());397 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}398 SVE_ACLE_FUNC(svset4,_u8,,)(svundef4_u8(), u64, svundef_u8());399 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}400 SVE_ACLE_FUNC(svset4,_u16,,)(svundef4_u16(), u64, svundef_u16());401 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}402 SVE_ACLE_FUNC(svset4,_u32,,)(svundef4_u32(), u64, svundef_u32());403 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}404 SVE_ACLE_FUNC(svset4,_u64,,)(svundef4_u64(), u64, svundef_u64());405 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}406 SVE_ACLE_FUNC(svset4,_f16,,)(svundef4_f16(), u64, svundef_f16());407 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}408 SVE_ACLE_FUNC(svset4,_f32,,)(svundef4_f32(), u64, svundef_f32());409 // expected-error-re@+1 {{argument to '{{.*}}' must be a constant integer}}410 SVE_ACLE_FUNC(svset4,_f64,,)(svundef4_f64(), u64, svundef_f64());411}412 413void test_num_args()414{415 // expected-note@* {{requires 0 arguments, but 1 was provided}}416 SVE_ACLE_FUNC(svcnt,, b,)(1);417 // expected-note@* {{requires 0 arguments, but 1 was provided}}418 SVE_ACLE_FUNC(svcnt,, h,)(2);419 // expected-note@* {{requires 0 arguments, but 1 was provided}}420 SVE_ACLE_FUNC(svcnt,, w,)(3);421 // expected-note@* {{requires 0 arguments, but 1 was provided}}422 SVE_ACLE_FUNC(svcnt,, d,)(4);423 // expected-note@* {{requires 0 arguments, but 1 was provided}}424 SVE_ACLE_FUNC(svptrue,, _b8,)(1);425 // expected-note@* {{requires 0 arguments, but 1 was provided}}426 SVE_ACLE_FUNC(svptrue,, _b16,)(2);427 // expected-note@* {{requires 0 arguments, but 1 was provided}}428 SVE_ACLE_FUNC(svptrue,, _b32,)(3);429 // expected-note@* {{requires 0 arguments, but 1 was provided}}430 SVE_ACLE_FUNC(svptrue,, _b64,)(4); 431}432 433void test_enum(svbool_t pg, const void *const_void_ptr, uint64_t u64)434{435 // Test type checks on svpattern and svprfop enums.436 437 // expected-note@* {{no known conversion from 'svpattern' to 'enum svprfop'}}438 SVE_ACLE_FUNC(svprfb,,,)(pg, const_void_ptr, SV_VL1);439 // expected-note@* + {{no known conversion from 'svprfop' to 'enum svpattern'}}440 SVE_ACLE_FUNC(svqdecb_pat,_n_u64,,)(u64, SV_PLDL1KEEP, 1);441}442