This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/81647] inconsistent LTGT behavior at different optimization levels on AArch64.
- From: "wilco at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 19 Sep 2017 17:51:00 +0000
- Subject: [Bug target/81647] inconsistent LTGT behavior at different optimization levels on AArch64.
- Auto-submitted: auto-generated
- References: <bug-81647-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81647
Wilco <wilco at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |wilco at gcc dot gnu.org
--- Comment #6 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to Steve Ellcey from comment #5)
> Looking at the code and the aarch64 documentation, the non-vectorized
> version does the comparisons with fcmp which is defined as a "quiet compare"
> and only generates an exception for signaling NANs. The vectorized version
> uses fcmgt and that is defined to raise exceptions. I am not sure what GCC
> can do here other than manually clear the exceptions that fcmgt raised (Yuk).
Well with -ftrapping-math or -fno-finite-math-only we should emit:
(cmeq(a,a) & cmeq(b,b)) & ~cmeq(a,b)