symbol_relocation.ll 908 Bytes
; RUN: llc -filetype=obj -mtriple=ve -o - %s |  llvm-objdump - -d -r \
; RUN:     | FileCheck %s
; RUN: llc -filetype=obj -mtriple=ve -relocation-model=pic -o - %s \
; RUN:     |  llvm-objdump - -d -r | FileCheck %s -check-prefix=PIC

; CHECK:        lea %s0, 0
; CHECK-NEXT:   R_VE_LO32 foo
; CHECK-NEXT:   and %s0, %s0, (32)0
; CHECK-NEXT:   lea.sl %s12, (, %s0)
; CHECK-NEXT:   R_VE_HI32 foo
; PIC:        lea %s15, (-24)
; PIC-NEXT:   R_VE_PC_LO32 _GLOBAL_OFFSET_TABLE_
; PIC-NEXT:   and %s15, %s15, (32)0
; PIC-NEXT:   sic %s16
; PIC-NEXT:   lea.sl %s15, (%s16, %s15)
; PIC-NEXT:   R_VE_PC_HI32 _GLOBAL_OFFSET_TABLE_
; PIC-NEXT:   lea %s12, (-24)
; PIC-NEXT:   R_VE_PLT_LO32 foo
; PIC-NEXT:   and %s12, %s12, (32)0
; PIC-NEXT:   sic %s16
; PIC-NEXT:   lea.sl %s12, (%s16, %s12)
; PIC-NEXT:   R_VE_PLT_HI32 foo

define i32 @main() {
entry:
  %call = call i32 @foo()
  ret i32 %call
}

declare i32 @foo()