18779cf68SOliver Stannard; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 28779cf68SOliver Stannard; RUN: llc -mtriple thumbv7a-none-eabi < %s | FileCheck %s 38779cf68SOliver Stannard 48779cf68SOliver Stannard@val0 = global i32 0, align 4 58779cf68SOliver Stannard@val1 = global i32 0, align 4 68779cf68SOliver Stannard@val2 = global i32 0, align 4 78779cf68SOliver Stannard 88779cf68SOliver Stannarddefine i32 @foo(ptr %ctx) { 98779cf68SOliver Stannard; CHECK-LABEL: foo: 108779cf68SOliver Stannard; CHECK: @ %bb.0: @ %entry 118779cf68SOliver Stannard; CHECK-NEXT: cbz r0, .LBB0_2 128779cf68SOliver Stannard; CHECK-NEXT: @ %bb.1: @ %if.end 13*749384c0Sostannard; CHECK-NEXT: movw r12, :lower16:val2 14*749384c0Sostannard; CHECK-NEXT: movw r3, :lower16:val1 158779cf68SOliver Stannard; CHECK-NEXT: movw r2, :lower16:val0 168779cf68SOliver Stannard; CHECK-NEXT: mov r1, r0 178779cf68SOliver Stannard; CHECK-NEXT: movs r0, #0 188779cf68SOliver Stannard; CHECK-NEXT: movt r12, :upper16:val2 198779cf68SOliver Stannard; CHECK-NEXT: movt r3, :upper16:val1 20*749384c0Sostannard; CHECK-NEXT: movt r2, :upper16:val0 21*749384c0Sostannard; CHECK-NEXT: str r2, [r1, #4] 22*749384c0Sostannard; CHECK-NEXT: str r3, [r1, #8] 23*749384c0Sostannard; CHECK-NEXT: str.w r12, [r1, #12] 248779cf68SOliver Stannard; CHECK-NEXT: str r0, [r1, #16] 258779cf68SOliver Stannard; CHECK-NEXT: bx lr 268779cf68SOliver Stannard; CHECK-NEXT: .LBB0_2: @ %if.then 278779cf68SOliver Stannard; CHECK-NEXT: .save {r7, lr} 288779cf68SOliver Stannard; CHECK-NEXT: push {r7, lr} 298779cf68SOliver Stannard; CHECK-NEXT: bl bar 308779cf68SOliver Stannard; CHECK-NEXT: mov.w r0, #-1 318779cf68SOliver Stannard; CHECK-NEXT: pop {r7, pc} 328779cf68SOliver Stannardentry: 338779cf68SOliver Stannard %tobool.not = icmp eq ptr %ctx, null 348779cf68SOliver Stannard br i1 %tobool.not, label %if.then, label %if.end 358779cf68SOliver Stannard 368779cf68SOliver Stannardif.then: ; preds = %entry 378779cf68SOliver Stannard tail call void @bar() #2 388779cf68SOliver Stannard br label %return 398779cf68SOliver Stannard 408779cf68SOliver Stannardif.end: ; preds = %entry 418779cf68SOliver Stannard %cmd_a = getelementptr inbounds i8, ptr %ctx, i32 4 428779cf68SOliver Stannard store ptr @val0, ptr %cmd_a, align 4 438779cf68SOliver Stannard %cmd_b = getelementptr inbounds i8, ptr %ctx, i32 8 448779cf68SOliver Stannard store ptr @val1, ptr %cmd_b, align 4 458779cf68SOliver Stannard %cmd_c = getelementptr inbounds i8, ptr %ctx, i32 12 468779cf68SOliver Stannard store ptr @val2, ptr %cmd_c, align 4 478779cf68SOliver Stannard %cmd_d = getelementptr inbounds i8, ptr %ctx, i32 16 488779cf68SOliver Stannard store ptr null, ptr %cmd_d, align 4 498779cf68SOliver Stannard br label %return 508779cf68SOliver Stannard 518779cf68SOliver Stannardreturn: ; preds = %if.end, %if.then 528779cf68SOliver Stannard %retval.0 = phi i32 [ 0, %if.end ], [ -1, %if.then ] 538779cf68SOliver Stannard ret i32 %retval.0 548779cf68SOliver Stannard} 558779cf68SOliver Stannard 568779cf68SOliver Stannarddeclare void @bar() 57