347 lines · c
1// REQUIRES: riscv-registered-target2// RUN: %clang_cc1 -triple riscv64 -target-feature +f -target-feature +d \3// RUN: -target-feature +v -target-feature +zfh -target-feature +zvfh \4// RUN: -fsyntax-only -verify %s5 6#include <riscv_vector.h>7 8vint8m1_t test_vget_v_index_not_constant(vint8m2_t src, int index) {9 // expected-error@+1 {{argument to '__riscv_vget_v_i8m2_i8m1' must be a constant integer}}10 return __riscv_vget_v_i8m2_i8m1(src, index);11}12 13vint8m1_t test_vget_v_i8m2_i8m1(vint8m2_t src) {14 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}15 return __riscv_vget_v_i8m2_i8m1(src, 2);16}17 18vint8m1_t test_vget_v_i8m4_i8m1(vint8m4_t src) {19 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}20 return __riscv_vget_v_i8m4_i8m1(src, 4);21}22 23vint8m2_t test_vget_v_i8m4_i8m2(vint8m4_t src) {24 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}25 return __riscv_vget_v_i8m4_i8m2(src, 2);26}27 28vint8m1_t test_vget_v_i8m8_i8m1(vint8m8_t src) {29 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}30 return __riscv_vget_v_i8m8_i8m1(src, 8);31}32 33vint8m2_t test_vget_v_i8m8_i8m2(vint8m8_t src) {34 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}35 return __riscv_vget_v_i8m8_i8m2(src, 4);36}37 38vint8m4_t test_vget_v_i8m8_i8m4(vint8m8_t src) {39 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}40 return __riscv_vget_v_i8m8_i8m4(src, 2);41}42 43vint16m1_t test_vget_v_i16m2_i16m1(vint16m2_t src) {44 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}45 return __riscv_vget_v_i16m2_i16m1(src, 2);46}47 48vint16m1_t test_vget_v_i16m4_i16m1(vint16m4_t src) {49 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}50 return __riscv_vget_v_i16m4_i16m1(src, 4);51}52 53vint16m2_t test_vget_v_i16m4_i16m2(vint16m4_t src) {54 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}55 return __riscv_vget_v_i16m4_i16m2(src, 2);56}57 58vint16m1_t test_vget_v_i16m8_i16m1(vint16m8_t src) {59 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}60 return __riscv_vget_v_i16m8_i16m1(src, 8);61}62 63vint16m2_t test_vget_v_i16m8_i16m2(vint16m8_t src) {64 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}65 return __riscv_vget_v_i16m8_i16m2(src, 4);66}67 68vint16m4_t test_vget_v_i16m8_i16m4(vint16m8_t src) {69 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}70 return __riscv_vget_v_i16m8_i16m4(src, 2);71}72 73vint32m1_t test_vget_v_i32m2_i32m1(vint32m2_t src) {74 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}75 return __riscv_vget_v_i32m2_i32m1(src, 2);76}77 78vint32m1_t test_vget_v_i32m4_i32m1(vint32m4_t src) {79 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}80 return __riscv_vget_v_i32m4_i32m1(src, 4);81}82 83vint32m2_t test_vget_v_i32m4_i32m2(vint32m4_t src) {84 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}85 return __riscv_vget_v_i32m4_i32m2(src, 2);86}87 88vint32m1_t test_vget_v_i32m8_i32m1(vint32m8_t src) {89 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}90 return __riscv_vget_v_i32m8_i32m1(src, 8);91}92 93vint32m2_t test_vget_v_i32m8_i32m2(vint32m8_t src) {94 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}95 return __riscv_vget_v_i32m8_i32m2(src, 4);96}97 98vint32m4_t test_vget_v_i32m8_i32m4(vint32m8_t src) {99 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}100 return __riscv_vget_v_i32m8_i32m4(src, 2);101}102 103vint64m1_t test_vget_v_i64m2_i64m1(vint64m2_t src) {104 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}105 return __riscv_vget_v_i64m2_i64m1(src, 2);106}107 108vint64m1_t test_vget_v_i64m4_i64m1(vint64m4_t src) {109 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}110 return __riscv_vget_v_i64m4_i64m1(src, 4);111}112 113vint64m2_t test_vget_v_i64m4_i64m2(vint64m4_t src) {114 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}115 return __riscv_vget_v_i64m4_i64m2(src, 2);116}117 118vint64m1_t test_vget_v_i64m8_i64m1(vint64m8_t src) {119 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}120 return __riscv_vget_v_i64m8_i64m1(src, 8);121}122 123vint64m2_t test_vget_v_i64m8_i64m2(vint64m8_t src) {124 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}125 return __riscv_vget_v_i64m8_i64m2(src, 4);126}127 128vint64m4_t test_vget_v_i64m8_i64m4(vint64m8_t src) {129 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}130 return __riscv_vget_v_i64m8_i64m4(src, 2);131}132 133vuint8m1_t test_vget_v_u8m2_u8m1(vuint8m2_t src) {134 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}135 return __riscv_vget_v_u8m2_u8m1(src, 2);136}137 138vuint8m1_t test_vget_v_u8m4_u8m1(vuint8m4_t src) {139 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}140 return __riscv_vget_v_u8m4_u8m1(src, 4);141}142 143vuint8m2_t test_vget_v_u8m4_u8m2(vuint8m4_t src) {144 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}145 return __riscv_vget_v_u8m4_u8m2(src, 2);146}147 148vuint8m1_t test_vget_v_u8m8_u8m1(vuint8m8_t src) {149 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}150 return __riscv_vget_v_u8m8_u8m1(src, 8);151}152 153vuint8m2_t test_vget_v_u8m8_u8m2(vuint8m8_t src) {154 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}155 return __riscv_vget_v_u8m8_u8m2(src, 4);156}157 158vuint8m4_t test_vget_v_u8m8_u8m4(vuint8m8_t src) {159 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}160 return __riscv_vget_v_u8m8_u8m4(src, 2);161}162 163vuint16m1_t test_vget_v_u16m2_u16m1(vuint16m2_t src) {164 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}165 return __riscv_vget_v_u16m2_u16m1(src, 2);166}167 168vuint16m1_t test_vget_v_u16m4_u16m1(vuint16m4_t src) {169 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}170 return __riscv_vget_v_u16m4_u16m1(src, 4);171}172 173vuint16m2_t test_vget_v_u16m4_u16m2(vuint16m4_t src) {174 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}175 return __riscv_vget_v_u16m4_u16m2(src, 2);176}177 178vuint16m1_t test_vget_v_u16m8_u16m1(vuint16m8_t src) {179 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}180 return __riscv_vget_v_u16m8_u16m1(src, 8);181}182 183vuint16m2_t test_vget_v_u16m8_u16m2(vuint16m8_t src) {184 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}185 return __riscv_vget_v_u16m8_u16m2(src, 4);186}187 188vuint16m4_t test_vget_v_u16m8_u16m4(vuint16m8_t src) {189 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}190 return __riscv_vget_v_u16m8_u16m4(src, 2);191}192 193vuint32m1_t test_vget_v_u32m2_u32m1(vuint32m2_t src) {194 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}195 return __riscv_vget_v_u32m2_u32m1(src, 2);196}197 198vuint32m1_t test_vget_v_u32m4_u32m1(vuint32m4_t src) {199 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}200 return __riscv_vget_v_u32m4_u32m1(src, 4);201}202 203vuint32m2_t test_vget_v_u32m4_u32m2(vuint32m4_t src) {204 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}205 return __riscv_vget_v_u32m4_u32m2(src, 2);206}207 208vuint32m1_t test_vget_v_u32m8_u32m1(vuint32m8_t src) {209 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}210 return __riscv_vget_v_u32m8_u32m1(src, 8);211}212 213vuint32m2_t test_vget_v_u32m8_u32m2(vuint32m8_t src) {214 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}215 return __riscv_vget_v_u32m8_u32m2(src, 4);216}217 218vuint32m4_t test_vget_v_u32m8_u32m4(vuint32m8_t src) {219 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}220 return __riscv_vget_v_u32m8_u32m4(src, 2);221}222 223vuint64m1_t test_vget_v_u64m2_u64m1(vuint64m2_t src) {224 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}225 return __riscv_vget_v_u64m2_u64m1(src, 2);226}227 228vuint64m1_t test_vget_v_u64m4_u64m1(vuint64m4_t src) {229 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}230 return __riscv_vget_v_u64m4_u64m1(src, 4);231}232 233vuint64m2_t test_vget_v_u64m4_u64m2(vuint64m4_t src) {234 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}235 return __riscv_vget_v_u64m4_u64m2(src, 2);236}237 238vuint64m1_t test_vget_v_u64m8_u64m1(vuint64m8_t src) {239 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}240 return __riscv_vget_v_u64m8_u64m1(src, 8);241}242 243vuint64m2_t test_vget_v_u64m8_u64m2(vuint64m8_t src) {244 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}245 return __riscv_vget_v_u64m8_u64m2(src, 4);246}247 248vuint64m4_t test_vget_v_u64m8_u64m4(vuint64m8_t src) {249 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}250 return __riscv_vget_v_u64m8_u64m4(src, 2);251}252 253vfloat32m1_t test_vget_v_f32m2_f32m1(vfloat32m2_t src) {254 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}255 return __riscv_vget_v_f32m2_f32m1(src, 2);256}257 258vfloat32m1_t test_vget_v_f32m4_f32m1(vfloat32m4_t src) {259 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}260 return __riscv_vget_v_f32m4_f32m1(src, 4);261}262 263vfloat32m2_t test_vget_v_f32m4_f32m2(vfloat32m4_t src) {264 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}265 return __riscv_vget_v_f32m4_f32m2(src, 2);266}267 268vfloat32m1_t test_vget_v_f32m8_f32m1(vfloat32m8_t src) {269 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}270 return __riscv_vget_v_f32m8_f32m1(src, 8);271}272 273vfloat32m2_t test_vget_v_f32m8_f32m2(vfloat32m8_t src) {274 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}275 return __riscv_vget_v_f32m8_f32m2(src, 4);276}277 278vfloat32m4_t test_vget_v_f32m8_f32m4(vfloat32m8_t src) {279 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}280 return __riscv_vget_v_f32m8_f32m4(src, 2);281}282 283vfloat64m1_t test_vget_v_f64m2_f64m1(vfloat64m2_t src) {284 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}285 return __riscv_vget_v_f64m2_f64m1(src, 2);286}287 288vfloat64m1_t test_vget_v_f64m4_f64m1(vfloat64m4_t src) {289 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}290 return __riscv_vget_v_f64m4_f64m1(src, 4);291}292 293vfloat64m2_t test_vget_v_f64m4_f64m2(vfloat64m4_t src) {294 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}295 return __riscv_vget_v_f64m4_f64m2(src, 2);296}297 298vfloat64m1_t test_vget_v_f64m8_f64m1(vfloat64m8_t src) {299 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}300 return __riscv_vget_v_f64m8_f64m1(src, 8);301}302 303vfloat64m2_t test_vget_v_f64m8_f64m2(vfloat64m8_t src) {304 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}305 return __riscv_vget_v_f64m8_f64m2(src, 4);306}307 308vfloat64m4_t test_vget_v_f64m8_f64m4(vfloat64m8_t src) {309 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}310 return __riscv_vget_v_f64m8_f64m4(src, 2);311}312 313vfloat16m1_t test_vget_v_f16m2_f16m1(vfloat16m2_t src) {314 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}315 return __riscv_vget_v_f16m2_f16m1(src, 2);316}317 318vfloat16m1_t test_vget_v_f16m4_f16m1(vfloat16m4_t src) {319 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}320 return __riscv_vget_v_f16m4_f16m1(src, 4);321}322 323vfloat16m1_t test_vget_v_f16m8_f16m1(vfloat16m8_t src) {324 // expected-error@+1 {{argument value 8 is outside the valid range [0, 7]}}325 return __riscv_vget_v_f16m8_f16m1(src, 8);326}327 328vfloat16m2_t test_vget_v_f16m4_f16m2(vfloat16m4_t src) {329 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}330 return __riscv_vget_v_f16m4_f16m2(src, 2);331}332 333vfloat16m2_t test_vget_v_f16m8_f16m2(vfloat16m8_t src) {334 // expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}335 return __riscv_vget_v_f16m8_f16m2(src, 4);336}337 338vfloat16m4_t test_vget_v_f16m8_f16m4(vfloat16m8_t src) {339 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}340 return __riscv_vget_v_f16m8_f16m4(src, 2);341}342 343vint32m1_t test_vget_v_i32m1x2_i32m1(vint32m1x2_t src) {344 // expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}345 return __riscv_vget_v_i32m1x2_i32m1(src, 2);346}347