brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · ec6e759 Raw
63 lines · plain
1; Test all condition-code masks that are relevant for CLGRJ.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s4 5declare i64 @foo()6@g1 = global i16 07 8define void @f1(i64 %target) {9; CHECK-LABEL: f1:10; CHECK: .cfi_def_cfa_offset11; CHECK: .L[[LABEL:.*]]:12; CHECK: clgrjle %r2, {{%r[0-9]+}}, .L[[LABEL]]13  br label %loop14loop:15  %val = call i64 @foo()16  %cond = icmp ule i64 %val, %target17  br i1 %cond, label %loop, label %exit18exit:19  ret void20}21 22define void @f2(i64 %target) {23; CHECK-LABEL: f2:24; CHECK: .cfi_def_cfa_offset25; CHECK: .L[[LABEL:.*]]:26; CHECK: clgrjl %r2, {{%r[0-9]+}}, .L[[LABEL]]27  br label %loop28loop:29  %val = call i64 @foo()30  %cond = icmp ult i64 %val, %target31  br i1 %cond, label %loop, label %exit32exit:33  ret void34}35 36define void @f3(i64 %target) {37; CHECK-LABEL: f3:38; CHECK: .cfi_def_cfa_offset39; CHECK: .L[[LABEL:.*]]:40; CHECK: clgrjh %r2, {{%r[0-9]+}}, .L[[LABEL]]41  br label %loop42loop:43  %val = call i64 @foo()44  %cond = icmp ugt i64 %val, %target45  br i1 %cond, label %loop, label %exit46exit:47  ret void48}49 50define void @f4(i64 %target) {51; CHECK-LABEL: f4:52; CHECK: .cfi_def_cfa_offset53; CHECK: .L[[LABEL:.*]]:54; CHECK: clgrjhe %r2, {{%r[0-9]+}}, .L[[LABEL]]55  br label %loop56loop:57  %val = call i64 @foo()58  %cond = icmp uge i64 %val, %target59  br i1 %cond, label %loop, label %exit60exit:61  ret void62}63