diff options
Diffstat (limited to 'gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa')
4 files changed, 93 insertions, 3 deletions
diff --git a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/alias_bug.c b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/alias_bug.c new file mode 100644 index 000000000..64fef2787 --- /dev/null +++ b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/alias_bug.c @@ -0,0 +1,61 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fno-strict-aliasing -fdump-tree-optimized" } */ + +typedef unsigned u32; +typedef unsigned short u16; +typedef unsigned char u8; +struct biosregs { + union { + struct { + u32 edi; + u32 esi; + u32 ebp; + u32 _esp; + u32 ebx; + u32 edx; + u32 ecx; + u32 eax; + u32 _fsgs; + u32 _dses; + u32 eflags; + }; + struct { + u16 di, hdi; + u16 si, hsi; + u16 bp, hbp; + u16 _sp, _hsp; + u16 bx, hbx; + u16 dx, hdx; + u16 cx, hcx; + u16 ax, hax; + u16 gs, fs; + u16 es, ds; + u16 flags, hflags; + }; + struct { + u8 dil, dih, edi2, edi3; + u8 sil, sih, esi2, esi3; + u8 bpl, bph, ebp2, ebp3; + u8 _spl, _sph, _esp2, _esp3; + u8 bl, bh, ebx2, ebx3; + u8 dl, dh, edx2, edx3; + u8 cl, ch, ecx2, ecx3; + u8 al, ah, eax2, eax3; + }; + }; +}; +void initregs(struct biosregs *regs); +void intcall(u8 int_no, const struct biosregs *ireg, struct biosregs *oreg); +static u32 *const gp = (u32*) 0x32; +void keyboard_set_repeat(void) +{ + struct biosregs ireg; + *gp = 10; + initregs(&ireg); + ireg.ax = 0x0305; + intcall(0x16, &ireg, ((void *)0)); +} + +/* { dg-final { scan-tree-dump-times "ireg.*ax" 1 "optimized"} } */ + +/* { dg-final { cleanup-tree-dump "optimized" } } */ diff --git a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c index e7cb925e8..72f0115a1 100644 --- a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c +++ b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c @@ -1,6 +1,6 @@ /* { dg-do run { target vect_cmdline_needed } } */ -/* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=4 -fdump-tree-vect-stats" } */ -/* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=4 -fdump-tree-vect-stats -mno-sse" { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=4 -fno-inline -fdump-tree-vect-stats" } */ +/* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=4 -fno-inline -fdump-tree-vect-stats -mno-sse" { target { i?86-*-* x86_64-*-* } } } */ #include <stdlib.h> diff --git a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/integer-addr.c b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/integer-addr.c new file mode 100644 index 000000000..b102a7a52 --- /dev/null +++ b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/integer-addr.c @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-strict-aliasing" } */ +/* Test with fixed address */ +static int *foo = (int *) (unsigned long) 0x7800000; + +int func(void) __attribute__ ((noinline)); + +extern int bar(void); + +int func(void) +{ + if (*foo) { + return 1; + } + return 0; + +} + +int foobar(void) +{ + + if (func()) { + *foo = 1; + } + return func(); +} + +/* { dg-final { scan-tree-dump-times "= func" 2 "optimized" } } */ +/* { dg-final { cleanup-tree-dump "optimized" } } */ diff --git a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c index 58b26e615..1d451e82c 100644 --- a/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c +++ b/gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fno-inline -fdump-tree-optimized" } */ typedef struct { unsigned short a; } A; |