Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.target/arm/mve/intrinsics/vreinterpretq_u32.c @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ | |
2 /* { dg-add-options arm_v8_1m_mve_fp } */ | |
3 /* { dg-additional-options "-O2" } */ | |
4 | |
5 #include "arm_mve.h" | |
6 int16x8_t value1; | |
7 int64x2_t value2; | |
8 int8x16_t value3; | |
9 uint8x16_t value4; | |
10 uint16x8_t value5; | |
11 uint64x2_t value6; | |
12 int32x4_t value7; | |
13 float16x8_t value8; | |
14 float32x4_t value9; | |
15 | |
16 uint32x4_t | |
17 foo () | |
18 { | |
19 uint32x4_t r1,r2,r3,r4,r5,r6,r7; | |
20 r1 = vaddq_u32 (vreinterpretq_u32_s16 (value1), vreinterpretq_u32_s64 (value2)); | |
21 r2 = vaddq_u32 (r1, vreinterpretq_u32_s8 (value3)); | |
22 r3 = vaddq_u32 (r2, vreinterpretq_u32_u8 (value4)); | |
23 r4 = vaddq_u32 (r3, vreinterpretq_u32_u16 (value5)); | |
24 r5 = vaddq_u32 (r4, vreinterpretq_u32_u64 (value6)); | |
25 r6 = vaddq_u32 (r5, vreinterpretq_u32_s32 (value7)); | |
26 r7 = vaddq_u32 (r6, vreinterpretq_u32_f16 (value8)); | |
27 return vaddq_u32 (r7, vreinterpretq_u32_f32 (value9)); | |
28 } | |
29 | |
30 uint32x4_t | |
31 foo1 () | |
32 { | |
33 uint32x4_t r1,r2,r3,r4,r5,r6,r7; | |
34 r1 = vaddq_u32 (vreinterpretq_u32 (value1), vreinterpretq_u32 (value2)); | |
35 r2 = vaddq_u32 (r1, vreinterpretq_u32 (value3)); | |
36 r3 = vaddq_u32 (r2, vreinterpretq_u32 (value4)); | |
37 r4 = vaddq_u32 (r3, vreinterpretq_u32 (value5)); | |
38 r5 = vaddq_u32 (r4, vreinterpretq_u32 (value6)); | |
39 r6 = vaddq_u32 (r5, vreinterpretq_u32 (value7)); | |
40 r7 = vaddq_u32 (r6, vreinterpretq_u32 (value8)); | |
41 return vaddq_u32 (r7, vreinterpretq_u32 (value9)); | |
42 } | |
43 | |
44 /* { dg-final { scan-assembler-times "vadd.i32" 8 } } */ |