1 ; Test all condition-code masks that are relevant for CGRJ.
3 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
7 define void @f1(i64 %target) {
9 ; CHECK: .cfi_def_cfa_offset
10 ; CHECK: .L[[LABEL:.*]]:
11 ; CHECK: cgrje %r2, {{%r[0-9]+}}, .L[[LABEL]]
14 %val = call i64 @foo()
15 %cond = icmp eq i64 %val, %target
16 br i1 %cond, label %loop, label %exit
21 define void @f2(i64 %target) {
23 ; CHECK: .cfi_def_cfa_offset
24 ; CHECK: .L[[LABEL:.*]]:
25 ; CHECK: cgrjlh %r2, {{%r[0-9]+}}, .L[[LABEL]]
28 %val = call i64 @foo()
29 %cond = icmp ne i64 %val, %target
30 br i1 %cond, label %loop, label %exit
35 define void @f3(i64 %target) {
37 ; CHECK: .cfi_def_cfa_offset
38 ; CHECK: .L[[LABEL:.*]]:
39 ; CHECK: cgrjle %r2, {{%r[0-9]+}}, .L[[LABEL]]
42 %val = call i64 @foo()
43 %cond = icmp sle i64 %val, %target
44 br i1 %cond, label %loop, label %exit
49 define void @f4(i64 %target) {
51 ; CHECK: .cfi_def_cfa_offset
52 ; CHECK: .L[[LABEL:.*]]:
53 ; CHECK: cgrjl %r2, {{%r[0-9]+}}, .L[[LABEL]]
56 %val = call i64 @foo()
57 %cond = icmp slt i64 %val, %target
58 br i1 %cond, label %loop, label %exit
63 define void @f5(i64 %target) {
65 ; CHECK: .cfi_def_cfa_offset
66 ; CHECK: .L[[LABEL:.*]]:
67 ; CHECK: cgrjh %r2, {{%r[0-9]+}}, .L[[LABEL]]
70 %val = call i64 @foo()
71 %cond = icmp sgt i64 %val, %target
72 br i1 %cond, label %loop, label %exit
77 define void @f6(i64 %target) {
79 ; CHECK: .cfi_def_cfa_offset
80 ; CHECK: .L[[LABEL:.*]]:
81 ; CHECK: cgrjhe %r2, {{%r[0-9]+}}, .L[[LABEL]]
84 %val = call i64 @foo()
85 %cond = icmp sge i64 %val, %target
86 br i1 %cond, label %loop, label %exit