1*0a6a1f1dSLionel Sambuc; RUN: llc %s -o - | FileCheck %s 2*0a6a1f1dSLionel Sambuctarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 3*0a6a1f1dSLionel Sambuctarget triple = "x86_64-unknown-linux-gnu" 4*0a6a1f1dSLionel Sambuc 5*0a6a1f1dSLionel Sambuc@buffer = global [32 x i8] c"This is a largely unused buffer\00", align 16 6*0a6a1f1dSLionel Sambuc@.str = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 7*0a6a1f1dSLionel Sambuc@.str1 = private unnamed_addr constant [25 x i8] c"Still, largely unused...\00", align 1 8*0a6a1f1dSLionel Sambuc 9*0a6a1f1dSLionel Sambucdefine i32 @main() { 10*0a6a1f1dSLionel Sambucentry: 11*0a6a1f1dSLionel Sambuc %retval = alloca i32, align 4 12*0a6a1f1dSLionel Sambuc store i32 0, i32* %retval 13*0a6a1f1dSLionel Sambuc %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0)) 14*0a6a1f1dSLionel Sambuc %call1 = call i8* @strcpy(i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8]* @.str1, i32 0, i32 0)) #3 15*0a6a1f1dSLionel Sambuc call void @llvm.clear_cache(i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds (i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i32 32)) #3 16*0a6a1f1dSLionel Sambuc %call3 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0)) 17*0a6a1f1dSLionel Sambuc ret i32 0 18*0a6a1f1dSLionel Sambuc} 19*0a6a1f1dSLionel Sambuc 20*0a6a1f1dSLionel Sambuc; CHECK-NOT: __clear_cache 21*0a6a1f1dSLionel Sambuc 22*0a6a1f1dSLionel Sambucdeclare i32 @printf(i8*, ...) 23*0a6a1f1dSLionel Sambuc 24*0a6a1f1dSLionel Sambucdeclare i8* @strcpy(i8*, i8*) 25*0a6a1f1dSLionel Sambuc 26*0a6a1f1dSLionel Sambucdeclare void @llvm.clear_cache(i8*, i8*) 27