1 /* PR target/81294 */
2 /* { dg-do run } */
3 /* { dg-options "-O2" } */
4 
5 #include <x86intrin.h>
6 
7 int
main()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 }
30