Files
acceptance-tests
data
debian
docs
external
Newtonsoft.Json
api-doc-tools
api-snapshot
aspnetwebstack
binary-reference-assemblies
bockbuild
boringssl
cecil
cecil-legacy
corefx
corert
helix-binaries
ikdasm
ikvm
illinker-test-assets
linker
llvm
bindings
cmake
docs
examples
include
lib
projects
resources
runtimes
scripts
test
Analysis
Assembler
Bindings
Bitcode
BugPoint
CodeGen
DebugInfo
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
LTO
Linker
MC
Object
ObjectYAML
Other
SafepointIRVerifier
SymbolRewriter
TableGen
ThinLTO
Transforms
Unit
Verifier
YAMLParser
tools
dsymutil
gold
llvm-ar
llvm-cfi-verify
llvm-config
llvm-cov
llvm-cvtres
llvm-cxxdump
llvm-cxxfilt
llvm-dlltool
llvm-dwarfdump
llvm-dwp
llvm-extract
llvm-isel-fuzzer
llvm-lib
llvm-lit
llvm-lto
llvm-lto2
llvm-mc
llvm-modextract
llvm-mt
llvm-nm
llvm-objcopy
llvm-objdump
AArch64
AMDGPU
ARM
Hexagon
Inputs
lit.local.cfg
source-interleave-hexagon.ll
Inputs
Mips
WebAssembly
X86
coff-file.test
coff-import-library.test
coff-large-bss.test
coff-many-relocs.test
coff-non-null-terminated-file.test
coff-private-headers.test
common-symbol-elf.test
eh_frame-arm64.test
eh_frame-mipsel.test
eh_frame_zero_cie.test
hex-relocation-addr.test
invalid-input.test
macho-LLVM-bundle.test
macho-bad-bind.test
macho-bad-ordinal.test
macho-bad-trie.test
macho-bind.test
macho-bind2.test
macho-compact-unwind-i386.test
macho-compact-unwind-x86_64.test
macho-exports-trie.test
macho-lazy-bind.test
macho-objc-meta-data.test
macho-rebase.test
macho-sections.test
macho-unwind-info-arm64.test
macho-unwind-info-no-relocs.test
macho-unwind-info-x86_64.test
macho-weak-bind.test
malformed-archives.test
malformed-macho.test
malformed-unwind-x86_64.test
proc-specific-section-elf.test
section-filter.test
wasm-corrupt-section.test
wasm.txt
win64-unwind-data.test
llvm-opt-fuzzer
llvm-opt-report
llvm-pdbdump
llvm-profdata
llvm-rc
llvm-readobj
llvm-size
llvm-split
llvm-strings
llvm-symbolizer
llvm-xray
lto
obj2yaml
opt-viewer
sancov
sanstats
yaml2obj
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py
lit.site.cfg.py.in
tools
unittests
utils
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in
nuget-buildtasks
nunit-lite
roslyn-binaries
rx
xunit-binaries
how-to-bump-roslyn-binaries.md
ikvm-native
libgc
llvm
m4
man
mcs
mk
mono
msvc
po
runtime
samples
scripts
support
tools
COPYING.LIB
LICENSE
Makefile.am
Makefile.in
NEWS
README.md
acinclude.m4
aclocal.m4
autogen.sh
code_of_conduct.md
compile
config.guess
config.h.in
config.rpath
config.sub
configure.REMOVED.git-id
configure.ac.REMOVED.git-id
depcomp
install-sh
ltmain.sh.REMOVED.git-id
missing
mkinstalldirs
mono-uninstalled.pc.in
test-driver
winconfig.h
linux-packaging-mono/external/llvm/test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll
Xamarin Public Jenkins (auto-signing) 64ac736ec5 Imported Upstream version 6.0.0.172
Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
2019-04-12 14:10:50 +00:00

73 lines
3.8 KiB
LLVM

; RUN: sed -e "s,SRC_COMPDIR,%p/Inputs,g" %s > %t.ll
; RUN: llc -o %t.o -filetype=obj -mtriple=hexagon-unknown-elf %t.ll
; RUN: llvm-objdump -d -l %t.o | FileCheck --check-prefix="LINES" %t.ll
; RUN: llvm-objdump -d -S %t.o | FileCheck --check-prefix="SOURCE" %t.ll
; ModuleID = 'source-interleave-hexagon.bc'
source_filename = "source-interleave-hexagon.c"
target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"
target triple = "hexagon-unknown--elf"
@a = global i32 1, align 4, !dbg !4
; Function Attrs: nounwind
define i32 @foo() #0 !dbg !9 {
entry:
%0 = load i32, i32* @a, align 4, !dbg !12
ret i32 %0, !dbg !13
}
; Function Attrs: nounwind
define i32 @main() #0 !dbg !14 {
entry:
%retval = alloca i32, align 4
%b = alloca i32*, align 4
store i32 0, i32* %retval, align 4
call void @llvm.dbg.declare(metadata i32** %b, metadata !15, metadata !17), !dbg !18
store i32* @a, i32** %b, align 4, !dbg !18
%0 = load i32*, i32** %b, align 4, !dbg !19
%1 = load i32, i32* %0, align 4, !dbg !20
%call = call i32 @foo(), !dbg !21
%add = add nsw i32 %1, %call, !dbg !22
ret i32 %add, !dbg !23
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
attributes #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-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hexagonv60" "target-features"="-hvx" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!6, !7}
!llvm.ident = !{!8}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 4.0.0 (http://llvm.org/git/clang d19a95e94dc57c5a72fd25d64f26134aa7d25fa0) (http://llvm.org/git/llvm.git 313924e6ff8a332063f61d3fda03812c220762f6)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !3)
!1 = !DIFile(filename: "source-interleave-hexagon.c", directory: "SRC_COMPDIR")
!2 = !{}
!3 = !{!4}
!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true), expr: !DIExpression())
!5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!6 = !{i32 2, !"Dwarf Version", i32 4}
!7 = !{i32 2, !"Debug Info Version", i32 3}
!8 = !{!"clang version 4.0.0 (http://llvm.org/git/clang d19a95e94dc57c5a72fd25d64f26134aa7d25fa0) (http://llvm.org/git/llvm.git 313924e6ff8a332063f61d3fda03812c220762f6)"}
!9 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 2, type: !10, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, unit: !0, variables: !2)
!10 = !DISubroutineType(types: !11)
!11 = !{!5}
!12 = !DILocation(line: 3, column: 10, scope: !9)
!13 = !DILocation(line: 3, column: 3, scope: !9)
!14 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 6, type: !10, isLocal: false, isDefinition: true, scopeLine: 6, isOptimized: false, unit: !0, variables: !2)
!15 = !DILocalVariable(name: "b", scope: !14, file: !1, line: 7, type: !16)
!16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 32, align: 32)
!17 = !DIExpression()
!18 = !DILocation(line: 7, column: 8, scope: !14)
!19 = !DILocation(line: 8, column: 11, scope: !14)
!20 = !DILocation(line: 8, column: 10, scope: !14)
!21 = !DILocation(line: 8, column: 15, scope: !14)
!22 = !DILocation(line: 8, column: 13, scope: !14)
!23 = !DILocation(line: 8, column: 3, scope: !14)
; LINES: main:
; LINES-NEXT: SRC_COMPDIR/source-interleave-hexagon.c:6
; SOURCE: main:
; SOURCE-NEXT: int main() {