brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 0a97a81 Raw
165 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=bpfel -mcpu=v1 -- | FileCheck %s3 4@foo_printf.fmt = private unnamed_addr constant [9 x i8] c"hello  \0A\00", align 15 6; Function Attrs: nounwind readnone uwtable7define i32 @foo_int(i32 %a, i32 %b) #0 {8; CHECK-LABEL: foo_int:9; CHECK:       # %bb.0:10; CHECK-NEXT:    r0 = r211; CHECK-NEXT:    r0 += r112; CHECK-NEXT:    exit13  %1 = add nsw i32 %b, %a14  ret i32 %115}16 17; Function Attrs: nounwind readnone uwtable18define signext i8 @foo_char(i8 signext %a, i8 signext %b) #0 {19; CHECK-LABEL: foo_char:20; CHECK:       # %bb.0:21; CHECK-NEXT:    r0 = r222; CHECK-NEXT:    r0 += r123; CHECK-NEXT:    r0 <<= 5624; CHECK-NEXT:    r0 s>>= 5625; CHECK-NEXT:    exit26  %1 = add i8 %b, %a27  ret i8 %128}29 30; Function Attrs: nounwind readnone uwtable31define i64 @foo_ll(i64 %a, i64 %b, i64 %c) #0 {32; CHECK-LABEL: foo_ll:33; CHECK:       # %bb.0:34; CHECK-NEXT:    r0 = r235; CHECK-NEXT:    r0 += r136; CHECK-NEXT:    r0 -= r337; CHECK-NEXT:    exit38  %1 = add nsw i64 %b, %a39  %2 = sub i64 %1, %c40  ret i64 %241}42 43; Function Attrs: nounwind uwtable44define void @foo_call2(i32 %a, i32 %b) #1 {45; CHECK-LABEL: foo_call2:46; CHECK:       # %bb.0:47; CHECK-NEXT:    r3 = r148; CHECK-NEXT:    r2 <<= 5649; CHECK-NEXT:    r2 s>>= 5650; CHECK-NEXT:    r1 = r251; CHECK-NEXT:    r2 = r352; CHECK-NEXT:    call foo_2arg53; CHECK-NEXT:    exit54  %1 = trunc i32 %b to i855  tail call void @foo_2arg(i8 signext %1, i32 %a) #356  ret void57}58 59declare void @foo_2arg(i8 signext, i32) #260 61; Function Attrs: nounwind uwtable62define i32 @foo_call5(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #1 {63; CHECK-LABEL: foo_call5:64; CHECK:       # %bb.0:65; CHECK-NEXT:    call bar66; CHECK-NEXT:    r0 = 067; CHECK-NEXT:    exit68  %1 = tail call i32 @bar(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #369  ret i32 070}71 72declare i32 @bar(i8 signext, i16 signext, i32, i64) #273 74; Function Attrs: nounwind readnone uwtable75define signext i8 @foo_cmp(i8 signext %a, i8 signext %b) #0 {76; CHECK-LABEL: foo_cmp:77; CHECK:       # %bb.0:78; CHECK-NEXT:    r0 = r179; CHECK-NEXT:    if r2 s> r0 goto LBB5_280; CHECK-NEXT:  # %bb.1:81; CHECK-NEXT:    r0 = r282; CHECK-NEXT:  LBB5_2:83; CHECK-NEXT:    exit84  %1 = icmp slt i8 %a, %b85  %a.b = select i1 %1, i8 %a, i8 %b86  ret i8 %a.b87}88 89; Function Attrs: nounwind readnone uwtable90define i32 @foo_muldiv(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #0 {91; CHECK-LABEL: foo_muldiv:92; CHECK:       # %bb.0:93; CHECK-NEXT:    r0 = r294; CHECK-NEXT:    if r1 == 0 goto LBB6_295; CHECK-NEXT:  # %bb.1:96; CHECK-NEXT:    r0 *= r397; CHECK-NEXT:    goto LBB6_398; CHECK-NEXT:  LBB6_2:99; CHECK-NEXT:    r3 <<= 32100; CHECK-NEXT:    r3 >>= 32101; CHECK-NEXT:    r4 <<= 32102; CHECK-NEXT:    r4 >>= 32103; CHECK-NEXT:    r4 /= r3104; CHECK-NEXT:    r0 = r4105; CHECK-NEXT:  LBB6_3:106; CHECK-NEXT:    exit107  %1 = icmp eq i8 %a, 0108  br i1 %1, label %5, label %2109 110; <label>:2                                       ; preds = %0111  %3 = sext i16 %b to i32112  %4 = mul nsw i32 %3, %c113  br label %8114 115; <label>:5                                       ; preds = %0116  %6 = trunc i64 %d to i32117  %7 = udiv i32 %6, %c118  br label %8119 120; <label>:8                                       ; preds = %5, %2121  %.0 = phi i32 [ %4, %2 ], [ %7, %5 ]122  ret i32 %.0123}124 125; Function Attrs: nounwind uwtable126define i32 @foo_optimized() #1 {127; CHECK-LABEL: foo_optimized:128; CHECK:       # %bb.0:129; CHECK-NEXT:    r1 = 1130; CHECK-NEXT:    r2 = 2131; CHECK-NEXT:    r3 = 3132; CHECK-NEXT:    r4 = 4133; CHECK-NEXT:    r5 = 5134; CHECK-NEXT:    call manyarg135; CHECK-NEXT:    exit136  %1 = tail call i32 @manyarg(i32 1, i32 2, i32 3, i32 4, i32 5) #3137  ret i32 %1138}139 140declare i32 @manyarg(i32, i32, i32, i32, i32) #2141 142; Function Attrs: nounwind uwtable143define void @foo_printf() #1 {144; CHECK-LABEL: foo_printf:145; CHECK:       # %bb.0:146; CHECK-NEXT:    r1 = 0147; CHECK-NEXT:    *(u8 *)(r10 - 8) = r1148; CHECK-NEXT:    r1 = 729618802566522216 ll149; CHECK-NEXT:    *(u64 *)(r10 - 16) = r1150; CHECK-NEXT:    r1 = r10151; CHECK-NEXT:    r1 += -16152; CHECK-NEXT:    call printf153; CHECK-NEXT:    exit154  %fmt = alloca [9 x i8], align 1155  call void @llvm.memcpy.p0.p0.i64(ptr %fmt, ptr @foo_printf.fmt, i64 9, i1 false)156  %1 = call i32 (ptr, ...) @printf(ptr %fmt) #3157  ret void158}159 160; Function Attrs: nounwind161declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) #3162 163; Function Attrs: nounwind164declare i32 @printf(ptr nocapture, ...) #4165