/* { dg-do compile { target { riscv64*-*-* } } } */ /* { dg-options "-march=rv64gc -mabi=lp64" } */ /* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ signed long foo1 (int i) { return i >> 31; } /* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],31" } } */ signed char sub2 (long i) { return i >> 24; } /* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],24" } } */ signed short sub3 (long i) { return i >> 16; } /* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],16" } } */ /* { dg-final { scan-assembler-not "srai\t" } } */ /* { dg-final { scan-assembler-not "srli\t" } } */ /* { dg-final { scan-assembler-not "srliw\t" } } */