(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
addr-modes-int.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -march=armv7-a" } */
       3  /* { dg-require-effective-target arm_neon_ok } */
       4  /* { dg-add-options arm_neon } */
       5  
       6  #include "addr-modes.h"
       7  
       8  typedef long long ll;
       9  
      10  /* no special function attribute required */
      11  #define ATTR /* */
      12  
      13  PRE_STORE(char, ATTR)
      14  /* { dg-final { scan-assembler "strb.*#1]!" } } */
      15  PRE_STORE(short, ATTR)
      16  /* { dg-final { scan-assembler "strh.*#2]!" } } */
      17  PRE_STORE(int, ATTR)
      18  /* { dg-final { scan-assembler "str.*#4]!" } } */
      19  PRE_STORE(ll, ATTR)
      20  /* { dg-final { scan-assembler "strd.*#8]!" } } */
      21  
      22  POST_STORE(char, ATTR)
      23  /* { dg-final { scan-assembler "strb.*], #1" } } */
      24  POST_STORE(short, ATTR)
      25  /* { dg-final { scan-assembler "strh.*], #2" } } */
      26  POST_STORE(int, ATTR)
      27  /* { dg-final { scan-assembler "str.*], #4" } } */
      28  POST_STORE(ll, ATTR)
      29  /* { dg-final { scan-assembler "strd.*], #8" } } */
      30  
      31  PRE_LOAD(char, ATTR)
      32  /* { dg-final { scan-assembler "ldrb.*#1]!" } } */
      33  PRE_LOAD(short, ATTR)
      34  /* { dg-final { scan-assembler "ldrsh.*#2]!" } } */
      35  PRE_LOAD(int, ATTR)
      36  /* { dg-final { scan-assembler "ldr.*#4]!" } } */
      37  PRE_LOAD(ll, ATTR)
      38  /* { dg-final { scan-assembler "ldrd.*#8]!" } } */
      39  
      40  POST_LOAD(char, ATTR)
      41  /* { dg-final { scan-assembler "ldrb.*], #1" } } */
      42  POST_LOAD(short, ATTR)
      43  /* { dg-final { scan-assembler "ldrsh.*], #2" } } */
      44  POST_LOAD(int, ATTR)
      45  /* { dg-final { scan-assembler "ldr.*], #4" } } */
      46  POST_LOAD(ll, ATTR)
      47  /* { dg-final { scan-assembler "ldrd.*], #8" } } */
      48  
      49  /* { dg-final { scan-assembler-not "\tadd" } } */