Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / SystemZ / bcmp.ll
blob0cdeb6c2c0b208521e1d49b9ccd6c544cb60cdaf
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
4 declare signext i32 @bcmp(ptr nocapture, ptr nocapture, i64)
6 define 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
19 define 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