1  /* Test for switching architectures during compilation.  */
       2  /* { dg-skip-if "instruction not valid on thumb" { *-*-* } { "-mthumb" } { "" } } */
       3  /* { dg-do assemble } */
       4  /* { dg-require-effective-target arm_arm_ok } */
       5  /* { dg-require-effective-target arm_arch_v5te_arm_ok } */
       6  /* { dg-additional-options "-Wall -O2 -march=armv5te -std=gnu99 -marm" } */
       7  
       8  #pragma GCC target ("arch=armv6")
       9  int test_assembly (int hi, int lo)
      10  {
      11     int res;
      12     __asm__ __volatile__ (
      13        "uxtah   %0, %1, %2\n"
      14        : "=r" (res)
      15        : "r" (hi),  "r" (lo));
      16     return res;
      17  }
      18