view gcc/testsuite/gcc.target/aarch64/vmull_high.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
line wrap: on
line source

/* { 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} }  */