1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  /* { dg-require-effective-target arm_neon_ok } */
       4  /* { dg-add-options arm_neon } */
       5  
       6  #include <arm_neon.h>
       7  
       8  #include "addr-modes.h"
       9  
      10  #define ATTR __attribute__((__pcs__("aapcs-vfp")))
      11  
      12  POST_STORE(float, ATTR)
      13  /* { dg-final { scan-assembler "vstmia.32" } } */
      14  POST_STORE(double, ATTR)
      15  /* { dg-final { scan-assembler "vstmia.64" } } */
      16  
      17  POST_LOAD(float, ATTR)
      18  /* { dg-final { scan-assembler "vldmia.32" } } */
      19  POST_LOAD(double, ATTR)
      20  /* { dg-final { scan-assembler "vldmia.64" } } */
      21  
      22  POST_STORE_VEC (int8_t, int8x8_t, vst1_s8, ATTR)
      23  /* { dg-final { scan-assembler "vst1.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
      24  POST_STORE_VEC (int8_t, int8x16_t, vst1q_s8, ATTR)
      25  /* { dg-final { scan-assembler "vst1.8\t\{.*\[-,\]d.*\}, \\\[r\[0-9\]+\\\]!" } } */
      26  
      27  POST_STORE_VEC (int8_t, int8x8x2_t, vst2_s8, ATTR)
      28  /* { dg-final { scan-assembler "vst2.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
      29  POST_STORE_VEC (int8_t, int8x16x2_t, vst2q_s8, ATTR)
      30  /* { dg-final { scan-assembler "vst2.8\t\{.*-d.*\}, \\\[r\[0-9\]+\\\]!" } } */
      31  
      32  POST_STORE_VEC (int8_t, int8x8x3_t, vst3_s8, ATTR)
      33  /* { dg-final { scan-assembler "vst3.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
      34  POST_STORE_VEC (int8_t, int8x16x3_t, vst3q_s8, ATTR)
      35  /* { dg-final { scan-assembler "vst3.8\t\{d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
      36  /* { dg-final { scan-assembler "vst3.8\t\{d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
      37  
      38  POST_STORE_VEC (int8_t, int8x8x4_t, vst4_s8, ATTR)
      39  /* { dg-final { scan-assembler "vst4.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
      40  POST_STORE_VEC (int8_t, int8x16x4_t, vst4q_s8, ATTR)
      41  /* { dg-final { scan-assembler "vst4.8\t\{d\[02468\], d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
      42  /* { dg-final { scan-assembler "vst4.8\t\{d\[13579\], d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
      43  
      44  /* { dg-final { scan-assembler-not "add" { xfail *-*-* } } } */