brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · f5bb3a4 Raw
106 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple=aarch64-apple-ios %s -o - -aarch64-macho-enable-nonlazybind | FileCheck %s --check-prefix=MACHO3; RUN: llc -mtriple=aarch64-apple-ios %s -o - | FileCheck %s --check-prefix=MACHO-NORMAL4; RUN: llc -mtriple=aarch64 -fast-isel %s -o - | FileCheck %s --check-prefixes=ELF,ELF-FI5; RUN: llc -mtriple=aarch64 -global-isel %s -o - | FileCheck %s --check-prefixes=ELF,ELF-GI6; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=ELF,ELF-SDAG7 8declare void @external() nonlazybind9 10define void @test_laziness(ptr %a) nounwind {11;12; MACHO-LABEL: test_laziness:13; MACHO:       ; %bb.0:14; MACHO-NEXT:    stp x20, x19, [sp, #-32]! ; 16-byte Folded Spill15; MACHO-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill16; MACHO-NEXT:  Lloh0:17; MACHO-NEXT:    adrp x8, _external@GOTPAGE18; MACHO-NEXT:    mov x19, x019; MACHO-NEXT:  Lloh1:20; MACHO-NEXT:    ldr x8, [x8, _external@GOTPAGEOFF]21; MACHO-NEXT:    blr x822; MACHO-NEXT:  Lloh2:23; MACHO-NEXT:    adrp x8, _memset@GOTPAGE24; MACHO-NEXT:    mov x0, x1925; MACHO-NEXT:    mov w1, #1 ; =0x126; MACHO-NEXT:  Lloh3:27; MACHO-NEXT:    ldr x8, [x8, _memset@GOTPAGEOFF]28; MACHO-NEXT:    mov w2, #1000 ; =0x3e829; MACHO-NEXT:    blr x830; MACHO-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload31; MACHO-NEXT:    ldp x20, x19, [sp], #32 ; 16-byte Folded Reload32; MACHO-NEXT:    ret33; MACHO-NEXT:    .loh AdrpLdrGot Lloh2, Lloh334; MACHO-NEXT:    .loh AdrpLdrGot Lloh0, Lloh135;36; MACHO-NORMAL-LABEL: test_laziness:37; MACHO-NORMAL:       ; %bb.0:38; MACHO-NORMAL-NEXT:    stp x20, x19, [sp, #-32]! ; 16-byte Folded Spill39; MACHO-NORMAL-NEXT:    stp x29, x30, [sp, #16] ; 16-byte Folded Spill40; MACHO-NORMAL-NEXT:    mov x19, x041; MACHO-NORMAL-NEXT:    bl _external42; MACHO-NORMAL-NEXT:  Lloh0:43; MACHO-NORMAL-NEXT:    adrp x8, _memset@GOTPAGE44; MACHO-NORMAL-NEXT:    mov x0, x1945; MACHO-NORMAL-NEXT:    mov w1, #1 ; =0x146; MACHO-NORMAL-NEXT:  Lloh1:47; MACHO-NORMAL-NEXT:    ldr x8, [x8, _memset@GOTPAGEOFF]48; MACHO-NORMAL-NEXT:    mov w2, #1000 ; =0x3e849; MACHO-NORMAL-NEXT:    blr x850; MACHO-NORMAL-NEXT:    ldp x29, x30, [sp, #16] ; 16-byte Folded Reload51; MACHO-NORMAL-NEXT:    ldp x20, x19, [sp], #32 ; 16-byte Folded Reload52; MACHO-NORMAL-NEXT:    ret53; MACHO-NORMAL-NEXT:    .loh AdrpLdrGot Lloh0, Lloh154;55; ELF-LABEL: test_laziness:56; ELF:       // %bb.0:57; ELF-NEXT:    stp x30, x19, [sp, #-16]! // 16-byte Folded Spill58; ELF-NEXT:    adrp x8, :got:external59; ELF-NEXT:    mov x19, x060; ELF-NEXT:    ldr x8, [x8, :got_lo12:external]61; ELF-NEXT:    blr x862; ELF-NEXT:    adrp x8, :got:memset63; ELF-NEXT:    mov x0, x1964; ELF-NEXT:    mov w1, #1 // =0x165; ELF-NEXT:    ldr x8, [x8, :got_lo12:memset]66; ELF-NEXT:    mov w2, #1000 // =0x3e867; ELF-NEXT:    blr x868; ELF-NEXT:    ldp x30, x19, [sp], #16 // 16-byte Folded Reload69; ELF-NEXT:    ret70  call void @external()71  call void @llvm.memset.p0.i64(ptr align 1 %a, i8 1, i64 1000, i1 false)72  ret void73}74 75define void @test_laziness_tail() nounwind {76; MACHO-LABEL: test_laziness_tail:77; MACHO:       ; %bb.0:78; MACHO-NEXT:  Lloh4:79; MACHO-NEXT:    adrp x0, _external@GOTPAGE80; MACHO-NEXT:  Lloh5:81; MACHO-NEXT:    ldr x0, [x0, _external@GOTPAGEOFF]82; MACHO-NEXT:    br x083; MACHO-NEXT:    .loh AdrpLdrGot Lloh4, Lloh584;85; MACHO-NORMAL-LABEL: test_laziness_tail:86; MACHO-NORMAL:       ; %bb.0:87; MACHO-NORMAL-NEXT:    b _external88;89; ELF-LABEL: test_laziness_tail:90; ELF:       // %bb.0:91; ELF-NEXT:    adrp x0, :got:external92; ELF-NEXT:    ldr x0, [x0, :got_lo12:external]93; ELF-NEXT:    br x094  tail call void @external()95  ret void96}97 98declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)99 100!llvm.module.flags = !{!0}101!0 = !{i32 7, !"RtLibUseGOT", i32 1}102;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:103; ELF-FI: {{.*}}104; ELF-GI: {{.*}}105; ELF-SDAG: {{.*}}106