[llvm-commits] [FIX+regression-test] PR13617: LLVM+Clang emits movw instrucionts with -march=armv6zk
Stepan Dyatkovskiy
stpworld at narod.ru
Wed Aug 29 07:00:50 PDT 2012
Hi all!
The bug is fired when dag-to-dag isel meets 'add' instruction with
second operand that is negative number less than -256. E.g.:
add %var, -1000
ARM dag-to-dag instruction selector matches the pattern that emits
(sub %var (MOVi16 Rd, 1000))
After fast TableGen learning, I found that it ignores instruction
predicates for patterns (ARMPat, ARMV6Pat and so on) while generating
MatcherTable. So it ignores restrictions defined for MOVi16 instruction
(ARMv6t2 and higher).
I also found that for several patterns this behaviour compensated by
adding 'Requires' predicate explicitly. So, I did the same in this
patch. Please find the patch in attachment for review.
-Stepan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr13617.patch
Type: text/x-patch
Size: 1862 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120829/3c7bb3d5/attachment.bin>
More information about the llvm-commits
mailing list