Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / test / CodeGen / ARM / Windows / mov32t-bundling.ll
1 ; RUN: llc -mtriple thumbv7-windows-itanium -filetype asm -o - %s | FileCheck %s
2
3 @_begin = external global i8
4 @_end = external global i8
5
6 declare arm_aapcs_vfpcc void @force_emission()
7
8 define arm_aapcs_vfpcc void @bundle() {
9 entry:
10   br i1 icmp uge (i32 sub (i32 ptrtoint (i8* @_end to i32), i32 ptrtoint (i8* @_begin to i32)), i32 4), label %if.then, label %if.end
11
12 if.then:
13   tail call arm_aapcs_vfpcc void @force_emission()
14   br label %if.end
15
16 if.end:
17   ret void
18 }
19
20 ; CHECK-LABEL: bundle
21 ; CHECK-NOT: subs r0, r1, r0
22 ; CHECK: movw r0, :lower16:_begin
23 ; CHECK-NEXT: movt r0, :upper16:_begin
24 ; CHECK-NEXT: movw r1, :lower16:_end
25 ; CHECK-NEXT: movt r1, :upper16:_end
26 ; CHECK-NEXT: subs r0, r1, r0
27 ; CHECK-NEXT: cmp r0, #4
28