blob: cddb7e7a96a2e9045ba8372d9275baa24b5c6493 [file] [log] [blame]
/* { 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} } */