xref: /aosp_15_r20/external/llvm/test/CodeGen/SystemZ/cond-li.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Test LOCHI/LOCGHI
2*9880d681SAndroid Build Coastguard Worker;
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar1:
6*9880d681SAndroid Build Coastguard Worker; CHECK: lhi [[REG:%r[0-5]]], 42
7*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 0
8*9880d681SAndroid Build Coastguard Worker; CHECK: lochie [[REG]], 0
9*9880d681SAndroid Build Coastguard Workerdefine signext i32 @bar1(i32 signext %x) {
10*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ne i32 %x, 0
11*9880d681SAndroid Build Coastguard Worker  %.x = select i1 %cmp, i32 42, i32 0
12*9880d681SAndroid Build Coastguard Worker  ret i32 %.x
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar2:
16*9880d681SAndroid Build Coastguard Worker; CHECK: ltgr [[REG:%r[0-5]]], %r2
17*9880d681SAndroid Build Coastguard Worker; CHECK: lghi %r2, 42
18*9880d681SAndroid Build Coastguard Worker; CHECK: locghie %r2, 0
19*9880d681SAndroid Build Coastguard Workerdefine signext i64 @bar2(i64 signext %x) {
20*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ne i64 %x, 0
21*9880d681SAndroid Build Coastguard Worker  %.x = select i1 %cmp, i64 42, i64 0
22*9880d681SAndroid Build Coastguard Worker  ret i64 %.x
23*9880d681SAndroid Build Coastguard Worker}
24