brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 79512dc Raw
181 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -O2 -mtriple=m68k -verify-machineinstrs \3; RUN:              -code-model=medium -relocation-model=static \4; RUN:   | FileCheck %s5 6@ptr = external global ptr7@dst = external global i328@src = external global i329 10define void @test0() nounwind {11; CHECK-LABEL: test0:12; CHECK:       ; %bb.0: ; %entry13; CHECK-NEXT:    move.l #dst, ptr14; CHECK-NEXT:    move.l src, dst15; CHECK-NEXT:    rts16entry:17    store ptr @dst, ptr @ptr18    %tmp.s = load i32, ptr @src19    store i32 %tmp.s, ptr @dst20    ret void21}22 23@ptr2 = global ptr null24@dst2 = global i32 025@src2 = global i32 026 27define void @test1() nounwind {28; CHECK-LABEL: test1:29; CHECK:       ; %bb.0: ; %entry30; CHECK-NEXT:    move.l #dst2, ptr231; CHECK-NEXT:    move.l src2, dst232; CHECK-NEXT:    rts33entry:34    store ptr @dst2, ptr @ptr235    %tmp.s = load i32, ptr @src236    store i32 %tmp.s, ptr @dst237    ret void38}39 40declare ptr @malloc(i32)41 42define void @test2() nounwind {43; CHECK-LABEL: test2:44; CHECK:       ; %bb.0: ; %entry45; CHECK-NEXT:    suba.l #4, %sp46; CHECK-NEXT:    move.l #40, (%sp)47; CHECK-NEXT:    jsr malloc48; CHECK-NEXT:    adda.l #4, %sp49; CHECK-NEXT:    rts50entry:51    %ptr = call ptr @malloc(i32 40)52    ret void53}54 55@pfoo = external global ptr56declare ptr @afoo(...)57 58 59define void @test3() nounwind {60; CHECK-LABEL: test3:61; CHECK:       ; %bb.0: ; %entry62; CHECK-NEXT:    suba.l #4, %sp63; CHECK-NEXT:    jsr afoo64; CHECK-NEXT:    move.l %a0, pfoo65; CHECK-NEXT:    jsr (%a0)66; CHECK-NEXT:    adda.l #4, %sp67; CHECK-NEXT:    rts68entry:69    %tmp = call ptr(...) @afoo()70    store ptr %tmp, ptr @pfoo71    %tmp1 = load ptr, ptr @pfoo72    call void(...) %tmp1()73    ret void74}75 76declare void @foo(...)77 78define void @test4() nounwind {79; CHECK-LABEL: test4:80; CHECK:       ; %bb.0: ; %entry81; CHECK-NEXT:    suba.l #4, %sp82; CHECK-NEXT:    jsr foo83; CHECK-NEXT:    adda.l #4, %sp84; CHECK-NEXT:    rts85entry:86    call void(...) @foo()87    ret void88}89 90@ptr6 = internal global ptr null91@dst6 = internal global i32 092@src6 = internal global i32 093 94define void @test5() nounwind {95; CHECK-LABEL: test5:96; CHECK:       ; %bb.0: ; %entry97; CHECK-NEXT:    move.l #dst6, ptr698; CHECK-NEXT:    move.l src6, dst699; CHECK-NEXT:    rts100entry:101    store ptr @dst6, ptr @ptr6102    %tmp.s = load i32, ptr @src6103    store i32 %tmp.s, ptr @dst6104    ret void105}106 107define void @test7(i32 %n.u) nounwind {108; CHECK-LABEL: test7:109; CHECK:       ; %bb.0: ; %entry110; CHECK-NEXT:    move.l (4,%sp), %d0111; CHECK-NEXT:    add.l #-1, %d0112; CHECK-NEXT:    move.l %d0, %d1113; CHECK-NEXT:    sub.l #12, %d1114; CHECK-NEXT:    bhi .LBB6_12115; CHECK-NEXT:  ; %bb.1: ; %entry116; CHECK-NEXT:    lsl.l #2, %d0117; CHECK-NEXT:    move.l #.LJTI6_0, %a0118; CHECK-NEXT:    move.l (0,%a0,%d0), %a0119; CHECK-NEXT:    jmp (%a0)120; CHECK-NEXT:  .LBB6_12: ; %bb2121; CHECK-NEXT:    bra foo6 ; TAILCALL122; CHECK-NEXT:  .LBB6_3: ; %bb5123; CHECK-NEXT:    bra foo5 ; TAILCALL124; CHECK-NEXT:  .LBB6_5: ; %bb1125; CHECK-NEXT:    bra foo2 ; TAILCALL126; CHECK-NEXT:  .LBB6_2: ; %bb127; CHECK-NEXT:    bra foo1 ; TAILCALL128; CHECK-NEXT:  .LBB6_9: ; %bb4129; CHECK-NEXT:    bra foo4 ; TAILCALL130; CHECK-NEXT:  .LBB6_8: ; %bb3131; CHECK-NEXT:    bra foo3 ; TAILCALL132entry:133    switch i32 %n.u, label %bb12 [i32 1, label %bb i32 2, label %bb6 i32 4, label %bb7 i32 5, label %bb8 i32 6, label %bb10 i32 7, label %bb1 i32 8, label %bb3 i32 9, label %bb4 i32 10, label %bb9 i32 11, label %bb2 i32 12, label %bb5 i32 13, label %bb11 ]134bb:135    tail call void(...) @foo1()136    ret void137bb1:138    tail call void(...) @foo2()139    ret void140bb2:141    tail call void(...) @foo6()142    ret void143bb3:144    tail call void(...) @foo3()145    ret void146bb4:147    tail call void(...) @foo4()148    ret void149bb5:150    tail call void(...) @foo5()151    ret void152bb6:153    tail call void(...) @foo1()154    ret void155bb7:156    tail call void(...) @foo2()157    ret void158bb8:159    tail call void(...) @foo6()160    ret void161bb9:162    tail call void(...) @foo3()163    ret void164bb10:165    tail call void(...) @foo4()166    ret void167bb11:168    tail call void(...) @foo5()169    ret void170bb12:171    tail call void(...) @foo6()172    ret void173}174 175declare void @foo1(...)176declare void @foo2(...)177declare void @foo6(...)178declare void @foo3(...)179declare void @foo4(...)180declare void @foo5(...)181