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.