brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 1b946c1 Raw
183 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=small -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:    lea (dst,%pc), %a014; CHECK-NEXT:    move.l %a0, (ptr,%pc)15; CHECK-NEXT:    move.l (src,%pc), (dst,%pc)16; CHECK-NEXT:    rts17entry:18    store ptr @dst, ptr @ptr19    %tmp.s = load i32, ptr @src20    store i32 %tmp.s, ptr @dst21    ret void22}23 24@ptr2 = global ptr null25@dst2 = global i32 026@src2 = global i32 027 28define void @test1() nounwind {29; CHECK-LABEL: test1:30; CHECK:       ; %bb.0: ; %entry31; CHECK-NEXT:    lea (dst2,%pc), %a032; CHECK-NEXT:    move.l %a0, (ptr2,%pc)33; CHECK-NEXT:    move.l (src2,%pc), (dst2,%pc)34; CHECK-NEXT:    rts35entry:36    store ptr @dst2, ptr @ptr237    %tmp.s = load i32, ptr @src238    store i32 %tmp.s, ptr @dst239    ret void40}41 42declare ptr @malloc(i32)43 44define void @test2() nounwind {45; CHECK-LABEL: test2:46; CHECK:       ; %bb.0: ; %entry47; CHECK-NEXT:    suba.l #4, %sp48; CHECK-NEXT:    move.l #40, (%sp)49; CHECK-NEXT:    jsr malloc50; CHECK-NEXT:    adda.l #4, %sp51; CHECK-NEXT:    rts52entry:53    %ptr = call ptr @malloc(i32 40)54    ret void55}56 57@pfoo = external global ptr58declare ptr @afoo(...)59 60define void @test3() nounwind {61; CHECK-LABEL: test3:62; CHECK:       ; %bb.0: ; %entry63; CHECK-NEXT:    suba.l #4, %sp64; CHECK-NEXT:    jsr afoo65; CHECK-NEXT:    move.l %a0, (pfoo,%pc)66; CHECK-NEXT:    jsr (%a0)67; CHECK-NEXT:    adda.l #4, %sp68; CHECK-NEXT:    rts69entry:70    %tmp = call ptr(...) @afoo()71    store ptr %tmp, ptr @pfoo72    %tmp1 = load ptr, ptr @pfoo73    call void(...) %tmp1()74    ret void75}76 77declare void @foo(...)78 79define void @test4() nounwind {80; CHECK-LABEL: test4:81; CHECK:       ; %bb.0: ; %entry82; CHECK-NEXT:    suba.l #4, %sp83; CHECK-NEXT:    jsr foo84; CHECK-NEXT:    adda.l #4, %sp85; CHECK-NEXT:    rts86entry:87    call void(...) @foo()88    ret void89}90 91@ptr6 = internal global ptr null92@dst6 = internal global i32 093@src6 = internal global i32 094 95define void @test5() nounwind {96; CHECK-LABEL: test5:97; CHECK:       ; %bb.0: ; %entry98; CHECK-NEXT:    lea (dst6,%pc), %a099; CHECK-NEXT:    move.l %a0, (ptr6,%pc)100; CHECK-NEXT:    move.l (src6,%pc), (dst6,%pc)101; CHECK-NEXT:    rts102entry:103    store ptr @dst6, ptr @ptr6104    %tmp.s = load i32, ptr @src6105    store i32 %tmp.s, ptr @dst6106    ret void107}108 109define void @test7(i32 %n.u) nounwind {110; CHECK-LABEL: test7:111; CHECK:       ; %bb.0: ; %entry112; CHECK-NEXT:    move.l (4,%sp), %d0113; CHECK-NEXT:    add.l #-1, %d0114; CHECK-NEXT:    move.l %d0, %d1115; CHECK-NEXT:    sub.l #12, %d1116; CHECK-NEXT:    bhi .LBB6_12117; CHECK-NEXT:  ; %bb.1: ; %entry118; CHECK-NEXT:    lsl.l #2, %d0119; CHECK-NEXT:    lea (.LJTI6_0,%pc), %a0120; CHECK-NEXT:    move.l (0,%a0,%d0), %a0121; CHECK-NEXT:    jmp (%a0)122; CHECK-NEXT:  .LBB6_12: ; %bb2123; CHECK-NEXT:    bra foo6 ; TAILCALL124; CHECK-NEXT:  .LBB6_3: ; %bb5125; CHECK-NEXT:    bra foo5 ; TAILCALL126; CHECK-NEXT:  .LBB6_5: ; %bb1127; CHECK-NEXT:    bra foo2 ; TAILCALL128; CHECK-NEXT:  .LBB6_2: ; %bb129; CHECK-NEXT:    bra foo1 ; TAILCALL130; CHECK-NEXT:  .LBB6_9: ; %bb4131; CHECK-NEXT:    bra foo4 ; TAILCALL132; CHECK-NEXT:  .LBB6_8: ; %bb3133; CHECK-NEXT:    bra foo3 ; TAILCALL134entry:135    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 ]136bb:137    tail call void(...) @foo1()138    ret void139bb1:140    tail call void(...) @foo2()141    ret void142bb2:143    tail call void(...) @foo6()144    ret void145bb3:146    tail call void(...) @foo3()147    ret void148bb4:149    tail call void(...) @foo4()150    ret void151bb5:152    tail call void(...) @foo5()153    ret void154bb6:155    tail call void(...) @foo1()156    ret void157bb7:158    tail call void(...) @foo2()159    ret void160bb8:161    tail call void(...) @foo6()162    ret void163bb9:164    tail call void(...) @foo3()165    ret void166bb10:167    tail call void(...) @foo4()168    ret void169bb11:170    tail call void(...) @foo5()171    ret void172bb12:173    tail call void(...) @foo6()174    ret void175}176 177declare void @foo1(...)178declare void @foo2(...)179declare void @foo6(...)180declare void @foo3(...)181declare void @foo4(...)182declare void @foo5(...)183