1  /* { dg-options "-O2" } */
       2  /* { dg-do run } */
       3  
       4  #if defined __i386__
       5  #define REG "edi"
       6  #else
       7  #define REG "r14"
       8  #endif
       9  
      10  register unsigned long *ds asm(REG);
      11  
      12  extern void abort (void);
      13  
      14  __attribute__ ((noinline)) void
      15  test (void)
      16  {
      17    *++ds = 31337;
      18  }
      19  
      20  int
      21  main ()
      22  {
      23    unsigned long stack[2];
      24    stack[0] = 0;
      25    stack[1] = 0;
      26    ds = stack;
      27    test ();
      28    if (ds != stack + 1 || *ds != 31337)
      29      abort ();
      30    return 0;
      31  }