[llvm-commits] [FIX+regression-test] PR13617: LLVM+Clang emits movw instrucionts with -march=armv6zk

Bill Wendling wendling at apple.com
Thu Sep 6 15:23:50 PDT 2012


ENOPATCH.

-bw

On Sep 5, 2012, at 3:13 AM, Stepan Dyatkovskiy <STPWORLD at narod.ru> wrote:

> ping.
> Stepan Dyatkovskiy wrote:
>> ping...
>> Stepan Dyatkovskiy wrote:
>>> ping.
>>> Stepan Dyatkovskiy wrote:
>>>> 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.
>>> 
>> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list