1*4bb928c1SPeter Collingbourne; RUN: llc -o - %s -mtriple thumbv4-unknown-linux-android | FileCheck --check-prefix=V4 %s 2*4bb928c1SPeter Collingbourne; RUN: llc -o - %s -mtriple thumbv5-unknown-linux-android | FileCheck --check-prefix=V5 %s 3*4bb928c1SPeter Collingbourne 4*4bb928c1SPeter Collingbourne; V4: udf #254 5*4bb928c1SPeter Collingbourne; V5: bkpt #0 6*4bb928c1SPeter Collingbourne 7*4bb928c1SPeter Collingbournedefine i1 @a(i32 %b) !dbg !3 { 8*4bb928c1SPeter Collingbourne br i1 undef, label %c, label %d, !dbg !4 9*4bb928c1SPeter Collingbourne 10*4bb928c1SPeter Collingbourned: ; preds = %0 11*4bb928c1SPeter Collingbourne call void @llvm.debugtrap() 12*4bb928c1SPeter Collingbourne br label %ah, !dbg !4 13*4bb928c1SPeter Collingbourne 14*4bb928c1SPeter Collingbournec: ; preds = %0 15*4bb928c1SPeter Collingbourne %aj = icmp ne i20 undef, 5 16*4bb928c1SPeter Collingbourne br label %ah, !dbg !4 17*4bb928c1SPeter Collingbourne 18*4bb928c1SPeter Collingbourneah: ; preds = %c, %d 19*4bb928c1SPeter Collingbourne %ak = phi i1 [ false, %d ], [ %aj, %c ] 20*4bb928c1SPeter Collingbourne call void @llvm.dbg.value(metadata i1 %ak, metadata !7, metadata !DIExpression()), !dbg !9 21*4bb928c1SPeter Collingbourne switch i32 %b, label %al [ 22*4bb928c1SPeter Collingbourne i32 0, label %am 23*4bb928c1SPeter Collingbourne i32 10, label %an 24*4bb928c1SPeter Collingbourne ] 25*4bb928c1SPeter Collingbourne 26*4bb928c1SPeter Collingbournean: ; preds = %ah 27*4bb928c1SPeter Collingbourne %ch = select i1 %ak, i32 0, i32 5 28*4bb928c1SPeter Collingbourne br label %am, !dbg !10 29*4bb928c1SPeter Collingbourne 30*4bb928c1SPeter Collingbourneal: ; preds = %ah 31*4bb928c1SPeter Collingbourne br label %am, !dbg !9 32*4bb928c1SPeter Collingbourne 33*4bb928c1SPeter Collingbourneam: ; preds = %al, %an, %ah 34*4bb928c1SPeter Collingbourne %1 = phi i32 [ 0, %al ], [ %ch, %an ], [ %b, %ah ] 35*4bb928c1SPeter Collingbourne unreachable 36*4bb928c1SPeter Collingbourne} 37*4bb928c1SPeter Collingbourne 38*4bb928c1SPeter Collingbourne; Function Attrs: nounwind readnone speculatable 39*4bb928c1SPeter Collingbournedeclare void @llvm.dbg.value(metadata, metadata, metadata) #0 40*4bb928c1SPeter Collingbourne 41*4bb928c1SPeter Collingbourne; Function Attrs: nounwind 42*4bb928c1SPeter Collingbournedeclare void @llvm.debugtrap() #1 43*4bb928c1SPeter Collingbourne 44*4bb928c1SPeter Collingbourneattributes #0 = { nounwind readnone speculatable } 45*4bb928c1SPeter Collingbourneattributes #1 = { nounwind } 46*4bb928c1SPeter Collingbourne 47*4bb928c1SPeter Collingbourne!llvm.dbg.cu = !{!0} 48*4bb928c1SPeter Collingbourne!llvm.module.flags = !{!2} 49*4bb928c1SPeter Collingbourne 50*4bb928c1SPeter Collingbourne!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: NoDebug) 51*4bb928c1SPeter Collingbourne!1 = !DIFile(filename: "a", directory: "") 52*4bb928c1SPeter Collingbourne!2 = !{i32 2, !"Debug Info Version", i32 3} 53*4bb928c1SPeter Collingbourne!3 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0) 54*4bb928c1SPeter Collingbourne!4 = !DILocation(line: 0, scope: !5, inlinedAt: !6) 55*4bb928c1SPeter Collingbourne!5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0) 56*4bb928c1SPeter Collingbourne!6 = !DILocation(line: 0, scope: !3) 57*4bb928c1SPeter Collingbourne!7 = !DILocalVariable(scope: !8) 58*4bb928c1SPeter Collingbourne!8 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0) 59*4bb928c1SPeter Collingbourne!9 = !DILocation(line: 0, scope: !8, inlinedAt: !6) 60*4bb928c1SPeter Collingbourne!10 = !DILocation(line: 0, scope: !11, inlinedAt: !6) 61*4bb928c1SPeter Collingbourne!11 = !DILexicalBlock(scope: !8) 62