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)12static 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)24void foo (void) 25 { 26 t1 = add_u128 (t1, t2); 27 t1 = add_u128 (t1, t3); 28 } 29