1 /* PR69709 This testcase used to fail due to a broken risbg 2 splitter. */ 3 4 /* { dg-do run } */ 5 /* { dg-options "-O3 -march=z10" } */ 6 7 8 typedef struct 9 { 10 unsigned int sig[2]; 11 } 12 val_t; 13 14 unsigned int __attribute__ ((noinline)) div_significands(const val_t * a)15div_significands (const val_t * a) 16 { 17 val_t u = *a; 18 int bit = 64; 19 unsigned int r; 20 do 21 { 22 u.sig[1] = (u.sig[1] << 1) | (u.sig[0] >> 31); 23 u.sig[0] = 42; 24 25 if (bit == 64) 26 r = u.sig[1]; 27 } 28 while (--bit >= 0); 29 return r; 30 } 31 32 int main(void)33main (void) 34 { 35 val_t a = { { 0x1, 0x1 } }; 36 if (div_significands (&a) != 2) 37 __builtin_abort (); 38 return 0; 39 } 40