brintos

brintos / llvm-project-archived public Read only

0
0
Text · 795 B · c57cf57 Raw
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