Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / SystemZ / int-cmp-62.ll
blobc57cf5777d0f24a00bcc399f0f1c65c66fe853ce
1 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck %s
3 ; Test that a CC result of a sub that can overflow is tested with the right predicate.
5 define i32 @fun0(i32 %a, i32 %b, ptr %dest) {
6 ; CHECK-LABEL: fun0
7 ; CHECK: s %r2, 0(%r4)
8 ; CHECK: bner %r14
9 entry:
10   %cur = load i32, ptr %dest
11   %res = sub nsw i32 %a, %cur
12   %cmp = icmp ne i32 %a, %cur
13   br i1 %cmp, label %exit, label %store
15 store:
16   store i32 %b, ptr %dest
17   br label %exit
19 exit:
20   ret i32 %res
23 define i32 @fun1(i32 %a, i32 %b, ptr %dest) {
24 ; CHECK-LABEL: fun1
25 ; CHECK: s %r2, 0(%r4)
26 ; CHECK: bner %r14
27 entry:
28   %cur = load i32, ptr %dest
29   %res = sub nuw i32 %a, %cur
30   %cmp = icmp ne i32 %a, %cur
31   br i1 %cmp, label %exit, label %store
33 store:
34   store i32 %b, ptr %dest
35   br label %exit
37 exit:
38   ret i32 %res