1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon -O2 -mcpu=hexagonv60 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Look for an instruction, we really just do not want to see an abort. 4*9880d681SAndroid Build Coastguard Worker; CHECK: trace_event 5*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts 6*9880d681SAndroid Build Coastguard Worker 7*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-a:0-n16:32" 8*9880d681SAndroid Build Coastguard Workertarget triple = "hexagon-unknown--elf" 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 11*9880d681SAndroid Build Coastguard Workerdefine void @_ZN6Halide7Runtime8Internal13default_traceEPvPK18halide_trace_event() #0 { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then, label %if.else 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 16*9880d681SAndroid Build Coastguard Worker br label %while.cond 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerwhile.cond: ; preds = %while.cond, %if.then 19*9880d681SAndroid Build Coastguard Worker br i1 undef, label %while.cond, label %while.end 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerwhile.end: ; preds = %while.cond 22*9880d681SAndroid Build Coastguard Worker %add = add i32 undef, 48 23*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end, label %if.then17 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerif.then17: ; preds = %while.end 26*9880d681SAndroid Build Coastguard Worker unreachable 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %while.end 29*9880d681SAndroid Build Coastguard Worker %arrayidx21 = getelementptr inbounds [4096 x i8], [4096 x i8]* undef, i32 0, i32 8 30*9880d681SAndroid Build Coastguard Worker store i8 undef, i8* %arrayidx21, align 4, !tbaa !1 31*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.body42.preheader6, label %min.iters.checked 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerfor.body42.preheader6: ; preds = %vector.body.preheader, %min.iters.checked, %if.end 34*9880d681SAndroid Build Coastguard Worker unreachable 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workermin.iters.checked: ; preds = %if.end 37*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.body42.preheader6, label %vector.body.preheader 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workervector.body.preheader: ; preds = %min.iters.checked 40*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond48.preheader, label %for.body42.preheader6 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerfor.cond48.preheader: ; preds = %vector.body.preheader 43*9880d681SAndroid Build Coastguard Worker br i1 undef, label %while.cond.i, label %for.body61.lr.ph 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerfor.body61.lr.ph: ; preds = %for.cond48.preheader 46*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.body61, label %min.iters.checked595 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workermin.iters.checked595: ; preds = %for.body61.lr.ph 49*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.body61, label %vector.memcheck608 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workervector.memcheck608: ; preds = %min.iters.checked595 52*9880d681SAndroid Build Coastguard Worker %scevgep600 = getelementptr [4096 x i8], [4096 x i8]* undef, i32 0, i32 %add 53*9880d681SAndroid Build Coastguard Worker %bound0604 = icmp ule i8* %scevgep600, undef 54*9880d681SAndroid Build Coastguard Worker %memcheck.conflict607 = and i1 undef, %bound0604 55*9880d681SAndroid Build Coastguard Worker br i1 %memcheck.conflict607, label %for.body61, label %vector.body590 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workervector.body590: ; preds = %vector.body590, %vector.memcheck608 58*9880d681SAndroid Build Coastguard Worker br i1 undef, label %middle.block591, label %vector.body590, !llvm.loop !4 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workermiddle.block591: ; preds = %vector.body590 61*9880d681SAndroid Build Coastguard Worker %cmp.n613 = icmp eq i32 undef, 0 62*9880d681SAndroid Build Coastguard Worker br i1 %cmp.n613, label %while.cond.i, label %for.body61 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Workerwhile.cond.i: ; preds = %for.body61, %while.cond.i, %middle.block591, %for.cond48.preheader 65*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZN6Halide7Runtime8Internal14ScopedSpinLockC2EPVi.exit, label %while.cond.i 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker_ZN6Halide7Runtime8Internal14ScopedSpinLockC2EPVi.exit: ; preds = %while.cond.i 68*9880d681SAndroid Build Coastguard Worker unreachable 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerfor.body61: ; preds = %for.body61, %middle.block591, %vector.memcheck608, %min.iters.checked595, %for.body61.lr.ph 71*9880d681SAndroid Build Coastguard Worker %cmp59 = icmp ult i32 undef, undef 72*9880d681SAndroid Build Coastguard Worker br i1 %cmp59, label %for.body61, label %while.cond.i, !llvm.loop !7 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerif.else: ; preds = %entry 75*9880d681SAndroid Build Coastguard Worker unreachable 76*9880d681SAndroid Build Coastguard Worker} 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!0} 81*9880d681SAndroid Build Coastguard Worker 82*9880d681SAndroid Build Coastguard Worker!0 = !{i32 2, !"halide_mattrs", !"+hvx"} 83*9880d681SAndroid Build Coastguard Worker!1 = !{!2, !2, i64 0} 84*9880d681SAndroid Build Coastguard Worker!2 = !{!"omnipotent char", !3, i64 0} 85*9880d681SAndroid Build Coastguard Worker!3 = !{!"Simple C/C++ TBAA"} 86*9880d681SAndroid Build Coastguard Worker!4 = distinct !{!4, !5, !6} 87*9880d681SAndroid Build Coastguard Worker!5 = !{!"llvm.loop.vectorize.width", i32 1} 88*9880d681SAndroid Build Coastguard Worker!6 = !{!"llvm.loop.interleave.count", i32 1} 89*9880d681SAndroid Build Coastguard Worker!7 = distinct !{!7, !5, !6} 90