brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.3 KiB · f6bc32a Raw
312 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=mips-unknown-linux-gnu -mcpu=mips32   < %s | FileCheck %s -check-prefixes=MIPS323; RUN: llc -mtriple=mips-unknown-linux-gnu -mcpu=mips32r2 < %s | FileCheck %s -check-prefixes=MIPS32R24; RUN: llc -mtriple=mips-unknown-linux-gnu -mcpu=mips32r6 < %s | FileCheck %s -check-prefixes=MIPS32r65; RUN: llc -mtriple=mips64-unknown-linux-gnu -mcpu=mips4    < %s | FileCheck %s -check-prefixes=MIPS46; RUN: llc -mtriple=mips64-unknown-linux-gnu -mcpu=mips64   < %s | FileCheck %s -check-prefixes=MIPS647; RUN: llc -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r2 < %s | FileCheck %s -check-prefixes=MIPS64R28; RUN: llc -mtriple=mips64-unknown-linux-gnu -mcpu=mips64r6 < %s | FileCheck %s -check-prefixes=MIPS64R69 10define double @foo(double %a, double %b) nounwind readnone {11; MIPS32-LABEL: foo:12; MIPS32:       # %bb.0: # %entry13; MIPS32-NEXT:    mtc1 $zero, $f214; MIPS32-NEXT:    mtc1 $zero, $f315; MIPS32-NEXT:    c.ule.d $f12, $f216; MIPS32-NEXT:    bc1f $BB0_217; MIPS32-NEXT:    mov.d $f0, $f1218; MIPS32-NEXT:  # %bb.1: # %if.else19; MIPS32-NEXT:    mtc1 $zero, $f020; MIPS32-NEXT:    mtc1 $zero, $f121; MIPS32-NEXT:    c.ule.d $f14, $f022; MIPS32-NEXT:    bc1t $BB0_323; MIPS32-NEXT:    nop24; MIPS32-NEXT:  $BB0_2: # %if.end625; MIPS32-NEXT:    sub.d $f0, $f14, $f026; MIPS32-NEXT:    add.d $f0, $f0, $f027; MIPS32-NEXT:  $BB0_3: # %return28; MIPS32-NEXT:    jr $ra29; MIPS32-NEXT:    nop30;31; MIPS32R2-LABEL: foo:32; MIPS32R2:       # %bb.0: # %entry33; MIPS32R2-NEXT:    mov.d $f0, $f1234; MIPS32R2-NEXT:    mtc1 $zero, $f235; MIPS32R2-NEXT:    mthc1 $zero, $f236; MIPS32R2-NEXT:    c.ule.d $f12, $f237; MIPS32R2-NEXT:    bc1f $BB0_238; MIPS32R2-NEXT:    nop39; MIPS32R2-NEXT:  # %bb.1: # %if.else40; MIPS32R2-NEXT:    mtc1 $zero, $f041; MIPS32R2-NEXT:    mthc1 $zero, $f042; MIPS32R2-NEXT:    c.ule.d $f14, $f043; MIPS32R2-NEXT:    bc1t $BB0_344; MIPS32R2-NEXT:    nop45; MIPS32R2-NEXT:  $BB0_2: # %if.end646; MIPS32R2-NEXT:    sub.d $f0, $f14, $f047; MIPS32R2-NEXT:    add.d $f0, $f0, $f048; MIPS32R2-NEXT:  $BB0_3: # %return49; MIPS32R2-NEXT:    jr $ra50; MIPS32R2-NEXT:    nop51;52; MIPS32r6-LABEL: foo:53; MIPS32r6:       # %bb.0: # %entry54; MIPS32r6-NEXT:    mov.d $f0, $f1255; MIPS32r6-NEXT:    mtc1 $zero, $f156; MIPS32r6-NEXT:    mthc1 $zero, $f157; MIPS32r6-NEXT:    cmp.lt.d $f1, $f1, $f1258; MIPS32r6-NEXT:    mfc1 $1, $f159; MIPS32r6-NEXT:    andi $1, $1, 160; MIPS32r6-NEXT:    bnezc $1, $BB0_261; MIPS32r6-NEXT:  # %bb.1: # %if.else62; MIPS32r6-NEXT:    mtc1 $zero, $f063; MIPS32r6-NEXT:    mthc1 $zero, $f064; MIPS32r6-NEXT:    cmp.ule.d $f1, $f14, $f065; MIPS32r6-NEXT:    mfc1 $1, $f166; MIPS32r6-NEXT:    andi $1, $1, 167; MIPS32r6-NEXT:    bnezc $1, $BB0_368; MIPS32r6-NEXT:  $BB0_2: # %if.end669; MIPS32r6-NEXT:    sub.d $f0, $f14, $f070; MIPS32r6-NEXT:    add.d $f0, $f0, $f071; MIPS32r6-NEXT:  $BB0_3: # %return72; MIPS32r6-NEXT:    jrc $ra73;74; MIPS4-LABEL: foo:75; MIPS4:       # %bb.0: # %entry76; MIPS4-NEXT:    dmtc1 $zero, $f177; MIPS4-NEXT:    c.ule.d $f12, $f178; MIPS4-NEXT:    bc1f .LBB0_279; MIPS4-NEXT:    mov.d $f0, $f1280; MIPS4-NEXT:  # %bb.1: # %if.else81; MIPS4-NEXT:    dmtc1 $zero, $f082; MIPS4-NEXT:    c.ule.d $f13, $f083; MIPS4-NEXT:    bc1t .LBB0_384; MIPS4-NEXT:    nop85; MIPS4-NEXT:  .LBB0_2: # %if.end686; MIPS4-NEXT:    sub.d $f0, $f13, $f087; MIPS4-NEXT:    add.d $f0, $f0, $f088; MIPS4-NEXT:  .LBB0_3: # %return89; MIPS4-NEXT:    jr $ra90; MIPS4-NEXT:    nop91;92; MIPS64-LABEL: foo:93; MIPS64:       # %bb.0: # %entry94; MIPS64-NEXT:    dmtc1 $zero, $f195; MIPS64-NEXT:    c.ule.d $f12, $f196; MIPS64-NEXT:    bc1f .LBB0_297; MIPS64-NEXT:    mov.d $f0, $f1298; MIPS64-NEXT:  # %bb.1: # %if.else99; MIPS64-NEXT:    dmtc1 $zero, $f0100; MIPS64-NEXT:    c.ule.d $f13, $f0101; MIPS64-NEXT:    bc1t .LBB0_3102; MIPS64-NEXT:    nop103; MIPS64-NEXT:  .LBB0_2: # %if.end6104; MIPS64-NEXT:    sub.d $f0, $f13, $f0105; MIPS64-NEXT:    add.d $f0, $f0, $f0106; MIPS64-NEXT:  .LBB0_3: # %return107; MIPS64-NEXT:    jr $ra108; MIPS64-NEXT:    nop109;110; MIPS64R2-LABEL: foo:111; MIPS64R2:       # %bb.0: # %entry112; MIPS64R2-NEXT:    dmtc1 $zero, $f1113; MIPS64R2-NEXT:    c.ule.d $f12, $f1114; MIPS64R2-NEXT:    bc1f .LBB0_2115; MIPS64R2-NEXT:    mov.d $f0, $f12116; MIPS64R2-NEXT:  # %bb.1: # %if.else117; MIPS64R2-NEXT:    dmtc1 $zero, $f0118; MIPS64R2-NEXT:    c.ule.d $f13, $f0119; MIPS64R2-NEXT:    bc1t .LBB0_3120; MIPS64R2-NEXT:    nop121; MIPS64R2-NEXT:  .LBB0_2: # %if.end6122; MIPS64R2-NEXT:    sub.d $f0, $f13, $f0123; MIPS64R2-NEXT:    add.d $f0, $f0, $f0124; MIPS64R2-NEXT:  .LBB0_3: # %return125; MIPS64R2-NEXT:    jr $ra126; MIPS64R2-NEXT:    nop127;128; MIPS64R6-LABEL: foo:129; MIPS64R6:       # %bb.0: # %entry130; MIPS64R6-NEXT:    dmtc1 $zero, $f1131; MIPS64R6-NEXT:    cmp.lt.d $f1, $f1, $f12132; MIPS64R6-NEXT:    mfc1 $1, $f1133; MIPS64R6-NEXT:    andi $1, $1, 1134; MIPS64R6-NEXT:    bnez $1, .LBB0_2135; MIPS64R6-NEXT:    mov.d	$f0, $f12136; MIPS64R6-NEXT:  # %bb.1: # %if.else137; MIPS64R6-NEXT:    dmtc1 $zero, $f0138; MIPS64R6-NEXT:    cmp.ule.d $f1, $f13, $f0139; MIPS64R6-NEXT:    mfc1 $1, $f1140; MIPS64R6-NEXT:    andi $1, $1, 1141; MIPS64R6-NEXT:    bnezc $1, .LBB0_3142; MIPS64R6-NEXT:  .LBB0_2: # %if.end6143; MIPS64R6-NEXT:    sub.d $f0, $f13, $f0144; MIPS64R6-NEXT:    add.d $f0, $f0, $f0145; MIPS64R6-NEXT:  .LBB0_3: # %return146; MIPS64R6-NEXT:    jrc $ra147entry:148  %cmp = fcmp ogt double %a, 0.000000e+00149  br i1 %cmp, label %if.end6, label %if.else150 151if.else:                                          ; preds = %entry152  %cmp3 = fcmp ogt double %b, 0.000000e+00153  br i1 %cmp3, label %if.end6, label %return154 155if.end6:                                          ; preds = %if.else, %entry156  %c.0 = phi double [ %a, %entry ], [ 0.000000e+00, %if.else ]157  %sub = fsub double %b, %c.0158  %mul = fmul double %sub, 2.000000e+00159  br label %return160 161return:                                           ; preds = %if.else, %if.end6162  %retval.0 = phi double [ %mul, %if.end6 ], [ 0.000000e+00, %if.else ]163  ret double %retval.0164}165 166define void @f1(float %f) nounwind {167; MIPS32-LABEL: f1:168; MIPS32:       # %bb.0: # %entry169; MIPS32-NEXT:    addiu $sp, $sp, -24170; MIPS32-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill171; MIPS32-NEXT:    mtc1 $zero, $f0172; MIPS32-NEXT:    c.eq.s $f12, $f0173; MIPS32-NEXT:    bc1f $BB1_2174; MIPS32-NEXT:    nop175; MIPS32-NEXT:  # %bb.1: # %if.end176; MIPS32-NEXT:    jal f2177; MIPS32-NEXT:    nop178; MIPS32-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload179; MIPS32-NEXT:    jr $ra180; MIPS32-NEXT:    addiu $sp, $sp, 24181; MIPS32-NEXT:  $BB1_2: # %if.then182; MIPS32-NEXT:    jal abort183; MIPS32-NEXT:    nop184;185; MIPS32R2-LABEL: f1:186; MIPS32R2:       # %bb.0: # %entry187; MIPS32R2-NEXT:    addiu $sp, $sp, -24188; MIPS32R2-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill189; MIPS32R2-NEXT:    mtc1 $zero, $f0190; MIPS32R2-NEXT:    c.eq.s $f12, $f0191; MIPS32R2-NEXT:    bc1f $BB1_2192; MIPS32R2-NEXT:    nop193; MIPS32R2-NEXT:  # %bb.1: # %if.end194; MIPS32R2-NEXT:    jal f2195; MIPS32R2-NEXT:    nop196; MIPS32R2-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload197; MIPS32R2-NEXT:    jr $ra198; MIPS32R2-NEXT:    addiu $sp, $sp, 24199; MIPS32R2-NEXT:  $BB1_2: # %if.then200; MIPS32R2-NEXT:    jal abort201; MIPS32R2-NEXT:    nop202;203; MIPS32r6-LABEL: f1:204; MIPS32r6:       # %bb.0: # %entry205; MIPS32r6-NEXT:    addiu $sp, $sp, -24206; MIPS32r6-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill207; MIPS32r6-NEXT:    mtc1 $zero, $f0208; MIPS32r6-NEXT:    cmp.eq.s $f0, $f12, $f0209; MIPS32r6-NEXT:    mfc1 $1, $f0210; MIPS32r6-NEXT:    andi $1, $1, 1211; MIPS32r6-NEXT:    beqzc $1, $BB1_2212; MIPS32r6-NEXT:    nop213; MIPS32r6-NEXT:  # %bb.1: # %if.end214; MIPS32r6-NEXT:    jal f2215; MIPS32r6-NEXT:    nop216; MIPS32r6-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload217; MIPS32r6-NEXT:    jr $ra218; MIPS32r6-NEXT:    addiu $sp, $sp, 24219; MIPS32r6-NEXT:  $BB1_2: # %if.then220; MIPS32r6-NEXT:    jal abort221; MIPS32r6-NEXT:    nop222;223; MIPS4-LABEL: f1:224; MIPS4:       # %bb.0: # %entry225; MIPS4-NEXT:    daddiu $sp, $sp, -16226; MIPS4-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill227; MIPS4-NEXT:    mtc1 $zero, $f0228; MIPS4-NEXT:    c.eq.s $f12, $f0229; MIPS4-NEXT:    bc1f .LBB1_2230; MIPS4-NEXT:    nop231; MIPS4-NEXT:  # %bb.1: # %if.end232; MIPS4-NEXT:    jal f2233; MIPS4-NEXT:    nop234; MIPS4-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload235; MIPS4-NEXT:    jr $ra236; MIPS4-NEXT:    daddiu $sp, $sp, 16237; MIPS4-NEXT:  .LBB1_2: # %if.then238; MIPS4-NEXT:    jal abort239; MIPS4-NEXT:    nop240;241; MIPS64-LABEL: f1:242; MIPS64:       # %bb.0: # %entry243; MIPS64-NEXT:    daddiu $sp, $sp, -16244; MIPS64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill245; MIPS64-NEXT:    mtc1 $zero, $f0246; MIPS64-NEXT:    c.eq.s $f12, $f0247; MIPS64-NEXT:    bc1f .LBB1_2248; MIPS64-NEXT:    nop249; MIPS64-NEXT:  # %bb.1: # %if.end250; MIPS64-NEXT:    jal f2251; MIPS64-NEXT:    nop252; MIPS64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload253; MIPS64-NEXT:    jr $ra254; MIPS64-NEXT:    daddiu $sp, $sp, 16255; MIPS64-NEXT:  .LBB1_2: # %if.then256; MIPS64-NEXT:    jal abort257; MIPS64-NEXT:    nop258;259; MIPS64R2-LABEL: f1:260; MIPS64R2:       # %bb.0: # %entry261; MIPS64R2-NEXT:    daddiu $sp, $sp, -16262; MIPS64R2-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill263; MIPS64R2-NEXT:    mtc1 $zero, $f0264; MIPS64R2-NEXT:    c.eq.s $f12, $f0265; MIPS64R2-NEXT:    bc1f .LBB1_2266; MIPS64R2-NEXT:    nop267; MIPS64R2-NEXT:  # %bb.1: # %if.end268; MIPS64R2-NEXT:    jal f2269; MIPS64R2-NEXT:    nop270; MIPS64R2-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload271; MIPS64R2-NEXT:    jr $ra272; MIPS64R2-NEXT:    daddiu $sp, $sp, 16273; MIPS64R2-NEXT:  .LBB1_2: # %if.then274; MIPS64R2-NEXT:    jal abort275; MIPS64R2-NEXT:    nop276;277; MIPS64R6-LABEL: f1:278; MIPS64R6:       # %bb.0: # %entry279; MIPS64R6-NEXT:    daddiu $sp, $sp, -16280; MIPS64R6-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill281; MIPS64R6-NEXT:    mtc1 $zero, $f0282; MIPS64R6-NEXT:    cmp.eq.s $f0, $f12, $f0283; MIPS64R6-NEXT:    mfc1 $1, $f0284; MIPS64R6-NEXT:    andi $1, $1, 1285; MIPS64R6-NEXT:    beqzc $1, .LBB1_2286; MIPS64R6-NEXT:    nop287; MIPS64R6-NEXT:  # %bb.1: # %if.end288; MIPS64R6-NEXT:    jal f2289; MIPS64R6-NEXT:    nop290; MIPS64R6-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload291; MIPS64R6-NEXT:    jr $ra292; MIPS64R6-NEXT:    daddiu $sp, $sp, 16293; MIPS64R6-NEXT:  .LBB1_2: # %if.then294; MIPS64R6-NEXT:    jal abort295; MIPS64R6-NEXT:    nop296entry:297  %cmp = fcmp une float %f, 0.000000e+00298  br i1 %cmp, label %if.then, label %if.end299 300if.then:                                          ; preds = %entry301  tail call void @abort() noreturn302  unreachable303 304if.end:                                           ; preds = %entry305  tail call void (...) @f2() nounwind306  ret void307}308 309declare void @abort() noreturn nounwind310 311declare void @f2(...)312