diff options
Diffstat (limited to 'llvm/test/CodeGen/ARM/atomic-cmpxchg.ll')
| -rw-r--r-- | llvm/test/CodeGen/ARM/atomic-cmpxchg.ll | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/llvm/test/CodeGen/ARM/atomic-cmpxchg.ll b/llvm/test/CodeGen/ARM/atomic-cmpxchg.ll index 364bd5d1369..32cdf4174dd 100644 --- a/llvm/test/CodeGen/ARM/atomic-cmpxchg.ll +++ b/llvm/test/CodeGen/ARM/atomic-cmpxchg.ll @@ -38,14 +38,16 @@ entry: ; CHECK-ARMV6-NEXT: uxtb [[DESIRED:r[0-9]+]], r1 ; CHECK-ARMV6-NEXT: [[TRY:.LBB[0-9_]+]]: ; CHECK-ARMV6-NEXT: ldrexb [[LD:r[0-9]+]], [r0] +; CHECK-ARMV6-NEXT: mov [[RES:r[0-9]+]], #0 ; CHECK-ARMV6-NEXT: cmp [[LD]], [[DESIRED]] -; CHECK-ARMV6-NEXT: movne [[RES:r[0-9]+]], #0 -; CHECK-ARMV6-NEXT: bxne lr +; CHECK-ARMV6-NEXT: bne [[END:.LBB[0-9_]+]] ; CHECK-ARMV6-NEXT: strexb [[SUCCESS:r[0-9]+]], r2, [r0] +; CHECK-ARMV6-NEXT: mov [[RES]], #1 ; CHECK-ARMV6-NEXT: cmp [[SUCCESS]], #0 -; CHECK-ARMV6-NEXT: moveq [[RES]], #1 -; CHECK-ARMV6-NEXT: bxeq lr -; CHECK-ARMV6-NEXT: b [[TRY]] +; CHECK-ARMV6-NEXT: bne [[TRY]] +; CHECK-ARMV6-NEXT: [[END]]: +; CHECK-ARMV6-NEXT: mov r0, [[RES]] +; CHECK-ARMV6-NEXT: bx lr ; CHECK-THUMBV6-LABEL: test_cmpxchg_res_i8: ; CHECK-THUMBV6: mov [[EXPECTED:r[0-9]+]], r1 @@ -62,18 +64,20 @@ entry: ; CHECK-ARMV7-LABEL: test_cmpxchg_res_i8: ; CHECK-ARMV7-NEXT: .fnstart ; CHECK-ARMV7-NEXT: uxtb [[DESIRED:r[0-9]+]], r1 -; CHECK-ARMV7-NEXT: b [[TRY:.LBB[0-9_]+]] -; CHECK-ARMV7-NEXT: [[HEAD:.LBB[0-9_]+]]: -; CHECK-ARMV7-NEXT: strexb [[SUCCESS:r[0-9]+]], r2, [r0] -; CHECK-ARMV7-NEXT: cmp [[SUCCESS]], #0 -; CHECK-ARMV7-NEXT: moveq [[RES:r[0-9]+]], #1 -; CHECK-ARMV7-NEXT: bxeq lr -; CHECK-ARMV7-NEXT: [[TRY]]: +; CHECK-ARMV7-NEXT: [[TRY:.LBB[0-9_]+]]: ; CHECK-ARMV7-NEXT: ldrexb [[LD:r[0-9]+]], [r0] ; CHECK-ARMV7-NEXT: cmp [[LD]], [[DESIRED]] -; CHECK-ARMV7-NEXT: beq [[HEAD]] +; CHECK-ARMV7-NEXT: bne [[FAIL:.LBB[0-9_]+]] +; CHECK-ARMV7-NEXT: strexb [[SUCCESS:r[0-9]+]], r2, [r0] +; CHECK-ARMV7-NEXT: mov [[RES:r[0-9]+]], #1 +; CHECK-ARMV7-NEXT: cmp [[SUCCESS]], #0 +; CHECK-ARMV7-NEXT: bne [[TRY]] +; CHECK-ARMV7-NEXT: b [[END:.LBB[0-9_]+]] +; CHECK-ARMV7-NEXT: [[FAIL]]: ; CHECK-ARMV7-NEXT: clrex ; CHECK-ARMV7-NEXT: mov [[RES]], #0 +; CHECK-ARMV7-NEXT: [[END]]: +; CHECK-ARMV7-NEXT: mov r0, [[RES]] ; CHECK-ARMV7-NEXT: bx lr ; CHECK-THUMBV7-LABEL: test_cmpxchg_res_i8: |

