brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 6438302 Raw
107 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \3; RUN:   -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s4%struct.poly2 = type { [11 x i64] }5 6; Function Attrs: nofree norecurse nounwind7define dso_local void @poly2_lshift1(ptr nocapture %p) local_unnamed_addr #0 {8; CHECK-LABEL: poly2_lshift1:9; CHECK:       # %bb.0: # %entry10; CHECK-NEXT:    ld r6, 0(r3)11; CHECK-NEXT:    li r4, 7212; CHECK-NEXT:    ld r5, 64(r3)13; CHECK-NEXT:    xxleqv v4, v4, v414; CHECK-NEXT:    lxvd2x vs0, r3, r415; CHECK-NEXT:    sldi r7, r6, 116; CHECK-NEXT:    rotldi r6, r6, 117; CHECK-NEXT:    std r7, 0(r3)18; CHECK-NEXT:    ld r7, 8(r3)19; CHECK-NEXT:    rldimi r6, r7, 1, 020; CHECK-NEXT:    rotldi r7, r7, 121; CHECK-NEXT:    std r6, 8(r3)22; CHECK-NEXT:    ld r6, 16(r3)23; CHECK-NEXT:    rldimi r7, r6, 1, 024; CHECK-NEXT:    rotldi r6, r6, 125; CHECK-NEXT:    std r7, 16(r3)26; CHECK-NEXT:    ld r7, 24(r3)27; CHECK-NEXT:    rldimi r6, r7, 1, 028; CHECK-NEXT:    rotldi r7, r7, 129; CHECK-NEXT:    std r6, 24(r3)30; CHECK-NEXT:    ld r6, 32(r3)31; CHECK-NEXT:    rldimi r7, r6, 1, 032; CHECK-NEXT:    rotldi r6, r6, 133; CHECK-NEXT:    std r7, 32(r3)34; CHECK-NEXT:    ld r7, 40(r3)35; CHECK-NEXT:    rldimi r6, r7, 1, 036; CHECK-NEXT:    rotldi r7, r7, 137; CHECK-NEXT:    std r6, 40(r3)38; CHECK-NEXT:    ld r6, 48(r3)39; CHECK-NEXT:    xxswapd v2, vs040; CHECK-NEXT:    mtfprd f0, r541; CHECK-NEXT:    rldimi r7, r6, 1, 042; CHECK-NEXT:    rotldi r6, r6, 143; CHECK-NEXT:    std r7, 48(r3)44; CHECK-NEXT:    ld r7, 56(r3)45; CHECK-NEXT:    rldimi r6, r7, 1, 046; CHECK-NEXT:    std r6, 56(r3)47; CHECK-NEXT:    rotldi r6, r7, 148; CHECK-NEXT:    rldimi r6, r5, 1, 049; CHECK-NEXT:    std r6, 64(r3)50; CHECK-NEXT:    xxpermdi v3, v2, vs0, 251; CHECK-NEXT:    vsrd v3, v3, v452; CHECK-NEXT:    vaddudm v2, v2, v253; CHECK-NEXT:    xxlor vs0, v2, v354; CHECK-NEXT:    xxswapd vs0, vs055; CHECK-NEXT:    stxvd2x vs0, r3, r456; CHECK-NEXT:    blr57entry:58  %0 = load i64, ptr %p, align 859  %shl = shl i64 %0, 160  store i64 %shl, ptr %p, align 861  %arrayidx.1 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 162  %1 = load i64, ptr %arrayidx.1, align 863  %or.1 = call i64 @llvm.fshl.i64(i64 %1, i64 %0, i64 1)64  store i64 %or.1, ptr %arrayidx.1, align 865  %arrayidx.2 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 266  %2 = load i64, ptr %arrayidx.2, align 867  %or.2 = call i64 @llvm.fshl.i64(i64 %2, i64 %1, i64 1)68  store i64 %or.2, ptr %arrayidx.2, align 869  %arrayidx.3 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 370  %3 = load i64, ptr %arrayidx.3, align 871  %or.3 = call i64 @llvm.fshl.i64(i64 %3, i64 %2, i64 1)72  store i64 %or.3, ptr %arrayidx.3, align 873  %arrayidx.4 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 474  %4 = load i64, ptr %arrayidx.4, align 875  %or.4 = call i64 @llvm.fshl.i64(i64 %4, i64 %3, i64 1)76  store i64 %or.4, ptr %arrayidx.4, align 877  %arrayidx.5 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 578  %5 = load i64, ptr %arrayidx.5, align 879  %or.5 = call i64 @llvm.fshl.i64(i64 %5, i64 %4, i64 1)80  store i64 %or.5, ptr %arrayidx.5, align 881  %arrayidx.6 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 682  %6 = load i64, ptr %arrayidx.6, align 883  %or.6 = call i64 @llvm.fshl.i64(i64 %6, i64 %5, i64 1)84  store i64 %or.6, ptr %arrayidx.6, align 885  %arrayidx.7 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 786  %7 = load i64, ptr %arrayidx.7, align 887  %or.7 = call i64 @llvm.fshl.i64(i64 %7, i64 %6, i64 1)88  store i64 %or.7, ptr %arrayidx.7, align 889  %arrayidx.8 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 890  %8 = load i64, ptr %arrayidx.8, align 891  %or.8 = call i64 @llvm.fshl.i64(i64 %8, i64 %7, i64 1)92  store i64 %or.8, ptr %arrayidx.8, align 893  %arrayidx.9 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 994  %9 = load <2 x i64>, ptr %arrayidx.9, align 895  %10 = insertelement <2 x i64> undef, i64 %8, i32 096  %11 = shufflevector <2 x i64> %10, <2 x i64> %9, <2 x i32> <i32 0, i32 2>97  %12 = call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %9, <2 x i64> %11, <2 x i64> <i64 1, i64 1>)98  store <2 x i64> %12, ptr %arrayidx.9, align 899  ret void100}101 102; Function Attrs: nofree nosync nounwind readnone speculatable willreturn103declare i64 @llvm.fshl.i64(i64, i64, i64) #1104 105; Function Attrs: nofree nosync nounwind readnone speculatable willreturn106declare <2 x i64> @llvm.fshl.v2i64(<2 x i64>, <2 x i64>, <2 x i64>) #1107