[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / ARM / Windows / mov32t-bundling.ll
blob5f838378fa87ece75cee14972a1739325b73fb60
1 ; RUN: llc -mtriple thumbv7-windows-itanium -filetype asm -o - %s | FileCheck %s
3 @_begin = external global i8
4 @_end = external global i8
6 declare arm_aapcs_vfpcc void @force_emission()
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
12 if.then:
13   tail call arm_aapcs_vfpcc void @force_emission()
14   br label %if.end
16 if.end:
17   ret void
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