; Test that the FPutsOptimizer works correctly
; RUN: opt < %s -simplify-libcalls -S | \
; RUN:   not grep {call.*fputs}

; This transformation requires the pointer size, as it assumes that size_t is
; the size of a pointer.
target datalayout = "-p:64:64:64"

	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
@stdout = external global %struct._IO_FILE*		; <%struct._IO_FILE**> [#uses=1]
@empty = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
@len1 = constant [2 x i8] c"A\00"		; <[2 x i8]*> [#uses=1]
@long = constant [7 x i8] c"hello\0A\00"		; <[7 x i8]*> [#uses=1]

declare i32 @fputs(i8*, %struct._IO_FILE*)

define i32 @main() {
entry:
	%out = load %struct._IO_FILE** @stdout		; <%struct._IO_FILE*> [#uses=3]
	%s1 = getelementptr [1 x i8]* @empty, i32 0, i32 0		; <i8*> [#uses=1]
	%s2 = getelementptr [2 x i8]* @len1, i32 0, i32 0		; <i8*> [#uses=1]
	%s3 = getelementptr [7 x i8]* @long, i32 0, i32 0		; <i8*> [#uses=1]
	%a = call i32 @fputs( i8* %s1, %struct._IO_FILE* %out )		; <i32> [#uses=0]
	%b = call i32 @fputs( i8* %s2, %struct._IO_FILE* %out )		; <i32> [#uses=0]
	%c = call i32 @fputs( i8* %s3, %struct._IO_FILE* %out )		; <i32> [#uses=0]
	ret i32 0
}

