diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr83330.c | 29 |
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e4ea2377fbe6..5a2684da8085 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-01-15 H.J. Lu <hongjiu.lu@intel.com> + + Backport from mainline + PR target/83330 + * gcc.target/i386/pr83330.c: New test. + 2018-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> Backport from trunk diff --git a/gcc/testsuite/gcc.target/i386/pr83330.c b/gcc/testsuite/gcc.target/i386/pr83330.c new file mode 100644 index 000000000000..9040168377a7 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr83330.c @@ -0,0 +1,29 @@ +/* { dg-do run { target int128 } } */ +/* { dg-options "-O2 -fno-tree-dce -mno-push-args" } */ + +typedef unsigned long long u64; +typedef unsigned __int128 u128; + +u64 v; +u64 g; + +u64 __attribute__ ((noinline, noclone)) +bar (u128 d, u64 e, u64 f, u64 g, u128 h) +{ + (void)d, (void)e, (void)f, (void)g, (void)h; + return 0; +} + +static u64 +foo (void) +{ + (void)(v - bar (0, 0, 0, 0, 0)); + return g; +} + +int +main (void) +{ + (void)foo (); + return 0; +} |