| /* { dg-do compile } */ |
| /* { dg-options "-march=rv64gc_zba -mabi=lp64" } */ |
| /* { dg-skip-if "" { *-*-* } { "-O0" } } */ |
| |
| /* RV64 only. */ |
| int foos(short *x, int n){ |
| return x[n]; |
| } |
| int fooi(int *x, int n){ |
| return x[n]; |
| } |
| int fooll(long long *x, int n){ |
| return x[n]; |
| } |
| |
| /* RV64 only. */ |
| int ufoos(short *x, unsigned int n){ |
| return x[n]; |
| } |
| int ufooi(int *x, unsigned int n){ |
| return x[n]; |
| } |
| int ufooll(long long *x, unsigned int n){ |
| return x[n]; |
| } |
| |
| /* { dg-final { scan-assembler-times "sh1add\t" 1 } } */ |
| /* { dg-final { scan-assembler-times "sh2add\t" 1 } } */ |
| /* { dg-final { scan-assembler-times "sh3add\t" 1 } } */ |
| /* { dg-final { scan-assembler-times "sh3add.uw" 1 } } */ |
| /* { dg-final { scan-assembler-times "sh3add.uw" 1 } } */ |
| /* { dg-final { scan-assembler-times "sh3add.uw" 1 } } */ |