Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaCXX / attr-riscv-rvv-vector-bits.cpp
blob6d18883b46fe2e96633d3f68f692f95eb45161d7
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
4 #include <stdint.h>
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; };
12 S<fixed_int8m1_t> s;
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; }