/* 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-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; | |
} |