1 ; RUN: llc -verify-machineinstrs -mtriple=armebv8-linux-gnueabi -O0 %s -o - | FileCheck %s
3 @x = global i64 10, align 8
4 @y = global i64 20, align 8
5 @z = global i64 20, align 8
8 ; CHECK: ldr [[R2:r[0-9]+]], {{\[}}[[R1:r[0-9]+]]{{\]}}
9 ; CHECK-NEXT: ldr [[R1]], {{\[}}[[R1]], #4]
10 ; CHECK: mov [[R4:r[0-9]+]], [[R2]]
11 ; CHECK-NEXT: mov [[R5:r[0-9]+]], [[R1]]
12 ; CHECK: ldr [[R2]], {{\[}}[[R1]]{{\]}}
13 ; CHECK-NEXT: ldr [[R1]], {{\[}}[[R1]], #4]
14 ; CHECK: mov [[R6:r[0-9]+]], [[R2]]
15 ; CHECK-NEXT: mov [[R7:r[0-9]+]], [[R1]]
17 define arm_aapcs_vfpcc i32 @main() #0 {
19 %retval = alloca i32, align 4
20 store i32 0, i32* %retval, align 4
21 %0 = load i64, i64* @z, align 8
22 %1 = load i64, i64* @x, align 8
23 %2 = cmpxchg i64* @y, i64 %0, i64 %1 seq_cst seq_cst
24 %3 = extractvalue { i64, i1 } %2, 1