1  /* PR target/81294 */
       2  /* { dg-do run } */
       3  /* { dg-options "-O2" } */
       4  
       5  #include <x86intrin.h>
       6  
       7  int
       8  main ()
       9  {
      10    volatile unsigned char c;
      11    unsigned int x;
      12    volatile unsigned int y, sum_ref;
      13  
      14    c = 0;
      15    x = 1;
      16    y = 0;
      17    sum_ref = 0x0;
      18  
      19    /* X = 0x00000001, Y = 0x00000000, C = 0.  */
      20    c = _subborrow_u32 (c, y, x, &x);
      21    /* X = 0xFFFFFFFF, Y = 0x00000000, C = 1.  */
      22    c = _subborrow_u32 (c, y, x, &x);
      23    /* X = 0xFFFFFFFF, Y = 0xFFFFFFFF, C = 1.  */
      24  
      25    if (x != sum_ref)
      26      __builtin_abort ();
      27  
      28    return 0;
      29  }