68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=arm -o - | FileCheck %s3 4define void @foo(i32 %i) nounwind {5; CHECK-LABEL: foo:6; CHECK: @ %bb.0: @ %entry7; CHECK-NEXT: push {r11, lr}8; CHECK-NEXT: cmp r0, #79; CHECK-NEXT: beq .LBB0_310; CHECK-NEXT: @ %bb.1: @ %entry11; CHECK-NEXT: cmp r0, #512; CHECK-NEXT: bne .LBB0_413; CHECK-NEXT: @ %bb.2: @ %if.then14; CHECK-NEXT: bl bar15; CHECK-NEXT: pop {r11, lr}16; CHECK-NEXT: b bar17; CHECK-NEXT: .LBB0_3: @ %if.then218; CHECK-NEXT: bl bar19; CHECK-NEXT: .LBB0_4: @ %if.end320; CHECK-NEXT: pop {r11, lr}21; CHECK-NEXT: b bar22entry:23 switch i32 %i, label %if.end3 [24 i32 5, label %if.then25 i32 7, label %if.then226 ]27 28if.then:29 tail call void @bar() #030 br label %if.end331 32if.then2:33 tail call void @bar() #034 br label %if.end335 36if.end3:37 tail call void @bar() #038 ret void39}40 41define void @foo_tail(i1 %i) nounwind {42; CHECK-LABEL: foo_tail:43; CHECK: @ %bb.0: @ %entry44; CHECK-NEXT: tst r0, #145; CHECK-NEXT: beq .LBB1_246; CHECK-NEXT: @ %bb.1: @ %if.then47; CHECK-NEXT: b bar48; CHECK-NEXT: .LBB1_2: @ %if.else49; CHECK-NEXT: b bar50entry:51 br i1 %i, label %if.then, label %if.else52 53if.then:54 tail call void @bar() #055 br label %if.end56 57if.else:58 tail call void @bar() #059 br label %if.end60 61if.end:62 ret void63}64 65declare void @bar()66 67attributes #0 = { nomerge }68