1 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64x -ffreestanding -fsyntax-only -verify -std=c++11 -mvscale-min=4 -mvscale-max=4 -Wconversion %s
2 // expected-no-diagnostics
6 typedef __rvv_int8m1_t vint8m1_t
;
7 typedef vint8m1_t fixed_int8m1_t
__attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen
)));
8 typedef int8_t gnu_int8m1_t
__attribute__((vector_size(__riscv_v_fixed_vlen
/ 8)));
10 template<typename T
> struct S
{ T var
; };
14 // Test implicit casts between VLA and VLS vectors
15 vint8m1_t
to_vint8m1_t(fixed_int8m1_t x
) { return x
; }
16 fixed_int8m1_t
from_vint8m1_t(vint8m1_t x
) { return x
; }
18 // Test implicit casts between GNU and VLA vectors
19 vint8m1_t
to_vint8m1_t__from_gnu_int8m1_t(gnu_int8m1_t x
) { return x
; }
20 gnu_int8m1_t
from_vint8m1_t__to_gnu_int8m1_t(vint8m1_t x
) { return x
; }
22 // Test implicit casts between GNU and VLS vectors
23 fixed_int8m1_t
to_fixed_int8m1_t__from_gnu_int8m1_t(gnu_int8m1_t x
) { return x
; }
24 gnu_int8m1_t
from_fixed_int8m1_t__to_gnu_int8m1_t(fixed_int8m1_t x
) { return x
; }