brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.6 KiB · b610f12 Raw
315 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \3; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s4; RUN: llc -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \5; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s \6; RUN:   -check-prefix=CHECK-P97 8define void @julia__typed_vcat_20() #0 {9; CHECK-LABEL: julia__typed_vcat_20:10; CHECK:       # %bb.0: # %bb11; CHECK-NEXT:    mflr r012; CHECK-NEXT:    std r30, -16(r1) # 8-byte Folded Spill13; CHECK-NEXT:    stdu r1, -48(r1)14; CHECK-NEXT:    li r30, 015; CHECK-NEXT:    li r3, 116; CHECK-NEXT:    std r0, 64(r1)17; CHECK-NEXT:    .p2align 418; CHECK-NEXT:  .LBB0_1: # %bb319; CHECK-NEXT:    #20; CHECK-NEXT:    addi r3, r3, -121; CHECK-NEXT:    mtfprd f0, r322; CHECK-NEXT:    xscvsxdsp f1, f023; CHECK-NEXT:    bl __truncsfhf224; CHECK-NEXT:    nop25; CHECK-NEXT:    clrldi r3, r3, 4826; CHECK-NEXT:    bl __extendhfsf227; CHECK-NEXT:    nop28; CHECK-NEXT:    addi r30, r30, -129; CHECK-NEXT:    li r3, 030; CHECK-NEXT:    cmpldi r30, 031; CHECK-NEXT:    bc 12, gt, .LBB0_132; CHECK-NEXT:  # %bb.2: # %bb1133; CHECK-NEXT:    bl __truncsfhf234; CHECK-NEXT:    nop35; CHECK-NEXT:    sth r3, 128(0)36;37; CHECK-P9-LABEL: julia__typed_vcat_20:38; CHECK-P9:       # %bb.0: # %bb39; CHECK-P9-NEXT:    li r3, 040; CHECK-P9-NEXT:    mtctr r341; CHECK-P9-NEXT:    li r3, 142; CHECK-P9-NEXT:    .p2align 443; CHECK-P9-NEXT:  .LBB0_1: # %bb344; CHECK-P9-NEXT:    #45; CHECK-P9-NEXT:    addi r3, r3, -146; CHECK-P9-NEXT:    mtfprd f0, r347; CHECK-P9-NEXT:    xscvsxdsp f0, f048; CHECK-P9-NEXT:    xscvdphp f0, f049; CHECK-P9-NEXT:    mffprwz r3, f050; CHECK-P9-NEXT:    clrlwi r3, r3, 1651; CHECK-P9-NEXT:    mtfprwz f0, r352; CHECK-P9-NEXT:    li r3, 053; CHECK-P9-NEXT:    xscvhpdp f0, f054; CHECK-P9-NEXT:    bdnz .LBB0_155; CHECK-P9-NEXT:  # %bb.2: # %bb1156; CHECK-P9-NEXT:    xscvdphp f0, f057; CHECK-P9-NEXT:    li r3, 12858; CHECK-P9-NEXT:    stxsihx f0, 0, r359bb:60  %i = load i64, ptr addrspace(11) null, align 861  %i1 = call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %i, i64 0)62  %i2 = extractvalue { i64, i1 } %i1, 063  br label %bb364 65bb3:                                              ; preds = %bb3, %bb66  %i4 = phi i64 [ %i10, %bb3 ], [ 1, %bb ]67  %i5 = phi i64 [ 0, %bb3 ], [ 1, %bb ]68  %i6 = add nsw i64 %i5, -169  %i7 = add i64 %i6, 070  %i8 = sitofp i64 %i7 to half71  store half %i8, ptr addrspace(13) inttoptr (i64 128 to ptr addrspace(13)), align 272  %i9 = icmp eq i64 %i4, 073  %i10 = add i64 %i4, 174  br i1 %i9, label %bb11, label %bb375 76bb11:                                             ; preds = %bb377  unreachable78}79 80declare { i64, i1 } @llvm.ssub.with.overflow.i64(i64, i64) #081 82define void @julia__hypot_17() #0 {83; CHECK-LABEL: julia__hypot_17:84; CHECK:       # %bb.0: # %bb85; CHECK-NEXT:    mflr r086; CHECK-NEXT:    std r30, -16(r1) # 8-byte Folded Spill87; CHECK-NEXT:    stdu r1, -48(r1)88; CHECK-NEXT:    li r30, 389; CHECK-NEXT:    std r0, 64(r1)90; CHECK-NEXT:    .p2align 591; CHECK-NEXT:  .LBB1_1: # %bb192; CHECK-NEXT:    #93; CHECK-NEXT:    addi r30, r30, -194; CHECK-NEXT:    cmpldi r30, 095; CHECK-NEXT:    bc 4, gt, .LBB1_396; CHECK-NEXT:  # %bb.2: # %bb397; CHECK-NEXT:    #98; CHECK-NEXT:    lhz r3, 0(0)99; CHECK-NEXT:    bl __extendhfsf2100; CHECK-NEXT:    nop101; CHECK-NEXT:    fcmpu cr0, f1, f1102; CHECK-NEXT:    bun cr0, .LBB1_1103; CHECK-NEXT:  .LBB1_3: # %bb9104; CHECK-NEXT:    addi r1, r1, 48105; CHECK-NEXT:    ld r0, 16(r1)106; CHECK-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload107; CHECK-NEXT:    mtlr r0108; CHECK-NEXT:    blr109;110; CHECK-P9-LABEL: julia__hypot_17:111; CHECK-P9:       # %bb.0: # %bb112; CHECK-P9-NEXT:    li r3, 3113; CHECK-P9-NEXT:    mtctr r3114; CHECK-P9-NEXT:    li r3, 0115; CHECK-P9-NEXT:    .p2align 5116; CHECK-P9-NEXT:  .LBB1_1: # %bb1117; CHECK-P9-NEXT:    #118; CHECK-P9-NEXT:    bdzlr119; CHECK-P9-NEXT:  # %bb.2: # %bb3120; CHECK-P9-NEXT:    #121; CHECK-P9-NEXT:    lxsihzx f0, 0, r3122; CHECK-P9-NEXT:    xscvhpdp f0, f0123; CHECK-P9-NEXT:    fcmpu cr0, f0, f0124; CHECK-P9-NEXT:    bun cr0, .LBB1_1125; CHECK-P9-NEXT:  # %bb.3: # %bb9126; CHECK-P9-NEXT:    blr127bb:128  br label %bb1129 130bb1:                                              ; preds = %bb3, %bb131  %i = phi i64 [ %i4, %bb3 ], [ 2, %bb ]132  %i2 = icmp eq i64 %i, 4133  br i1 %i2, label %bb9, label %bb3134 135bb3:                                              ; preds = %bb1136  %i4 = add nuw nsw i64 %i, 1137  %i5 = load half, ptr null, align 2138  %i6 = fpext half %i5 to float139  %i7 = fcmp uno float %i6, 0.000000e+00140  %i8 = or i1 %i7, false141  br i1 %i8, label %bb1, label %bb9142 143bb9:                                              ; preds = %bb3, %bb1144  ret void145}146 147define void @func_48786() #0 {148; CHECK-LABEL: func_48786:149; CHECK:       # %bb.0: # %bb150; CHECK-NEXT:    mfocrf r12, 32151; CHECK-NEXT:    stw r12, 8(r1)152; CHECK-NEXT:    mflr r0153; CHECK-NEXT:    stdu r1, -48(r1)154; CHECK-NEXT:    std r0, 64(r1)155; CHECK-NEXT:    std r30, 32(r1) # 8-byte Folded Spill156; CHECK-NEXT:    # implicit-def: $x30157; CHECK-NEXT:    ld r3, 0(r3)158; CHECK-NEXT:    cmpdi r3, 0159; CHECK-NEXT:    crnot 4*cr2+lt, eq160; CHECK-NEXT:    b .LBB2_2161; CHECK-NEXT:    .p2align 4162; CHECK-NEXT:  .LBB2_1: # %bb10163; CHECK-NEXT:    #164; CHECK-NEXT:    addi r30, r30, -1165; CHECK-NEXT:    cmpldi r30, 0166; CHECK-NEXT:    bc 4, gt, .LBB2_5167; CHECK-NEXT:  .LBB2_2: # %bb2168; CHECK-NEXT:    #169; CHECK-NEXT:    bc 12, 4*cr5+lt, .LBB2_1170; CHECK-NEXT:  # %bb.3: # %bb4171; CHECK-NEXT:    #172; CHECK-NEXT:    lhz r3, 0(r3)173; CHECK-NEXT:    bl __extendhfsf2174; CHECK-NEXT:    nop175; CHECK-NEXT:    bc 4, 4*cr2+lt, .LBB2_6176; CHECK-NEXT:  # %bb.4: # %bb8177; CHECK-NEXT:    #178; CHECK-NEXT:    bl __truncsfhf2179; CHECK-NEXT:    nop180; CHECK-NEXT:    sth r3, 0(0)181; CHECK-NEXT:    b .LBB2_1182; CHECK-NEXT:  .LBB2_5: # %bb14183; CHECK-NEXT:    ld r30, 32(r1) # 8-byte Folded Reload184; CHECK-NEXT:    addi r1, r1, 48185; CHECK-NEXT:    ld r0, 16(r1)186; CHECK-NEXT:    lwz r12, 8(r1)187; CHECK-NEXT:    mtlr r0188; CHECK-NEXT:    mtocrf 32, r12189; CHECK-NEXT:    blr190; CHECK-NEXT:  .LBB2_6: # %bb15191;192; CHECK-P9-LABEL: func_48786:193; CHECK-P9:       # %bb.0: # %bb194; CHECK-P9-NEXT:    ld r3, 0(r3)195; CHECK-P9-NEXT:    cmpdi r3, 0196; CHECK-P9-NEXT:    mtctr r3197; CHECK-P9-NEXT:    li r3, 0198; CHECK-P9-NEXT:    crnot 4*cr5+lt, eq199; CHECK-P9-NEXT:    b .LBB2_2200; CHECK-P9-NEXT:    .p2align 5201; CHECK-P9-NEXT:  .LBB2_1: # %bb10202; CHECK-P9-NEXT:    #203; CHECK-P9-NEXT:    bdzlr204; CHECK-P9-NEXT:  .LBB2_2: # %bb2205; CHECK-P9-NEXT:    #206; CHECK-P9-NEXT:    bc 12, 4*cr5+lt, .LBB2_1207; CHECK-P9-NEXT:  # %bb.3: # %bb4208; CHECK-P9-NEXT:    #209; CHECK-P9-NEXT:    lxsihzx f0, 0, r3210; CHECK-P9-NEXT:    xscvhpdp f0, f0211; CHECK-P9-NEXT:    bc 4, 4*cr5+lt, .LBB2_5212; CHECK-P9-NEXT:  # %bb.4: # %bb8213; CHECK-P9-NEXT:    #214; CHECK-P9-NEXT:    xscvdphp f0, f0215; CHECK-P9-NEXT:    stxsihx f0, 0, r3216; CHECK-P9-NEXT:    b .LBB2_1217; CHECK-P9-NEXT:  .LBB2_5: # %bb15218bb:219  %i = load i64, ptr addrspace(11) undef, align 8220  %i1 = load i64, ptr addrspace(11) undef, align 8221  br label %bb2222 223bb2:                                              ; preds = %bb12, %bb224  %i3 = phi i64 [ undef, %bb ], [ %i13, %bb12 ]225  br i1 undef, label %bb10, label %bb4226 227bb4:                                              ; preds = %bb2228  switch i32 undef, label %bb9 [229    i32 1426063360, label %bb5230    i32 1275068416, label %bb5231  ]232 233bb5:                                              ; preds = %bb4, %bb4234  %i6 = load half, ptr addrspace(13) undef, align 2235  %i7 = icmp ult i64 0, %i1236  br i1 %i7, label %bb8, label %bb15237 238bb8:                                              ; preds = %bb5239  store half %i6, ptr addrspace(13) null, align 2240  br label %bb10241 242bb9:                                              ; preds = %bb4243  unreachable244 245bb10:                                             ; preds = %bb8, %bb2246  %i11 = icmp eq i64 %i3, 0247  br i1 %i11, label %bb14, label %bb12248 249bb12:                                             ; preds = %bb10250  %i13 = add i64 %i3, 1251  br label %bb2252 253bb14:                                             ; preds = %bb10254  ret void255 256bb15:                                             ; preds = %bb5257  unreachable258}259 260define void @func_48785(half %arg) #0 {261; CHECK-LABEL: func_48785:262; CHECK:       # %bb.0: # %bb263; CHECK-NEXT:    mflr r0264; CHECK-NEXT:    std r29, -32(r1) # 8-byte Folded Spill265; CHECK-NEXT:    std r30, -24(r1) # 8-byte Folded Spill266; CHECK-NEXT:    stfd f31, -8(r1) # 8-byte Folded Spill267; CHECK-NEXT:    stdu r1, -64(r1)268; CHECK-NEXT:    fmr f31, f1269; CHECK-NEXT:    li r3, 1270; CHECK-NEXT:    li r29, 0271; CHECK-NEXT:    std r0, 80(r1)272; CHECK-NEXT:    rldic r30, r3, 62, 1273; CHECK-NEXT:    .p2align 5274; CHECK-NEXT:  .LBB3_1: # %bb1275; CHECK-NEXT:    #276; CHECK-NEXT:    fmr f1, f31277; CHECK-NEXT:    bl __truncsfhf2278; CHECK-NEXT:    nop279; CHECK-NEXT:    addi r30, r30, -1280; CHECK-NEXT:    sth r3, 0(r29)281; CHECK-NEXT:    addi r29, r29, 24282; CHECK-NEXT:    cmpldi r30, 0283; CHECK-NEXT:    bc 12, gt, .LBB3_1284; CHECK-NEXT:  # %bb.2: # %bb5285;286; CHECK-P9-LABEL: func_48785:287; CHECK-P9:       # %bb.0: # %bb288; CHECK-P9-NEXT:    li r3, 1289; CHECK-P9-NEXT:    rldic r3, r3, 62, 1290; CHECK-P9-NEXT:    mtctr r3291; CHECK-P9-NEXT:    li r3, 0292; CHECK-P9-NEXT:    .p2align 4293; CHECK-P9-NEXT:  .LBB3_1: # %bb1294; CHECK-P9-NEXT:    #295; CHECK-P9-NEXT:    xscvdphp f0, f1296; CHECK-P9-NEXT:    stxsihx f0, 0, r3297; CHECK-P9-NEXT:    addi r3, r3, 24298; CHECK-P9-NEXT:    bdnz .LBB3_1299; CHECK-P9-NEXT:  # %bb.2: # %bb5300bb:301  br label %bb1302 303bb1:                                              ; preds = %bb1, %bb304  %i = phi i64 [ 0, %bb ], [ %i3, %bb1 ]305  %i2 = getelementptr inbounds half, ptr addrspace(13) null, i64 %i306  store half %arg, ptr addrspace(13) %i2, align 2307  %i3 = add i64 %i, 12308  %i4 = icmp eq i64 %i3, 0309  br i1 %i4, label %bb5, label %bb1310 311bb5:                                              ; preds = %bb1312  unreachable313}314attributes #0 = { nounwind }315