| /* PR target/82989. */ |
| /* { dg-do compile } */ |
| /* { dg-require-effective-target arm_neon_ok } */ |
| /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-a8" } } */ |
| /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfpu=*" } { "-mfpu=neon" } } */ |
| /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ |
| /* { dg-options "-O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard" } */ |
| /* { dg-add-options arm_neon } */ |
| |
| typedef unsigned long long uint64_t; |
| |
| void f_shr_imm (uint64_t *a) |
| { |
| *a += *a >> 32; |
| } |
| |
| void f_shr_reg (uint64_t *a, uint64_t b) |
| { |
| *a += *a >> b; |
| } |
| |
| void f_shl_imm (uint64_t *a) |
| { |
| *a += *a << 32; |
| } |
| |
| void f_shl_reg (uint64_t *a, uint64_t b) |
| { |
| *a += *a << b; |
| } |
| /* { dg-final { scan-assembler-not "vshl*" } } */ |
| /* { dg-final { scan-assembler-not "vshr*" } } */ |
| /* { dg-final { scan-assembler-not "vmov*" } } */ |