xref: /llvm-project/llvm/test/CodeGen/SystemZ/bcmp.ll (revision a1710eb3cd5823c5d14899112ca3086acbdbe9cb)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
3
4declare signext i32 @bcmp(ptr nocapture, ptr nocapture, i64)
5
6define zeroext i1 @test_bcmp_eq_0(ptr nocapture readonly %A, ptr nocapture readonly %B) {
7; CHECK-LABEL: test_bcmp_eq_0:
8; CHECK:       # %bb.0:
9; CHECK-NEXT:    clc 0(2,%r3), 0(%r2)
10; CHECK-NEXT:    ipm %r0
11; CHECK-NEXT:    afi %r0, -268435456
12; CHECK-NEXT:    risbg %r2, %r0, 63, 191, 33
13; CHECK-NEXT:    br %r14
14  %c = tail call signext i32 @bcmp(ptr %A, ptr %B, i64 2)
15  %res  = icmp eq i32 %c, 0
16  ret i1 %res
17}
18
19define signext i32 @test_bcmp(ptr nocapture readonly %A, ptr nocapture readonly %B) {
20; CHECK-LABEL: test_bcmp:
21; CHECK:       # %bb.0:
22; CHECK-NEXT:    clc 0(2,%r3), 0(%r2)
23; CHECK-NEXT:    ipm %r0
24; CHECK-NEXT:    sllg %r0, %r0, 34
25; CHECK-NEXT:    srag %r2, %r0, 62
26; CHECK-NEXT:    br %r14
27  %res = tail call signext i32 @bcmp(ptr %A, ptr %B, i64 2)
28  ret i32 %res
29}
30