brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 70479b0 Raw
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