diff options
author | Richard Biener <rguenther@suse.de> | 2020-06-12 13:02:56 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-06-12 13:05:30 +0200 |
commit | 4544793ef618484b2cc753a4635ab79b361f8df8 (patch) | |
tree | 144e65669009c39b1605041bcc44d888e8f5e8e5 /gcc | |
parent | d30846a02eb9ea43b61311e74fbf05692ffefba2 (diff) | |
download | gcc-4544793ef618484b2cc753a4635ab79b361f8df8.zip gcc-4544793ef618484b2cc753a4635ab79b361f8df8.tar.gz gcc-4544793ef618484b2cc753a4635ab79b361f8df8.tar.bz2 |
testcase for shared DR alignment
This adds a reduced C testcase from libgomp.fortran/examples-4/target-1.f90
and libgomp.fortran/examples-4/target_data-1.f90 FAILs, showing a case
of SLP instance stmt sharing that affects the shared dataref alignment
info.
2020-06-12 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/bb-slp-44.c: New testcase.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-44.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-44.c b/gcc/testsuite/gcc.dg/vect/bb-slp-44.c new file mode 100644 index 0000000..dfa0a5e --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-44.c @@ -0,0 +1,41 @@ +/* { dg-do run } */ + +typedef struct { + unsigned long a; + unsigned long b; + unsigned long c; +} data_o; +typedef struct { + unsigned long c; + unsigned long gap1; + unsigned long b; + unsigned long gap2; + unsigned long a; + unsigned long x; +} data_i; + +volatile unsigned long gx; +void __attribute__((noipa)) +bar(unsigned long x) +{ + gx = x; +} + +void __attribute__((noipa)) +foo(data_o *o, data_i *i) +{ + o->a = i->a; + o->b = i->b; + o->c = i->c; + bar (i->x); +} + +int main() +{ + unsigned long data[9]; + if ((__UINTPTR_TYPE__)data & 15 != 0) + foo ((data_o *)&data[6], (data_i *)data); + else + foo ((data_o *)data, (data_i *)&data[3]); + return 0; +} |