brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · a8d11be Raw
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