summaryrefslogtreecommitdiff
path: root/test/MC
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2017-12-18 10:36:00 +0000
committerTim Northover <tnorthover@apple.com>2017-12-18 10:36:00 +0000
commitf66f36e9a4d53da8801a673a78c6ed42c838d37b (patch)
treeb8150d4a25f27ccd8c4a937ee1189429ff185a57 /test/MC
parentb887495d4b1c3c9e168566e6c09f03ff80de930d (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.s9
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