brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.7 KiB · 72de456 Raw
218 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs < %s | FileCheck %s3target datalayout = "E-m:e-p:32:32-i128:64-n32"4target triple = "powerpc-ellcc-linux"5 6; Function Attrs: nounwind7define void @foo1(ptr %a, ptr readonly %b, ptr readonly %c) #0 {8; CHECK-LABEL: foo1:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    stwu 1, -64(1)11; CHECK-NEXT:    stw 29, 52(1) # 4-byte Folded Spill12; CHECK-NEXT:    li 7, 204813; CHECK-NEXT:    stw 30, 56(1) # 4-byte Folded Spill14; CHECK-NEXT:    li 6, 015; CHECK-NEXT:    mtctr 716; CHECK-NEXT:    addi 7, 1, 1617; CHECK-NEXT:  .LBB0_1: # %for.body18; CHECK-NEXT:    #19; CHECK-NEXT:    lwz 8, 0(4)20; CHECK-NEXT:    lwz 9, 4(4)21; CHECK-NEXT:    lwz 10, 8(4)22; CHECK-NEXT:    lwz 11, 12(4)23; CHECK-NEXT:    lwz 12, 12(5)24; CHECK-NEXT:    stw 6, 44(1)25; CHECK-NEXT:    stw 6, 40(1)26; CHECK-NEXT:    stw 6, 36(1)27; CHECK-NEXT:    stw 6, 32(1)28; CHECK-NEXT:    stw 11, 28(1)29; CHECK-NEXT:    stw 10, 24(1)30; CHECK-NEXT:    clrlwi 10, 12, 2731; CHECK-NEXT:    stw 9, 20(1)32; CHECK-NEXT:    stw 8, 16(1)33; CHECK-NEXT:    rlwinm 8, 12, 29, 28, 2934; CHECK-NEXT:    lwzux 9, 8, 735; CHECK-NEXT:    subfic 12, 10, 3236; CHECK-NEXT:    lwz 11, 8(8)37; CHECK-NEXT:    slw 9, 9, 1038; CHECK-NEXT:    lwz 0, 4(8)39; CHECK-NEXT:    lwz 8, 12(8)40; CHECK-NEXT:    srw 30, 11, 1241; CHECK-NEXT:    slw 29, 0, 1042; CHECK-NEXT:    srw 0, 0, 1243; CHECK-NEXT:    srw 12, 8, 1244; CHECK-NEXT:    slw 11, 11, 1045; CHECK-NEXT:    slw 8, 8, 1046; CHECK-NEXT:    stw 8, 12(3)47; CHECK-NEXT:    or 8, 11, 1248; CHECK-NEXT:    stw 8, 8(3)49; CHECK-NEXT:    or 8, 9, 050; CHECK-NEXT:    stw 8, 0(3)51; CHECK-NEXT:    or 8, 29, 3052; CHECK-NEXT:    stw 8, 4(3)53; CHECK-NEXT:    bdnz .LBB0_154; CHECK-NEXT:  # %bb.2: # %for.end55; CHECK-NEXT:    lwz 30, 56(1) # 4-byte Folded Reload56; CHECK-NEXT:    lwz 29, 52(1) # 4-byte Folded Reload57; CHECK-NEXT:    addi 1, 1, 6458; CHECK-NEXT:    blr59entry:60  br label %for.body61 62for.body:                                         ; preds = %for.body, %entry63  %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]64  %0 = load i128, ptr %b, align 1665  %1 = load i128, ptr %c, align 1666  %shl = shl i128 %0, %167  store i128 %shl, ptr %a, align 1668  %inc = add nsw i32 %i.02, 169  %exitcond = icmp eq i32 %inc, 204870  br i1 %exitcond, label %for.end, label %for.body71 72for.end:                                          ; preds = %for.body73  ret void74}75 76; Function Attrs: nounwind77define void @foo2(ptr %a, ptr readonly %b, ptr readonly %c) #0 {78; CHECK-LABEL: foo2:79; CHECK:       # %bb.0: # %entry80; CHECK-NEXT:    stwu 1, -48(1)81; CHECK-NEXT:    stw 30, 40(1) # 4-byte Folded Spill82; CHECK-NEXT:    li 6, 204883; CHECK-NEXT:    mtctr 684; CHECK-NEXT:    addi 6, 1, 2485; CHECK-NEXT:  .LBB1_1: # %for.body86; CHECK-NEXT:    #87; CHECK-NEXT:    lwz 7, 0(4)88; CHECK-NEXT:    lwz 8, 4(4)89; CHECK-NEXT:    lwz 11, 12(5)90; CHECK-NEXT:    lwz 9, 8(4)91; CHECK-NEXT:    lwz 10, 12(4)92; CHECK-NEXT:    stw 8, 28(1)93; CHECK-NEXT:    rlwinm 8, 11, 29, 28, 2994; CHECK-NEXT:    stw 7, 24(1)95; CHECK-NEXT:    srawi 7, 7, 3196; CHECK-NEXT:    stw 10, 36(1)97; CHECK-NEXT:    clrlwi 10, 11, 2798; CHECK-NEXT:    stw 9, 32(1)99; CHECK-NEXT:    subfic 12, 10, 32100; CHECK-NEXT:    stw 7, 20(1)101; CHECK-NEXT:    stw 7, 16(1)102; CHECK-NEXT:    stw 7, 12(1)103; CHECK-NEXT:    stw 7, 8(1)104; CHECK-NEXT:    sub 7, 6, 8105; CHECK-NEXT:    lwz 8, 4(7)106; CHECK-NEXT:    lwz 9, 0(7)107; CHECK-NEXT:    lwz 11, 12(7)108; CHECK-NEXT:    srw 0, 8, 10109; CHECK-NEXT:    lwz 7, 8(7)110; CHECK-NEXT:    slw 30, 9, 12111; CHECK-NEXT:    slw 8, 8, 12112; CHECK-NEXT:    srw 11, 11, 10113; CHECK-NEXT:    slw 12, 7, 12114; CHECK-NEXT:    srw 7, 7, 10115; CHECK-NEXT:    or 7, 8, 7116; CHECK-NEXT:    stw 7, 8(3)117; CHECK-NEXT:    or 7, 12, 11118; CHECK-NEXT:    sraw 9, 9, 10119; CHECK-NEXT:    stw 7, 12(3)120; CHECK-NEXT:    or 7, 30, 0121; CHECK-NEXT:    stw 9, 0(3)122; CHECK-NEXT:    stw 7, 4(3)123; CHECK-NEXT:    bdnz .LBB1_1124; CHECK-NEXT:  # %bb.2: # %for.end125; CHECK-NEXT:    lwz 30, 40(1) # 4-byte Folded Reload126; CHECK-NEXT:    addi 1, 1, 48127; CHECK-NEXT:    blr128entry:129  br label %for.body130 131for.body:                                         ; preds = %for.body, %entry132  %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]133  %0 = load i128, ptr %b, align 16134  %1 = load i128, ptr %c, align 16135  %shl = ashr i128 %0, %1136  store i128 %shl, ptr %a, align 16137  %inc = add nsw i32 %i.02, 1138  %exitcond = icmp eq i32 %inc, 2048139  br i1 %exitcond, label %for.end, label %for.body140 141for.end:                                          ; preds = %for.body142  ret void143}144 145; Function Attrs: nounwind146define void @foo3(ptr %a, ptr readonly %b, ptr readonly %c) #0 {147; CHECK-LABEL: foo3:148; CHECK:       # %bb.0: # %entry149; CHECK-NEXT:    stwu 1, -64(1)150; CHECK-NEXT:    stw 29, 52(1) # 4-byte Folded Spill151; CHECK-NEXT:    li 7, 2048152; CHECK-NEXT:    stw 30, 56(1) # 4-byte Folded Spill153; CHECK-NEXT:    li 6, 0154; CHECK-NEXT:    mtctr 7155; CHECK-NEXT:    addi 7, 1, 32156; CHECK-NEXT:  .LBB2_1: # %for.body157; CHECK-NEXT:    #158; CHECK-NEXT:    lwz 8, 0(4)159; CHECK-NEXT:    lwz 12, 12(5)160; CHECK-NEXT:    lwz 9, 4(4)161; CHECK-NEXT:    lwz 10, 8(4)162; CHECK-NEXT:    lwz 11, 12(4)163; CHECK-NEXT:    stw 8, 32(1)164; CHECK-NEXT:    rlwinm 8, 12, 29, 28, 29165; CHECK-NEXT:    stw 6, 28(1)166; CHECK-NEXT:    sub 8, 7, 8167; CHECK-NEXT:    stw 6, 24(1)168; CHECK-NEXT:    stw 6, 20(1)169; CHECK-NEXT:    stw 6, 16(1)170; CHECK-NEXT:    stw 11, 44(1)171; CHECK-NEXT:    clrlwi 11, 12, 27172; CHECK-NEXT:    stw 10, 40(1)173; CHECK-NEXT:    subfic 0, 11, 32174; CHECK-NEXT:    stw 9, 36(1)175; CHECK-NEXT:    lwz 9, 4(8)176; CHECK-NEXT:    lwz 10, 0(8)177; CHECK-NEXT:    lwz 12, 12(8)178; CHECK-NEXT:    srw 30, 9, 11179; CHECK-NEXT:    lwz 8, 8(8)180; CHECK-NEXT:    slw 29, 10, 0181; CHECK-NEXT:    slw 9, 9, 0182; CHECK-NEXT:    srw 12, 12, 11183; CHECK-NEXT:    slw 0, 8, 0184; CHECK-NEXT:    srw 8, 8, 11185; CHECK-NEXT:    or 8, 9, 8186; CHECK-NEXT:    stw 8, 8(3)187; CHECK-NEXT:    or 8, 0, 12188; CHECK-NEXT:    srw 10, 10, 11189; CHECK-NEXT:    stw 8, 12(3)190; CHECK-NEXT:    or 8, 29, 30191; CHECK-NEXT:    stw 10, 0(3)192; CHECK-NEXT:    stw 8, 4(3)193; CHECK-NEXT:    bdnz .LBB2_1194; CHECK-NEXT:  # %bb.2: # %for.end195; CHECK-NEXT:    lwz 30, 56(1) # 4-byte Folded Reload196; CHECK-NEXT:    lwz 29, 52(1) # 4-byte Folded Reload197; CHECK-NEXT:    addi 1, 1, 64198; CHECK-NEXT:    blr199entry:200  br label %for.body201 202for.body:                                         ; preds = %for.body, %entry203  %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]204  %0 = load i128, ptr %b, align 16205  %1 = load i128, ptr %c, align 16206  %shl = lshr i128 %0, %1207  store i128 %shl, ptr %a, align 16208  %inc = add nsw i32 %i.02, 1209  %exitcond = icmp eq i32 %inc, 2048210  br i1 %exitcond, label %for.end, label %for.body211 212for.end:                                          ; preds = %for.body213  ret void214}215 216attributes #0 = { nounwind }217 218