[llvm-bugs] [Bug 31449] New: Miscompile of spec2006/perlbench
via llvm-bugs
llvm-bugs at lists.llvm.org
Wed Dec 21 10:55:59 PST 2016
https://llvm.org/bugs/show_bug.cgi?id=31449
Bug ID: 31449
Summary: Miscompile of spec2006/perlbench
Product: new-bugs
Version: trunk
Hardware: Other
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: mssimpso at codeaurora.org
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
Top-of-trunk is currently miscompiling spec2006/perlbench on AArch64 for "-O1"
and above. For example, with "clang -target=aarch64-linux-none-gnu -O2 ...".
I've bisected the miscompile to:
commit 7b626dfd628404afb5fb410e8cb9eedf8e1722b4
Author: Ehsan Amiri <amehsan at ca.ibm.com>
Date: Thu Dec 15 12:25:13 2016 +0000
[InstCombine] New opportunities for FoldAndOfICmp and FoldXorOfICmp
A number of new patterns for simplifying and/xor of icmp:
(icmp ne %x, 0) ^ (icmp ne %y, 0) => icmp ne %x, %y if the following is true:
1- (%x = and %a, %mask) and (%y = and %b, %mask)
2- %mask is a power of 2.
(icmp eq %x, 0) & (icmp ne %y, 0) => icmp ult %x, %y if the following is true:
1- (%x = and %a, %mask1) and (%y = and %b, %mask2)
2- Let %t be the smallest power of 2 where %mask1 & %t != 0. Then for any
%s that is a power of 2 and %s & %mask2 != 0, we must have %s <= %t.
For example if %mask1 = 24 and %mask2 = 16, setting %s = 16 and %t = 8
violates condition (2) above. So this optimization cannot be applied.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289813
91177308-0d34-0410-b5e6-96231b3b80d8
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161221/5fd49c3a/attachment.html>
More information about the llvm-bugs
mailing list