blob: e416d53e9990a06b0ec22ebdfdd5d686cd2ee09f [file] [log] [blame] [edit]
; Test forward reference of a pointer-typed intrinsic result.
; RUN: llvm-as < %s | pnacl-freeze -allow-local-symbol-tables \
; RUN: | pnacl-thaw -allow-local-symbol-tables \
; RUN: | llvm-dis - | FileCheck %s -check-prefix=TD2
declare i8* @llvm.nacl.read.tp()
define i32 @forward_ref() {
br label %block1
block2:
%1 = load i8, i8* %3
%2 = ptrtoint i8* %3 to i32
ret i32 %2
block1:
%3 = call i8* @llvm.nacl.read.tp()
br label %block2
}
; TD2: define i32 @forward_ref() {
; TD2-NEXT: br label %block1
; TD2: block2:
; TD2-NEXT: %1 = inttoptr i32 %4 to i8*
; TD2-NEXT: %2 = load i8, i8* %1
; TD2-NEXT: ret i32 %4
; TD2: block1:
; TD2-NEXT: %3 = call i8* @llvm.nacl.read.tp()
; TD2-NEXT: %4 = ptrtoint i8* %3 to i32
; TD2-NEXT: br label %block2
; TD2-NEXT: }