You've already forked linux-packaging-mono
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
AliasSet
AssumptionCache
BasicAA
2003-02-26-AccessSizeTest.ll
2003-03-04-GEPCrash.ll
2003-04-22-GEPProblem.ll
2003-04-25-GEPCrash.ll
2003-05-21-GEP-Problem.ll
2003-06-01-AliasCrash.ll
2003-07-03-BasicAACrash.ll
2003-09-19-LocalArgument.ll
2003-11-04-SimpleCases.ll
2003-12-11-ConstExprGEP.ll
2004-07-28-MustAliasbug.ll
2006-03-03-BadArraySubscript.ll
2006-11-03-BasicAAVectorCrash.ll
2007-01-13-BasePointerBadNoAlias.ll
2007-08-01-NoAliasAndCalls.ll
2007-08-01-NoAliasAndGEP.ll
2007-08-05-GetOverloadedModRef.ll
2007-10-24-ArgumentsGlobals.ll
2007-11-05-SizeCrash.ll
2007-12-08-OutOfBoundsCrash.ll
2008-04-15-Byval.ll
2008-06-02-GEPTailCrash.ll
2008-11-23-NoaliasRet.ll
2009-03-04-GEPNoalias.ll
2009-10-13-AtomicModRef.ll
2009-10-13-GEP-BaseNoAlias.ll
2010-09-15-GEP-SignedArithmetic.ll
2014-03-18-Maxlookup-reached.ll
aligned-overread.ll
args-rets-allocas-loads.ll
assume.ll
bug.23540.ll
bug.23626.ll
byval.ll
call-attrs.ll
cas.ll
constant-over-index.ll
cs-cs-arm.ll
cs-cs.ll
dag.ll
empty.ll
fallback-mayalias.ll
featuretest.ll
full-store-partial-alias.ll
gcsetest.ll
gep-alias.ll
gep-and-alias.ll
getmodrefinfo-cs-cs.ll
global-size.ll
guards.ll
intrinsics-arm.ll
intrinsics.ll
invalidation.ll
invariant_load.ll
memset_pattern.ll
modref.ll
must-and-partial.ll
negoffset.ll
no-escape-call.ll
noalias-bugs.ll
noalias-geps.ll
noalias-param.ll
noalias-wraparound-bug.ll
nocapture.ll
phi-aa.ll
phi-and-select.ll
phi-loop.ll
phi-spec-order.ll
phi-speculation.ll
pr18573.ll
pr31761.ll
pure-const-dce.ll
q.bad.ll
returned.ll
sequential-gep.ll
store-promote.ll
struct-geps.ll
tailcall-modref.ll
underlying-value.ll
unreachable-block.ll
zext.ll
BlockFrequencyInfo
BranchProbabilityInfo
CFLAliasAnalysis
CallGraph
ConstantFolding
CostModel
Delinearization
DemandedBits
DependenceAnalysis
DivergenceAnalysis
DominanceFrontier
Dominators
GlobalsModRef
IVUsers
LazyCallGraph
LazyValueAnalysis
Lint
LoopAccessAnalysis
LoopInfo
MemoryDependenceAnalysis
MemorySSA
PostDominators
ProfileSummary
RegionInfo
ScalarEvolution
ScopedNoAliasAA
TypeBasedAliasAnalysis
ValueTracking
alias-analysis-uses.ll
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
.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
68 lines
3.8 KiB
LLVM
68 lines
3.8 KiB
LLVM
![]() |
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
|
||
|
target triple = "powerpc64-bgq-linux"
|
||
|
; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
|
||
|
|
||
|
@X = external global [16000 x double], align 32
|
||
|
@Y = external global [16000 x double], align 32
|
||
|
|
||
|
define signext i32 @s000() nounwind {
|
||
|
entry:
|
||
|
br label %for.cond2.preheader
|
||
|
|
||
|
for.cond2.preheader: ; preds = %for.end, %entry
|
||
|
%nl.018 = phi i32 [ 0, %entry ], [ %inc9, %for.end ]
|
||
|
br label %for.body4
|
||
|
|
||
|
for.body4: ; preds = %for.body4, %for.cond2.preheader
|
||
|
%lsr.iv4 = phi [16000 x double]* [ %i11, %for.body4 ], [ bitcast (double* getelementptr inbounds ([16000 x double], [16000 x double]* @Y, i64 0, i64 8)
|
||
|
to [16000 x double]*), %for.cond2.preheader ]
|
||
|
%lsr.iv1 = phi [16000 x double]* [ %i10, %for.body4 ], [ @X, %for.cond2.preheader ]
|
||
|
|
||
|
; CHECK: NoAlias:{{[ \t]+}}[16000 x double]* %lsr.iv1, [16000 x double]* %lsr.iv4
|
||
|
|
||
|
%lsr.iv = phi i32 [ %lsr.iv.next, %for.body4 ], [ 16000, %for.cond2.preheader ]
|
||
|
%lsr.iv46 = bitcast [16000 x double]* %lsr.iv4 to <4 x double>*
|
||
|
%lsr.iv12 = bitcast [16000 x double]* %lsr.iv1 to <4 x double>*
|
||
|
%scevgep11 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -2
|
||
|
%i6 = load <4 x double>, <4 x double>* %scevgep11, align 32
|
||
|
%add = fadd <4 x double> %i6, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||
|
store <4 x double> %add, <4 x double>* %lsr.iv12, align 32
|
||
|
%scevgep10 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -1
|
||
|
%i7 = load <4 x double>, <4 x double>* %scevgep10, align 32
|
||
|
%add.4 = fadd <4 x double> %i7, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||
|
%scevgep9 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 1
|
||
|
store <4 x double> %add.4, <4 x double>* %scevgep9, align 32
|
||
|
%i8 = load <4 x double>, <4 x double>* %lsr.iv46, align 32
|
||
|
%add.8 = fadd <4 x double> %i8, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||
|
%scevgep8 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 2
|
||
|
store <4 x double> %add.8, <4 x double>* %scevgep8, align 32
|
||
|
%scevgep7 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 1
|
||
|
%i9 = load <4 x double>, <4 x double>* %scevgep7, align 32
|
||
|
%add.12 = fadd <4 x double> %i9, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||
|
%scevgep3 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 3
|
||
|
store <4 x double> %add.12, <4 x double>* %scevgep3, align 32
|
||
|
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep11, <4 x double>* %scevgep7
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep10, <4 x double>* %scevgep7
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep7, <4 x double>* %scevgep9
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep11, <4 x double>* %scevgep3
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep10, <4 x double>* %scevgep3
|
||
|
; CHECK: NoAlias:{{[ \t]+}}<4 x double>* %scevgep3, <4 x double>* %scevgep9
|
||
|
|
||
|
%lsr.iv.next = add i32 %lsr.iv, -16
|
||
|
%scevgep = getelementptr [16000 x double], [16000 x double]* %lsr.iv1, i64 0, i64 16
|
||
|
%i10 = bitcast double* %scevgep to [16000 x double]*
|
||
|
%scevgep5 = getelementptr [16000 x double], [16000 x double]* %lsr.iv4, i64 0, i64 16
|
||
|
%i11 = bitcast double* %scevgep5 to [16000 x double]*
|
||
|
%exitcond.15 = icmp eq i32 %lsr.iv.next, 0
|
||
|
br i1 %exitcond.15, label %for.end, label %for.body4
|
||
|
|
||
|
for.end: ; preds = %for.body4
|
||
|
%inc9 = add nsw i32 %nl.018, 1
|
||
|
%exitcond = icmp eq i32 %inc9, 400000
|
||
|
br i1 %exitcond, label %for.end10, label %for.cond2.preheader
|
||
|
|
||
|
for.end10: ; preds = %for.end
|
||
|
ret i32 0
|
||
|
}
|