| /* Check that loads from volatile mems utilize post-increment addressing |
| modes and do not result in redundant sign extensions. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O1" } */ |
| /* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */ |
| /* { dg-final { scan-assembler-times "@r\[0-9\]\+\\+," 3 } } */ |
| /* { dg-final { scan-assembler-not "exts" } } */ |
| |
| volatile char* |
| test_00 (volatile char* x) |
| { |
| int xx = *x++; |
| return x; |
| } |
| |
| volatile short* |
| test_01 (volatile short* x) |
| { |
| int xx = *x++; |
| return x; |
| } |
| |
| volatile int* |
| test_02 (volatile int* x) |
| { |
| int xx = *x++; |
| return x; |
| } |