1; RUN: llc -march=hexagon < %s | FileCheck %s 2 3target triple = "hexagon" 4 5; CHECK-LABEL: dc00: 6; CHECK: dcfetch 7define void @dc00(i8* nocapture readonly %p) local_unnamed_addr #0 { 8 tail call void @llvm.hexagon.prefetch(i8* %p) 9 ret void 10} 11 12; CHECK-LABEL: dc01: 13; CHECK: dccleana 14define void @dc01(i8* nocapture readonly %p) local_unnamed_addr #0 { 15entry: 16 tail call void @llvm.hexagon.Y2.dccleana(i8* %p) 17 ret void 18} 19 20; CHECK-LABEL: dc02: 21; CHECK: dccleaninva 22define void @dc02(i8* nocapture readonly %p) local_unnamed_addr #0 { 23entry: 24 tail call void @llvm.hexagon.Y2.dccleaninva(i8* %p) 25 ret void 26} 27 28; CHECK-LABEL: dc03: 29; CHECK: dcinva 30define void @dc03(i8* nocapture readonly %p) local_unnamed_addr #0 { 31entry: 32 tail call void @llvm.hexagon.Y2.dcinva(i8* %p) 33 ret void 34} 35 36; CHECK-LABEL: dc04: 37; CHECK: dczeroa 38define void @dc04(i8* nocapture %p) local_unnamed_addr #0 { 39entry: 40 tail call void @llvm.hexagon.Y2.dczeroa(i8* %p) 41 ret void 42} 43 44; CHECK-LABEL: dc05: 45; CHECK: l2fetch(r{{[0-9]+}},r{{[0-9]+}}) 46define void @dc05(i8* nocapture readonly %p, i32 %q) local_unnamed_addr #0 { 47entry: 48 tail call void @llvm.hexagon.Y4.l2fetch(i8* %p, i32 %q) 49 ret void 50} 51 52; CHECK-LABEL: dc06: 53; CHECK: l2fetch(r{{[0-9]+}},r{{[0-9]+}}:{{[0-9]+}}) 54define void @dc06(i8* nocapture readonly %p, i64 %q) local_unnamed_addr #0 { 55entry: 56 tail call void @llvm.hexagon.Y5.l2fetch(i8* %p, i64 %q) 57 ret void 58} 59 60declare void @llvm.hexagon.prefetch(i8* nocapture) #1 61declare void @llvm.hexagon.Y2.dccleana(i8* nocapture readonly) #2 62declare void @llvm.hexagon.Y2.dccleaninva(i8* nocapture readonly) #2 63declare void @llvm.hexagon.Y2.dcinva(i8* nocapture readonly) #2 64declare void @llvm.hexagon.Y2.dczeroa(i8* nocapture) #3 65declare void @llvm.hexagon.Y4.l2fetch(i8* nocapture readonly, i32) #2 66declare void @llvm.hexagon.Y5.l2fetch(i8* nocapture readonly, i64) #2 67 68attributes #0 = { nounwind "target-cpu"="hexagonv60" "target-features"="-hvx,-long-calls" } 69attributes #1 = { inaccessiblemem_or_argmemonly nounwind } 70attributes #2 = { nounwind } 71attributes #3 = { argmemonly nounwind writeonly } 72