brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · e225e63 Raw
153 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=powerpc64le -verify-machineinstrs | FileCheck %s3; RUN: llc < %s -mtriple=powerpc64 -mcpu=ppc -verify-machineinstrs | FileCheck %s \4; RUN:   --check-prefix=BE5%struct.__jmp_buf_tag = type { [64 x i64], i32, %struct.__sigset_t, [8 x i8] }6%struct.__sigset_t = type { [16 x i64] }7 8@.str = private unnamed_addr constant [33 x i8] c"Successfully returned from main\0A\00", align 19 10; Function Attrs: nounwind11define dso_local signext i32 @main(i32 signext %argc, ptr nocapture readnone %argv) local_unnamed_addr #0 {12; CHECK-LABEL: main:13; CHECK:       # %bb.0: # %entry14; CHECK-NEXT:    mfocrf 12, 3215; CHECK-NEXT:    std 31, -8(1)16; CHECK-NEXT:    stw 12, 8(1)17; CHECK-NEXT:    mflr 018; CHECK-NEXT:    stdu 1, -784(1)19; CHECK-NEXT:    # kill: def $r3 killed $r3 killed $x320; CHECK-NEXT:    cmpwi 2, 3, 221; CHECK-NEXT:    li 4, 022; CHECK-NEXT:    # kill: def $r4 killed $r4 killed $x423; CHECK-NEXT:    mr 3, 424; CHECK-NEXT:    std 0, 800(1)25; CHECK-NEXT:    mr 31, 126; CHECK-NEXT:    blt 2, .LBB0_327; CHECK-NEXT:  # %bb.1: # %if.end28; CHECK-NEXT:    addi 3, 31, 11229; CHECK-NEXT:    bl _setjmp30; CHECK-NEXT:    nop31; CHECK-NEXT:    # kill: def $r3 killed $r3 killed $x332; CHECK-NEXT:    cmpwi 3, 033; CHECK-NEXT:    crorc 20, 10, 234; CHECK-NEXT:    bc 4, 20, .LBB0_435; CHECK-NEXT:  # %bb.2: # %if.end536; CHECK-NEXT:    addis 3, 2, .L.str@toc@ha37; CHECK-NEXT:    addi 3, 3, .L.str@toc@l38; CHECK-NEXT:    bl printf39; CHECK-NEXT:    nop40; CHECK-NEXT:    # kill: def $r3 killed $r3 killed $x341; CHECK-NEXT:  .LBB0_3: # %return42; CHECK-NEXT:    # kill: def $r3 killed $r3 def $x343; CHECK-NEXT:    addi 1, 31, 78444; CHECK-NEXT:    ld 0, 16(1)45; CHECK-NEXT:    lwz 12, 8(1)46; CHECK-NEXT:    ld 31, -8(1)47; CHECK-NEXT:    mtlr 048; CHECK-NEXT:    mtocrf 32, 1249; CHECK-NEXT:    blr50; CHECK-NEXT:  .LBB0_4: # %if.then351; CHECK-NEXT:    ld 4, 0(1)52; CHECK-NEXT:    stdu 4, -16(1)53; CHECK-NEXT:    addi 3, 1, 9654; CHECK-NEXT:    li 4, -155; CHECK-NEXT:    stb 4, 0(3)56; CHECK-NEXT:    addi 4, 31, 11257; CHECK-NEXT:    bl test58; CHECK-NEXT:    nop59;60; BE-LABEL: main:61; BE:       # %bb.0: # %entry62; BE-NEXT:    mfcr 1263; BE-NEXT:    mflr 064; BE-NEXT:    std 31, -8(1)65; BE-NEXT:    stw 12, 8(1)66; BE-NEXT:    stdu 1, -800(1)67; BE-NEXT:    li 4, 068; BE-NEXT:    # kill: def $r3 killed $r3 killed $x369; BE-NEXT:    # kill: def $r4 killed $r4 killed $x470; BE-NEXT:    cmpwi 2, 3, 271; BE-NEXT:    mr 3, 472; BE-NEXT:    std 0, 816(1)73; BE-NEXT:    mr 31, 174; BE-NEXT:    blt 2, .LBB0_375; BE-NEXT:  # %bb.1: # %if.end76; BE-NEXT:    addi 3, 31, 12877; BE-NEXT:    bl _setjmp78; BE-NEXT:    nop79; BE-NEXT:    # kill: def $r3 killed $r3 killed $x380; BE-NEXT:    cmpwi 3, 081; BE-NEXT:    crorc 20, 10, 282; BE-NEXT:    bc 4, 20, .LBB0_483; BE-NEXT:  # %bb.2: # %if.end584; BE-NEXT:    addis 3, 2, .L.str@toc@ha85; BE-NEXT:    addi 3, 3, .L.str@toc@l86; BE-NEXT:    bl printf87; BE-NEXT:    nop88; BE-NEXT:    # kill: def $r3 killed $r3 killed $x389; BE-NEXT:  .LBB0_3: # %return90; BE-NEXT:    # kill: def $r3 killed $r3 def $x391; BE-NEXT:    addi 1, 31, 80092; BE-NEXT:    ld 0, 16(1)93; BE-NEXT:    lwz 12, 8(1)94; BE-NEXT:    ld 31, -8(1)95; BE-NEXT:    mtlr 096; BE-NEXT:    mtcrf 32, 12 # cr297; BE-NEXT:    blr98; BE-NEXT:  .LBB0_4: # %if.then399; BE-NEXT:    ld 4, 0(1)100; BE-NEXT:    stdu 4, -16(1)101; BE-NEXT:    addi 3, 1, 112102; BE-NEXT:    li 4, -1103; BE-NEXT:    stb 4, 0(3)104; BE-NEXT:    addi 4, 31, 128105; BE-NEXT:    bl test106; BE-NEXT:    nop107entry:108  %env_buffer = alloca [1 x %struct.__jmp_buf_tag], align 16109  %cmp = icmp slt i32 %argc, 2110  br i1 %cmp, label %return, label %if.end111 112if.end:                                           ; preds = %entry113  call void @llvm.lifetime.start.p0(i64 656, ptr nonnull %env_buffer) #5114  %call = call signext i32 @_setjmp(ptr nonnull %env_buffer) #6115  %cmp1 = icmp ne i32 %argc, 2116  %cmp2 = icmp eq i32 %call, 0117  %or.cond = and i1 %cmp1, %cmp2118  br i1 %or.cond, label %if.then3, label %if.end5119 120if.then3:                                         ; preds = %if.end121  %0 = alloca [8 x i8], align 16122  store i8 -1, ptr %0, align 16123  call void @test(ptr nonnull %0, ptr nonnull %env_buffer) #7124  unreachable125 126if.end5:                                          ; preds = %if.end127  %call6 = call signext i32 (ptr, ...) @printf(ptr nonnull dereferenceable(1) @.str)128  call void @llvm.lifetime.end.p0(i64 656, ptr nonnull %env_buffer) #5129  br label %return130 131return:                                           ; preds = %entry, %if.end5132  %retval.0 = phi i32 [ %call6, %if.end5 ], [ 0, %entry ]133  ret i32 %retval.0134}135 136; Function Attrs: argmemonly nofree nosync nounwind willreturn137declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture)138 139; Function Attrs: nounwind returns_twice140declare signext i32 @_setjmp(ptr) local_unnamed_addr141 142; Function Attrs: noreturn143declare void @test(ptr, ptr) local_unnamed_addr144 145; Function Attrs: nofree nounwind146declare noundef signext i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr147 148; Function Attrs: argmemonly nofree nosync nounwind willreturn149declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)150 151attributes #0 = { nounwind }152attributes #6 = { nounwind returns_twice }153