| /* { dg-do compile } */ | |
| /* { dg-additional-options "-O3" } */ | |
| #include <arm_neon.h> | |
| int64x2_t | |
| doit (int8x16_t a) | |
| { | |
| int16x8_t b = vmull_high_s8 (a, a); | |
| int32x4_t c = vmull_high_s16 (b, b); | |
| return vmull_high_s32 (c, c); | |
| } | |
| uint64x2_t | |
| douit (uint8x16_t a) | |
| { | |
| uint16x8_t b = vmull_high_u8 (a, a); | |
| uint32x4_t c = vmull_high_u16 (b, b); | |
| return vmull_high_u32 (c, c); | |
| } | |
| /* { dg-final { scan-assembler-times "smull2\[ |\t\]*v" 3} } */ | |
| /* { dg-final { scan-assembler-times "umull2\[ |\t\]*v" 3} } */ |