brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 721a957 Raw
241 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s3 4declare i32 @g0(i32)5declare i32 @g1(ptr)6 7define i32 @foo_nounwind(i1 %cmp) nounwind {8; CHECK-LABEL: foo_nounwind:9; CHECK:       // %bb.0:10; CHECK-NEXT:    stp x29, x30, [sp, #-16]! // 16-byte Folded Spill11; CHECK-NEXT:    sub sp, sp, #97, lsl #12 // =39731212; CHECK-NEXT:    sub sp, sp, #268813; CHECK-NEXT:    tbz w0, #0, .LBB0_214; CHECK-NEXT:  // %bb.1: // %br115; CHECK-NEXT:    mov w0, wzr16; CHECK-NEXT:    bl g017; CHECK-NEXT:    add w0, w0, #118; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =39731219; CHECK-NEXT:    add sp, sp, #268820; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload21; CHECK-NEXT:    ret22; CHECK-NEXT:  .LBB0_2: // %br223; CHECK-NEXT:    mov w8, #42 // =0x2a24; CHECK-NEXT:    mov x0, sp25; CHECK-NEXT:    str w8, [sp]26; CHECK-NEXT:    bl g127; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =39731228; CHECK-NEXT:    add sp, sp, #268829; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload30; CHECK-NEXT:    b g031  %ptr = alloca i32, i32 100000, align 432  br i1 %cmp, label %br1, label %br233 34br1:35  %call1 = call i32 @g0(i32 0)36  %rv1 = add i32 %call1, 137  ret i32 %rv138 39br2:40  store i32 42, ptr %ptr, align 441  %call2 = call i32 @g1(ptr %ptr)42  %rv2 = tail call i32 @g0(i32 %call2)43  ret i32 %rv244}45 46define i32 @foo_default(i1 %cmp) {47; CHECK-LABEL: foo_default:48; CHECK:       // %bb.0:49; CHECK-NEXT:    stp x29, x30, [sp, #-16]! // 16-byte Folded Spill50; CHECK-NEXT:    sub sp, sp, #97, lsl #12 // =39731251; CHECK-NEXT:    sub sp, sp, #268852; CHECK-NEXT:    .cfi_def_cfa_offset 40001653; CHECK-NEXT:    .cfi_offset w30, -854; CHECK-NEXT:    .cfi_offset w29, -1655; CHECK-NEXT:    tbz w0, #0, .LBB1_256; CHECK-NEXT:  // %bb.1: // %br157; CHECK-NEXT:    mov w0, wzr58; CHECK-NEXT:    bl g059; CHECK-NEXT:    add w0, w0, #160; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =39731261; CHECK-NEXT:    add sp, sp, #268862; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload63; CHECK-NEXT:    ret64; CHECK-NEXT:  .LBB1_2: // %br265; CHECK-NEXT:    mov w8, #42 // =0x2a66; CHECK-NEXT:    mov x0, sp67; CHECK-NEXT:    str w8, [sp]68; CHECK-NEXT:    bl g169; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =39731270; CHECK-NEXT:    add sp, sp, #268871; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload72; CHECK-NEXT:    b g073  %ptr = alloca i32, i32 100000, align 474  br i1 %cmp, label %br1, label %br275 76br1:77  %call1 = call i32 @g0(i32 0)78  %rv1 = add i32 %call1, 179  ret i32 %rv180 81br2:82  store i32 42, ptr %ptr, align 483  %call2 = call i32 @g1(ptr %ptr)84  %rv2 = tail call i32 @g0(i32 %call2)85  ret i32 %rv286}87 88define i32 @foo_uwtable(i1 %cmp) uwtable {89; CHECK-LABEL: foo_uwtable:90; CHECK:       // %bb.0:91; CHECK-NEXT:    stp x29, x30, [sp, #-16]! // 16-byte Folded Spill92; CHECK-NEXT:    .cfi_def_cfa_offset 1693; CHECK-NEXT:    .cfi_offset w30, -894; CHECK-NEXT:    .cfi_offset w29, -1695; CHECK-NEXT:    sub sp, sp, #97, lsl #12 // =39731296; CHECK-NEXT:    .cfi_def_cfa_offset 39732897; CHECK-NEXT:    sub sp, sp, #268898; CHECK-NEXT:    .cfi_def_cfa_offset 40001699; CHECK-NEXT:    .cfi_remember_state100; CHECK-NEXT:    tbz w0, #0, .LBB2_2101; CHECK-NEXT:  // %bb.1: // %br1102; CHECK-NEXT:    mov w0, wzr103; CHECK-NEXT:    bl g0104; CHECK-NEXT:    add w0, w0, #1105; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312106; CHECK-NEXT:    .cfi_def_cfa_offset 2704107; CHECK-NEXT:    add sp, sp, #2688108; CHECK-NEXT:    .cfi_def_cfa_offset 16109; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload110; CHECK-NEXT:    .cfi_def_cfa_offset 0111; CHECK-NEXT:    .cfi_restore w30112; CHECK-NEXT:    .cfi_restore w29113; CHECK-NEXT:    ret114; CHECK-NEXT:  .LBB2_2: // %br2115; CHECK-NEXT:    .cfi_restore_state116; CHECK-NEXT:    mov w8, #42 // =0x2a117; CHECK-NEXT:    mov x0, sp118; CHECK-NEXT:    str w8, [sp]119; CHECK-NEXT:    bl g1120; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312121; CHECK-NEXT:    .cfi_def_cfa_offset 2704122; CHECK-NEXT:    add sp, sp, #2688123; CHECK-NEXT:    .cfi_def_cfa_offset 16124; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload125; CHECK-NEXT:    .cfi_def_cfa_offset 0126; CHECK-NEXT:    .cfi_restore w30127; CHECK-NEXT:    .cfi_restore w29128; CHECK-NEXT:    b g0129  %ptr = alloca i32, i32 100000, align 4130  br i1 %cmp, label %br1, label %br2131 132br1:133  %call1 = call i32 @g0(i32 0)134  %rv1 = add i32 %call1, 1135  ret i32 %rv1136 137br2:138  store i32 42, ptr %ptr, align 4139  %call2 = call i32 @g1(ptr %ptr)140  %rv2 = tail call i32 @g0(i32 %call2)141  ret i32 %rv2142}143 144define i32 @foo_uwtable_sync(i1 %cmp) uwtable(sync) {145; CHECK-LABEL: foo_uwtable_sync:146; CHECK:       // %bb.0:147; CHECK-NEXT:    stp x29, x30, [sp, #-16]! // 16-byte Folded Spill148; CHECK-NEXT:    sub sp, sp, #97, lsl #12 // =397312149; CHECK-NEXT:    sub sp, sp, #2688150; CHECK-NEXT:    .cfi_def_cfa_offset 400016151; CHECK-NEXT:    .cfi_offset w30, -8152; CHECK-NEXT:    .cfi_offset w29, -16153; CHECK-NEXT:    tbz w0, #0, .LBB3_2154; CHECK-NEXT:  // %bb.1: // %br1155; CHECK-NEXT:    mov w0, wzr156; CHECK-NEXT:    bl g0157; CHECK-NEXT:    add w0, w0, #1158; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312159; CHECK-NEXT:    add sp, sp, #2688160; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload161; CHECK-NEXT:    ret162; CHECK-NEXT:  .LBB3_2: // %br2163; CHECK-NEXT:    mov w8, #42 // =0x2a164; CHECK-NEXT:    mov x0, sp165; CHECK-NEXT:    str w8, [sp]166; CHECK-NEXT:    bl g1167; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312168; CHECK-NEXT:    add sp, sp, #2688169; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload170; CHECK-NEXT:    b g0171  %ptr = alloca i32, i32 100000, align 4172  br i1 %cmp, label %br1, label %br2173 174br1:175  %call1 = call i32 @g0(i32 0)176  %rv1 = add i32 %call1, 1177  ret i32 %rv1178 179br2:180  store i32 42, ptr %ptr, align 4181  %call2 = call i32 @g1(ptr %ptr)182  %rv2 = tail call i32 @g0(i32 %call2)183  ret i32 %rv2184}185 186define i32 @foo_uwtable_async(i1 %cmp) uwtable(async) {187; CHECK-LABEL: foo_uwtable_async:188; CHECK:       // %bb.0:189; CHECK-NEXT:    stp x29, x30, [sp, #-16]! // 16-byte Folded Spill190; CHECK-NEXT:    .cfi_def_cfa_offset 16191; CHECK-NEXT:    .cfi_offset w30, -8192; CHECK-NEXT:    .cfi_offset w29, -16193; CHECK-NEXT:    sub sp, sp, #97, lsl #12 // =397312194; CHECK-NEXT:    .cfi_def_cfa_offset 397328195; CHECK-NEXT:    sub sp, sp, #2688196; CHECK-NEXT:    .cfi_def_cfa_offset 400016197; CHECK-NEXT:    .cfi_remember_state198; CHECK-NEXT:    tbz w0, #0, .LBB4_2199; CHECK-NEXT:  // %bb.1: // %br1200; CHECK-NEXT:    mov w0, wzr201; CHECK-NEXT:    bl g0202; CHECK-NEXT:    add w0, w0, #1203; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312204; CHECK-NEXT:    .cfi_def_cfa_offset 2704205; CHECK-NEXT:    add sp, sp, #2688206; CHECK-NEXT:    .cfi_def_cfa_offset 16207; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload208; CHECK-NEXT:    .cfi_def_cfa_offset 0209; CHECK-NEXT:    .cfi_restore w30210; CHECK-NEXT:    .cfi_restore w29211; CHECK-NEXT:    ret212; CHECK-NEXT:  .LBB4_2: // %br2213; CHECK-NEXT:    .cfi_restore_state214; CHECK-NEXT:    mov w8, #42 // =0x2a215; CHECK-NEXT:    mov x0, sp216; CHECK-NEXT:    str w8, [sp]217; CHECK-NEXT:    bl g1218; CHECK-NEXT:    add sp, sp, #97, lsl #12 // =397312219; CHECK-NEXT:    .cfi_def_cfa_offset 2704220; CHECK-NEXT:    add sp, sp, #2688221; CHECK-NEXT:    .cfi_def_cfa_offset 16222; CHECK-NEXT:    ldp x29, x30, [sp], #16 // 16-byte Folded Reload223; CHECK-NEXT:    .cfi_def_cfa_offset 0224; CHECK-NEXT:    .cfi_restore w30225; CHECK-NEXT:    .cfi_restore w29226; CHECK-NEXT:    b g0227  %ptr = alloca i32, i32 100000, align 4228  br i1 %cmp, label %br1, label %br2229 230br1:231  %call1 = call i32 @g0(i32 0)232  %rv1 = add i32 %call1, 1233  ret i32 %rv1234 235br2:236  store i32 42, ptr %ptr, align 4237  %call2 = call i32 @g1(ptr %ptr)238  %rv2 = tail call i32 @g0(i32 %call2)239  ret i32 %rv2240}241