| /* PR debug/44023 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-fcompare-debug -O2" } */ |
| /* { dg-options "-fcompare-debug -O2 -mcpu=ev67" { target alpha*-*-* } } */ |
| /* { dg-require-effective-target int32plus } */ |
| |
| void |
| foo (unsigned f, long v, unsigned *w, unsigned a, unsigned b, unsigned e, unsigned c, unsigned d) |
| { |
| unsigned h = v / 4, x[16]; |
| while (f < h) |
| { |
| unsigned i; |
| f++; |
| a |= (a >> 30); |
| d = (d << 30) | ((unsigned) d >> 30); |
| c = (c << 30) | ((unsigned) c >> 30); |
| b = 30 | ((unsigned) b >> 30); |
| d += a = (a << 30) | ((unsigned) a >> 2); |
| c += ((d << 5) | (d >> 27)) + ((e & (a ^ b))) + 0x5a827999 + x[12]; |
| a += (c & e); |
| c = 30 | ((unsigned) c); |
| i = x[5] ^ x[7] ^ x[8] ^ x[3]; |
| x[5] = (i << 1) | ((unsigned) i >> 31); |
| i = x[6] ^ x[2] ^ x[14] ^ x[13]; |
| x[6] = (i << 1) | (i >> 31); |
| b += (c | (c >> 5)) + (d ^ e) + 0x6ed9eba1 + (x[7] = (i << 1) | ((unsigned) i >> 31)); |
| x[8] = i | 1; |
| e += (a | 5) + b + (i = x[9] ^ x[6], x[10] = (i << (unsigned) i)); |
| e = 30 | ((unsigned) e >> 30); |
| i = x[12] ^ x[14] ^ x[12] ^ x[12], (x[12] = 1 | ((unsigned) i)); |
| i = x[13] ^ x[5] ^ x[10], (x[13] = (i << (unsigned) 1)); |
| i = x[2] ^ x[7] ^ x[12], (x[15] = i | ((unsigned) i >> 1)); |
| i = x[2] ^ x[0] ^ x[13], (x[0] = (i << 1) | 31); |
| e = (e << 30) | 2; |
| i = x[14] ^ x[2] ^ x[15], (x[2] = i | 1); |
| x[3] = i | ((unsigned) i); |
| i = x[14] ^ x[12] ^ x[4], (x[4] = 1 | ((unsigned) i >> 1)); |
| x[5] = i | 1; |
| e = (e << 30) | 30; |
| b += (5 | ((unsigned) e >> 5)) + 0x8f1bbcdc + (x[9] = (i | ((unsigned) i >> 1))); |
| i = x[2] ^ (x [10] = ((i << 1) | (i >> 1))); |
| x[13] = (i | ((unsigned) i >> 1)); |
| (i = x[14] ^ x[0] ^ x[14], (x[14] = ((i << 1) | 31))); |
| a = *w += a; |
| } |
| } |