blob: 4527dd3b4fba7cc406101189e21fe4cf18492981 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target arm_neon_ok } */
/* { dg-add-options arm_neon } */
#include <arm_neon.h>
#include "addr-modes.h"
#define ATTR __attribute__((__pcs__("aapcs-vfp")))
POST_STORE(float, ATTR)
/* { dg-final { scan-assembler "vstmia.32" } } */
POST_STORE(double, ATTR)
/* { dg-final { scan-assembler "vstmia.64" } } */
POST_LOAD(float, ATTR)
/* { dg-final { scan-assembler "vldmia.32" } } */
POST_LOAD(double, ATTR)
/* { dg-final { scan-assembler "vldmia.64" } } */
POST_STORE_VEC (int8_t, int8x8_t, vst1_s8, ATTR)
/* { dg-final { scan-assembler "vst1.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x16_t, vst1q_s8, ATTR)
/* { dg-final { scan-assembler "vst1.8\t\{.*\[-,\]d.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x8x2_t, vst2_s8, ATTR)
/* { dg-final { scan-assembler "vst2.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x16x2_t, vst2q_s8, ATTR)
/* { dg-final { scan-assembler "vst2.8\t\{.*-d.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x8x3_t, vst3_s8, ATTR)
/* { dg-final { scan-assembler "vst3.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x16x3_t, vst3q_s8, ATTR)
/* { dg-final { scan-assembler "vst3.8\t\{d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
/* { dg-final { scan-assembler "vst3.8\t\{d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
POST_STORE_VEC (int8_t, int8x8x4_t, vst4_s8, ATTR)
/* { dg-final { scan-assembler "vst4.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
POST_STORE_VEC (int8_t, int8x16x4_t, vst4q_s8, ATTR)
/* { dg-final { scan-assembler "vst4.8\t\{d\[02468\], d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
/* { dg-final { scan-assembler "vst4.8\t\{d\[13579\], d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
/* { dg-final { scan-assembler-not "add" { xfail *-*-* } } } */