54 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon -O2 < %s | FileCheck %s3 4; Check that we don't generate .falign directives after function calls at O2.5; We need more than one basic block for this test because MachineBlockPlacement6; will not run on single basic block functions.7 8declare i32 @f0()9 10; We don't want faligns after the calls to foo.11 12define i32 @f1(i32 %a0) #0 {13; CHECK-LABEL: f1:14; CHECK: // %bb.0: // %b015; CHECK-NEXT: {16; CHECK-NEXT: if (!p0.new) r0 = add(r0,#5)17; CHECK-NEXT: p0 = cmp.eq(r0,#0)18; CHECK-NEXT: if (!p0.new) jumpr:nt r3119; CHECK-NEXT: }20; CHECK-NEXT: .LBB0_1: // %b121; CHECK-NEXT: {22; CHECK-NEXT: call f023; CHECK-NEXT: memd(r29+#-16) = r17:1624; CHECK-NEXT: allocframe(#8)25; CHECK-NEXT: } // 8-byte Folded Spill26; CHECK-NEXT: {27; CHECK-NEXT: call f028; CHECK-NEXT: r16 = r029; CHECK-NEXT: }30; CHECK-NEXT: {31; CHECK-NEXT: r0 = add(r16,r0)32; CHECK-NEXT: r17:16 = memd(r29+#0)33; CHECK-NEXT: deallocframe34; CHECK-NEXT: } // 8-byte Folded Reload35; CHECK-NEXT: {36; CHECK-NEXT: jumpr r3137; CHECK-NEXT: }38b0:39 %v0 = icmp eq i32 %a0, 040 br i1 %v0, label %b1, label %b241 42b1: ; preds = %b043 %v1 = call i32 @f0()44 %v2 = call i32 @f0()45 %v3 = add i32 %v1, %v246 ret i32 %v347 48b2: ; preds = %b049 %v4 = add i32 %a0, 550 ret i32 %v451}52 53attributes #0 = { nounwind }54