This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/68223] New: [arm] arm_[su]min_cmp pattern fails
- From: "michael.collison at linaro dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 05 Nov 2015 20:02:07 +0000
- Subject: [Bug target/68223] New: [arm] arm_[su]min_cmp pattern fails
- Auto-submitted: auto-generated
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.