summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2018-11-02 18:22:15 +0000
committerMatthias Braun <matze@braunis.de>2018-11-02 18:22:15 +0000
commit5f7cb79e94e6ad4f34efe1f074956b7aaa05eaef (patch)
tree7a73c5805808a21713ef1450da096f59b9617e43 /llvm/test
parent45a148de854db888b27320b1cbc4d541f304a715 (diff)
downloadbcm5719-llvm-5f7cb79e94e6ad4f34efe1f074956b7aaa05eaef.tar.gz
bcm5719-llvm-5f7cb79e94e6ad4f34efe1f074956b7aaa05eaef.zip
ARMExpandPseudoInsts: Fix CMP_SWAP expansion adding a kill flag to a def
llvm-svn: 346026
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/ARM/cmpxchg.mir24
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/cmpxchg.mir b/llvm/test/CodeGen/ARM/cmpxchg.mir
new file mode 100644
index 00000000000..6ae7e637249
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/cmpxchg.mir
@@ -0,0 +1,24 @@
+# RUN: llc -o - %s -mtriple=armv7-unknown-linux-gnu -verify-machineinstrs -run-pass=arm-pseudo | FileCheck %s
+---
+# CHECK-LABEL: name: func
+name: func
+tracksRegLiveness: true
+body: |
+ bb.0:
+ liveins: $r0_r1, $r4_r5, $r3, $lr
+ dead early-clobber renamable $r0_r1, dead early-clobber renamable $r2 = CMP_SWAP_64 killed renamable $r3, killed renamable $r4_r5, renamable $r4_r5 :: (volatile load store monotonic monotonic 8)
+ ; CHECK: bb.0:
+ ; CHECK: liveins: $r0_r1, $r4_r5, $r3, $lr
+ ; CHECK: bb.1:
+ ; CHEKC: liveins: $r4_r5, $r3
+ ; CHECK: $r0_r1 = LDREXD $r3, 14, $noreg
+ ; CHECK: CMPrr killed $r0, $r4, 14, $noreg, implicit-def $cpsr
+ ; CHECK: CMPrr killed $r1, $r5, 0, killed $cpsr, implicit-def $cpsr
+ ; CHECK: Bcc %bb.3, 1, killed $cpsr
+ ; CHECK: bb.2:
+ ; CHECK: liveins: $r4_r5, $r3
+ ; CHECK: early-clobber $r2 = STREXD $r4_r5, $r3, 14, $noreg
+ ; CHECK: CMPri killed $r2, 0, 14, $noreg, implicit-def $cpsr
+ ; CHECK: Bcc %bb.1, 1, killed $cpsr
+ ; CHECK: bb.3:
+...
OpenPOWER on IntegriCloud