147 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-asm-full-reg-names \3; RUN: -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9LE4; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-asm-full-reg-names \5; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9BE6; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-asm-full-reg-names \7; RUN: -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8LE8; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-asm-full-reg-names \9; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE10 11declare ppc_fp128 @llvm.fmuladd.ppcf128(ppc_fp128, ppc_fp128, ppc_fp128) #212 13define ppc_fp128 @test_ctr0() {14; P9LE-LABEL: test_ctr0:15; P9LE: # %bb.0: # %bb16; P9LE-NEXT: mflr r017; P9LE-NEXT: .cfi_def_cfa_offset 4818; P9LE-NEXT: .cfi_offset lr, 1619; P9LE-NEXT: .cfi_offset r30, -1620; P9LE-NEXT: std r30, -16(r1) # 8-byte Folded Spill21; P9LE-NEXT: stdu r1, -48(r1)22; P9LE-NEXT: li r3, 123; P9LE-NEXT: xxlxor f1, f1, f124; P9LE-NEXT: xxlxor f2, f2, f225; P9LE-NEXT: std r0, 64(r1)26; P9LE-NEXT: rldic r30, r3, 62, 127; P9LE-NEXT: .p2align 528; P9LE-NEXT: .LBB0_1: # %bb629; P9LE-NEXT: #30; P9LE-NEXT: xxlxor f3, f3, f331; P9LE-NEXT: xxlxor f4, f4, f432; P9LE-NEXT: bl __gcc_qadd33; P9LE-NEXT: nop34; P9LE-NEXT: addi r30, r30, -135; P9LE-NEXT: cmpldi r30, 036; P9LE-NEXT: bc 12, gt, .LBB0_137; P9LE-NEXT: # %bb.2: # %bb1438; P9LE-NEXT: addi r1, r1, 4839; P9LE-NEXT: ld r0, 16(r1)40; P9LE-NEXT: ld r30, -16(r1) # 8-byte Folded Reload41; P9LE-NEXT: mtlr r042; P9LE-NEXT: blr43;44; P9BE-LABEL: test_ctr0:45; P9BE: # %bb.0: # %bb46; P9BE-NEXT: mflr r047; P9BE-NEXT: stdu r1, -128(r1)48; P9BE-NEXT: std r0, 144(r1)49; P9BE-NEXT: .cfi_def_cfa_offset 12850; P9BE-NEXT: .cfi_offset lr, 1651; P9BE-NEXT: .cfi_offset r30, -1652; P9BE-NEXT: li r3, 153; P9BE-NEXT: std r30, 112(r1) # 8-byte Folded Spill54; P9BE-NEXT: xxlxor f1, f1, f155; P9BE-NEXT: rldic r30, r3, 62, 156; P9BE-NEXT: xxlxor f2, f2, f257; P9BE-NEXT: .p2align 558; P9BE-NEXT: .LBB0_1: # %bb659; P9BE-NEXT: #60; P9BE-NEXT: xxlxor f3, f3, f361; P9BE-NEXT: xxlxor f4, f4, f462; P9BE-NEXT: bl __gcc_qadd63; P9BE-NEXT: nop64; P9BE-NEXT: addi r30, r30, -165; P9BE-NEXT: cmpldi r30, 066; P9BE-NEXT: bc 12, gt, .LBB0_167; P9BE-NEXT: # %bb.2: # %bb1468; P9BE-NEXT: ld r30, 112(r1) # 8-byte Folded Reload69; P9BE-NEXT: addi r1, r1, 12870; P9BE-NEXT: ld r0, 16(r1)71; P9BE-NEXT: mtlr r072; P9BE-NEXT: blr73;74; P8LE-LABEL: test_ctr0:75; P8LE: # %bb.0: # %bb76; P8LE-NEXT: mflr r077; P8LE-NEXT: .cfi_def_cfa_offset 4878; P8LE-NEXT: .cfi_offset lr, 1679; P8LE-NEXT: .cfi_offset r30, -1680; P8LE-NEXT: std r30, -16(r1) # 8-byte Folded Spill81; P8LE-NEXT: stdu r1, -48(r1)82; P8LE-NEXT: li r3, 183; P8LE-NEXT: xxlxor f1, f1, f184; P8LE-NEXT: xxlxor f2, f2, f285; P8LE-NEXT: std r0, 64(r1)86; P8LE-NEXT: rldic r30, r3, 62, 187; P8LE-NEXT: .p2align 588; P8LE-NEXT: .LBB0_1: # %bb689; P8LE-NEXT: #90; P8LE-NEXT: xxlxor f3, f3, f391; P8LE-NEXT: xxlxor f4, f4, f492; P8LE-NEXT: bl __gcc_qadd93; P8LE-NEXT: nop94; P8LE-NEXT: addi r30, r30, -195; P8LE-NEXT: cmpldi r30, 096; P8LE-NEXT: bc 12, gt, .LBB0_197; P8LE-NEXT: # %bb.2: # %bb1498; P8LE-NEXT: addi r1, r1, 4899; P8LE-NEXT: ld r0, 16(r1)100; P8LE-NEXT: ld r30, -16(r1) # 8-byte Folded Reload101; P8LE-NEXT: mtlr r0102; P8LE-NEXT: blr103;104; P8BE-LABEL: test_ctr0:105; P8BE: # %bb.0: # %bb106; P8BE-NEXT: mflr r0107; P8BE-NEXT: stdu r1, -128(r1)108; P8BE-NEXT: std r0, 144(r1)109; P8BE-NEXT: .cfi_def_cfa_offset 128110; P8BE-NEXT: .cfi_offset lr, 16111; P8BE-NEXT: .cfi_offset r30, -16112; P8BE-NEXT: li r3, 1113; P8BE-NEXT: std r30, 112(r1) # 8-byte Folded Spill114; P8BE-NEXT: xxlxor f1, f1, f1115; P8BE-NEXT: xxlxor f2, f2, f2116; P8BE-NEXT: rldic r30, r3, 62, 1117; P8BE-NEXT: .p2align 5118; P8BE-NEXT: .LBB0_1: # %bb6119; P8BE-NEXT: #120; P8BE-NEXT: xxlxor f3, f3, f3121; P8BE-NEXT: xxlxor f4, f4, f4122; P8BE-NEXT: bl __gcc_qadd123; P8BE-NEXT: nop124; P8BE-NEXT: addi r30, r30, -1125; P8BE-NEXT: cmpldi r30, 0126; P8BE-NEXT: bc 12, gt, .LBB0_1127; P8BE-NEXT: # %bb.2: # %bb14128; P8BE-NEXT: ld r30, 112(r1) # 8-byte Folded Reload129; P8BE-NEXT: addi r1, r1, 128130; P8BE-NEXT: ld r0, 16(r1)131; P8BE-NEXT: mtlr r0132; P8BE-NEXT: blr133bb:134 br label %bb6135 136bb6: ; preds = %bb6, %bb137 %i = phi ppc_fp128 [ %i8, %bb6 ], [ 0xM00000000000000000000000000000000, %bb ]138 %i7 = phi i64 [ %i9, %bb6 ], [ 0, %bb ]139 %i8 = tail call ppc_fp128 @llvm.fmuladd.ppcf128(ppc_fp128 0xM00000000000000000000000000000000, ppc_fp128 0xM00000000000000000000000000000000, ppc_fp128 %i) #4140 %i9 = add i64 %i7, -4141 %i10 = icmp eq i64 %i9, 0142 br i1 %i10, label %bb14, label %bb6143 144bb14: ; preds = %bb6145 ret ppc_fp128 %i8146}147