brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 2a75e88 Raw
54 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s2; RUN: llc -verify-machineinstrs -mcpu=pwr9 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s3; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s \4; RUN: --check-prefix=CHECK-ITIN5; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s \6; RUN: --check-prefix=CHECK-ITIN7; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s \8; RUN: --check-prefix=CHECK-ITIN9 10define void @bn_mul_comba8(ptr nocapture %r, ptr nocapture readonly %a, ptr nocapture readonly %b) {11; CHECK-LABEL: bn_mul_comba8:12; CHECK:    mulhdu13; CHECK-NEXT:    mulld14; CHECK:         mulhdu15; CHECK:         mulld16; CHECK-NEXT:    mulhdu17 18 19; CHECK-ITIN-LABEL: bn_mul_comba8:20; CHECK-ITIN:    mulhdu21; CHECK-ITIN-NEXT:    mulld22; CHECK-ITIN-NEXT:    mulhdu23; CHECK-ITIN:    mulld24; CHECK-ITIN-NEXT:    mulhdu25 26  %1 = load i64, ptr %a, align 827  %conv = zext i64 %1 to i12828  %2 = load i64, ptr %b, align 829  %conv2 = zext i64 %2 to i12830  %mul = mul nuw i128 %conv2, %conv31  %shr = lshr i128 %mul, 6432  %agep = getelementptr inbounds i64, ptr %a, i64 133  %3 = load i64, ptr %agep, align 834  %conv14 = zext i64 %3 to i12835  %mul15 = mul nuw i128 %conv14, %conv36  %add17 = add i128 %mul15, %shr37  %shr19 = lshr i128 %add17, 6438  %conv20 = trunc i128 %shr19 to i6439  %bgep = getelementptr inbounds i64, ptr %b, i64 140  %4 = load i64, ptr %bgep, align 841  %conv28 = zext i64 %4 to i12842  %mul31 = mul nuw i128 %conv28, %conv243  %conv32 = and i128 %add17, 1844674407370955161544  %add33 = add i128 %conv32, %mul3145  %shr35 = lshr i128 %add33, 6446  %conv36 = trunc i128 %shr35 to i6447  %add37 = add i64 %conv36, %conv2048  %cmp38 = icmp ult i64 %add37, %conv3649  %conv148 = zext i1 %cmp38 to i6450  store i64 %conv148, ptr %r, align 851  ret void52}53 54