view gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c @ 152:2b5abeee2509

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

/* { dg-do assemble { target { arm*-*-* } } } */
/* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
/* { dg-add-options arm_v8_2a_i8mm }  */
/* { dg-additional-options "-O -save-temps" } */
/* { dg-final { check-function-bodies "**" "" } } */

#include <arm_neon.h>

/* Unsigned-Signed Dot Product instructions.  */

/*
**usfoo:
**	...
**	vusdot\.s8	d0, d1, d2
**	bx	lr
*/
int32x2_t usfoo (int32x2_t r, uint8x8_t x, int8x8_t y)
{
  return vusdot_s32 (r, x, y);
}

/*
**usfoo_lane:
**	...
**	vusdot\.s8	d0, d1, d2\[0\]
**	bx	lr
*/
int32x2_t usfoo_lane (int32x2_t r, uint8x8_t x, int8x8_t y)
{
  return vusdot_lane_s32 (r, x, y, 0);
}

/*
**usfooq_lane:
**	...
**	vusdot\.s8	q0, q1, d4\[1\]
**	bx	lr
*/
int32x4_t usfooq_lane (int32x4_t r, uint8x16_t x, int8x8_t y)
{
  return vusdotq_lane_s32 (r, x, y, 1);
}

/* Signed-Unsigned Dot Product instructions.  */

/*
**sfoo_lane:
**	...
**	vsudot\.u8	d0, d1, d2\[0\]
**	bx	lr
*/
int32x2_t sfoo_lane (int32x2_t r, int8x8_t x, uint8x8_t y)
{
  return vsudot_lane_s32 (r, x, y, 0);
}

/*
**sfooq_lane:
**	...
**	vsudot\.u8	q0, q1, d4\[1\]
**	bx	lr
*/
int32x4_t sfooq_lane (int32x4_t r, int8x16_t x, uint8x8_t y)
{
  return vsudotq_lane_s32 (r, x, y, 1);
}

/*
**usfoo_untied:
**	...
**	vusdot\.s8	d1, d2, d3
**	vmov	d0, d1  @ v2si
**	bx	lr
*/
int32x2_t usfoo_untied (int32x2_t unused, int32x2_t r, uint8x8_t x, int8x8_t y)
{
  return vusdot_s32 (r, x, y);
}

/*
**usfoo_lane_untied:
**	...
**	vusdot.s8	d1, d2, d3\[0\]
**	vmov	d0, d1  @ v2si
**	bx	lr
*/
int32x2_t usfoo_lane_untied (int32x2_t unused, int32x2_t r, uint8x8_t x, int8x8_t y)
{
  return vusdot_lane_s32 (r, x, y, 0);
}