| /* 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; | |
| } |