1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mtune=generic" } */
3 /* { dg-final { scan-assembler "adc" } } */
4 /* { dg-final { scan-assembler-not "jmp" } } */
5 
6 typedef unsigned long u64;
7 
8 typedef struct {
9   u64 hi, lo;
10 } u128;
11 
add_u128(u128 a,u128 b)12 static inline u128 add_u128 (u128 a, u128 b)
13 {
14   a.hi += b.hi;
15   a.lo += b.lo;
16   if (a.lo < b.lo)
17     a.hi++;
18 
19   return a;
20 }
21 
22 extern u128 t1, t2, t3;
23 
foo(void)24 void foo (void)
25 {
26   t1 = add_u128 (t1, t2);
27   t1 = add_u128 (t1, t3);
28 }
29