1; RUN: llc -verify-machineinstrs < %s | FileCheck %s -check-prefix=STATIC 2; RUN: llc -verify-machineinstrs < %s -relocation-model=static | FileCheck %s -check-prefix=STATIC 3; RUN: llc -verify-machineinstrs < %s -relocation-model=pic -mtriple=powerpc-unknown-linux-gnu | FileCheck %s -check-prefix=PIC 4; RUN: llc -verify-machineinstrs < %s -relocation-model=pic -mtriple=powerpc-unknown-linux | FileCheck %s -check-prefix=PICELF 5; RUN: llc -verify-machineinstrs < %s -relocation-model=pic -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=PIC64 6 7;;; KB: These two tests currently cause an assertion. It seems as though we cannot have a non DSOLocal symbol with dynamic-no-pic. 8;;; I need to ask Sean about this. 9;;; RUN-NOT: llc -verify-machineinstrs < %s -relocation-model=dynamic-no-pic -mtriple=powerpc-unknown-linux-gnu | FileCheck %s -check-prefix=DYNAMIC 10;;; RUN-NOT: llc -verify-machineinstrs < %s -relocation-model=dynamic-no-pic -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=DYNAMIC64 11; PR4482 12target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" 13target triple = "powerpc-unknown-linux-gnu" 14 15define i32 @foo(i64 %x) nounwind { 16entry: 17; STATIC: foo: 18; STATIC: bl exact_log2 19; STATIC: blr 20 21; PIC: foo: 22; PIC: bl exact_log2@PLT 23; PIC: blr 24 25; PICELF: foo: 26; PICELF: bl exact_log2@PLT 27; PICELF: blr 28 29; PIC64: foo: 30; PIC64: bl exact_log2 31; PIC64: blr 32 33; DYNAMIC: foo: 34; DYNAMIC: bl exact_log2@PLT 35; DYNAMIC: blr 36 37; DYNAMIC64: foo: 38; DYNAMIC64: bl exact_log2@PPLT 39; DYNAMIC64: blr 40 41 %A = call i32 @exact_log2(i64 %x) nounwind 42 ret i32 %A 43} 44 45define available_externally i32 @exact_log2(i64 %x) nounwind { 46entry: 47 ret i32 42 48} 49 50 51