1  /* Verify that ldr is preferred on XScale for loading a 3 or 4 byte constant. */
       2  /* { dg-do compile } */
       3  /* { dg-skip-if "Test is specific to Xscale" { arm*-*-* } { "-march=*" } { "-march=xscale" } } */
       4  /* { dg-skip-if "Test is specific to Xscale" { arm*-*-* } { "-mcpu=*" } { "-mcpu=xscale" } } */
       5  /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
       6  /* { dg-require-effective-target arm_arch_v5te_ok } */
       7  /* { dg-options "-mcpu=xscale -O -mfloat-abi=softfp" } */
       8  
       9  unsigned load4(void) __attribute__ ((naked));
      10  unsigned load4(void)
      11  {
      12      /* Best code would be:
      13         ldr r0, =65809
      14         mov pc, lr */
      15  
      16      return 65809;
      17  }
      18  
      19  /* { dg-final { scan-assembler "ldr\[ 	].*" } } */