/* PR tree-optimization/54471 */ | |
#ifdef __SIZEOF_INT128__ | |
#define T __int128 | |
#else | |
#define T long long | |
#endif | |
extern void abort (void); | |
__attribute__ ((noinline)) | |
unsigned T | |
foo (T ixi, unsigned ctr) | |
{ | |
unsigned T irslt = 1; | |
T ix = ixi; | |
for (; ctr; ctr--) | |
{ | |
irslt *= ix; | |
ix *= ix; | |
} | |
if (irslt != 14348907) | |
abort (); | |
return irslt; | |
} | |
int | |
main () | |
{ | |
unsigned T res; | |
res = foo (3, 4); | |
return 0; | |
} |