brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · cba56e3 Raw
194 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -verify-machineinstrs < %s -O3 -mcpu=ppc -mtriple powerpc-ibm-aix \3; RUN:     -ppc-asm-full-reg-names | FileCheck %s4 5define i32 @foo(i32 noundef signext %x) {6; CHECK-LABEL: foo:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    mflr r09; CHECK-NEXT:    stwu r1, -64(r1)10; CHECK-NEXT:    stw r0, 72(r1)11; CHECK-NEXT:    cmpwi r3, 812; CHECK-NEXT:    stw r31, 60(r1) # 4-byte Folded Spill13; CHECK-NEXT:    mr r31, r314; CHECK-NEXT:    li r3, 015; CHECK-NEXT:    ble cr0, L..BB0_416; CHECK-NEXT:  # %bb.1: # %entry17; CHECK-NEXT:    cmpwi r31, 1118; CHECK-NEXT:    bge cr0, L..BB0_719; CHECK-NEXT:  # %bb.2: # %entry20; CHECK-NEXT:    cmplwi r31, 921; CHECK-NEXT:    beq cr0, L..BB0_922; CHECK-NEXT:  # %bb.3: # %entry23; CHECK-NEXT:    cmplwi r31, 1024; CHECK-NEXT:    beq cr0, L..BB0_1125; CHECK-NEXT:    b L..BB0_1326; CHECK-NEXT:  L..BB0_4: # %entry27; CHECK-NEXT:    cmplwi r31, 428; CHECK-NEXT:    beq cr0, L..BB0_1229; CHECK-NEXT:  # %bb.5: # %entry30; CHECK-NEXT:    cmplwi r31, 731; CHECK-NEXT:    beq cr0, L..BB0_1132; CHECK-NEXT:  # %bb.6: # %entry33; CHECK-NEXT:    cmplwi r31, 834; CHECK-NEXT:    beq cr0, L..BB0_1035; CHECK-NEXT:    b L..BB0_1336; CHECK-NEXT:  L..BB0_7: # %entry37; CHECK-NEXT:    beq cr0, L..BB0_1038; CHECK-NEXT:  # %bb.8: # %entry39; CHECK-NEXT:    cmplwi r31, 1240; CHECK-NEXT:    bne cr0, L..BB0_1341; CHECK-NEXT:  L..BB0_9: # %sw.bb242; CHECK-NEXT:    mr r3, r3143; CHECK-NEXT:    bl .foo3[PR]44; CHECK-NEXT:    nop45; CHECK-NEXT:    mr r3, r3146; CHECK-NEXT:    b L..BB0_1347; CHECK-NEXT:  L..BB0_10: # %sw.bb148; CHECK-NEXT:    mr r3, r3149; CHECK-NEXT:    bl .foo2[PR]50; CHECK-NEXT:    nop51; CHECK-NEXT:    mr r3, r3152; CHECK-NEXT:    b L..BB0_1353; CHECK-NEXT:  L..BB0_11: # %sw.bb54; CHECK-NEXT:    mr r3, r3155; CHECK-NEXT:    bl .foo1[PR]56; CHECK-NEXT:    nop57; CHECK-NEXT:    mr r3, r3158; CHECK-NEXT:    b L..BB0_1359; CHECK-NEXT:  L..BB0_12: # %sw.bb360; CHECK-NEXT:    li r3, 461; CHECK-NEXT:    bl .foo4[PR]62; CHECK-NEXT:    nop63; CHECK-NEXT:    li r3, 464; CHECK-NEXT:  L..BB0_13: # %return65; CHECK-NEXT:    lwz r31, 60(r1) # 4-byte Folded Reload66; CHECK-NEXT:    addi r1, r1, 6467; CHECK-NEXT:    lwz r0, 8(r1)68; CHECK-NEXT:    mtlr r069; CHECK-NEXT:    blr70entry:71  switch i32 %x, label %return [72  i32 7, label %sw.bb73  i32 10, label %sw.bb74  i32 8, label %sw.bb175  i32 11, label %sw.bb176  i32 9, label %sw.bb277  i32 12, label %sw.bb278  i32 4, label %sw.bb379  ]80 81sw.bb:                                            ; preds = %entry, %entry82  tail call void @foo1(i32 noundef signext %x)83  br label %return84 85sw.bb1:                                           ; preds = %entry, %entry86  tail call void @foo2(i32 noundef signext %x)87  br label %return88 89sw.bb2:                                           ; preds = %entry, %entry90  tail call void @foo3(i32 noundef signext %x)91  br label %return92 93sw.bb3:                                           ; preds = %entry94  tail call void @foo4(i32 noundef signext 4)95  br label %return96 97return:                                           ; preds = %sw.bb, %sw.bb1, %sw.bb2, %sw.bb3, %entry98  %retval.0 = phi i32 [ 0, %entry ], [ 4, %sw.bb3 ], [ %x, %sw.bb2 ], [ %x, %sw.bb1 ], [ %x, %sw.bb ]99  ret i32 %retval.0100}101 102define i32 @goo(i32 noundef signext %x) {103; CHECK-LABEL: goo:104; CHECK:       # %bb.0: # %entry105; CHECK-NEXT:    mflr r0106; CHECK-NEXT:    stwu r1, -64(r1)107; CHECK-NEXT:    stw r0, 72(r1)108; CHECK-NEXT:    cmplwi r3, 12109; CHECK-NEXT:    stw r31, 60(r1) # 4-byte Folded Spill110; CHECK-NEXT:    mr r31, r3111; CHECK-NEXT:    bgt cr0, L..BB1_7112; CHECK-NEXT:  # %bb.1: # %entry113; CHECK-NEXT:    li r3, 1114; CHECK-NEXT:    slw r3, r3, r31115; CHECK-NEXT:    andi. r4, r3, 5632116; CHECK-NEXT:    bne cr0, L..BB1_4117; CHECK-NEXT:  # %bb.2: # %entry118; CHECK-NEXT:    andi. r3, r3, 2304119; CHECK-NEXT:    beq cr0, L..BB1_5120; CHECK-NEXT:  # %bb.3: # %sw.bb1121; CHECK-NEXT:    mr r3, r31122; CHECK-NEXT:    bl .foo2[PR]123; CHECK-NEXT:    nop124; CHECK-NEXT:    b L..BB1_9125; CHECK-NEXT:  L..BB1_4: # %sw.bb2126; CHECK-NEXT:    mr r3, r31127; CHECK-NEXT:    bl .foo3[PR]128; CHECK-NEXT:    nop129; CHECK-NEXT:    b L..BB1_9130; CHECK-NEXT:  L..BB1_5: # %entry131; CHECK-NEXT:    cmplwi r31, 7132; CHECK-NEXT:    bne cr0, L..BB1_7133; CHECK-NEXT:  # %bb.6: # %sw.bb134; CHECK-NEXT:    li r3, 7135; CHECK-NEXT:    li r31, 7136; CHECK-NEXT:    bl .foo1[PR]137; CHECK-NEXT:    nop138; CHECK-NEXT:    b L..BB1_9139; CHECK-NEXT:  L..BB1_7: # %entry140; CHECK-NEXT:    cmplwi r31, 4141; CHECK-NEXT:    li r31, 0142; CHECK-NEXT:    bne cr0, L..BB1_9143; CHECK-NEXT:  # %bb.8: # %sw.bb3144; CHECK-NEXT:    li r3, 4145; CHECK-NEXT:    li r31, 4146; CHECK-NEXT:    bl .foo4[PR]147; CHECK-NEXT:    nop148; CHECK-NEXT:  L..BB1_9: # %return149; CHECK-NEXT:    mr r3, r31150; CHECK-NEXT:    lwz r31, 60(r1) # 4-byte Folded Reload151; CHECK-NEXT:    addi r1, r1, 64152; CHECK-NEXT:    lwz r0, 8(r1)153; CHECK-NEXT:    mtlr r0154; CHECK-NEXT:    blr155entry:156  switch i32 %x, label %return [157  i32 7, label %sw.bb158  i32 8, label %sw.bb1159  i32 11, label %sw.bb1160  i32 9, label %sw.bb2161  i32 10, label %sw.bb2162  i32 12, label %sw.bb2163  i32 4, label %sw.bb3164  ]165 166sw.bb:                                            ; preds = %entry167  tail call void @foo1(i32 noundef signext 7)168  br label %return169 170sw.bb1:                                           ; preds = %entry, %entry171  tail call void @foo2(i32 noundef signext %x)172  br label %return173 174sw.bb2:                                           ; preds = %entry, %entry, %entry175  tail call void @foo3(i32 noundef signext %x)176  br label %return177 178sw.bb3:                                           ; preds = %entry179  tail call void @foo4(i32 noundef signext 4)180  br label %return181 182return:                                           ; preds = %sw.bb, %sw.bb1, %sw.bb2, %sw.bb3, %entry183  %retval.0 = phi i32 [ 0, %entry ], [ 4, %sw.bb3 ], [ %x, %sw.bb2 ], [ %x, %sw.bb1 ], [ 7, %sw.bb ]184  ret i32 %retval.0185}186 187declare void @foo1(i32 noundef signext)188 189declare void @foo2(i32 noundef signext)190 191declare void @foo3(i32 noundef signext)192 193declare void @foo4(i32 noundef signext)194