OSDN Git Service

[AVR] Fix the 'avr-tiny.ll' and 'avr25.ll' subtarget feature tests
authorDylan McKay <me@dylanmckay.io>
Wed, 12 Jun 2019 08:31:07 +0000 (08:31 +0000)
committerDylan McKay <me@dylanmckay.io>
Wed, 12 Jun 2019 08:31:07 +0000 (08:31 +0000)
commit27a775c1fd5528e9207c3ccae09954a3cbeab441
tree14e5f026877d0d9514de65671508bd4f0d74b945
parent8dcec92474054ac9866a93859aa38b3654389339
[AVR] Fix the 'avr-tiny.ll' and 'avr25.ll' subtarget feature tests

When these tests were originally written, the middle end would introduce
an unnecessary copy from r24:r23->GPR16->r24:r23, and these tests
mistakenly relied on it.

The most optimal codegen for the functions in the test cases before this patch
would be NOPs. This is because the first i16 argument always gets the same register
allocation as an i16 return value in the AVR calling convention.

These tests broke in r362963 when the codegen was improved and the
redundant copy was eliminated. After this, the test functions
were lowered to their optimal form - a 'ret' and nothing else.

This patch prepends an extra i16 operand to each of the test functions
so that a 16-bit copy must be inserted for the program to be correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363131 91177308-0d34-0410-b5e6-96231b3b80d8
test/CodeGen/AVR/features/avr-tiny.ll
test/CodeGen/AVR/features/avr25.ll