You've already forked linux-packaging-mono
acceptance-tests
data
debian
docs
external
Newtonsoft.Json
api-doc-tools
api-snapshot
aspnetwebstack
bdwgc
binary-reference-assemblies
bockbuild
boringssl
cecil
cecil-legacy
corefx
corert
helix-binaries
ikdasm
ikvm
illinker-test-assets
linker
llvm-project
clang
clang-tools-extra
compiler-rt
libcxx
libcxxabi
libunwind
lld
lldb
llvm
bindings
cmake
docs
examples
include
lib
projects
resources
runtimes
scripts
test
Analysis
Assembler
Bindings
Go
OCaml
llvm-c
ARM
Inputs
X86
add_named_metadata_operand.ll
atomics.ll
calc.test
callsite_attributes.ll
debug_info.ll
echo.ll
empty.ll
function_attributes.ll
functions.ll
globals.ll
invalid-bitcode.test
invoke.ll
memops.ll
objectfile.ll
set_metadata.ll
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
.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
openmp
polly
nuget-buildtasks
nunit-lite
roslyn-binaries
rx
xunit-binaries
how-to-bump-roslyn-binaries.md
ikvm-native
llvm
m4
man
mcs
mk
mono
msvc
netcore
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
38 lines
1.2 KiB
LLVM
38 lines
1.2 KiB
LLVM
![]() |
; RUN: llvm-as < %s | llvm-dis > %t.orig
|
||
|
; RUN: llvm-as < %s | llvm-c-test --echo > %t.echo
|
||
|
; RUN: diff -w %t.orig %t.echo
|
||
|
|
||
|
%S = type { i32, i32 }
|
||
|
|
||
|
define i32 @method(%S* %this, i32 %arg.a, i32 %arg.b) {
|
||
|
%a = alloca i32
|
||
|
store i32 %arg.a, i32* %a, align 4
|
||
|
%b = alloca i32
|
||
|
store i32 %arg.b, i32* %b
|
||
|
%1 = load i32, i32* %a, align 4
|
||
|
%2 = load i32, i32* %b, align 4
|
||
|
%3 = add i32 %1, %2
|
||
|
%4 = getelementptr inbounds %S, %S* %this, i32 0, i32 0
|
||
|
%5 = load i32, i32* %4, align 4
|
||
|
%6 = add i32 %3, %5
|
||
|
%7 = getelementptr inbounds %S, %S* %this, i32 0, i32 1
|
||
|
%8 = load i32, i32* %7, align 4
|
||
|
%9 = add i32 %6, %8
|
||
|
ret i32 %9
|
||
|
}
|
||
|
|
||
|
define i32 @main() {
|
||
|
%s = alloca %S
|
||
|
store %S zeroinitializer, %S* %s
|
||
|
%1 = getelementptr inbounds %S, %S* %s, i32 0, i32 0
|
||
|
%2 = getelementptr inbounds %S, %S* %s, i32 0, i32 1
|
||
|
store i32 1, i32* %2
|
||
|
store i32 1, i32* %1
|
||
|
%3 = insertvalue { %S*, i32 (%S*, i32, i32)* } undef, %S* %s, 0
|
||
|
%4 = insertvalue { %S*, i32 (%S*, i32, i32)* } %3, i32 (%S*, i32, i32)* @method, 1
|
||
|
%5 = extractvalue { %S*, i32 (%S*, i32, i32)* } %4, 0
|
||
|
%6 = extractvalue { %S*, i32 (%S*, i32, i32)* } %4, 1
|
||
|
%7 = call i32 %6(%S* %5, i32 38, i32 2)
|
||
|
ret i32 %7
|
||
|
}
|