76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=m68k-linux -verify-machineinstrs | FileCheck %s3 4declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32)5declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32)6 7define fastcc i32 @test5(i32 %v1, i32 %v2, ptr %X) nounwind {8; CHECK-LABEL: test5:9; CHECK: ; %bb.0: ; %entry10; CHECK-NEXT: add.l %d1, %d011; CHECK-NEXT: bvs .LBB0_212; CHECK-NEXT: ; %bb.1: ; %normal13; CHECK-NEXT: move.l #0, (%a0)14; CHECK-NEXT: .LBB0_2: ; %overflow15; CHECK-NEXT: rts16entry:17 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2)18 %sum = extractvalue {i32, i1} %t, 019 %obit = extractvalue {i32, i1} %t, 120 br i1 %obit, label %overflow, label %normal21 22normal:23 store i32 0, ptr %X24 br label %overflow25 26overflow:27 ret i32 %sum28}29 30define fastcc i1 @test6(i32 %v1, i32 %v2, ptr %X) nounwind {31; CHECK-LABEL: test6:32; CHECK: ; %bb.0: ; %entry33; CHECK-NEXT: add.l %d1, %d034; CHECK-NEXT: bcs .LBB1_235; CHECK-NEXT: ; %bb.1: ; %normal36; CHECK-NEXT: move.l #0, (%a0)37; CHECK-NEXT: .LBB1_2: ; %carry38; CHECK-NEXT: moveq #0, %d039; CHECK-NEXT: rts40entry:41 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)42 %sum = extractvalue {i32, i1} %t, 043 %obit = extractvalue {i32, i1} %t, 144 br i1 %obit, label %carry, label %normal45 46normal:47 store i32 0, ptr %X48 br label %carry49 50carry:51 ret i1 false52}53 54define {i32, i1} @test7(i32 %v1, i32 %v2) nounwind {55; CHECK-LABEL: test7:56; CHECK: ; %bb.0:57; CHECK-NEXT: move.l (4,%sp), %d058; CHECK-NEXT: add.l (8,%sp), %d059; CHECK-NEXT: scs %d160; CHECK-NEXT: rts61 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)62 ret {i32, i1} %t63}64 65define fastcc i1 @test10(i32 %x) nounwind {66; CHECK-LABEL: test10:67; CHECK: ; %bb.0: ; %entry68; CHECK-NEXT: add.l #1, %d069; CHECK-NEXT: svs %d070; CHECK-NEXT: rts71entry:72 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %x, i32 1)73 %obit = extractvalue {i32, i1} %t, 174 ret i1 %obit75}76