This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/68223] New: [arm] arm_[su]min_cmp pattern fails


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68223

            Bug ID: 68223
           Summary: [arm] arm_[su]min_cmp pattern fails
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: michael.collison at linaro dot org
  Target Milestone: ---

The patterns arm_smin_cmp and arm_umin_cmp which were added to optimize code
such as

#define min(x, y) ((x) <= (y)) ? (x) : (y)

unsigned int foo (unsigned int i, unsigned int x ,unsigned int y)
{
  return i < (min (x, y));
}

fail if (i == x) and both are less than y.

Three test cases in testsuite/gcc.dg/vect  

vect-reduc-7.c
vect-reduc-8.c
vect-reduc-9.c

fail execution tests configure with target armeb-none-linux-gnueabihf.

The solution is to remove the patterns from arm.md.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]