1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; CHECK: dcfetch 3*9880d681SAndroid Build Coastguard Worker; CHECK: dcfetch{{.*}}#8 4*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32" 5*9880d681SAndroid Build Coastguard Workertarget triple = "hexagon" 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 8*9880d681SAndroid Build Coastguard Workerdefine zeroext i8 @foo(i8* %addr) #0 { 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker %addr.addr = alloca i8*, align 4 11*9880d681SAndroid Build Coastguard Worker store i8* %addr, i8** %addr.addr, align 4 12*9880d681SAndroid Build Coastguard Worker %0 = load i8*, i8** %addr.addr, align 4 13*9880d681SAndroid Build Coastguard Worker call void @llvm.prefetch(i8* %0, i32 0, i32 3, i32 1) 14*9880d681SAndroid Build Coastguard Worker %1 = load i8*, i8** %addr.addr, align 4 15*9880d681SAndroid Build Coastguard Worker %2 = bitcast i8* %1 to i32* 16*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* %2, align 4 17*9880d681SAndroid Build Coastguard Worker %4 = add i32 %3, 8 18*9880d681SAndroid Build Coastguard Worker %5 = inttoptr i32 %4 to i8* 19*9880d681SAndroid Build Coastguard Worker call void @llvm.hexagon.prefetch(i8* %5) 20*9880d681SAndroid Build Coastguard Worker %6 = load i8, i8* %5 21*9880d681SAndroid Build Coastguard Worker ret i8 %6 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 25*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.prefetch(i8* nocapture, i32, i32, i32) #1 26*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.hexagon.prefetch(i8* nocapture) #1 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } 29*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind } 30