diff options
author | Tim Northover <tnorthover@apple.com> | 2017-12-18 10:36:00 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2017-12-18 10:36:00 +0000 |
commit | f66f36e9a4d53da8801a673a78c6ed42c838d37b (patch) | |
tree | b8150d4a25f27ccd8c4a937ee1189429ff185a57 /test/MC | |
parent | b887495d4b1c3c9e168566e6c09f03ff80de930d (diff) |
AArch64: work around how Cyclone handles "movi.2d vD, #0".
For Cylone, the instruction "movi.2d vD, #0" is executed incorrectly in some rare
circumstances. Work around the issue conservatively by avoiding the instruction entirely.
This patch changes CodeGen so that problematic instructions are never
generated, and the AsmParser so that an equivalent instruction is used (with a
warning).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320965 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/AArch64/cyclone-movi-bug.s | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/MC/AArch64/cyclone-movi-bug.s b/test/MC/AArch64/cyclone-movi-bug.s new file mode 100644 index 00000000000..d49aea39269 --- /dev/null +++ b/test/MC/AArch64/cyclone-movi-bug.s @@ -0,0 +1,9 @@ +; RUN: llvm-mc -triple aarch64-apple-ios -mcpu=cyclone %s 2> %t.log | FileCheck %s +; RUN: FileCheck %s --check-prefix=CHECK-ERR < %t.log + + ; CHECK: movi v3.16b, #0 + ; CHECK: movi v7.16b, #0 + ; CHECK-ERR: warning: instruction movi.2d with immediate #0 may not function correctly on this CPU, converting to equivalent movi.16b + ; CHECK-ERR: warning: instruction movi.2d with immediate #0 may not function correctly on this CPU, converting to equivalent movi.16b + movi.2d v3, #0 + movi v7.2d, #0 |