From 33029fa9d2e4dcf510cc95d42a8bdd178ff083dd Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 23 Oct 2017 21:01:38 +0200 Subject: [PATCH] re PR target/82662 (ifcvt is not performed on double-word compare) PR target/82662 * gcc.target/i386/pr82662.c: New test. From-SVN: r254020 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr82662.c | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr82662.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9705552..0e3a0e3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-10-23 Uros Bizjak + + PR target/82662 + * gcc.target/i386/pr82662.c: New test. + 2017-10-23 Marek Polacek PR c/82681 diff --git a/gcc/testsuite/gcc.target/i386/pr82662.c b/gcc/testsuite/gcc.target/i386/pr82662.c new file mode 100644 index 0000000..8a9332b --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr82662.c @@ -0,0 +1,26 @@ +/* PR target/82580 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +#ifdef __SIZEOF_INT128__ +typedef unsigned __int128 U; +typedef signed __int128 S; +#else +typedef unsigned long long U; +typedef signed long long S; +#endif +void bar (void); +int f0 (U x, U y) { return x == y; } +int f1 (U x, U y) { return x != y; } +int f2 (U x, U y) { return x > y; } +int f3 (U x, U y) { return x >= y; } +int f4 (U x, U y) { return x < y; } +int f5 (U x, U y) { return x <= y; } +int f6 (S x, S y) { return x == y; } +int f7 (S x, S y) { return x != y; } +int f8 (S x, S y) { return x > y; } +int f9 (S x, S y) { return x >= y; } +int f10 (S x, S y) { return x < y; } +int f11 (S x, S y) { return x <= y; } + +/* { dg-final { scan-assembler-times {\mset} 12 } } */ -- 2.7.4