• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=x86_64-unknown-linux -o - %s | FileCheck %s
2
3@vtable = constant [5 x i32] [i32 0,
4    i32 trunc (i64 sub (i64 ptrtoint (void ()* @fn1 to i64), i64 ptrtoint (i32* getelementptr ([5 x i32], [5 x i32]* @vtable, i32 0, i32 1) to i64)) to i32),
5    i32 trunc (i64 sub (i64 ptrtoint (void ()* @fn2 to i64), i64 ptrtoint (i32* getelementptr ([5 x i32], [5 x i32]* @vtable, i32 0, i32 1) to i64)) to i32),
6    i32 trunc (i64 sub (i64 ptrtoint (void ()* @fn3 to i64), i64 ptrtoint (i32* getelementptr ([5 x i32], [5 x i32]* @vtable, i32 0, i32 1) to i64)) to i32),
7    i32 trunc (i64 sub (i64 ptrtoint (i8* @global4 to i64), i64 ptrtoint (i32* getelementptr ([5 x i32], [5 x i32]* @vtable, i32 0, i32 1) to i64)) to i32)
8]
9
10declare void @fn1() unnamed_addr
11declare void @fn2() unnamed_addr
12declare void @fn3()
13@global4 = external unnamed_addr global i8
14
15; CHECK: .long 0
16; CHECK-NEXT: .long (fn1@PLT-vtable)-4
17; CHECK-NEXT: .long (fn2@PLT-vtable)-4
18; CHECK-NEXT: .long (fn3-vtable)-4
19; CHECK-NEXT: .long (global4-vtable)-4
20