brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 00fd01a Raw
117 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; Test i128 maximum on z17.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z17 | FileCheck %s5 6; Test with slt.7define i128 @f1(i128 %val1, i128 %val2) {8; CHECK-LABEL: f1:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vl %v0, 0(%r4), 311; CHECK-NEXT:    vl %v1, 0(%r3), 312; CHECK-NEXT:    vmxq %v0, %v1, %v013; CHECK-NEXT:    vst %v0, 0(%r2), 314; CHECK-NEXT:    br %r1415  %cmp = icmp slt i128 %val1, %val216  %ret = select i1 %cmp, i128 %val2, i128 %val117  ret i128 %ret18}19 20; Test with sle.21define i128 @f2(i128 %val1, i128 %val2) {22; CHECK-LABEL: f2:23; CHECK:       # %bb.0:24; CHECK-NEXT:    vl %v0, 0(%r4), 325; CHECK-NEXT:    vl %v1, 0(%r3), 326; CHECK-NEXT:    vmxq %v0, %v1, %v027; CHECK-NEXT:    vst %v0, 0(%r2), 328; CHECK-NEXT:    br %r1429  %cmp = icmp sle i128 %val1, %val230  %ret = select i1 %cmp, i128 %val2, i128 %val131  ret i128 %ret32}33 34; Test with sgt.35define i128 @f3(i128 %val1, i128 %val2) {36; CHECK-LABEL: f3:37; CHECK:       # %bb.0:38; CHECK-NEXT:    vl %v0, 0(%r4), 339; CHECK-NEXT:    vl %v1, 0(%r3), 340; CHECK-NEXT:    vmxq %v0, %v1, %v041; CHECK-NEXT:    vst %v0, 0(%r2), 342; CHECK-NEXT:    br %r1443  %cmp = icmp sgt i128 %val1, %val244  %ret = select i1 %cmp, i128 %val1, i128 %val245  ret i128 %ret46}47 48; Test with sge.49define i128 @f4(i128 %val1, i128 %val2) {50; CHECK-LABEL: f4:51; CHECK:       # %bb.0:52; CHECK-NEXT:    vl %v0, 0(%r4), 353; CHECK-NEXT:    vl %v1, 0(%r3), 354; CHECK-NEXT:    vmxq %v0, %v1, %v055; CHECK-NEXT:    vst %v0, 0(%r2), 356; CHECK-NEXT:    br %r1457  %cmp = icmp sge i128 %val1, %val258  %ret = select i1 %cmp, i128 %val1, i128 %val259  ret i128 %ret60}61 62; Test with ult.63define i128 @f5(i128 %val1, i128 %val2) {64; CHECK-LABEL: f5:65; CHECK:       # %bb.0:66; CHECK-NEXT:    vl %v0, 0(%r4), 367; CHECK-NEXT:    vl %v1, 0(%r3), 368; CHECK-NEXT:    vmxlq %v0, %v1, %v069; CHECK-NEXT:    vst %v0, 0(%r2), 370; CHECK-NEXT:    br %r1471  %cmp = icmp ult i128 %val1, %val272  %ret = select i1 %cmp, i128 %val2, i128 %val173  ret i128 %ret74}75 76; Test with ule.77define i128 @f6(i128 %val1, i128 %val2) {78; CHECK-LABEL: f6:79; CHECK:       # %bb.0:80; CHECK-NEXT:    vl %v0, 0(%r4), 381; CHECK-NEXT:    vl %v1, 0(%r3), 382; CHECK-NEXT:    vmxlq %v0, %v1, %v083; CHECK-NEXT:    vst %v0, 0(%r2), 384; CHECK-NEXT:    br %r1485  %cmp = icmp ule i128 %val1, %val286  %ret = select i1 %cmp, i128 %val2, i128 %val187  ret i128 %ret88}89 90; Test with ugt.91define i128 @f7(i128 %val1, i128 %val2) {92; CHECK-LABEL: f7:93; CHECK:       # %bb.0:94; CHECK-NEXT:    vl %v0, 0(%r4), 395; CHECK-NEXT:    vl %v1, 0(%r3), 396; CHECK-NEXT:    vmxlq %v0, %v1, %v097; CHECK-NEXT:    vst %v0, 0(%r2), 398; CHECK-NEXT:    br %r1499  %cmp = icmp ugt i128 %val1, %val2100  %ret = select i1 %cmp, i128 %val1, i128 %val2101  ret i128 %ret102}103 104; Test with uge.105define i128 @f8(i128 %val1, i128 %val2) {106; CHECK-LABEL: f8:107; CHECK:       # %bb.0:108; CHECK-NEXT:    vl %v0, 0(%r4), 3109; CHECK-NEXT:    vl %v1, 0(%r3), 3110; CHECK-NEXT:    vmxlq %v0, %v1, %v0111; CHECK-NEXT:    vst %v0, 0(%r2), 3112; CHECK-NEXT:    br %r14113  %cmp = icmp uge i128 %val1, %val2114  %ret = select i1 %cmp, i128 %val1, i128 %val2115  ret i128 %ret116}117