1 /* PR tree-optimization/54471 */ 2 3 #ifdef __SIZEOF_INT128__ 4 #define T __int128 5 #else 6 #define T long long 7 #endif 8 9 extern void abort (void); 10 11 __attribute__ ((noinline)) 12 unsigned T foo(T ixi,unsigned ctr)13foo (T ixi, unsigned ctr) 14 { 15 unsigned T irslt = 1; 16 T ix = ixi; 17 18 for (; ctr; ctr--) 19 { 20 irslt *= ix; 21 ix *= ix; 22 } 23 24 if (irslt != 14348907) 25 abort (); 26 return irslt; 27 } 28 29 int main()30main () 31 { 32 unsigned T res; 33 34 res = foo (3, 4); 35 return 0; 36 } 37