# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
# This test ensures that the MIR parser parses the external symbol machine
# operands correctly.

--- |
  @__stack_chk_guard = external global i8*

  define i32 @test(i32 %n) #0 {
  entry:
    %StackGuardSlot = alloca i8*
    %StackGuard = load i8*, i8** @__stack_chk_guard
    call void @llvm.stackprotector(i8* %StackGuard, i8** %StackGuardSlot)
    %a = alloca [128 x i32], align 16
    %idxprom = sext i32 %n to i64
    %arrayidx = getelementptr inbounds [128 x i32], [128 x i32]* %a, i64 0, i64 %idxprom
    %0 = load i32, i32* %arrayidx, align 4
    call void @llvm.stackprotectorcheck(i8** @__stack_chk_guard)
    ret i32 %0
  }

  declare void @llvm.stackprotector(i8*, i8**) #1

  declare void @llvm.stackprotectorcheck(i8**) #1

  attributes #0 = { ssp "stack-protector-buffer-size"="8" }
  attributes #1 = { nounwind }

...
---
name:            test
tracksRegLiveness: true
body: |
  bb.0.entry:
    successors: %bb.1.entry, %bb.2.entry
    liveins: $edi

    $rsp = SUB64ri32 $rsp, 520, implicit-def $eflags
    $rcx = LOAD_STACK_GUARD
    MOV64mr $rsp, 1, _, 512, _, $rcx
    $rax = MOVSX64rr32 $edi
    $eax = MOV32rm $rsp, 4, $rax, 0, _
    CMP64rm $rcx, $rsp, 1, _, 512, _, implicit-def $eflags
    JCC_1 %bb.2.entry, 5, implicit $eflags

  bb.1.entry:
    liveins: $eax

    $rsp = ADD64ri32 $rsp, 520, implicit-def $eflags
    RET64 $eax

  bb.2.entry:
    ; CHECK:      CALL64pcrel32 &__stack_chk_fail,
    ; CHECK-NEXT: CALL64pcrel32 &__stack_chk_fail.09-_,
    ; CHECK-NEXT: CALL64pcrel32 &"__stack_chk_fail$",
    ; CHECK-NEXT: CALL64pcrel32 &"$Quoted \09 External symbol \11 ",
    ; CHECK-NEXT: CALL64pcrel32 &__stack_chk_fail + 2,
    ; CHECK-NEXT: CALL64pcrel32 &" check stack - 20" - 20,
    CALL64pcrel32 &__stack_chk_fail, csr_64, implicit $rsp, implicit-def $rsp
    CALL64pcrel32 &__stack_chk_fail.09-_, csr_64, implicit $rsp, implicit-def $rsp
    CALL64pcrel32 &__stack_chk_fail$, csr_64, implicit $rsp, implicit-def $rsp
    CALL64pcrel32 &"$Quoted \09 External symbol \11 ", csr_64, implicit $rsp, implicit-def $rsp
    CALL64pcrel32 &__stack_chk_fail + 2, csr_64, implicit $rsp, implicit-def $rsp
    CALL64pcrel32 &" check stack - 20" - 20, csr_64, implicit $rsp, implicit-def $rsp
...
