]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/x86-plt-relative-reloc.ll
Vendor import of llvm release_40 branch r292009:
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / x86-plt-relative-reloc.ll
1 ; RUN: llc -mtriple=i686-unknown-linux -o - %s | FileCheck %s
2
3 @vtable = constant [4 x i32] [i32 0,
4     i32 sub (i32 ptrtoint (void ()* @fn1 to i32), i32 ptrtoint (i32* getelementptr ([4 x i32], [4 x i32]* @vtable, i32 0, i32 1) to i32)),
5     i32 sub (i32 ptrtoint (void ()* @fn2 to i32), i32 ptrtoint (i32* getelementptr ([4 x i32], [4 x i32]* @vtable, i32 0, i32 1) to i32)),
6     i32 sub (i32 ptrtoint (void ()* @fn3 to i32), i32 ptrtoint (i32* getelementptr ([4 x i32], [4 x i32]* @vtable, i32 0, i32 1) to i32))
7 ]
8
9 declare void @fn1() unnamed_addr
10 declare void @fn2() unnamed_addr
11 declare void @fn3()
12
13 ; CHECK: .long 0
14 ; CHECK-NEXT: .long (fn1@PLT-vtable)-4
15 ; CHECK-NEXT: .long (fn2@PLT-vtable)-4
16 ; CHECK-NEXT: .long (fn3-vtable)-4