40 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck %s2;3; Test that a CC result of a sub that can overflow is tested with the right predicate.4 5define i32 @fun0(i32 %a, i32 %b, ptr %dest) {6; CHECK-LABEL: fun07; CHECK: s %r2, 0(%r4)8; CHECK: bner %r149entry:10 %cur = load i32, ptr %dest11 %res = sub nsw i32 %a, %cur12 %cmp = icmp ne i32 %a, %cur13 br i1 %cmp, label %exit, label %store14 15store:16 store i32 %b, ptr %dest17 br label %exit18 19exit:20 ret i32 %res21}22 23define i32 @fun1(i32 %a, i32 %b, ptr %dest) {24; CHECK-LABEL: fun125; CHECK: s %r2, 0(%r4)26; CHECK: bner %r1427entry:28 %cur = load i32, ptr %dest29 %res = sub nuw i32 %a, %cur30 %cmp = icmp ne i32 %a, %cur31 br i1 %cmp, label %exit, label %store32 33store:34 store i32 %b, ptr %dest35 br label %exit36 37exit:38 ret i32 %res39}40