| /* { dg-do compile } */ |
| /* { dg-options "-mthumb -O2" } */ |
| /* { dg-require-effective-target arm_thumb1_ok } */ |
| |
| unsigned int |
| test (const short p16[6 * 64]) |
| { |
| unsigned int i = 6; |
| unsigned int ret = 0; |
| |
| do |
| { |
| unsigned long long *p64 = (unsigned long long*) p16; |
| unsigned int *p32 = (unsigned int*) p16; |
| ret += ret; |
| if (p16[1] || p32[1]) |
| ret++; |
| else if (p64[1] | p64[2] | p64[3]) |
| ret++; |
| p16 += 64; |
| i--; |
| } while (i != 0); |
| |
| return ret; |
| } |
| |
| /* { dg-final { scan-assembler-not "#22" } } */ |
| /* { dg-final { scan-assembler-not "#14" } } */ |