brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 2bbe1eb Raw
65 lines · plain
1# RUN: llc -mtriple=x86_64 -run-pass none -o - %s | FileCheck %s2# This test ensures that the MIR parser parses the external symbol machine3# operands correctly.4 5--- |6  @__stack_chk_guard = external global ptr7 8  define i32 @test(i32 %n) #0 {9  entry:10    %StackGuardSlot = alloca ptr11    %StackGuard = load ptr, ptr @__stack_chk_guard12    call void @llvm.stackprotector(ptr %StackGuard, ptr %StackGuardSlot)13    %a = alloca [128 x i32], align 1614    %idxprom = sext i32 %n to i6415    %arrayidx = getelementptr inbounds [128 x i32], ptr %a, i64 0, i64 %idxprom16    %0 = load i32, ptr %arrayidx, align 417    call void @llvm.stackprotectorcheck(ptr @__stack_chk_guard)18    ret i32 %019  }20 21  declare void @llvm.stackprotector(ptr, ptr) #122 23  declare void @llvm.stackprotectorcheck(ptr) #124 25  attributes #0 = { ssp "stack-protector-buffer-size"="8" }26  attributes #1 = { nounwind }27 28...29---30name:            test31tracksRegLiveness: true32body: |33  bb.0.entry:34    successors: %bb.1.entry, %bb.2.entry35    liveins: $edi36 37    $rsp = SUB64ri32 $rsp, 520, implicit-def $eflags38    $rcx = LOAD_STACK_GUARD39    MOV64mr $rsp, 1, _, 512, _, $rcx40    $rax = MOVSX64rr32 $edi41    $eax = MOV32rm $rsp, 4, $rax, 0, _42    CMP64rm $rcx, $rsp, 1, _, 512, _, implicit-def $eflags43    JCC_1 %bb.2.entry, 5, implicit $eflags44 45  bb.1.entry:46    liveins: $eax47 48    $rsp = ADD64ri32 $rsp, 520, implicit-def $eflags49    RET64 $eax50 51  bb.2.entry:52    ; CHECK:      CALL64pcrel32 &__stack_chk_fail,53    ; CHECK-NEXT: CALL64pcrel32 &__stack_chk_fail.09-_,54    ; CHECK-NEXT: CALL64pcrel32 &"__stack_chk_fail$",55    ; CHECK-NEXT: CALL64pcrel32 &"$Quoted \09 External symbol \11 ",56    ; CHECK-NEXT: CALL64pcrel32 &__stack_chk_fail + 2,57    ; CHECK-NEXT: CALL64pcrel32 &" check stack - 20" - 20,58    CALL64pcrel32 &__stack_chk_fail, csr_64, implicit $rsp, implicit-def $rsp59    CALL64pcrel32 &__stack_chk_fail.09-_, csr_64, implicit $rsp, implicit-def $rsp60    CALL64pcrel32 &__stack_chk_fail$, csr_64, implicit $rsp, implicit-def $rsp61    CALL64pcrel32 &"$Quoted \09 External symbol \11 ", csr_64, implicit $rsp, implicit-def $rsp62    CALL64pcrel32 &__stack_chk_fail + 2, csr_64, implicit $rsp, implicit-def $rsp63    CALL64pcrel32 &" check stack - 20" - 20, csr_64, implicit $rsp, implicit-def $rsp64...65