xref: /llvm-project/clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/vfwredusum-out-of-range.c (revision 3055c5815ac08aa0d8597bff63569b9ed8ec0822)
1 // REQUIRES: riscv-registered-target
2 // 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 %s
5 
6 #include <riscv_vector.h>
7 
test_vfwredusum_vs_f16m1_f32m1_rm(vfloat16m1_t vector,vfloat32m1_t scalar,size_t vl)8 vfloat32m1_t test_vfwredusum_vs_f16m1_f32m1_rm(vfloat16m1_t vector, vfloat32m1_t scalar, size_t vl) {
9   // expected-error@+1 {{argument value 5 is outside the valid range [0, 4]}}
10   return __riscv_vfwredusum_vs_f16m1_f32m1_rm(vector, scalar, 5, vl);
11 }
12 
test_vfwredusum_vs_f16m1_f32m1_rm_m(vbool16_t mask,vfloat16m1_t vector,vfloat32m1_t scalar,size_t vl)13 vfloat32m1_t test_vfwredusum_vs_f16m1_f32m1_rm_m(vbool16_t mask, vfloat16m1_t vector, vfloat32m1_t scalar, size_t vl) {
14   // expected-error@+1 {{argument value 5 is outside the valid range [0, 4]}}
15   return __riscv_vfwredusum_vs_f16m1_f32m1_rm_m(mask, vector, scalar, 5, vl);
16 }
17 
test_vfwredusum_vs_f16m1_f32m1_rm_tu(vfloat32m1_t maskedoff,vfloat16m1_t vector,vfloat32m1_t scalar,size_t vl)18 vfloat32m1_t test_vfwredusum_vs_f16m1_f32m1_rm_tu(vfloat32m1_t maskedoff, vfloat16m1_t vector, vfloat32m1_t scalar, size_t vl) {
19   // expected-error@+1 {{argument value 5 is outside the valid range [0, 4]}}
20   return __riscv_vfwredusum_vs_f16m1_f32m1_rm_tu(maskedoff, vector, scalar, 5, vl);
21 }
22 
test_vfwredusum_vs_f16m1_f32m1_rm_tum(vbool16_t mask,vfloat32m1_t maskedoff,vfloat16m1_t vector,vfloat32m1_t scalar,size_t vl)23 vfloat32m1_t test_vfwredusum_vs_f16m1_f32m1_rm_tum(vbool16_t mask, vfloat32m1_t maskedoff, vfloat16m1_t vector, vfloat32m1_t scalar, size_t vl) {
24   // expected-error@+1 {{argument value 5 is outside the valid range [0, 4]}}
25   return __riscv_vfwredusum_vs_f16m1_f32m1_rm_tum(mask, maskedoff, vector, scalar, 5, vl);
26 }
27