brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 11ee81e Raw
103 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpcspe -verify-machineinstrs < %s | FileCheck %s3 4define void @baz() #0 {5; CHECK-LABEL: baz:6; CHECK:       # %bb.0: # %bb7; CHECK-NEXT:    mflr 08; CHECK-NEXT:    stwu 1, -16(1)9; CHECK-NEXT:    stw 0, 20(1)10; CHECK-NEXT:    mtctr 311; CHECK-NEXT:    .p2align 412; CHECK-NEXT:  .LBB0_1: # %bb113; CHECK-NEXT:    #14; CHECK-NEXT:    bdnz .LBB0_115; CHECK-NEXT:  # %bb.2: # %bb816; CHECK-NEXT:    bl wibble17; CHECK-NEXT:    lwz 0, 20(1)18; CHECK-NEXT:    addi 1, 1, 1619; CHECK-NEXT:    mtlr 020; CHECK-NEXT:    blr21bb:22  br label %bb123 24bb1:25  %tmp = phi i32 [ %tmp6, %bb1 ], [ undef, %bb ]26  %tmp2 = phi i32 [ %tmp3, %bb1 ], [ undef, %bb ]27  %tmp3 = add nsw i32 %tmp2, 128  %tmp4 = sitofp i32 %tmp to double29  %tmp5 = tail call double @llvm.fmuladd.f64(double 0.000000e+00, double -0.000000e+00, double %tmp4)30  %tmp6 = fptosi double %tmp5 to i3231  %tmp7 = icmp eq i32 %tmp2, 032  br i1 %tmp7, label %bb8, label %bb133 34bb8:35  call void @wibble(i32 %tmp6)36  ret void37}38 39define void @wombat() #0 {40; CHECK-LABEL: wombat:41; CHECK:       # %bb.0: # %bb42; CHECK-NEXT:    mflr 043; CHECK-NEXT:    stwu 1, -48(1)44; CHECK-NEXT:    li 3, .LCPI1_0@l45; CHECK-NEXT:    li 5, .LCPI1_1@l46; CHECK-NEXT:    lis 4, .LCPI1_0@ha47; CHECK-NEXT:    lis 6, .LCPI1_1@ha48; CHECK-NEXT:    stw 0, 52(1)49; CHECK-NEXT:    evstdd 29, 8(1) # 8-byte Folded Spill50; CHECK-NEXT:    evstdd 30, 16(1) # 8-byte Folded Spill51; CHECK-NEXT:    evlddx 30, 4, 352; CHECK-NEXT:    # implicit-def: $r353; CHECK-NEXT:    evlddx 29, 6, 554; CHECK-NEXT:    stw 28, 32(1) # 4-byte Folded Spill55; CHECK-NEXT:    # implicit-def: $r2856; CHECK-NEXT:    .p2align 457; CHECK-NEXT:  .LBB1_1: # %bb158; CHECK-NEXT:    #59; CHECK-NEXT:    efdcfsi 8, 360; CHECK-NEXT:    evmergehi 3, 30, 3061; CHECK-NEXT:    evmergehi 5, 29, 2962; CHECK-NEXT:    mr 4, 3063; CHECK-NEXT:    mr 6, 2964; CHECK-NEXT:    evmergehi 7, 8, 865; CHECK-NEXT:    bl fma66; CHECK-NEXT:    evmergelo 3, 3, 467; CHECK-NEXT:    addi 28, 28, -168; CHECK-NEXT:    cmplwi 28, 069; CHECK-NEXT:    efdctsiz 3, 370; CHECK-NEXT:    bc 12, 1, .LBB1_171; CHECK-NEXT:  # %bb.2: # %bb872; CHECK-NEXT:    bl wibble73; CHECK-NEXT:    evldd 30, 16(1) # 8-byte Folded Reload74; CHECK-NEXT:    evldd 29, 8(1) # 8-byte Folded Reload75; CHECK-NEXT:    lwz 28, 32(1) # 4-byte Folded Reload76; CHECK-NEXT:    lwz 0, 52(1)77; CHECK-NEXT:    addi 1, 1, 4878; CHECK-NEXT:    mtlr 079; CHECK-NEXT:    blr80bb:81  br label %bb182 83bb1:84  %tmp = phi i32 [ %tmp6, %bb1 ], [ undef, %bb ]85  %tmp2 = phi i32 [ %tmp3, %bb1 ], [ undef, %bb ]86  %tmp3 = add nsw i32 %tmp2, 187  %tmp4 = sitofp i32 %tmp to double88  %tmp5 = tail call double @llvm.fma.f64(double 0.000000e+00, double -0.000000e+00, double %tmp4)89  %tmp6 = fptosi double %tmp5 to i3290  %tmp7 = icmp eq i32 %tmp2, 091  br i1 %tmp7, label %bb8, label %bb192 93bb8:94  call void @wibble(i32 %tmp6)95  ret void96}97 98declare void @wibble(i32)99declare double @llvm.fmuladd.f64(double, double, double)100declare double @llvm.fma.f64(double, double, double)101 102attributes #0 = { nounwind }103