79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s3 4; FIXME: can do better here ...5 6declare i128 @llvm.ctlz.i128(i128, i1)7 8define i128 @f1(i128 %a) {9; CHECK-LABEL: f1:10; CHECK: # %bb.0:11; CHECK-NEXT: vl %v0, 0(%r3), 312; CHECK-NEXT: vrepib %v1, 113; CHECK-NEXT: vsrl %v1, %v0, %v114; CHECK-NEXT: vo %v0, %v0, %v115; CHECK-NEXT: vrepib %v1, 216; CHECK-NEXT: vsrl %v1, %v0, %v117; CHECK-NEXT: vo %v0, %v0, %v118; CHECK-NEXT: vrepib %v1, 419; CHECK-NEXT: vsrl %v1, %v0, %v120; CHECK-NEXT: vo %v0, %v0, %v121; CHECK-NEXT: vrepib %v1, 822; CHECK-NEXT: vsrlb %v1, %v0, %v123; CHECK-NEXT: vo %v0, %v0, %v124; CHECK-NEXT: vrepib %v1, 1625; CHECK-NEXT: vsrlb %v1, %v0, %v126; CHECK-NEXT: vo %v0, %v0, %v127; CHECK-NEXT: vrepib %v1, 3228; CHECK-NEXT: vsrlb %v1, %v0, %v129; CHECK-NEXT: vo %v0, %v0, %v130; CHECK-NEXT: vrepib %v1, 6431; CHECK-NEXT: vsrlb %v1, %v0, %v132; CHECK-NEXT: vno %v0, %v0, %v133; CHECK-NEXT: vpopct %v0, %v0, 034; CHECK-NEXT: vgbm %v1, 035; CHECK-NEXT: vsumb %v0, %v0, %v136; CHECK-NEXT: vsumgf %v0, %v0, %v137; CHECK-NEXT: vsumqg %v0, %v0, %v138; CHECK-NEXT: vst %v0, 0(%r2), 339; CHECK-NEXT: br %r1440 %res = tail call i128 @llvm.ctlz.i128(i128 %a, i1 false)41 ret i128 %res42}43 44define i128 @f2(i128 %a) {45; CHECK-LABEL: f2:46; CHECK: # %bb.0:47; CHECK-NEXT: vl %v0, 0(%r3), 348; CHECK-NEXT: vrepib %v1, 149; CHECK-NEXT: vsrl %v1, %v0, %v150; CHECK-NEXT: vo %v0, %v0, %v151; CHECK-NEXT: vrepib %v1, 252; CHECK-NEXT: vsrl %v1, %v0, %v153; CHECK-NEXT: vo %v0, %v0, %v154; CHECK-NEXT: vrepib %v1, 455; CHECK-NEXT: vsrl %v1, %v0, %v156; CHECK-NEXT: vo %v0, %v0, %v157; CHECK-NEXT: vrepib %v1, 858; CHECK-NEXT: vsrlb %v1, %v0, %v159; CHECK-NEXT: vo %v0, %v0, %v160; CHECK-NEXT: vrepib %v1, 1661; CHECK-NEXT: vsrlb %v1, %v0, %v162; CHECK-NEXT: vo %v0, %v0, %v163; CHECK-NEXT: vrepib %v1, 3264; CHECK-NEXT: vsrlb %v1, %v0, %v165; CHECK-NEXT: vo %v0, %v0, %v166; CHECK-NEXT: vrepib %v1, 6467; CHECK-NEXT: vsrlb %v1, %v0, %v168; CHECK-NEXT: vno %v0, %v0, %v169; CHECK-NEXT: vpopct %v0, %v0, 070; CHECK-NEXT: vgbm %v1, 071; CHECK-NEXT: vsumb %v0, %v0, %v172; CHECK-NEXT: vsumgf %v0, %v0, %v173; CHECK-NEXT: vsumqg %v0, %v0, %v174; CHECK-NEXT: vst %v0, 0(%r2), 375; CHECK-NEXT: br %r1476 %res = tail call i128 @llvm.ctlz.i128(i128 %a, i1 true)77 ret i128 %res78}79