43 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; Test 128-bit arithmetic in vector registers on z133;4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s5 6declare i128 @llvm.cttz.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: vgbm %v1, 6553513; CHECK-NEXT: vaq %v1, %v0, %v114; CHECK-NEXT: vnc %v0, %v1, %v015; CHECK-NEXT: vpopct %v0, %v0, 016; CHECK-NEXT: vgbm %v1, 017; CHECK-NEXT: vsumb %v0, %v0, %v118; CHECK-NEXT: vsumgf %v0, %v0, %v119; CHECK-NEXT: vsumqg %v0, %v0, %v120; CHECK-NEXT: vst %v0, 0(%r2), 321; CHECK-NEXT: br %r1422 %res = tail call i128 @llvm.cttz.i128(i128 %a, i1 false)23 ret i128 %res24}25 26define i128 @f2(i128 %a) {27; CHECK-LABEL: f2:28; CHECK: # %bb.0:29; CHECK-NEXT: vl %v0, 0(%r3), 330; CHECK-NEXT: vgbm %v1, 6553531; CHECK-NEXT: vaq %v1, %v0, %v132; CHECK-NEXT: vnc %v0, %v1, %v033; 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.cttz.i128(i128 %a, i1 true)41 ret i128 %res42}43